Skip to main content
GET
/
entities
/
{entity_id}
/
migration
/
jobs
/
{job_id}
Get a single migration job by ID
curl --request GET \
  --url https://api.arcuserp.com/v1/entities/{entity_id}/migration/jobs/{job_id} \
  --header 'Authorization: Bearer <token>'
{
  "id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
  "object": "migration_job",
  "entity_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
  "resource": "<string>",
  "status": "pending",
  "dry_run": true,
  "conflict_mode": "skip",
  "external_source": "<string>",
  "total_records": 123,
  "processed_records": 123,
  "succeeded_records": 123,
  "failed_records": 123,
  "errors": [
    {
      "index": 123,
      "external_id": "<string>",
      "error": "<string>",
      "code": "<string>"
    }
  ],
  "started_at": "2023-11-07T05:31:56Z",
  "completed_at": "2023-11-07T05:31:56Z",
  "created_at": "2023-11-07T05:31:56Z"
}

Documentation Index

Fetch the complete documentation index at: https://docs.arcuserp.com/llms.txt

Use this file to discover all available pages before exploring further.

Authorizations

Authorization
string
header
required

API key issued per entity via Settings > Developers > API Keys. Each key carries scopes (e.g. orders:read, products:write). Bearer token format: Authorization: Bearer ark_live_ent_Test keys use ark_test_ent_. Both are issued per entity
via Settings > Developers > API Keys.

Path Parameters

entity_id
string<uuid>
required
job_id
string<uuid>
required

Response

Migration job

Async bulk import job status record

id
string<uuid>
object
enum<string>
Available options:
migration_job
entity_id
string<uuid>
resource
string

Resource type (accounts, products, orders, journal-entries, vendor-bills, ap-payments)

status
enum<string>
Available options:
pending,
running,
completed,
failed,
partial
dry_run
boolean
conflict_mode
enum<string>
default:skip

How to handle a record whose (external_source, external_id) already exists in Arcus.

  • skip: leave the existing record unchanged, count as success
  • update: call the canonical UPDATE handler with the incoming payload
  • replace: NULL out the existing record's provenance UNIQUE, then INSERT new record
  • error: abort the entire batch on the first collision (default if not specified: skip)
Available options:
skip,
update,
replace,
error
external_source
string

Source system identifier (e.g. "versa", "shopify", "quickbooks")

total_records
integer
processed_records
integer
succeeded_records
integer
failed_records
integer
errors
object[]
started_at
string<date-time> | null
completed_at
string<date-time> | null
created_at
string<date-time>