Skip to content

Create a presigned upload URL for an input file

POST
/v1/uploads/presign
curl --request POST \
--url https://api.segmentationapi.com/v1/uploads/presign \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '{ "contentType": "image/png" }'

Request a short-lived S3 PUT URL and a task ID for an image or video file. PUT the bytes to uploadUrl with the same Content-Type, then pass the task ID to createJob.

Media typeapplication/json
object
contentType
required

An image or video MIME type, or application/octet-stream.

string
/^(image/[^;\s]+|video/[^;\s]+|application/octet-stream)$/
Example
image/png

Presigned upload URL and object key

Media typeapplication/json
object
uploadUrl
required
string format: uri
taskId
required

Opaque upload id. Includes the file extension so create-job can address the object without listing the inputs prefix (for example a1b2c3d4-e5f6-7890-abcd-ef1234567890.png).

string
/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}\.[a-z0-9][a-z0-9.-]{0,63}$/
bucket
required
string
expiresIn
required
integer
Example
{
"taskId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890.png"
}

Invalid request

Media typeapplication/json
object
error
required
string
message
string
remainingTokens
integer
requestedTokens
integer
>= 1
expiresAt
string format: date-time
activeJobId
string
upgradeUrl
string format: uri
retryAfterSeconds
integer
>= 1
Examplegenerated
{
"error": "example",
"message": "example",
"remainingTokens": 1,
"requestedTokens": 1,
"expiresAt": "2026-04-15T12:00:00Z",
"activeJobId": "example",
"upgradeUrl": "https://example.com",
"retryAfterSeconds": 1
}

Authentication is missing, invalid, or expired

Media typeapplication/json
object
error
required
string
message
string
remainingTokens
integer
requestedTokens
integer
>= 1
expiresAt
string format: date-time
activeJobId
string
upgradeUrl
string format: uri
retryAfterSeconds
integer
>= 1
Examplegenerated
{
"error": "example",
"message": "example",
"remainingTokens": 1,
"requestedTokens": 1,
"expiresAt": "2026-04-15T12:00:00Z",
"activeJobId": "example",
"upgradeUrl": "https://example.com",
"retryAfterSeconds": 1
}

Internal server error

Media typeapplication/json
object
error
required
string
message
string
remainingTokens
integer
requestedTokens
integer
>= 1
expiresAt
string format: date-time
activeJobId
string
upgradeUrl
string format: uri
retryAfterSeconds
integer
>= 1
Examplegenerated
{
"error": "example",
"message": "example",
"remainingTokens": 1,
"requestedTokens": 1,
"expiresAt": "2026-04-15T12:00:00Z",
"activeJobId": "example",
"upgradeUrl": "https://example.com",
"retryAfterSeconds": 1
}