API documentation | API docs for agents | OpenAPI 3.1
POST /api/v1/spot-quotes
ark.create_spot_quote
Creates a spot quote with pickup, delivery, freight, customer, and team context using the same transactional workflow as the website.
- Availability
- Expanded 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.
- min length: 1; max length: 255
Request body
customerIdstringrequiredformat: uuid
teamIdstringVisible team ID. Omit only when the connection has one visible team.
format: uuid
customerEmailstring | nullformat: email; max length: 254
currencystringone of: USD, CAD, MXN
referenceNumberstring | nullmax length: 100
loadClassificationstring | nullmax length: 100
sylectusLoadTypeinteger | nullvehicleTypestring | nullmax length: 100
piecesinteger | nullmin: 1
dimensionsLengthnumber | nulldimensionsWidthnumber | nulldimensionsHeightnumber | nulldimensionsUnitstringone of: inches, feet
weightnumber | nullweightUnitstringone of: lbs, kg
stackablebooleanhazmatbooleandockHighbooleanteamDriverRequiredbooleantsabooleannotesInternalstring | nullmax length: 5000
notesExternalstring | nullmax length: 5000
distanceMilesnumber | nullstopsarray<object>requiredmin items: 2; max items: 50
Example request
Shell
curl -X POST 'https://arktms.com/api/v1/spot-quotes' \
-H "Authorization: Bearer $ARK_API_TOKEN" \
-H "Idempotency-Key: <unique-key>" \
-H "Content-Type: application/json" \
-d '{
"customerId": "<customerId>",
"stops": [
{
"sequenceIndex": 0,
"type": "pickup",
"city": "<city>",
"state": "<state>"
},
{
"sequenceIndex": 0,
"type": "pickup",
"city": "<city>",
"state": "<state>"
}
]
}'Success response
Created spot quote
objectstringrequiredokbooleanrequiredapi_versionstringrequiredrequest_idstringrequireddataobjectrequireddata.spotQuoteIdstringrequiredformat: uuid
data.spotQuoteobjectrequireddata.resultobjectdata.sideEffectErrorstring | nullrequiredErrors
HTTP 400- Invalid request
HTTP 401- Authentication required
HTTP 403- Permission, scope, team, or entitlement denied
HTTP 409- Idempotency conflict or in-progress retry