Voxbi Cockpit APIs
All endpoints

Get column mapping options for an import (user)

Returns everything the client needs to render the mapping step: the detected file columns (each with a stable id used as column in the mapping payload) and the allow-listed target fields a column may be mapped to. Only these target fields are accepted when saving a mapping: no other model attribute (e.g. private_owner_id, pbx_id, groups) can be targeted, and nothing is auto-mapped. Only an incomplete import can be read here (otherwise 409).

HTTP: bearerAuth

User bearer token. Default authentication for customer-facing endpoints. Obtain a token by calling POST /login with your credentials, then send it on every subsequent request as Authorization: Bearer <token>. The token inherits the permissions and PBX scope of the authenticated user.

HTTP Authorization Scheme
bearer
Bearer format
Bearer <token>
id path · string · uuid *
Import identifier
accept header · string
example: application/json

Responses

Response schema
file_columnsarray<object>
Detected columns from the uploaded file.
idinteger
Stable column id (used as `column` in the mapping payload).
example: 0
namestring
The column header text.
example: First name
target_fieldsarray<object>
The only contact fields a column may be mapped to.
fieldstring
example: name1
labelstring
example: First name
typestring
enum: text relationship
example: text
multipleboolean
Present (true) only on fields that accept several columns.
example: 1
subfieldsarray<object>
Extra values a mapping to this field must carry (e.g. a phone `type`).
namestring
example: type
typestring
example: enum
optionsarray<string>
[]string
Authorization Token Missing. This error is returned when the authorization token is missing.
Response schema
errorstring
Error message
example: Authorization Token is missing
Data Not Found. This error is returned when the requested data is not found.
Response schema
messagearray<string>
[]string
Conflict. The import is no longer in a state that allows this action (for example, it has already been submitted for processing). Only an `incomplete` import can be configured or confirmed.
Response schema
messagestring
Server error. An unexpected condition was encountered on the server and the request could not be completed. The body is a generic JSON envelope with a `message` field. The response is logged on the server side; quote the request URL + timestamp when reporting an issue.
Response schema
messagestring
exceptionstring
Only present in non-production environments.
filestring
Only present in non-production environments.
lineinteger
Only present in non-production environments.
get https://cockpit.voxbi.com/api/v1/contacts/imports/{id}/mapping-options
Base URL
Request sample
curl -X GET 'https://cockpit.voxbi.com/api/v1/contacts/imports/{id}/mapping-options' \
  -H 'Authorization: Bearer YOUR_TOKEN'
const response = await fetch('https://cockpit.voxbi.com/api/v1/contacts/imports/{id}/mapping-options', {
  method: 'GET',
  headers: {
    'Content-Type': 'application/json',
    'Authorization': `Bearer ${YOUR_TOKEN}`,
  },
});

const data = await response.json();
console.log(data);
import requests

response = requests.get('https://cockpit.voxbi.com/api/v1/contacts/imports/{id}/mapping-options',
    headers={'Authorization': f'Bearer {YOUR_TOKEN}'}
)
response.raise_for_status()
data = response.json()
print(data)
<?php
$context = stream_context_create([
    'http' => [
        'method'  => 'GET',
        'header'  => "Content-Type: application/json\r\nAuthorization: Bearer YOUR_TOKEN",
    ],
]);

$response = file_get_contents('https://cockpit.voxbi.com/api/v1/contacts/imports/{id}/mapping-options', false, $context);
$data = json_decode($response, true);
print_r($data);
{}
"file_columns": [],
{},
"id": 0,
"name": "First name"
},
{},
"id": 1,
"name": "Last name"
},
{}
"id": 2,
"name": "Mobile"
}
],
"target_fields": []
{},
"field": "name1",
"label": "First name",
"type": "text"
},
{}
"field": "contactPhoneNumbers",
"label": "Phone numbers",
"type": "relationship",
"multiple": true,
"subfields": []
{}
"name": "type",
"type": "enum",
"options": []
"business",
"mobile",
"other",
"fax"
]
}
]
}
]
}
{}
"error": "Authorization Token is missing"
}
Cache-Control string
example: private, must-revalidate
Connection string
example: keep-alive
Content-Type string
example: application/json
Vary string
example: Origin
X-RateLimit-Limit integer
Max requests allowed in the current rate-limit window.
example: 60
X-RateLimit-Remaining integer
Requests remaining in the current rate-limit window.
example: 57
{}
"message": []
"Data not found"
]
}
Cache-Control string
example: private, must-revalidate
Connection string
example: keep-alive
Content-Type string
example: application/json
Vary string
example: Origin
X-RateLimit-Limit integer
Max requests allowed in the current rate-limit window.
example: 60
X-RateLimit-Remaining integer
Requests remaining in the current rate-limit window.
example: 57
{}
"message": "This import has already been submitted."
}
Content-Type string
example: application/json
{}
"message": "Server Error"
}