The Only API docs
Bulk Import

Get an import job

One job with its rows and counts. This is the fallback whenever an SSE event is missed — the stored row is authoritative, the events are only a live nudge.

GET
/import/jobs/{job_id}

One job with its rows and counts. This is the fallback whenever an SSE event is missed — the stored row is authoritative, the events are only a live nudge.

counts is zero-filled across every state, so a missing key never has to be read as "unknown". row_states echoes the full state vocabulary: pending, running, success, needs_2fa, needs_2fa_expired, failed, canceled, invalid, skipped, slot_exhausted.

Rows never carry credentials — each has has_password / has_totp_secret flags instead, and a row parked on 2FA also reports two_fa_remaining_seconds.

X-API-Key<token>

Your CRM panel API key

In: header

Path Parameters

job_id*string

Import job ID (32-character hex) returned by POST /import/jobs.

Query Parameters

limit?integer

Rows per page (1–1000).

Range1 <= value <= 1000
Default1000
offset?integer

Row offset for pagination.

Default0
status?string

Return only rows in this state. An unrecognised value is a 400, not an empty page.

Value in

  • "pending"
  • "running"
  • "success"
  • "needs_2fa"
  • "needs_2fa_expired"
  • "failed"
  • "canceled"
  • "invalid"
  • "skipped"
  • "slot_exhausted"

Response Body

application/json

curl -X GET "https://example.com/import/jobs/string"
{  "counts": null,  "job": null,  "row_states": [],  "rows": [],  "success": true,  "total": 0}