# Replace example resource IDs and ownerId with values from your workspace.
: "${POWERDIALER_API_KEY:?Set POWERDIALER_API_KEY to your scoped API key}"
curl --request GET \
--url 'https://api.migration.powerdialer.ai/api/public/v2/imports/00000000-0000-4000-8000-000000000001' \
--header "Authorization: Bearer $POWERDIALER_API_KEY"{
"id": "00000000-0000-4000-8000-000000000001",
"listId": 456,
"state": "completed",
"processed": 1,
"results": [
{
"row": 0,
"status": "created",
"contactId": 123
}
],
"createdAt": "2026-10-08T12:00:00.000Z"
}{
"error": {
"code": "invalid_api_key",
"message": "API key is invalid, expired or revoked",
"requestId": "00000000-0000-4000-8000-000000000004"
}
}Get import progress
Poll a submitted import to see how much work has completed and which rows need attention. Requires contacts:write and the same credential that created the job. Another key in the same workspace cannot read the job; rotating the original key preserves its credential identity.
The response includes state, processed, and row results. States are pending, completed or cancelled. Processed counts include failures. Each result identifies a zero-based row and either a created/updated contact ID or invalid_row/row_conflict with optional field details. A completed job is not a promise that every row succeeded.
Poll pending work with backoff and inspect failed rows before resubmitting corrections. Revoked/expired credentials or lost owner access can cancel remaining work while preserving already committed progress. 404 not_found requires checking both job ID and originating credential. This read needs no idempotency key and is safe to retry.
See import outcomes.
# Replace example resource IDs and ownerId with values from your workspace.
: "${POWERDIALER_API_KEY:?Set POWERDIALER_API_KEY to your scoped API key}"
curl --request GET \
--url 'https://api.migration.powerdialer.ai/api/public/v2/imports/00000000-0000-4000-8000-000000000001' \
--header "Authorization: Bearer $POWERDIALER_API_KEY"{
"id": "00000000-0000-4000-8000-000000000001",
"listId": 456,
"state": "completed",
"processed": 1,
"results": [
{
"row": 0,
"status": "created",
"contactId": 123
}
],
"createdAt": "2026-10-08T12:00:00.000Z"
}{
"error": {
"code": "invalid_api_key",
"message": "API key is invalid, expired or revoked",
"requestId": "00000000-0000-4000-8000-000000000004"
}
}Authorizations
Issued in Developers. Workspace/owner/scopes come from credential, never acting-user headers. API keys cannot manage API credentials.
Path Parameters
Import UUID returned by POST /imports. Read it using the same credential that created the job.
Response
Current job state, processed count and results for rows processed so far.
Import job ID. Only the creating credential can read this job.
Destination calling-list ID.
pending while work remains; completed when every row has been attempted; cancelled when access or required resources are no longer valid.
pending, completed, cancelled Number of rows attempted, including failures.
Results for processed rows. A completed job may include failed rows.
Show child attributes
Show child attributes
Time the job was accepted, in UTC.