Bulk import status

Overview

Get live progress and the final outcome of a bulk account+location import (Bulk import accounts + locations (CSV upload)). Poll until status is terminal.

Prerequisites

  • A bearer token in the Authorization header.
  • The bulkImportId of the record you are targeting.

Base URL

EnvironmentURL
Productionhttps://production-api.shoutaboutus.com
Developmenthttps://development-api.shoutaboutus.com

Endpoint

GET /api/v1/partner/account/bulk-import/{bulkImportId}

Authentication

  • Requires a bearer token in the Authorization: Bearer <bearer-token> header.

  • Partner — authentication. Returns the import only when it belongs to the caller's partner (else 404); 403 if the caller is not a partner.

Rate limit

  • No rate limit.

Path parameters

ParameterTypeRequiredDescription
bulkImportIdintegerRequiredDigits only.

Response

FieldTypeNotes
statusstringqueued, then preparing, then processing, then terminal completed / completed_with_errors / failed.
total_rowsintegerCSV data rows read.
processed_rowsintegerRows that reached a terminal outcome (created + skipped).
created_rowsintegerAccounts successfully provisioned.
skipped_rowsintegerRows skipped (invalid / duplicate / plan_unavailable / unknown_country).
created_citiesintegerNew city reference rows minted during geo resolve.
created_statesintegerNew state reference rows minted during geo resolve.
skip_breakdownobjectMap of skip reason → count, e.g. { "duplicate_email": 1, "plan_unavailable": 2 }.
error_messagestring|nullSet only when status = failed.
queued_at / started_at / completed_attimestamp|nullLifecycle timestamps.

200 Success · 200

{
  "data": {
    "import_id": 2,
    "status": "completed_with_errors",
    "total_rows": 22,
    "processed_rows": 22,
    "created_rows": 21,
    "skipped_rows": 1,
    "created_cities": 1,
    "created_states": 0,
    "skip_breakdown": {
      "duplicate_email": 1
    },
    "error_message": null,
    "queued_at": "2026-06-30T07:02:03.000000Z",
    "started_at": "2026-06-30T07:02:04.000000Z",
    "completed_at": "2026-06-30T07:02:07.000000Z"
  }
}

404 Not found · 404

{
  "message": "Import not found.",
  "status": "error",
  "errors": []
}

Errors

StatusMeaning
401The bearer token is missing, expired or invalid
403Returned if the caller is not a partner
404Not found
500Unexpected server error

Example request

curl --request GET \
  --url "https://production-api.shoutaboutus.com/api/v1/partner/account/bulk-import/123" \
  --header 'Authorization: Bearer <bearer-token>' \
  --header 'Accept: application/json'

Did this page help you?