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
customerIdstringrequiredformat: uuid
teamIdstringrequiredformat: uuid
brokerIdstring | nullformat: uuid
customerServiceRepIdstring | nullformat: uuid
temperaturenumber | nullDeprecated scalar temperature; maps to both range bounds. Do not send it with temperatureMin or temperatureMax.
temperatureMinnumber | nullMinimum required trailer temperature in degrees Fahrenheit. Send with temperatureMax; both bounds must be numbers or both null, and minimum cannot exceed maximum.
temperatureMaxnumber | nullMaximum required trailer temperature in degrees Fahrenheit. Send with temperatureMin; both bounds must be numbers or both null, and maximum cannot be below minimum.
internalCommentsstringdefault: ""; max length: 5000
externalCommentsstringdefault: ""; max length: 5000
hotCommentsstringdefault: ""; max length: 5000
productstringdefault: ""; max length: 200
valuenumber | nulldescriptionstringdefault: ""; max length: 5000
sizestringdefault: ""; max length: 100
trailerstringrequiredmin length: 1; max length: 100
weightnumber | nullweightUnitstringone of: lbs, kg; default: "lbs"
lengthnumber | nullwidthnumber | nullheightnumber | nullbillOfLadingstringdefault: ""; max length: 100
numberOfPiecesinteger | nullmin: 0
pickupNumberstringdefault: ""; max length: 100
purchaseOrderNumberstringdefault: ""; max length: 100
hazmatbooleandefault: false
docHighbooleandefault: false
stackablebooleandefault: false
tsabooleandefault: false
teamDriverRequiredbooleandefault: false
milesnumber | nullmin: 0
customerCurrencystringone of: USD, CAD, MXN; default: "USD"
carrierCurrencystringone of: USD, CAD, MXN; default: "USD"
customerPayarray<object>default: []; max items: 100
stopsarray<object>requiredmin items: 2; max items: 50
Example request
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 '"<body>"'Success response
Created load
objectstringrequiredokbooleanrequiredapi_versionstringrequiredrequest_idstringrequireddataobjectrequireddata.idstringrequiredformat: uuid
data.loadNumberstringrequireddata.statusstring | nullrequireddata.teamIdstring | nullrequiredformat: uuid
data.customerobject | nullrequireddata.activeDispatchobject | nullrequireddata.pickupNumberstring | nullrequireddata.purchaseOrderNumberstring | nullrequireddata.billOfLadingstring | nullrequireddata.productstring | nullrequireddata.descriptionstring | nullrequireddata.temperaturenumber | nullrequiredDeprecated compatibility set point for the required temperature range.
data.temperatureMinnumber | nullrequiredMinimum required trailer temperature in degrees Fahrenheit.
data.temperatureMaxnumber | nullrequiredMaximum required trailer temperature in degrees Fahrenheit.
data.createdAtstringrequiredformat: date-time
data.modifiedAtstring | nullrequiredformat: 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