Create an Assembly with a supplied ID
Creates an Assembly at a fresh caller-selected Assembly ID.
https://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:
- Send the request example below with your file and processing Instructions. To receive
the final status through a webhook, include
notify_urlin those Instructions before sending the request. - Keep the returned
assembly_ssl_urlsecret. Use it to check progress, or wait for your configured webhook. - Wait for
ok: "ASSEMBLY_COMPLETED"before consuming the processed files. Anerroror cancellation is not successful processing. Output files are grouped by Step name inresults; 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 fornum_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
Signed parameters used to create an Assembly from direct Steps or a Template.
| Field | Type and description |
|---|---|
params.required for signed requests; optional with a bearer token | Authentication metadata and upload constraints for a signed Assembly request. The API key is required. Contains at least your Transloadit Auth Key in the If you enable Signature Authentication, you must also set an expiry date for the request in the expires property: We strongly recommend including a randomly generated The 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 The These properties can be set as part of the Assembly request or as part of the Template.
|
params. | stringISO 8601 expiration timestamp in the future. Required when a request is signed or requires signature authentication; bearer-authenticated requests may omit it. |
params.required | stringTransloadit API key used to authenticate requests |
params. | 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. | numberMaximum 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. | string | integerUnique, random value included in signed request params to make each signature unique and prevent accidental signature reuse. |
params. | stringRegular expression matched against the HTTP Referer to restrict upload origin |
params. | booleanSet to true to publish real-time Assembly execution-progress events. This is ignored for URL Transform Assemblies. |
params. | stringSelects the ExifTool stack for metadata extraction in this Assembly. This does not select the processing stack for Robot Steps. |
params. | stringSelects the FFmpeg stack for metadata extraction in this Assembly. This does not select the processing stack for Robot Steps. Set |
params. | objectAn 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 schemaany value |
params. | stringSelects the ImageMagick stack for metadata extraction in this Assembly. This does not select the processing stack for Robot Steps. Set |
params. | stringSelects the MediaInfo stack for metadata extraction in this Assembly. This does not select the processing stack for Robot Steps. |
params. | stringSelects the MPlayer stack for metadata extraction in this Assembly. This does not select the processing stack for Robot Steps. |
params. | string | numberUnique, random value included in signed request params to make each signature unique and prevent accidental signature reuse. |
params. | 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 Array item schema"without_params" | "without_result_meta_data" | "without_results" | "without_upload_meta_data" | "without_uploads" |
params. | null | stringTransloadit can send a Pingback to your server when the Assembly is completed. We’ll send the Assembly Status as a JSON string in the |
params. | booleanSet 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. | stringURL 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. | Custom response headers emitted by an Assembly. CORS overrides belong in
|
params. | objectAdditional schema details are available in the complete JSON Schema. |
params. | stringUsage 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.
| Field | Type and description |
|---|---|
params.required | objectPartial 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 schemaobjectAdditional schema details are available in the complete JSON Schema. |
params.required | string (minimum length: 1)The ID of the Template that contains your Assembly Instructions. If you set |
Variant 2
Parameters used to create an Assembly from direct Steps or a Template.
params: Only the fields listed for this object are accepted.
| Field | Type and description |
|---|---|
params. | objectContains Assembly Instructions. Additional property schemaobjectAdditional schema details are available in the complete JSON Schema. |
params. | stringThe ID of the Template that contains your Assembly Instructions. If you set |
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
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
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
| Field | Type and description |
|---|---|
params. | Authentication metadata and upload constraints for a Bearer-authenticated Assembly request. The token supplies the API key, so the request may omit it. The 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 The These properties can be set as part of the Assembly request or as part of the Template.
|
params. | stringISO 8601 expiration timestamp in the future. Required when a request is signed or requires signature authentication; bearer-authenticated requests may omit it. |
params. | stringTransloadit API key used to authenticate requests |
params. | 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. | numberMaximum 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. | string | integerUnique, random value included in signed request params to make each signature unique and prevent accidental signature reuse. |
params. | stringRegular 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
| Field | Type and description | ||||||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
account_id | null | string | ||||||||||||||||||||||||||||||||||||||||||||
account_name | null | string | ||||||||||||||||||||||||||||||||||||||||||||
account_slug | null | string | ||||||||||||||||||||||||||||||||||||||||||||
api_auth_key_id | null | string | ||||||||||||||||||||||||||||||||||||||||||||
assemblyId | string | ||||||||||||||||||||||||||||||||||||||||||||
assembly_id | stringThe 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 | stringThe 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 | null | stringThe unique URL used to query the current status of this Assembly. | ||||||||||||||||||||||||||||||||||||||||||||
build_id | stringOptional build identifier for support troubleshooting. Treat it as opaque; it may change between Assemblies. | ||||||||||||||||||||||||||||||||||||||||||||
bytes_expected | numberThe number of bytes that this Assembly expects to be uploaded. | ||||||||||||||||||||||||||||||||||||||||||||
bytes_received | numberThe 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 | nullThe total number of bytes that this Assembly processed that count towards your usage
bill. The sum of | ||||||||||||||||||||||||||||||||||||||||||||
client_agent | null | stringThe uploader’s user agent is not exposed; this deprecated field is always | ||||||||||||||||||||||||||||||||||||||||||||
client_ip | null | stringThe uploader’s IP address is not exposed; this deprecated field is always | ||||||||||||||||||||||||||||||||||||||||||||
client_referer | null | stringThe uploader’s referrer URL is not exposed; this deprecated field is always | ||||||||||||||||||||||||||||||||||||||||||||
companion_url | null | stringThe URL to the Companion server that this Assembly may communicate with. | ||||||||||||||||||||||||||||||||||||||||||||
executing_jobs | Array<string>Array item schemastring | ||||||||||||||||||||||||||||||||||||||||||||
execution_duration | number | nullThe time taken by Transloadit to execute this Assembly, in seconds. | ||||||||||||||||||||||||||||||||||||||||||||
execution_start | null | string | ||||||||||||||||||||||||||||||||||||||||||||
expected_tus_uploads | number | ||||||||||||||||||||||||||||||||||||||||||||
fields | objectA key/value map of additional form fields for integrations that cannot use Additional property schemaany value | ||||||||||||||||||||||||||||||||||||||||||||
finished_tus_uploads | number | ||||||||||||||||||||||||||||||||||||||||||||
has_dupe_jobs | boolean | ||||||||||||||||||||||||||||||||||||||||||||
ignored_error_count | number | ||||||||||||||||||||||||||||||||||||||||||||
ignored_errors | Array<object>Array item schema
| ||||||||||||||||||||||||||||||||||||||||||||
info |
| ||||||||||||||||||||||||||||||||||||||||||||
info. | number | ||||||||||||||||||||||||||||||||||||||||||||
instance | null | string | ||||||||||||||||||||||||||||||||||||||||||||
is_infinite | boolean | ||||||||||||||||||||||||||||||||||||||||||||
jobs_queue_duration | number | ||||||||||||||||||||||||||||||||||||||||||||
last_job_completed | null | string | ||||||||||||||||||||||||||||||||||||||||||||
merged_params | null | string | ||||||||||||||||||||||||||||||||||||||||||||
message | stringA human-readable message explaining the state of this Assembly. This is not always present. | ||||||||||||||||||||||||||||||||||||||||||||
notify_duration | number | nullElapsed 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 | nullAny of the following schemas may apply: any valueany valuenullnull | ||||||||||||||||||||||||||||||||||||||||||||
parent_id | null | string | ||||||||||||||||||||||||||||||||||||||||||||
previousStep | stringName of the preceding Step associated with the error, when available. | ||||||||||||||||||||||||||||||||||||||||||||
queue_duration | number | ||||||||||||||||||||||||||||||||||||||||||||
region | string | ||||||||||||||||||||||||||||||||||||||||||||
results | objectThe 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 Additional property schemaArray<object>Additional schema details are available in the complete JSON Schema. | ||||||||||||||||||||||||||||||||||||||||||||
running_jobs | Array<string>Array item schemastring | ||||||||||||||||||||||||||||||||||||||||||||
start_date | stringThe date and time at which upload started for this Assembly. | ||||||||||||||||||||||||||||||||||||||||||||
started_jobs | Array<string>Array item schemastring | ||||||||||||||||||||||||||||||||||||||||||||
started_tus_uploads | number | ||||||||||||||||||||||||||||||||||||||||||||
step | stringName 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
| ||||||||||||||||||||||||||||||||||||||||||||
tus_url | stringThe URL to the tus server used by this Assembly for resumable uploads. | ||||||||||||||||||||||||||||||||||||||||||||
update_stream_url | null | stringThe URL to a server-sent events stream from which you can get realtime status updates of this Assembly. | ||||||||||||||||||||||||||||||||||||||||||||
upload_duration | numberThe 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 schemaAny of the following schemas may apply: required properties: basename, ext, field, id, meta, mime, name, size, type, url: object
Variant 2: object
| ||||||||||||||||||||||||||||||||||||||||||||
uppyserver_url | null | string | ||||||||||||||||||||||||||||||||||||||||||||
usage_tags | string | ||||||||||||||||||||||||||||||||||||||||||||
virusname | string | ||||||||||||||||||||||||||||||||||||||||||||
warnings | Array<object>Array item schema
| ||||||||||||||||||||||||||||||||||||||||||||
websocket_url | null | stringThe 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.
| Field | Type and description |
|---|---|
error | neverIndicates an error status. This key is only present if the Assembly failed. This value is prohibited. |
okrequired | "ASSEMBLY_EXECUTING" | "ASSEMBLY_REPLAYING" | "ASSEMBLY_UPLOADING"Indicates a non-error lifecycle status, including uploading, executing, aborted, and canceled states. Successful processing is indicated by |
ok: "ASSEMBLY_CANCELED" | "ASSEMBLY_COMPLETED" | "ASSEMBLY_EXECUTING" | "ASSEMBLY_REPLAYING" | "ASSEMBLY_UPLOADING" | "REQUEST_ABORTED"
The response may contain additional fields.
| Field | Type and description |
|---|---|
error | neverIndicates an error status. This key is only present if the Assembly failed. This value is prohibited. |
okrequired | "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 |
required properties: error
The response may contain additional fields.
| Field | Type and description |
|---|---|
cmd | string | Array<string | number>Optional processing command details for troubleshooting. Diagnostic details may vary; use the Any of the following schemas may apply: stringstringArray<string | number>Array<string | number>Array item schemastring | number |
errorrequired | "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 | nullOptional exit status of a failed processing command. Diagnostic details may vary; use the |
exitSignal | null | stringOptional signal that terminated a processing command. Diagnostic details may vary; use the |
file | string |
headers | objectAdditional property schemaany value |
is_private_address | boolean |
name | string |
numRetries | number |
ok | null |
playwright_error_code | string |
reason | stringOptional explanation of the failure. Diagnostic details may vary; use the |
response_code | number | null |
retries | number |
retryable | boolean |
stderr | stringOptional diagnostic output from a processing command, for troubleshooting. Diagnostic details may vary; use the |
stdout | stringOptional standard output from a processing command, for troubleshooting. Diagnostic details may vary; use the |
url | string |
url_host | null | string |
Error response
JSON response body. application/json text/plain; charset=utf-8
Response body schema
Complete JSON Schema
The response may contain additional fields.
| Field | Type and description |
|---|---|
assembly_id | string |
error | string (minimum length: 1) |
http_code | number | string
|
message | stringHuman-readable explanation of the error. Its wording can vary; use the |
reason | null | string | number | boolean | Array<any value> | objectAny of the following schemas may apply: nullnullstringstringnumbernumberbooleanbooleanArray<any value>Array<any value>Array item schemaany valueobjectobjectAdditional property schemaany value |
HTTP 400
JSON response body. application/json text/plain; charset=utf-8
Response body schema
Complete JSON Schema
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.
General error format
For more information about the response, please refer to our documentation for the Assembly Status response.