API documentation | API docs for agents | OpenAPI 3.1

POST /api/v1/loads

ark.create_load

Creates an available load with customer, team, equipment, route stops, references, and optional customer charges.

Availability
Core preview
Scopes
loads:write
ARK permissions
canCreateLoad
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

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

customerIdstringrequired

format: uuid

teamIdstringrequired

format: uuid

brokerIdstring | null

format: uuid

customerServiceRepIdstring | null

format: uuid

temperaturenumber | null
internalCommentsstring

default: ""; max length: 5000

externalCommentsstring

default: ""; max length: 5000

hotCommentsstring

default: ""; max length: 5000

productstring

default: ""; max length: 200

valuenumber | null
descriptionstring

default: ""; max length: 5000

sizestring

default: ""; max length: 100

trailerstringrequired

min length: 1; max length: 100

weightnumber | null
weightUnitstring

one of: lbs, kg; default: "lbs"

lengthnumber | null
widthnumber | null
heightnumber | null
billOfLadingstring

default: ""; max length: 100

numberOfPiecesinteger | null

min: 0

pickupNumberstring

default: ""; max length: 100

purchaseOrderNumberstring

default: ""; max length: 100

hazmatboolean

default: false

docHighboolean

default: false

stackableboolean

default: false

tsaboolean

default: false

teamDriverRequiredboolean

default: false

milesnumber | null

min: 0

customerCurrencystring

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

carrierCurrencystring

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

Example request

Shell
curl -X POST 'https://arktms.com/api/v1/loads' \
  -H "Authorization: Bearer $ARK_API_TOKEN" \
  -H "Idempotency-Key: <unique-key>" \
  -H "Content-Type: application/json" \
  -d '{
  "customerId": "<customerId>",
  "teamId": "<teamId>",
  "trailer": "<trailer>",
  "stops": [
    {
      "locationId": "<locationId>",
      "index": 0,
      "type": "<type>"
    },
    {
      "locationId": "<locationId>",
      "index": 0,
      "type": "<type>"
    }
  ]
}'

Success response

Created load

objectstringrequired
okbooleanrequired
api_versionstringrequired
request_idstringrequired
dataobjectrequired
data.idstringrequired

format: uuid

data.loadNumberstringrequired
data.statusstring | nullrequired
data.teamIdstring | nullrequired

format: uuid

data.pickupNumberstring | nullrequired
data.purchaseOrderNumberstring | nullrequired
data.billOfLadingstring | nullrequired
data.productstring | nullrequired
data.descriptionstring | nullrequired
data.createdAtstringrequired

format: date-time

data.modifiedAtstring | nullrequired

format: date-time

Errors

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