API documentation | API docs for agents | OpenAPI 3.1

POST /api/v1/loads/{loadId}/files/prepare-upload

ark.prepare_load_file_upload

Creates a signed upload URL and pending upload record for attaching a file to a visible load.

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

fileNamestringrequired

min length: 1; max length: 255

fileTypestringrequired

min length: 1; max length: 100

mimeTypestringrequired

min length: 1; max length: 255

Example request

Shell
curl -X POST 'https://arktms.com/api/v1/loads/<loadId>/files/prepare-upload' \
  -H "Authorization: Bearer $ARK_API_TOKEN" \
  -H "Idempotency-Key: <unique-key>" \
  -H "Content-Type: application/json" \
  -d '{
  "fileName": "<fileName>",
  "fileType": "<fileType>",
  "mimeType": "<mimeType>"
}'

Success response

Prepared upload

objectstringrequired
okbooleanrequired
api_versionstringrequired
request_idstringrequired
dataobjectrequired
data.loadIdstringrequired

format: uuid

data.fileNamestringrequired
data.fileTypestringrequired
data.mimeTypestringrequired
data.filePathstringrequired
data.pendingUploadIdstringrequired

format: uuid

data.signedUrlstringrequired
data.tokenstringrequired

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