API documentation | API docs for agents | OpenAPI 3.1

POST /api/v1/loads/{loadId}/assign-carrier

ark.assign_carrier

Books an active carrier on a visible load using ARK's dispatch workflow, dispatcher/driver contact handling, carrier pay, currency, optional bid acceptance, booking snapshots, audit events, and load status update.

Availability
Core preview
Scopes
loads:dispatch
ARK permissions
canAssignLoads
Team visibility
Required and enforced
Idempotency-Key
Required for this write
Approval
No MCP approval on REST API-token calls
Rate limit
API credential and organization budgets

Parameters

loadIdpathstringrequired
format: uuid
Idempotency-Keyheaderstringrequired
Required for external write operations. Reuse the same key only for exact retries of the same request body.
min length: 1; max length: 200

Request body

carrierIdstringrequired

format: uuid

bidIdstring

format: uuid

truckNumberstring | null

max length: 100

trailerNumberstring | null

max length: 100

carrierCurrencystring

one of: USD, CAD, MXN; default: "USD"

Example request

Shell
curl -X POST 'https://arktms.com/api/v1/loads/<loadId>/assign-carrier' \
  -H "Authorization: Bearer $ARK_API_TOKEN" \
  -H "Idempotency-Key: <unique-key>" \
  -H "Content-Type: application/json" \
  -d '{
  "carrierId": "<carrierId>",
  "dispatcher": {
    "firstName": "<firstName>",
    "email": "<email>"
  }
}'

Success response

Assigned carrier and created dispatch

objectstringrequired
okbooleanrequired
api_versionstringrequired
request_idstringrequired
dataobjectrequired
data.loadIdstringrequired

format: uuid

data.bidAcceptedbooleanrequired
data.brokerAssignedToCurrentUserbooleanrequired
data.loadBoardRemovalProcessedbooleanrequired
data.sideEffectErrorstring | nullrequired

Errors

HTTP 400
Invalid request
HTTP 401
Authentication required
HTTP 403
Permission, scope, team, or entitlement denied
HTTP 404
Resource not found
HTTP 409
Idempotency conflict or in-progress retry