Skip to content

Start a Photo upload

POST
/api/v1/photos/uploads
curl --request POST \
--url https://example.com/api/v1/photos/uploads \
--header 'Authorization: Bearer <token>' \
--header 'Tus-Resumable: example' \
--header 'Upload-Length: example' \
--header 'Upload-Metadata: example'

Requires a signed-in User with write access to the destination. It starts a resumable upload and returns the upload location. It returns 400 for invalid upload details, 429 when upload capacity is full or 507 when storage is insufficient. Route: /api/v1/photos/uploads. Inputs: Tus-Resumable, Upload-Length, Upload-Metadata, Upload-Conflict-Policy, Upload-Checksum. Do not automatically replay this operation after an uncertain result.

Tus-Resumable
required
string

Tus protocol version 1.0.0

Upload-Length
required
string

Total upload length in bytes

Upload-Metadata
required
string

Base64 encoded upload filename and path

Upload-Conflict-Policy
string | null
Upload-Checksum
string | null
Media typeapplication/json

The standard API error response: { "error": { ... } }.

object
error
required

Error details.

object
code
required

Stable machine-readable code.

string
Allowed values: bad_request unauthorized forbidden not_found conflict name_conflict_case name_too_long push_endpoint_rejected too_many_requests internal service_unavailable
details
One of:

Optional field or operation details.

object
key
additional properties
string
message
required

Safe text for logs or a user-facing error message.

string
Example
{
"error": {
"code": "bad_request"
}
}
Media typeapplication/json

The standard API error response: { "error": { ... } }.

object
error
required

Error details.

object
code
required

Stable machine-readable code.

string
Allowed values: bad_request unauthorized forbidden not_found conflict name_conflict_case name_too_long push_endpoint_rejected too_many_requests internal service_unavailable
details
One of:

Optional field or operation details.

object
key
additional properties
string
message
required

Safe text for logs or a user-facing error message.

string
Example
{
"error": {
"code": "bad_request"
}
}