Transloadit
Pricing
  • File Uploads
  • File Importing
  • Batch Processing
  • Video Encoding
  • Audio Encoding
  • Image Processing
  • Document Processing
  • Artificial Intelligence
  • File Filtering & Security
  • Media Cataloging
  • File Compression
  • Code Evaluation
  • File Exporting
  • Smart CDN
  • View all services
  • Explore integrations
  • Explore live demos
  • Uppy
  • TransloaditKit
  • Android SDK
  • Node.js SDK
  • Python SDK
  • Ruby SDK
  • Go SDK
  • Java SDK
  • PHP SDK
  • Zapier
  • MCP Server
  • Transloadit CLI
  • Terraform
  • Essentials
  • Best Practices
  • FAQ
  • Robots
  • API
  • Formats
  • Build your first app
  • About
  • Comparisons
  • Open Source
  • Testimonials
  • Jobs
  • Security
  • Posts
  • DevTimes
  • DevTips
  • Press
  • Research
  • Case Studies
  • Solutions
  • Guides
  • Glossary
  • Legal
  • Tools
  • Helping Coursera bring education to millions around the world
  • Transloadit Support
  • Open Source Support
  • Service level agreement
EssentialsRobotsFAQAPIFormatsBest Practices
Topics
  • Endpoints
  • Response codes
  • Authentication
  • Webhooks
  • Metadata
  • API security
  • Rate limiting
  • Queues
  • Resumable uploads
Authentication
  • Create a bearer token
  • Create a new Auth Key
  • Retrieve list of Auth Keys
  • Retrieve Auth Key scopes
  • Edit an Auth Key
  • Delete an Auth Key
  • Retrieve an Auth Key secret
Assemblies
  • Create a new Assembly
  • Retrieve an Assembly Status
  • Create an Assembly with a supplied ID
  • Stream Assembly changes live
  • Cancel a running Assembly
  • Replay an Assembly
  • Retrieve list of Assemblies
  • Assembly Status response
  • Retrieve Assembly statistics
Webhooks
  • Retrieve Assembly Notifications
  • Replay Assembly Notification
Billing
  • Retrieve a month’s bill
Queues
  • Retrieve currently used priority job slots
  • Retrieve priority job slot statistics
Resumable Uploads
  • Discover tus capabilities
  • Create a tus upload
  • Retrieve a tus upload offset
  • Upload tus file bytes
  • Terminate a tus upload
  • Download a tus upload
Template Credentials
  • Create a new Template Credential
  • Retrieve a Template Credential
  • Edit a Template Credential
  • Delete a Template Credential
  • Retrieve list of Template Credentials
  • Retrieve Template Credential types
Templates
  • Create a new Template
  • Retrieve a Template
  • Edit a Template
  • Delete a Template
  • Retrieve list of Templates
Digital Asset Management
  • Move or rename a DAM asset
  • Delete a DAM asset
  • Move DAM assets in bulk
  • Delete DAM assets in bulk

Create an Assembly with a supplied ID

Creates an Assembly at a fresh caller-selected Assembly ID.

PUThttps://api2.transloadit.com/assemblies/{assemblyId}

Creates an Assembly using a fresh caller-supplied ID. This does not replace an existing Assembly. You must never reuse an Assembly ID, including after an Assembly has expired or been deleted. An active-ID conflict can return ASSEMBLY_COULD_NOT_BE_CREATED; a recorded earlier use can return DO_NOT_REUSE_ASSEMBLY_IDS. These checks are not a permanent deduplication guarantee. This endpoint is not an idempotent retry mechanism.

Typical workflow:

  1. Send the request example below with your file and processing Instructions. To receive the final status through a webhook, include notify_url in those Instructions before sending the request.
  2. Keep the returned assembly_ssl_url secret. Use it to check progress, or wait for your configured webhook.
  3. Wait for ok: "ASSEMBLY_COMPLETED" before consuming the processed files. An error or cancellation is not successful processing. Output files are grouped by Step name in results; see the response fields.

Assemblies that use /transloadit/import, directly or through a Template, require either a bearer token or signed params with a future params.auth.expires timestamp. This applies even when Workspace Signature Authentication is disabled. An Auth Key alone is not sufficient; bearer-authenticated requests do not need a separate signature or expiry.

Use Replay an Assembly to retry processing recoverable inputs as a new Assembly, or Cancel an Assembly to stop an existing one.

Request example

The request below uses openssl to generate a fresh, unpredictable Assembly ID. Generate a new ID for each request; never reuse one.

Run this request in a server-side shell with curl and a suitable bearer token in TRANSLOADIT_TOKEN. If you need a token, expand the setup below.

Place your input file at ./example.jpg before running the request.

Need a bearer token?

In a trusted server-side shell with curl and jq, set TRANSLOADIT_KEY and TRANSLOADIT_SECRET to your Auth Key and Auth Secret. Keep both credentials and the resulting token secret; never run this setup in browser code.

First, create a token with this endpoint’s required scopes. Your Auth Key must already grant those scopes.

if ! TOKEN_RESPONSE="$(curl --fail-with-body -sS \
  --request POST \
  --url 'https://api2.transloadit.com/token' \
  --user "${TRANSLOADIT_KEY:?Set TRANSLOADIT_KEY}:${TRANSLOADIT_SECRET:?Set TRANSLOADIT_SECRET}" \
  --header 'Content-Type: application/x-www-form-urlencoded' \
  --data-urlencode 'grant_type=client_credentials' \
  --data-urlencode 'aud=api2' \
  --data-urlencode 'scope=assemblies:write')"; then
  printf '%s\n' "$TOKEN_RESPONSE" >&2
  exit 1
fi
TRANSLOADIT_TOKEN="$(printf '%s' "$TOKEN_RESPONSE" |
  jq -er '.access_token | strings | select(length > 0)')" || exit 1

Keep this shell open and run the request below. Reuse the token while it remains valid.

ASSEMBLY_ID="$(openssl rand -hex 16)" || exit 1

curl --fail-with-body -sS --request PUT \
  --url "https://api2.transloadit.com/assemblies/${ASSEMBLY_ID:?Set ASSEMBLY_ID}" \
  --header "Authorization: Bearer ${TRANSLOADIT_TOKEN:?Set TRANSLOADIT_TOKEN}" \
  --form-string 'params={"steps":{"resize":{"robot":"/image/resize","use":":original","width":320}}}' \
  --form 'file=@./example.jpg'

What happens next

A successful HTTP response accepts the Assembly; it does not mean processing has finished. An initial response can look like this (excerpt; IDs and URLs will differ):

{
  "ok": "ASSEMBLY_EXECUTING",
  "assembly_id": "0fce5b1063e611e88d8eb130f7921d8a",
  "assembly_ssl_url": "https://api2-morven.transloadit.com/assemblies/0fce5b1063e611e88d8eb130f7921d8a",
  "results": {}
}

Copy assembly_ssl_url from your response and check its status every few seconds, or use a webhook configured before creation. Keep that URL secret. Stop on an error or cancellation; neither is successful processing.

When ok is ASSEMBLY_COMPLETED, this example’s output is in results.resize. A completed response includes the following fields (excerpt; the output URL is illustrative):

{
  "ok": "ASSEMBLY_COMPLETED",
  "message": "The Assembly was successfully completed.",
  "assembly_id": "0fce5b1063e611e88d8eb130f7921d8a",
  "results": {
    "resize": [
      {
        "name": "example.jpg",
        "mime": "image/jpeg",
        "ssl_url": "https://example.com/temporary-output/example.jpg",
        "meta": {
          "width": 320
        }
      }
    ]
  }
}

Use results.resize[0].ssl_url to download the resized image. These temporary output URLs expire; add an export Step such as /s3/store if you need to keep the files.

Authentication

This endpoint accepts signed params or a bearer token. See Authentication for setup instructions.

Required scope for the Auth Key or bearer token: assemblies:write.

Key-authenticated requests require a signature when Signature Authentication is enabled. Bearer tokens do not require a separate signature.

Path parameters

  • assemblyId (path segment), required. pattern: ^[a-z0-9]{32}$

Optional response query parameters

  • callback (JavaScript callback name). Wraps JSON responses in a JSONP callback. The callback name must match ^(?:_jqjsp[0-9]*|jQuery[0-9]+_[0-9]+)$. Only the last occurrence is used; an empty value is ignored. Invalid callback names return HTTP 403. The transformed response uses HTTP 200. The callback is applied after response serialization.

Multipart form fields

Content type: multipart/form-data

  • params (JSON string), required. A JSON-encoded object whose supported keys are listed below.

  • signature (string). Required when the request uses signature authentication.

  • num_expected_upload_files (form field). When using resumable uploads, it specifies the number of files that will be uploaded. More details are provided in Resumable Uploads.

  • tus_num_expected_upload_files (form field). Legacy alias for num_expected_upload_files, retained for compatibility with older SDKs.

  • * (binary or string). Binary files and additional Assembly fields may use arbitrary field names.

Supported keys inside the params field

Authentication fields in this list apply to signed requests. With a bearer token, you can omit params.auth and the separate signature field. Compare the authentication-specific request parameters below.

Complete JSON Schema

Open JSON in a new tab

Signed parameters used to create an Assembly from direct Steps or a Template.

FieldType and description
params.auth

required for signed requests; optional with a bearer token

object

Authentication metadata and upload constraints for a signed Assembly request. The API key is required.

Contains at least your Transloadit Auth Key in the key property.

If you enable Signature Authentication, you must also set an expiry date for the request in the expires property:

{
  "key": "23c96d084c744219a2ce156772ec3211",
  "expires": "YOUR_FUTURE_ISO_8601_TIMESTAMP"
}

We strongly recommend including a randomly generated nonce property, a unique value per request that makes independently generated signatures distinct, aids debugging, and avoids accidental signature reuse. A nonce does not make retries idempotent: retrying an Assembly-creation request can create another Assembly. Handle retry deduplication in your application when needed. Do not reuse signed params across endpoints. Template reads, Auth Key listing, Template Credential listing, and billing reads reject signatures already recorded for a different endpoint or used to create an Assembly, with SIGNATURE_REUSE_DETECTED. Generate fresh signed params for each request.

{
  // …
  "nonce": "04ac6cb6-df43-41fb-a7fd-e5dd711a64e1"
}

The referer property is a regular expression to match against the HTTP referer of this upload, such as "example\.org". Specify this key to make sure that uploads only come from your domain.

Uploads without a referer will always pass (as they are turned off for some browsers) making this useful in just a handful of use cases. For details about regular expressions, see Mozilla's RegExp documentation⁠.

The max_size property limits the Assembly’s total expected upload size in bytes, such as 1048576 (1 MB), rather than each file separately. This includes the multipart request body, or the initial Assembly request bytes plus its resumable uploads. Exceeding the limit stops the entire Assembly with an error, including files that individually fit within the limit. Do not rely on this limit to reject every oversized transfer before it starts. For resumable uploads, the declared or received size becomes available through tus updates, and the Assembly checks the limit when a finished upload is processed. A deferred upload’s size is not known at creation, and bytes may already have transferred before the Assembly rejects it. If you want to just ignore the files that exceed a certain size, but process all others, then please use 🤖/file/filter.

The max_number_of_files property can be used to set a maximum number of files that an upload can have, such as 100. Specify this to prevent users from uploading excessively many files, both via file uploads and via import Robots.

These properties can be set as part of the Assembly request or as part of the Template.

params.auth: Only the fields listed for this object are accepted.

params.auth.expires
string

ISO 8601 expiration timestamp in the future. Required when a request is signed or requires signature authentication; bearer-authenticated requests may omit it.

params.auth.key

required

string

Transloadit API key used to authenticate requests

params.auth.max_number_of_files
integer (minimum: 1)

Maximum number of input files allowed per Assembly. If the number of uploaded or imported files exceeds this limit, the Assembly will be stopped with an error. This is useful for preventing abuse when Signature Authentication credentials are exposed.

params.auth.max_size
number

Maximum total expected upload size in bytes for the Assembly, including request-body overhead. This is not a per-file limit and does not guarantee rejection before a resumable transfer starts.

params.auth.nonce
string | integer

Unique, random value included in signed request params to make each signature unique and prevent accidental signature reuse.

params.auth.referer
string

Regular expression matched against the HTTP Referer to restrict upload origin

params.emit_execution_progress
boolean

Set to true to publish real-time Assembly execution-progress events. This is ignored for URL Transform Assemblies.

params.exiftool_stack
string

Selects the ExifTool stack for metadata extraction in this Assembly. This does not select the processing stack for Robot Steps.

params.ffmpeg_stack
string

Selects the FFmpeg stack for metadata extraction in this Assembly. This does not select the processing stack for Robot Steps. Set ffmpeg_stack on the relevant Robot Step to select its processing stack.

params.fields
object

An object of string keyed values (name -> value) that can be used as Assembly Variables, just like additional form fields can. You can use anything that is JSON stringifyable as a value

Additional property schema
any value
params.imagemagick_stack
string

Selects the ImageMagick stack for metadata extraction in this Assembly. This does not select the processing stack for Robot Steps. Set imagemagick_stack on the relevant Robot Step to select its processing stack.

params.mediainfo_stack
string

Selects the MediaInfo stack for metadata extraction in this Assembly. This does not select the processing stack for Robot Steps.

params.mplayer_stack
string

Selects the MPlayer stack for metadata extraction in this Assembly. This does not select the processing stack for Robot Steps.

params.nonce
string | number

Unique, random value included in signed request params to make each signature unique and prevent accidental signature reuse.

params.notification_payload
Array<"without_params" | "without_result_meta_data" | "without_results" | "without_upload_meta_data" | "without_uploads">

Controls the size of the payload sent in Assembly notifications. Notification replays reuse filters supplied in the original Assembly request; filters defined only in a Template are not preserved on replay. An empty array (default) sends the complete Assembly Status. Add "without_params" so the top-level raw Assembly instruction fields params, template, and merged_params are omitted. Add "without_result_meta_data" so meta is omitted from each file in results. Add "without_results" so the top-level results object is omitted. Add "without_upload_meta_data" so meta is omitted from each file in uploads. Add "without_uploads" so the top-level uploads array is omitted. Filtering is applied before serialization, so using these options reduces memory use and helps avoid oversized-payload or OOM failures on large Assemblies.

Array item schema
"without_params" | "without_result_meta_data" | "without_results" | "without_upload_meta_data" | "without_uploads"
params.notify_url
null | string

Transloadit can send a Pingback to your server when the Assembly is completed. We’ll send the Assembly Status as a JSON string in the transloadit field of an application/x-www-form-urlencoded POST request to the URL supplied here. Use notification_payload to reduce the payload size (e.g. without_uploads, without_results, without_params). Notification replays reuse only filters supplied in the original Assembly request, not filters defined only in a Template.

params.quiet
boolean

Set this to true to minimize the initial Assembly-creation response. A successful response includes only ok and assembly_id; an error response retains error, http_code, message, reason and assembly_id when available. This is response minimization, not access control: anyone with the returned Assembly ID can still retrieve the full Assembly Status, including fields and results, without additional authentication. Treat Assembly IDs and status URLs as secret capabilities. The full Assembly Status is still sent to notify_url when configured.

params.redirect_url
string

URL to redirect a browser upload to after the upload completes. The Assembly ID and status URL are appended as query parameters while preserving any existing query parameters and fragment.

params.response_headers
object

Custom response headers emitted by an Assembly. CORS overrides belong in cors; other top-level keys are emitted as custom headers.

params.response_headers: Fields beyond those listed for this object are accepted.

params.response_headers.cors
object

Additional schema details are available in the complete JSON Schema.

params.usage_tags
string

Usage tags recorded on an Assembly.

Any of the following schemas may apply:

required properties: steps, template_id

Parameters used to create an Assembly from direct Steps or a Template.

params: Only the fields listed for this object are accepted.

FieldType and description
params.steps

required

object

Partial Step values merged into the named Steps of the stored Template. Their complete Robot-specific shape is validated after the Template is loaded.

Additional property schema
object

Additional schema details are available in the complete JSON Schema.

params.template_id

required

string (minimum length: 1)

The ID of the Template that contains your Assembly Instructions. If you set allow_steps_override to false in your Template, then steps and template_id will be mutually exclusive: you may supply only one of these parameters.

Variant 2

Parameters used to create an Assembly from direct Steps or a Template.

params: Only the fields listed for this object are accepted.

FieldType and description
params.steps
object

Contains Assembly Instructions.

Additional property schema
object

Additional schema details are available in the complete JSON Schema.

params.template_id
string

The ID of the Template that contains your Assembly Instructions. If you set allow_steps_override to false in your Template, then steps and template_id will be mutually exclusive: you may supply only one of these parameters.

Request parameters by authentication method

With signed params

Include your Auth Key as params.auth.key. When signing the request, include a future params.auth.expires timestamp and send the signature in the separate signature field. The field definitions below use paths inside params.

Complete JSON Schema

Open JSON in a new tab

Signed parameters used to create an Assembly from direct Steps or a Template.

Uses the field definitions above: params.auth, params.emit_execution_progress, params.exiftool_stack, params.ffmpeg_stack, params.fields, params.imagemagick_stack, params.mediainfo_stack, params.mplayer_stack, params.nonce, params.notification_payload, params.notify_url, params.quiet, params.redirect_url, params.response_headers, params.usage_tags

Any of the following schemas may apply:

required properties: steps, template_id

Parameters used to create an Assembly from direct Steps or a Template.

params: Only the fields listed for this object are accepted.

Uses the field definitions above: params.steps, params.template_id

Variant 2

Parameters used to create an Assembly from direct Steps or a Template.

params: Only the fields listed for this object are accepted.

Uses the field definitions above: params.steps, params.template_id

With a bearer token

Send the bearer token in the Authorization header. You can omit params.auth and the separate signature field. Other required parameters still apply. The field definitions below use paths inside params.

Complete JSON Schema

Open JSON in a new tab

Parameters used to create an Assembly from direct Steps or a Template.

Uses the field definitions above: params.emit_execution_progress, params.exiftool_stack, params.ffmpeg_stack, params.fields, params.imagemagick_stack, params.mediainfo_stack, params.mplayer_stack, params.nonce, params.notification_payload, params.notify_url, params.quiet, params.redirect_url, params.response_headers, params.usage_tags

FieldType and description
params.auth
object

Authentication metadata and upload constraints for a Bearer-authenticated Assembly request. The token supplies the API key, so the request may omit it.

The referer property is a regular expression to match against the HTTP referer of this upload, such as "example\.org". Specify this key to make sure that uploads only come from your domain.

Uploads without a referer will always pass (as they are turned off for some browsers) making this useful in just a handful of use cases. For details about regular expressions, see Mozilla's RegExp documentation⁠.

The max_size property limits the Assembly’s total expected upload size in bytes, such as 1048576 (1 MB), rather than each file separately. This includes the multipart request body, or the initial Assembly request bytes plus its resumable uploads. Exceeding the limit stops the entire Assembly with an error, including files that individually fit within the limit. Do not rely on this limit to reject every oversized transfer before it starts. For resumable uploads, the declared or received size becomes available through tus updates, and the Assembly checks the limit when a finished upload is processed. A deferred upload’s size is not known at creation, and bytes may already have transferred before the Assembly rejects it. If you want to just ignore the files that exceed a certain size, but process all others, then please use 🤖/file/filter.

The max_number_of_files property can be used to set a maximum number of files that an upload can have, such as 100. Specify this to prevent users from uploading excessively many files, both via file uploads and via import Robots.

These properties can be set as part of the Assembly request or as part of the Template.

params.auth: Only the fields listed for this object are accepted.

params.auth.expires
string

ISO 8601 expiration timestamp in the future. Required when a request is signed or requires signature authentication; bearer-authenticated requests may omit it.

params.auth.key
string

Transloadit API key used to authenticate requests

params.auth.max_number_of_files
integer (minimum: 1)

Maximum number of input files allowed per Assembly. If the number of uploaded or imported files exceeds this limit, the Assembly will be stopped with an error. This is useful for preventing abuse when Signature Authentication credentials are exposed.

params.auth.max_size
number

Maximum total expected upload size in bytes for the Assembly, including request-body overhead. This is not a per-file limit and does not guarantee rejection before a resumable transfer starts.

params.auth.nonce
string | integer

Unique, random value included in signed request params to make each signature unique and prevent accidental signature reuse.

params.auth.referer
string

Regular expression matched against the HTTP Referer to restrict upload origin

Any of the following schemas may apply:

required properties: steps, template_id

Parameters used to create an Assembly from direct Steps or a Template.

params: Only the fields listed for this object are accepted.

Uses the field definitions above: params.steps, params.template_id

Variant 2

Parameters used to create an Assembly from direct Steps or a Template.

params: Only the fields listed for this object are accepted.

Uses the field definitions above: params.steps, params.template_id

Response

Here’s an example response body:

{
  "account_id": "6c8b8d10d68b11e3a799b579dfce333a",
  "assembly_id": "0fce5b1063e611e88d8eb130f7921d8a",
  "assembly_ssl_url": "https://api2-morven.transloadit.com/assemblies/0fce5b1063e611e88d8eb130f7921d8a",
  "assembly_url": "http://api2.morven.transloadit.com/assemblies/0fce5b1063e611e88d8eb130f7921d8a",
  "bytes_expected": 1687,
  "bytes_received": 1687,
  "bytes_usage": 0,
  "companion_url": "https://api2-morven.transloadit.com/companion/",
  "execution_duration": 0.001,
  "execution_start": "2018/05/30 08:47:19 GMT",
  "fields": {},
  "instance": "morven.transloadit.com",
  "jobs_queue_duration": 0,
  "message": "The Assembly is currently being executed.",
  "ok": "ASSEMBLY_EXECUTING",
  "parent_id": null,
  "queue_duration": 0.04,
  "results": {},
  "start_date": "2018/05/30 08:47:19 GMT",
  "template": null,
  "template_id": null,
  "tus_url": "https://api2-morven.transloadit.com/resumable/files/",
  "update_stream_url": "https://api2-morven.transloadit.com/ws20243?assembly=0fce5b1063e611e88d8eb130f7921d8a",
  "upload_duration": 0.049,
  "uploads": [],
  "uppyserver_url": "https://api2-morven.transloadit.com/companion/",
  "warnings": [],
  "websocket_url": "https://api2-morven.transloadit.com/ws20243"
}

2xx success

JSON response body. application/json text/plain; charset=utf-8

Response body schema
Complete JSON Schema

Open JSON in a new tab

FieldType and description
account_id
null | string
account_name
null | string
account_slug
null | string
api_auth_key_id
null | string
assemblyId
string
assembly_id
string

The unique ID of this Assembly. You can store this in a database when an Assembly is created, and use it to match incoming Notifications.

assembly_ssl_url
null | string

The unique URL used to query the current status of this Assembly, but ready to be used over SSL/HTTPS. All API requests that are sent to the assembly_url can also be sent to the assembly_ssl_url.

assembly_url
null | string

The unique URL used to query the current status of this Assembly.

build_id
string

Optional build identifier for support troubleshooting. Treat it as opaque; it may change between Assemblies.

bytes_expected
number

The number of bytes that this Assembly expects to be uploaded.

bytes_received
number

The number of bytes that have been uploaded to this Assembly so far. This is primarily used by clients to display upload progress.

bytes_usage
number | null

The total number of bytes that this Assembly processed that count towards your usage bill. The sum of bytes_usage of all of your Assemblies equal your total monthly usage.

client_agent
null | string

The uploader’s user agent is not exposed; this deprecated field is always null.

client_ip
null | string

The uploader’s IP address is not exposed; this deprecated field is always null.

client_referer
null | string

The uploader’s referrer URL is not exposed; this deprecated field is always null.

companion_url
null | string

The URL to the Companion server that this Assembly may communicate with.

executing_jobs
Array<string>
Array item schema
string
execution_duration
number | null

The time taken by Transloadit to execute this Assembly, in seconds.

execution_start
null | string
expected_tus_uploads
number
fields
object

A key/value map of additional form fields for integrations that cannot use <form> encapsulation, such as Uppy.

Additional property schema
any value
finished_tus_uploads
number
has_dupe_jobs
boolean
ignored_error_count
number
ignored_errors
Array<object>
Array item schema
object

ignored_errors[]: The response may contain additional fields.

FieldType and description
ignored_errors[].error
any value
ignored_errors[].message
string
ignored_errors[].phase
string
ignored_errors[].step
null | string
info
object

info: The response may contain additional fields.

info.retryIn
number
instance
null | string
is_infinite
boolean
jobs_queue_duration
number
last_job_completed
null | string
merged_params
null | string
message
string

A human-readable message explaining the state of this Assembly. This is not always present.

notify_duration
number | null

Elapsed delivery time in seconds, including automatic retry attempts and the delays between them.

notify_error
null | string
notify_response_code
number | null
notify_response_data
null | string
notify_start
null | string
notify_status
null | string
notify_url
null | string
num_input_files
number
params
null | string
parent_assembly_status
any value | null

Any of the following schemas may apply:

any value
any value
null
null
parent_id
null | string
previousStep
string

Name of the preceding Step associated with the error, when available.

queue_duration
number
region
string
results
object

The result files that Transloadit has produced so far. Each key is the name of the Step that produced a file. Storage Robots do not produce files, so their Step names are omitted. When an error occurs, this object may contain partial results.

Additional property schema
Array<object>

Additional schema details are available in the complete JSON Schema.

running_jobs
Array<string>
Array item schema
string
start_date
string

The date and time at which upload started for this Assembly.

started_jobs
Array<string>
Array item schema
string
started_tus_uploads
number
step
string

Name of the Step associated with the error, when available.

template
null | string
template_id
null | string
template_name
null | string
transloadit_client
null | string
tus_uploads
Array<object>
Array item schema
object

tus_uploads[]: The response may contain additional fields.

FieldType and description
tus_uploads[].fieldname

required

string
tus_uploads[].filename

required

string
tus_uploads[].finished

required

boolean
tus_uploads[].offset

required

number
tus_uploads[].size

required

number
tus_uploads[].upload_url

required

string
tus_uploads[].user_meta
object

Additional schema details are available in the complete JSON Schema.

tus_url
string

The URL to the tus server used by this Assembly for resumable uploads.

update_stream_url
null | string

The URL to a server-sent events stream from which you can get realtime status updates of this Assembly.

upload_duration
number

The time taken by the uploader to upload files, in seconds.

upload_meta_data_extracted
boolean
uploads
Array<object>

An array of files uploaded for this Assembly. For more information, see the metadata docs.

Array item schema
object
FieldType and description
uploads[].as
string | Array<string> | null

Additional schema details are available in the complete JSON Schema.

uploads[].cost
number | null
uploads[].exec_time
number
uploads[].from_batch_import
boolean
uploads[].import_url
string
uploads[].is_temp_url
boolean
uploads[].is_tus_file
boolean
uploads[].md5hash
null | string
uploads[].original_basename
null | string
uploads[].original_id

required

string | Array<null | string>

The unique ID of the original upload file from which this file was generated. This is useful to determine which file of a multi-file upload was used to generate a given file, after several Steps of processing.

Additional schema details are available in the complete JSON Schema.

uploads[].original_md5hash
null | string
uploads[].original_name
null | string
uploads[].original_path
string
uploads[].queue
null | string
uploads[].queue_time
number
uploads[].ssl_url
null | string
uploads[].tus_upload_url
null | string
uploads[].user_meta
object

Additional schema details are available in the complete JSON Schema.

Any of the following schemas may apply:

required properties: basename, ext, field, id, meta, mime, name, size, type, url: object
object

uploads[]: The response may contain additional fields.

FieldType and description
uploads[].basename

required

null | string

The name of the file without the extension.

uploads[].ext

required

string

The extension of the file.

uploads[].field

required

null | string

The name of the form field used to submit this file.

uploads[].id

required

string

A random and unique ID used internally by Transloadit to track the file.

uploads[].meta

required

object

An object containing additional metadata extracted from the file, as shown below.

Additional schema details are available in the complete JSON Schema.

uploads[].mime

required

null | string

The determined MIME type for this file.

uploads[].name

required

null | string

The name of the file. Transloadit will change the extension used for this field if the file undergoes processing into a different format.

uploads[].size

required

number

The size of the file, in bytes.

uploads[].type

required

null | string

An abstract category describing the file. Known values are "audio", "document", "image", "office", "pdf", "swf", "video", "xls", or null when no category was detected. Consumers should accept other strings so future categories remain compatible.

uploads[].url

required

null | string

A URL from which the file can be downloaded, or null when no delivery URL is available. Temporary URLs on our servers expire after a few hours; export files to storage for later use. Private-storage results from /transloadit/store return null for both url and ssl_url. Keep the returned asset_id for DAM operations and the returned path for /transloadit/import. Update the saved path when moving or renaming the asset; neither a temporary URL nor the processing file’s id is a durable storage reference.

Variant 2: object
object

uploads[]: The response may contain additional fields.

FieldType and description
uploads[].basename
null | string

The name of the file without the extension.

uploads[].ext
string

The extension of the file.

uploads[].field
null | string

The name of the form field used to submit this file.

uploads[].id
never

This value is prohibited.

uploads[].meta
object

An object containing additional metadata extracted from the file, as shown below.

Additional schema details are available in the complete JSON Schema.

uploads[].mime
null | string

The determined MIME type for this file.

uploads[].name
null | string

The name of the file. Transloadit will change the extension used for this field if the file undergoes processing into a different format.

uploads[].size
number

The size of the file, in bytes.

uploads[].type
null | string

An abstract category describing the file. Known values are "audio", "document", "image", "office", "pdf", "swf", "video", "xls", or null when no category was detected. Consumers should accept other strings so future categories remain compatible.

uploads[].url
null | string

A URL from which the file can be downloaded, or null when no delivery URL is available. Temporary URLs on our servers expire after a few hours; export files to storage for later use. Private-storage results from /transloadit/store return null for both url and ssl_url. Keep the returned asset_id for DAM operations and the returned path for /transloadit/import. Update the saved path when moving or renaming the asset; neither a temporary URL nor the processing file’s id is a durable storage reference.

uppyserver_url
null | string
usage_tags
string
virusname
string
warnings
Array<object>
Array item schema
object

warnings[]: The response may contain additional fields.

FieldType and description
warnings[].action
object (required properties: message, text, type)

Additional schema details are available in the complete JSON Schema.

warnings[].level

required

"notice" | "warning"
warnings[].msg

required

string
websocket_url
null | string

The URL to a Websocket (uses Socket.IO) server from which you can get realtime status updates of this Assembly.

Any of the following schemas may apply:

ok: "ASSEMBLY_EXECUTING" | "ASSEMBLY_REPLAYING" | "ASSEMBLY_UPLOADING"

The response may contain additional fields.

FieldType and description
error
never

Indicates an error status. This key is only present if the Assembly failed.

This value is prohibited.

ok

required

"ASSEMBLY_EXECUTING" | "ASSEMBLY_REPLAYING" | "ASSEMBLY_UPLOADING"

Indicates a non-error lifecycle status, including uploading, executing, aborted, and canceled states. Successful processing is indicated by ASSEMBLY_COMPLETED. If the Assembly encountered an error, the error key below is used instead of this key.

ok: "ASSEMBLY_CANCELED" | "ASSEMBLY_COMPLETED" | "ASSEMBLY_EXECUTING" | "ASSEMBLY_REPLAYING" | "ASSEMBLY_UPLOADING" | "REQUEST_ABORTED"

The response may contain additional fields.

FieldType and description
error
never

Indicates an error status. This key is only present if the Assembly failed.

This value is prohibited.

ok

required

"ASSEMBLY_CANCELED" | "ASSEMBLY_COMPLETED" | "ASSEMBLY_EXECUTING" | "ASSEMBLY_REPLAYING" | "ASSEMBLY_UPLOADING" | "REQUEST_ABORTED"

Indicates a non-error lifecycle status, including uploading, executing, aborted, and canceled states. Successful processing is indicated by ASSEMBLY_COMPLETED. If the Assembly encountered an error, the error key below is used instead of this key.

required properties: error

The response may contain additional fields.

FieldType and description
cmd
string | Array<string | number>

Optional processing command details for troubleshooting. Diagnostic details may vary; use the error code for programmatic error handling.

Any of the following schemas may apply:

string
string
Array<string | number>
Array<string | number>
Array item schema
string | number
error

required

"ADMIN_PERMISSIONS_REQUIRED" | "AI_CHAT_VALIDATION" | "ASSEMBLY_ACCOUNT_MISMATCH" | "ASSEMBLY_CANNOT_BE_REPLAYED" | "ASSEMBLY_COULD_NOT_BE_CREATED" | "ASSEMBLY_CRASHED" | "ASSEMBLY_DISALLOWED_ROBOTS_USED" | "ASSEMBLY_EMPTY_STEPS" | "ASSEMBLY_EXECUTION_PROGRESS_NOT_ENABLED" | "ASSEMBLY_EXPIRED" | "ASSEMBLY_FILE_NOT_RESERVED" | "ASSEMBLY_INFINITE" | "ASSEMBLY_INVALID_NOTIFY_URL" | "ASSEMBLY_INVALID_NUM_EXPECTED_UPLOAD_FILES_PARAM" | "ASSEMBLY_INVALID_STEPS" | "ASSEMBLY_JOB_ENQUEUE_ERROR" | "ASSEMBLY_LIST_ERROR" | "ASSEMBLY_MEMORY_LIMIT_EXCEEDED" | "ASSEMBLY_NOTIFICATIONS_LIST_ERROR" | "ASSEMBLY_NOTIFICATION_LIST_ERROR" | "ASSEMBLY_NOTIFICATION_NOT_PERSISTED" | "ASSEMBLY_NOTIFICATION_NOT_REPLAYED" | "ASSEMBLY_NOT_CAPABLE" | "ASSEMBLY_NOT_FINISHED" | "ASSEMBLY_NOT_FOUND" | "ASSEMBLY_NOT_REPLAYED" | "ASSEMBLY_NO_CHARGEABLE_STEP" | "ASSEMBLY_NO_NOTIFY_URL" | "ASSEMBLY_NO_STEPS" | "ASSEMBLY_PLAN_FILE_SIZE_LIMIT_EXCEEDED" | "ASSEMBLY_ROBOT_MISSING" | "ASSEMBLY_SATURATED" | "ASSEMBLY_STATS_ERROR" | "ASSEMBLY_STATS_INVALID_TIME" | "ASSEMBLY_STATS_MISSING_REGION" | "ASSEMBLY_STATUS_FETCHING_RATE_LIMIT_REACHED" | "ASSEMBLY_STATUS_NOT_FOUND" | "ASSEMBLY_STATUS_PARSE_ERROR" | "ASSEMBLY_STEP_INVALID" | "ASSEMBLY_STEP_INVALID_ROBOT" | "ASSEMBLY_STEP_INVALID_USE" | "ASSEMBLY_STEP_NO_ROBOT" | "ASSEMBLY_STEP_UNKNOWN_ROBOT" | "ASSEMBLY_STEP_UNKNOWN_USE" | "ASSEMBLY_URL_TRANSFORM_MISSING" | "AUDIO_ARTWORK_VALIDATION" | "AUDIO_CONCAT_INVALID_INPUT" | "AUDIO_CONCAT_VALIDATION" | "AUDIO_ENCODE_VALIDATION" | "AUDIO_LOOP_VALIDATION" | "AUDIO_MERGE_VALIDATION" | "AUDIO_SPLIT_NO_OUTPUT" | "AUDIO_SPLIT_VALIDATION" | "AUDIO_WAVEFORM_VALIDATION" | "AUTH_EXPIRED" | "AUTH_KEYS_NOT_FOUND" | "AUTH_KEY_SCOPES_NOT_FOUND" | "AUTH_SECRET_NOT_RETRIEVED" | "AZURE_IMPORT_ACCESS_DENIED" | "AZURE_IMPORT_FAILURE" | "AZURE_IMPORT_NOT_FOUND" | "AZURE_IMPORT_VALIDATION" | "AZURE_STORE_ACCESS_DENIED" | "AZURE_STORE_NOT_FOUND" | "AZURE_STORE_VALIDATION" | "BACKBLAZE_IMPORT_ACCESS_DENIED" | "BACKBLAZE_IMPORT_FAILURE" | "BACKBLAZE_IMPORT_NOT_FOUND" | "BACKBLAZE_IMPORT_VALIDATION" | "BACKBLAZE_STORE_ACCESS_DENIED" | "BACKBLAZE_STORE_FAILURE" | "BACKBLAZE_STORE_VALIDATION" | "BAD_PRICING" | "BEARER_TOKEN_AUTH_KEY_MISMATCH" | "BEARER_TOKEN_EXPIRED" | "BEARER_TOKEN_INVALID" | "BILL_LIMIT_EXCEEDED" | "BOX_IMPORT_ACCESS_DENIED" | "BOX_IMPORT_FAILURE" | "BOX_IMPORT_NOT_FOUND" | "BOX_IMPORT_VALIDATION" | "BOX_STORE_COULD_NOT_PARSE_URL" | "BOX_STORE_VALIDATION" | "CANNOT_ACCEPT_NEW_ASSEMBLIES" | "CDN_REQUIRED" | "CLOUDFILES_IMPORT_ACCESS_DENIED" | "CLOUDFILES_IMPORT_FAILURE" | "CLOUDFILES_IMPORT_NOT_FOUND" | "CLOUDFILES_IMPORT_VALIDATION" | "CLOUDFILES_STORE_ACCESS_DENIED" | "CLOUDFILES_STORE_ERROR" | "CLOUDFILES_STORE_VALIDATION" | "CLOUDFLARE_IMPORT_ACCESS_DENIED" | "CLOUDFLARE_IMPORT_FAILURE" | "CLOUDFLARE_IMPORT_NOT_FOUND" | "CLOUDFLARE_IMPORT_VALIDATION" | "CLOUDFLARE_STORE_ACCESS_DENIED" | "CLOUDFLARE_STORE_NOT_FOUND" | "CLOUDFLARE_STORE_URL_VERIFICATION_FAILURE" | "CLOUDFLARE_STORE_VALIDATION" | "CLOUDFLARE_STORE_WRONG_REGION" | "CLOUD_AI_IMAGE_VALIDATION" | "DIGITALOCEAN_IMPORT_ACCESS_DENIED" | "DIGITALOCEAN_IMPORT_FAILURE" | "DIGITALOCEAN_IMPORT_NOT_FOUND" | "DIGITALOCEAN_IMPORT_VALIDATION" | "DIGITALOCEAN_STORE_ACCESS_DENIED" | "DIGITALOCEAN_STORE_NOT_FOUND" | "DIGITALOCEAN_STORE_VALIDATION" | "DIGITALOCEAN_STORE_WRONG_REGION" | "DOCUMENT_AUTOROTATE_VALIDATION" | "DOCUMENT_CONVERT_UNSUPPORTED_CONVERSION" | "DOCUMENT_CONVERT_VALIDATION" | "DOCUMENT_EXTRACT_VALIDATION" | "DOCUMENT_MERGE_UNSUPPORTED_CONVERSION" | "DOCUMENT_MERGE_VALIDATION" | "DOCUMENT_OCR_VALIDATION" | "DOCUMENT_OPTIMIZE_UNSUPPORTED_INPUT" | "DOCUMENT_OPTIMIZE_VALIDATION" | "DOCUMENT_SPLIT_VALIDATION" | "DOCUMENT_THUMBS_INVALID_INPUT" | "DOCUMENT_THUMBS_VALIDATION" | "DO_NOT_REUSE_ASSEMBLY_IDS" | "DROPBOX_IMPORT_ACCESS_DENIED" | "DROPBOX_IMPORT_FAILURE" | "DROPBOX_IMPORT_NOT_FOUND" | "DROPBOX_IMPORT_VALIDATION" | "DROPBOX_STORE_COULD_NOT_PARSE_URL" | "DROPBOX_STORE_VALIDATION" | "FILE_COMPRESS_INVALID_INPUT" | "FILE_COMPRESS_VALIDATION" | "FILE_DECOMPRESS_INVALID_INPUT" | "FILE_DECOMPRESS_PASSWORD_INCORRECT" | "FILE_DECOMPRESS_PASSWORD_REQUIRED" | "FILE_DECOMPRESS_VALIDATION" | "FILE_DOWNLOAD_ERROR" | "FILE_FILTER_DECLINED_FILE" | "FILE_FILTER_INVALID_OPERATOR" | "FILE_FILTER_VALIDATION" | "FILE_HASH_VALIDATION" | "FILE_META_DATA_ERROR" | "FILE_PREVIEW_VALIDATION" | "FILE_READ_VALIDATION_ERROR" | "FILE_SERVE_NO_RESULT" | "FILE_SERVE_VALIDATION" | "FILE_VERIFY_INVALID_FILE" | "FILE_VERIFY_VALIDATION" | "FILE_VIRUSSCAN_DECLINED_FILE" | "FILE_VIRUSSCAN_INVALID_INPUT" | "FILE_VIRUSSCAN_VALIDATION" | "FTP_IMPORT_ACCESS_DENIED" | "FTP_IMPORT_FAILURE" | "FTP_IMPORT_NOT_FOUND" | "FTP_IMPORT_VALIDATION" | "FTP_STORE_VALIDATION" | "GET_ACCOUNT_DB_ERROR" | "GET_ACCOUNT_UNKNOWN_AUTH_KEY" | "GOOGLE_IMPORT_ACCESS_DENIED" | "GOOGLE_IMPORT_FAILURE" | "GOOGLE_IMPORT_NOT_FOUND" | "GOOGLE_IMPORT_VALIDATION" | "GOOGLE_STORE_INVALID_INPUT" | "GOOGLE_STORE_VALIDATION" | "HTML_CONVERT_VALIDATION" | "HTTP_IMPORT_ACCESS_DENIED" | "HTTP_IMPORT_FAILURE" | "HTTP_IMPORT_NOT_FOUND" | "HTTP_IMPORT_VALIDATION" | "HTTP_REQUEST_FAILURE" | "HTTP_REQUEST_VALIDATION" | "IMAGE_BGREMOVE_VALIDATION" | "IMAGE_COPYRIGHT_DETECT_DECLINED_FILE" | "IMAGE_COPYRIGHT_DETECT_VALIDATION" | "IMAGE_DESCRIBE_VALIDATION" | "IMAGE_ENHANCE_NO_INPUT_FILE" | "IMAGE_ENHANCE_VALIDATION" | "IMAGE_FACEDETECT_VALIDATION" | "IMAGE_GENERATE_VALIDATION" | "IMAGE_MERGE_FAILURE" | "IMAGE_MERGE_VALIDATION" | "IMAGE_OCR_VALIDATION" | "IMAGE_OPTIMIZE_VALIDATION" | "IMAGE_RESIZE_ERROR" | "IMAGE_RESIZE_INVALID_BLUR_REGION" | "IMAGE_RESIZE_INVALID_TEXT_OBJECT_VALUE" | "IMAGE_RESIZE_INVALID_TEXT_VALUE" | "IMAGE_RESIZE_INVALID_WATERMARK_OFFSET" | "IMAGE_RESIZE_INVALID_WATERMARK_POSITION" | "IMAGE_RESIZE_NO_CLUT_FILE" | "IMAGE_RESIZE_NO_INPUT_FILE" | "IMAGE_RESIZE_VALIDATION" | "IMAGE_UPSCALE_VALIDATION" | "IMPORT_FILE_ERROR" | "INCOMPLETE_PRICING" | "INSUFFICIENT_AUTH_SCOPE" | "INTERNAL_COMMAND_ERROR" | "INTERNAL_COMMAND_TIMEOUT" | "INVALID_ASSEMBLY_STATUS" | "INVALID_AUTH_EXPIRES_PARAMETER" | "INVALID_AUTH_KEY_PARAMETER" | "INVALID_AUTH_MAX_NUMBER_OF_FILES_PARAMETER" | "INVALID_AUTH_MAX_SIZE_PARAMETER" | "INVALID_AUTH_REFERER_PARAMETER" | "INVALID_FILE_META_DATA" | "INVALID_FORM_DATA" | "INVALID_INPUT_ERROR" | "INVALID_PARAMS_FIELD" | "INVALID_SIGNATURE" | "INVALID_STEP_NAME" | "INVALID_TEMPLATE_FIELD" | "INVALID_UPLOAD_HANDLE_STEP_NAME" | "INVALID_URL_ENCODING" | "MAX_NUMBER_OF_FILES_EXCEEDED" | "MAX_SIZE_EXCEEDED" | "MEGA_IMPORT_ACCESS_DENIED" | "MEGA_IMPORT_FAILURE" | "MEGA_IMPORT_NOT_FOUND" | "MEGA_IMPORT_VALIDATION" | "MEGA_STORE_ACCESS_DENIED" | "MEGA_STORE_NOT_FOUND" | "MEGA_STORE_VALIDATION" | "MEGA_STORE_WRONG_REGION" | "META_WRITE_VALIDATION" | "MINIO_IMPORT_ACCESS_DENIED" | "MINIO_IMPORT_FAILURE" | "MINIO_IMPORT_NOT_FOUND" | "MINIO_IMPORT_VALIDATION" | "MINIO_STORE_ACCESS_DENIED" | "MINIO_STORE_NOT_FOUND" | "MINIO_STORE_VALIDATION" | "MINIO_STORE_WRONG_REGION" | "NO_AUTH_EXPIRES_PARAMETER" | "NO_AUTH_KEY_PARAMETER" | "NO_AUTH_PARAMETER" | "NO_COUNTRY" | "NO_OBJECT_AUTH_PARAMETER" | "NO_OBJECT_PARAMS_FIELD" | "NO_PARAMS_FIELD" | "NO_PRICING" | "NO_RESULT_STEP_FOUND" | "NO_RPC_RESULT_FROM_IMAGE_RESIZER" | "NO_SIGNATURE_FIELD" | "NO_TEMPLATE_ID" | "PLAN_LIMIT_EXCEEDED" | "POSSIBLY_MALICIOUS_FILE_FOUND" | "PRIORITY_JOB_SLOTS_NOT_FOUND" | "PRIORITY_JOB_SLOT_STATS_ERROR" | "PRIORITY_JOB_SLOT_STATS_INVALID_AGGREGATION" | "PRIORITY_JOB_SLOT_STATS_INVALID_TIME" | "PRIORITY_JOB_SLOT_STATS_MISSING_REGION" | "RATE_LIMIT_REACHED" | "REFERER_MISMATCH" | "REQUEST_PREMATURE_CLOSED" | "ROBOT_VALIDATION_BASE_ERROR" | "S3_ACCESS_DENIED" | "S3_IMPORT_ACCESS_DENIED" | "S3_IMPORT_FAILURE" | "S3_IMPORT_NOT_FOUND" | "S3_IMPORT_VALIDATION" | "S3_NOT_FOUND" | "S3_STORE_ACCESS_DENIED" | "S3_STORE_FAILURE" | "S3_STORE_NOT_FOUND" | "S3_STORE_URL_VERIFICATION_FAILURE" | "S3_STORE_VALIDATION" | "S3_STORE_WRONG_REGION" | "S3_WRONG_REGION" | "SCRIPT_RUN_VALIDATION" | "SERVER_403" | "SERVER_404" | "SERVER_500" | "SFTP_IMPORT_ACCESS_DENIED" | "SFTP_IMPORT_FAILURE" | "SFTP_IMPORT_NOT_FOUND" | "SFTP_IMPORT_VALIDATION" | "SFTP_STORE_VALIDATION" | "SIGNATURE_REUSE_DETECTED" | "SPEECH_TRANSCRIBE_VALIDATION" | "STORAGE_GRANT_NOT_CREATED" | "SUPABASE_IMPORT_ACCESS_DENIED" | "SUPABASE_IMPORT_FAILURE" | "SUPABASE_IMPORT_NOT_FOUND" | "SUPABASE_IMPORT_VALIDATION" | "SUPABASE_STORE_ACCESS_DENIED" | "SUPABASE_STORE_NOT_FOUND" | "SUPABASE_STORE_VALIDATION" | "SUPABASE_STORE_WRONG_REGION" | "SWIFT_IMPORT_ACCESS_DENIED" | "SWIFT_IMPORT_FAILURE" | "SWIFT_IMPORT_NOT_FOUND" | "SWIFT_IMPORT_VALIDATION" | "SWIFT_STORE_ACCESS_DENIED" | "SWIFT_STORE_NOT_FOUND" | "SWIFT_STORE_VALIDATION" | "SWIFT_STORE_WRONG_REGION" | "TEMPLATE_CREDENTIALS_INJECTION_ERROR" | "TEMPLATE_DB_ERROR" | "TEMPLATE_DENIES_STEPS_OVERRIDE" | "TEMPLATE_INVALID_JSON" | "TEMPLATE_NOT_FOUND" | "TEXT_SPEAK_VALIDATION" | "TEXT_TRANSLATE_VALIDATION" | "TIGRIS_IMPORT_ACCESS_DENIED" | "TIGRIS_IMPORT_FAILURE" | "TIGRIS_IMPORT_NOT_FOUND" | "TIGRIS_IMPORT_VALIDATION" | "TIGRIS_STORE_ACCESS_DENIED" | "TIGRIS_STORE_NOT_FOUND" | "TIGRIS_STORE_VALIDATION" | "TIGRIS_STORE_WRONG_REGION" | "TMP_FILE_DOWNLOAD_ERROR" | "TOKEN_INVALID_CREDENTIALS" | "TRANSIENT_STORAGE_SERVICE_ERROR" | "TRANSLOADIT_IMPORT_ACCESS_DENIED" | "TRANSLOADIT_IMPORT_FAILURE" | "TRANSLOADIT_IMPORT_NOT_FOUND" | "TRANSLOADIT_IMPORT_VALIDATION" | "TRANSLOADIT_STORE_CONFLICT" | "TRANSLOADIT_STORE_FAILURE" | "TRANSLOADIT_STORE_UNAVAILABLE" | "TRANSLOADIT_STORE_VALIDATION" | "TUS_STORE_VALIDATION" | "USER_COMMAND_ERROR" | "VERIFIED_EMAIL_REQUIRED" | "VIDEO_ADAPTIVE_VALIDATION" | "VIDEO_ARTWORK_VALIDATION" | "VIDEO_CONCAT_INVALID_INPUT" | "VIDEO_CONCAT_NO_OUTPUT" | "VIDEO_CONCAT_VALIDATION" | "VIDEO_ENCODE_INVALID_VIDEO_CODEC" | "VIDEO_ENCODE_INVALID_WATERMARK_POSITION" | "VIDEO_ENCODE_VALIDATION" | "VIDEO_GENERATE_VALIDATION" | "VIDEO_MERGE_NO_IMAGE_FOUND" | "VIDEO_MERGE_VALIDATION" | "VIDEO_ONDEMAND_NOT_FOUND" | "VIDEO_ONDEMAND_VALIDATION" | "VIDEO_SPLIT_NO_OUTPUT" | "VIDEO_SPLIT_VALIDATION" | "VIDEO_SUBTITLE_VALIDATION" | "VIDEO_THUMBS_INVALID_COUNT_VALUE" | "VIDEO_THUMBS_INVALID_FORMAT" | "VIDEO_THUMBS_INVALID_INPUT" | "VIDEO_THUMBS_VALIDATION" | "VIMEO_IMPORT_ACCESS_DENIED" | "VIMEO_IMPORT_FAILURE" | "VIMEO_IMPORT_NOT_FOUND" | "VIMEO_IMPORT_VALIDATION" | "VIMEO_STORE_ACCESS_DENIED" | "VIMEO_STORE_PROBLEM_SENDING_FILE" | "VIMEO_STORE_VALIDATION" | "WASABI_IMPORT_ACCESS_DENIED" | "WASABI_IMPORT_FAILURE" | "WASABI_IMPORT_NOT_FOUND" | "WASABI_IMPORT_VALIDATION" | "WASABI_STORE_ACCESS_DENIED" | "WASABI_STORE_NOT_FOUND" | "WASABI_STORE_VALIDATION" | "WASABI_STORE_WRONG_REGION" | "WORKER_JOB_ERROR" | "YOUTUBE_STORE_PROBLEM_SENDING_FILE" | "YOUTUBE_STORE_VALIDATION"

Indicates an error status. This key is only present if the Assembly failed.

exitCode
number | null

Optional exit status of a failed processing command. Diagnostic details may vary; use the error code for programmatic error handling.

exitSignal
null | string

Optional signal that terminated a processing command. Diagnostic details may vary; use the error code for programmatic error handling.

file
string
headers
object
Additional property schema
any value
is_private_address
boolean
name
string
numRetries
number
ok
null
playwright_error_code
string
reason
string

Optional explanation of the failure. Diagnostic details may vary; use the error code for programmatic error handling.

response_code
number | null
retries
number
retryable
boolean
stderr
string

Optional diagnostic output from a processing command, for troubleshooting. Diagnostic details may vary; use the error code for programmatic error handling.

stdout
string

Optional standard output from a processing command, for troubleshooting. Diagnostic details may vary; use the error code for programmatic error handling.

url
string
url_host
null | string

Error response

JSON response body. application/json text/plain; charset=utf-8

Response body schema
Complete JSON Schema

Open JSON in a new tab

At least one of these properties is required: error, message, reason

The response may contain additional fields.

FieldType and description
assembly_id
string
error
string (minimum length: 1)
http_code
number | string
  • number
  • string
    Validation pattern (regular expression)^[\x09-\x0D\x20\xA0\u1680\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u2028\u2029\u202f\u205f\u3000\ufeff]*[+-]?0*(?:0(?:[^0-9]|$)|(?:[1-9][0-9]{0,307}|1(?:(?:[0-6][0-9]{7}|7[0-8][0-9]{6}|79[0-6][0-9]{5}|797[0-5][0-9]{4}|7976[0-8][0-9]{3}|79769[0-2][0-9]{2}|7976930[0-9]{1}|7976931[0-2])[0-9]{300}|79769313(?:(?:[0-3][0-9]{7}|4[0-7][0-9]{6}|48[0-5][0-9]{5}|486[0-1][0-9]{4}|4862[0-2][0-9]{3}|486230[0-9]{2}|486231[0-4][0-9]{1}|4862315[0-7])[0-9]{292}|48623158(?:(?:0[0-6][0-9]{6}|07[0-8][0-9]{5}|079[0-2][0-9]{4}|0793[0-6][0-9]{3}|07937[0-1][0-9]{2}|079372[0-7][0-9]{1}|0793728[0-8])[0-9]{284}|07937289(?:(?:[0-6][0-9]{7}|70[0-9]{6}|71[0-3][0-9]{5}|7140[0-4][0-9]{3}|71405[0-2][0-9]{2}|7140530[0-2])[0-9]{276}|71405303(?:(?:[0-3][0-9]{7}|40[0-9]{6}|41[0-4][0-9]{5}|4150[0-6][0-9]{3}|41507[0-8][0-9]{2}|415079[0-8][0-9]{1}|4150799[0-2])[0-9]{268}|41507993(?:(?:[0-3][0-9]{7}|40[0-9]{6}|41[0-2][0-9]{5}|413[0-1][0-9]{4}|4132[0-6][0-9]{3}|413270[0-9]{2})[0-9]{260}|41327100(?:(?:[0-2][0-9]{7}|3[0-6][0-9]{6}|37[0-7][0-9]{5}|378[0-1][0-9]{4}|3782[0-5][0-9]{3}|37826[0-8][0-9]{2}|378269[0-2][0-9]{1}|3782693[0-5])[0-9]{252}|37826936(?:(?:0[0-9]{7}|1[0-6][0-9]{6}|17[0-2][0-9]{5}|173[0-6][0-9]{4}|1737[0-6][0-9]{3}|17377[0-7][0-9]{2}|173778[0-8][0-9]{1}|1737789[0-7])[0-9]{244}|17377898(?:(?:0[0-3][0-9]{6}|04[0-3][0-9]{5}|044[0-3][0-9]{4}|0444[0-8][0-9]{3}|04449[0-5][0-9]{2}|044496[0-7][0-9]{1}|0444968[0-1])[0-9]{236}|04449682(?:(?:[0-8][0-9]{7}|9[0-1][0-9]{6}|92[0-6][0-9]{5}|927[0-5][0-9]{4}|9276[0-3][0-9]{3}|92764[0-6][0-9]{2}|927647[0-4][0-9]{1})[0-9]{228}|92764750(?:(?:[0-8][0-9]{7}|9[0-3][0-9]{6}|94[0-5][0-9]{5}|946[0-5][0-9]{4}|9466[0-3][0-9]{3}|94664[0-8][0-9]{2}|94664900)[0-9]{220}|94664901(?:(?:[0-6][0-9]{7}|7[0-8][0-9]{6}|79[0-6][0-9]{5}|797[0-6][0-9]{4}|7977[0-4][0-9]{3}|79775[0-7][0-9]{2}|797758[0-6][0-9]{1}|7977587[0-1])[0-9]{212}|79775872(?:(?:0[0-6][0-9]{6}|070[0-8][0-9]{4}|0709[0-5][0-9]{3}|07096[0-2][0-9]{2}|070963[0-2][0-9]{1})[0-9]{204}|07096330(?:(?:[0-1][0-9]{7}|2[0-7][0-9]{6}|28[0-5][0-9]{5}|286[0-3][0-9]{4}|28640[0-9]{3}|28641[0-5][0-9]{2}|286416[0-5][0-9]{1}|2864166[0-8])[0-9]{196}|28641669(?:(?:[0-1][0-9]{7}|2[0-7][0-9]{6}|28[0-7][0-9]{5}|288[0-6][0-9]{4}|2887[0-8][0-9]{3}|288790[0-9]{2}|2887910[0-8])[0-9]{188}|28879109(?:(?:[0-3][0-9]{7}|4[0-5][0-9]{6}|46[0-4][0-9]{5}|465[0-4][0-9]{4}|4655[0-4][0-9]{3}|46555[0-4][0-9]{2}|465555[0-3][0-9]{1}|4655554[0-6])[0-9]{180}|46555547(?:(?:[0-7][0-9]{7}|8[0-4][0-9]{6}|850[0-9]{5}|851[0-8][0-9]{4}|8519[0-3][0-9]{3}|851940[0-3][0-9]{1})[0-9]{172}|85194040(?:(?:[0-1][0-9]{7}|2[0-5][0-9]{6}|26[0-2][0-9]{5}|2630[0-5][0-9]{3}|26306[0-4][0-9]{2}|263065[0-6][0-9]{1}|2630657[0-3])[0-9]{164}|26306574(?:(?:[0-7][0-9]{7}|8[0-7][0-9]{6}|88[0-5][0-9]{5}|886[0-6][0-9]{4}|88670[0-9]{3}|88671[0-4][0-9]{2}|8867150[0-4])[0-9]{156}|88671505(?:(?:[0-7][0-9]{7}|8[0-1][0-9]{6}|820[0-5][0-9]{4}|8206[0-7][0-9]{3}|820680[0-9]{2}|820681[0-8][0-9]{1})[0-9]{148}|82068190(?:(?:[0-7][0-9]{7}|8[0-8][0-9]{6}|890[0-1][0-9]{4}|8902000[0-6])[0-9]{140}|89020007(?:(?:0[0-7][0-9]{6}|08[0-2][0-9]{5}|083[0-7][0-9]{4}|0838[0-2][0-9]{3}|08383[0-5][0-9]{2}|083836[0-6][0-9]{1}|0838367[0-5])[0-9]{132}|08383676(?:(?:[0-1][0-9]{7}|2[0-6][0-9]{6}|27[0-2][0-9]{5}|273[0-7][0-9]{4}|2738[0-4][0-9]{3}|27385[0-3][0-9]{2}|273854[0-7][0-9]{1}|2738548[0-3])[0-9]{124}|27385484(?:(?:[0-4][0-9]{7}|5[0-7][0-9]{6}|580[0-9]{5}|581[0-6][0-9]{4}|5817[0-6][0-9]{3}|581770[0-9]{2}|5817710[0-9]{1}|5817711[0-4])[0-9]{116}|58177115(?:(?:[0-2][0-9]{7}|30[0-9]{6}|31[0-6][0-9]{5}|317[0-5][0-9]{4}|3176[0-3][0-9]{3}|31764[0-3][0-9]{2}|317644[0-6][0-9]{1}|3176447[0-4])[0-9]{108}|31764475(?:(?:[0-6][0-9]{7}|7[0-2][0-9]{6}|730[0-1][0-9]{4}|7302[0-6][0-9]{3}|7302700[0-5])[0-9]{100}|73027006(?:(?:[0-8][0-9]{7}|9[0-7][0-9]{6}|98[0-4][0-9]{5}|985[0-4][0-9]{4}|9855[0-4][0-9]{3}|98555[0-6][0-9]{2}|9855570[0-9]{1}|9855571[0-2])[0-9]{92}|98555713(?:(?:[0-5][0-9]{7}|6[0-5][0-9]{6}|66[0-8][0-9]{5}|669[0-4][0-9]{4}|6695[0-8][0-9]{3}|66959[0-5][0-9]{2}|669596[0-1][0-9]{1}|6695962[0-1])[0-9]{84}|66959622(?:(?:[0-7][0-9]{7}|8[0-3][0-9]{6}|84[0-1][0-9]{5}|842[0-8][0-9]{4}|84290[0-9]{3}|84291[0-3][0-9]{2}|842914[0-7][0-9]{1}|84291480)[0-9]{76}|84291481(?:(?:[0-8][0-9]{7}|9[0-7][0-9]{6}|98[0-5][0-9]{5}|9860[0-7][0-9]{3}|98608[0-2][0-9]{2}|986083[0-3][0-9]{1}|9860834[0-8])[0-9]{68}|98608349(?:(?:[0-2][0-9]{7}|3[0-5][0-9]{6}|36[0-3][0-9]{5}|364[0-6][0-9]{4}|3647[0-4][0-9]{3}|36475[0-1][0-9]{2}|364752[0-8][0-9]{1}|3647529[0-1])[0-9]{60}|36475292(?:(?:[0-6][0-9]{7}|70[0-9]{6}|71[0-8][0-9]{5}|7190[0-6][0-9]{3}|71907[0-3][0-9]{2}|7190740[0-9]{1}|7190741[0-5])[0-9]{52}|71907416(?:(?:[0-7][0-9]{7}|8[0-3][0-9]{6}|84[0-3][0-9]{5}|844[0-3][0-9]{4}|8444[0-2][0-9]{3}|84443[0-5][0-9]{2}|844436[0-4][0-9]{1}|8444365[0-4])[0-9]{44}|84443655(?:(?:0[0-9]{7}|10[0-6][0-9]{5}|1070[0-3][0-9]{3}|10704[0-2][0-9]{2}|107043[0-3][0-9]{1}|1070434[0-1])[0-9]{36}|10704342(?:(?:[0-6][0-9]{7}|70[0-9]{6}|710[0-9]{5}|711[0-4][0-9]{4}|7115[0-4][0-9]{3}|71155[0-8][0-9]{2}|711559[0-5][0-9]{1}|7115596[0-8])[0-9]{28}|71155969(?:(?:[0-8][0-9]{7}|9[0-4][0-9]{6}|950[0-7][0-9]{4}|95080[0-8][0-9]{2}|950809[0-2][0-9]{1})[0-9]{20}|95080930(?:(?:[0-3][0-9]{7}|4[0-1][0-9]{6}|42[0-7][0-9]{5}|428[0-7][0-9]{4}|428800[0-9]{2}|428801[0-6][0-9]{1}|4288017[0-6])[0-9]{12}|42880177(?:(?:[0-8][0-9]{7}|90[0-3][0-9]{5}|9040[0-9]{4}|9041[0-6][0-9]{3}|90417[0-3][0-9]{2}|904174[0-3][0-9]{1}|9041744[0-8])[0-9]{4}|90417449(?:(?:[0-6][0-9]{3}|7[0-6][0-9]{2}|77[0-8][0-9]{1}|7790)|7791))))))))))))))))))))))))))))))))))))))))(?:[^0-9]|$))
message
string

Human-readable explanation of the error. Its wording can vary; use the error code when handling a specific failure.

reason
null | string | number | boolean | Array<any value> | object

Any of the following schemas may apply:

null
null
string
string
number
number
boolean
boolean
Array<any value>
Array<any value>
Array item schema
any value
object
object
Additional property schema
any value

HTTP 400

JSON response body. application/json text/plain; charset=utf-8

Response body schema
Complete JSON Schema

Open JSON in a new tab

Named errors and the general error format

error: "INVALID_PARAMS_FIELD"

Bad params field provided, it contains invalid json.

The response may contain additional fields.

FieldType and description
error

required

string (always: "INVALID_PARAMS_FIELD")
http_code
number (always: 400)
message
string

Human-readable explanation of the error. Its wording can vary; use the error code when handling a specific failure.

General error format

See the general error response fields.

For more information about the response, please refer to our documentation for the Assembly Status response.

Previous page ← Retrieve an Assembly StatusNext page Stream Assembly changes live →
Contact support⁠

TransloaditChecking status…

Product

  • Services
  • Pricing
  • Demos
  • Tools
  • Security
  • Support

Company

  • About/Press
  • Blog/Jobs
  • Comparisons/Compliance matrix
  • Research
  • Open source
  • Solutions

Docs

  • Getting started
  • Transcoding
  • FAQ
  • API
  • Guides/DevTips
  • Supported formats

More

  • Platform status⁠
  • Community forum⁠
  • StackOverflow⁠
  • Uppy
  • tus⁠

© 2009–2026 Transloadit-II GmbH

PrivacyTermsImprint
EnglishDeutschEspañol