API documentation | API docs for agents | OpenAPI 3.1
POST /api/v1/carriers/{carrierId}/files/prepare-upload
ark.prepare_carrier_file_upload
Creates a signed upload URL and pending upload record for attaching a file to a visible carrier.
- Availability
- Expanded preview
- Scopes
carriers:write- ARK permissions
canEditCarrier- Team visibility
- Not entity-scoped
- Idempotency-Key
- Required for this write
- Approval
- No MCP approval on REST API-token calls
- Rate limit
- API credential and organization budgets
Parameters
carrierIdpathstringrequired- Visible ARK carrier ID.
- 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
fileNamestringrequiredmin length: 1; max length: 255
fileTypestringrequiredmin length: 1; max length: 100
mimeTypestringrequiredmin length: 1; max length: 255
Example request
Shell
curl -X POST 'https://arktms.com/api/v1/carriers/<carrierId>/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
objectstringrequiredokbooleanrequiredapi_versionstringrequiredrequest_idstringrequireddataobjectrequireddata.carrierIdstringrequiredformat: uuid
data.carrierobjectrequireddata.fileNamestringrequireddata.fileTypestringrequireddata.mimeTypestringrequireddata.filePathstringrequireddata.pendingUploadIdstringrequiredformat: uuid
data.signedUrlstringrequireddata.tokenstringrequiredErrors
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