Confirm and start an import (user)
Confirms an incomplete import and queues it for background processing. The
import must have a saved mapping (can_confirm: true) or a 422 is returned.
On success the import moves to pending and is processed asynchronously;
poll the get-import endpoint for the final status and counts. Only an
incomplete import can be confirmed (otherwise 409).
Imports created in the Cockpit admin are not drivable here, and an import started via this API cannot be completed from the Cockpit admin: the two flows are kept separate.
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>
application/jsonResponses
550e8400-e29b-41d4-a716-446655440000incomplete pending processing completed completed_with_errors failedincompletecsv xls xlsx nullcsv42311"UTF-81mappingsarray<object>
name10subfieldsarray<object>
typemobile2026-01-15T09:30:00Z2026-01-15T09:31:00Z2026-01-15T09:31:45Zrecordsarray<object>
550e8400-e29b-41d4-a716-4466554400101errorsarray<object>
7emailmessagesarray<string>
row_dataobject
Authorization Token is missingmessagearray<string>
The given data was invalid.errorsobject
filterarray<string>
sortarray<string>
pagearray<string>
per_pagearray<string>
https://cockpit.voxbi.com/api/v1/contacts/imports/{id}/confirm
curl -X POST 'https://cockpit.voxbi.com/api/v1/contacts/imports/{id}/confirm' \
-H 'Authorization: Bearer YOUR_TOKEN'
const response = await fetch('https://cockpit.voxbi.com/api/v1/contacts/imports/{id}/confirm', {
method: 'POST',
headers: {
'Content-Type': 'application/json',
'Authorization': `Bearer ${YOUR_TOKEN}`,
},
});
const data = await response.json();
console.log(data);
import requests
response = requests.post('https://cockpit.voxbi.com/api/v1/contacts/imports/{id}/confirm',
headers={'Authorization': f'Bearer {YOUR_TOKEN}'}
)
response.raise_for_status()
data = response.json()
print(data)
<?php
$context = stream_context_create([
'http' => [
'method' => 'POST',
'header' => "Content-Type: application/json\r\nAuthorization: Bearer YOUR_TOKEN",
],
]);
$response = file_get_contents('https://cockpit.voxbi.com/api/v1/contacts/imports/{id}/confirm', false, $context);
$data = json_decode($response, true);
print_r($data);
{ … }
private, must-revalidatekeep-aliveapplication/jsonOrigin6057{ … }
"message": [ … ]
private, must-revalidatekeep-aliveapplication/jsonOrigin6057{ … }
application/json{ … }
"errors": { … }
"filter": [ … ],
"sort": [ … ],
"page": [ … ],
"per_page": [ … ]
private, must-revalidatekeep-aliveapplication/jsonOrigin6057