Replay Assembly Notification
Retries delivery of an Assembly notification.
https://api2.transloadit.com/ assembly_notifications/ {assemblyId}/ replayReplays an Assembly Notification, sending the POST request containing the Assembly result JSON
again. Unless overridden, the replay reuses the original notify_url template and reevaluates its
fields placeholders using replay-supplied values, not the original Assembly’s fields. Resupply
any required fields or pass the desired resolved URL in notify_url.
Only notification_payload filters supplied in the original Assembly request are reused.
Filters defined only in a Template are not preserved on replay.
Replay signing normally uses the Auth Key recorded in the Assembly Status, with a fallback to the authenticated replay caller’s secret. A replayed Assembly retains its parent’s historical key ID, so a Notification replay can use a different secret from that Assembly’s initial Notification even when both keys remain active. Configure your receiver for the Webhook signing-secret selection rules.
When using a bearer token, send this request to the API host in the Assembly’s region.
Cross-region notification replay does not forward bearer credentials. Use the HTTPS host
from assembly_ssl_url in the Assembly Status response.
Request example
Set ASSEMBLY_ID to your resource value without percent-encoding it.
Set ASSEMBLY_SSL_URL to the Assembly’s returned HTTPS status URL; this request must use the same region.
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.
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.
API_ORIGIN="${ASSEMBLY_SSL_URL%/assemblies/*}"
curl --fail-with-body -sS --request POST \
--url "$API_ORIGIN/assembly_notifications/${ASSEMBLY_ID:?Set ASSEMBLY_ID}/replay" \
--header "Authorization: Bearer ${TRANSLOADIT_TOKEN:?Set TRANSLOADIT_TOKEN}" \
--data-urlencode 'params={"wait":true}'
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.
Signed requests require both a signature and a future params.auth.expires timestamp. Bearer tokens do not require either.
Path parameters
assemblyId(path segment), required. pattern:^[a-z0-9]{32}$
Form fields
Content type: application/x-www-form-urlencoded
params(JSON string), required. A JSON-encoded object whose supported keys are listed below.signature(string). Required for signed requests. Omit this field when using a bearer token.
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
params: Only the fields listed for this object are accepted.
| Field | Type and description |
|---|---|
params.required for signed requests; optional with a bearer token | Contains the Transloadit API key and signature-authentication metadata for an Assembly Notification replay.
|
params.required | 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. | string | integerUnique, random value included in signed request params to make each signature unique and prevent accidental signature reuse. |
params. | objectValues available to placeholders in the notification URL used for this replay. Original Assembly field values are not inherited. Resupply any fields needed by the URL template; missing placeholders are replaced with empty strings. Additional property schemaany value |
params. | string | integerUnique, random value included in signed request params to make each signature unique and prevent accidental signature reuse. |
params. | null | stringOverrides the original Assembly notification URL for this replay. Omission, null, or an empty string reuses the original URL template, not its previously resolved URL. Field placeholders are evaluated again using only replay-supplied fields. Resupply any required fields or pass the desired resolved URL. |
params. | booleanWaits for replay execution to finish. Omission defaults to true; false returns immediately after starting it. A successful replay API response does not confirm Webhook delivery, even when true. Check the recorded delivery status and response_code in the Assembly Notification listing. |
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
params: Only the fields listed for this object are accepted.
Uses the field definitions above: params.auth, params.fields, params.nonce, params.notify_url, params.wait
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
params: Only the fields listed for this object are accepted.
Uses the field definitions above: params.fields, params.nonce, params.notify_url, params.wait
| Field | Type and description |
|---|---|
params. | Contains the Transloadit API key and signature-authentication metadata for an Assembly Notification replay.
|
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. | string | integerUnique, random value included in signed request params to make each signature unique and prevent accidental signature reuse. |
Response
Here’s an example response body:
{
"notification_id": "notification-id",
"ok": "ASSEMBLY_NOTIFICATION_REPLAYED",
"success": true
}2xx success
JSON response body. application/json text/plain; charset=utf-8
Response body schema
Complete JSON Schema
The response contains only the fields listed for this object.
| Field | Type and description |
|---|---|
notification_idrequired | string (minimum length: 1) |
okrequired | "ASSEMBLY_NOTIFICATION_REPLAYED" | "ASSEMBLY_NOTIFICATION_REPLAYING" |
successrequired | boolean (always: true) |
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 |
If wait is false, the success code is ASSEMBLY_NOTIFICATION_REPLAYING.
Even with wait: true, a successful replay API response means replay execution finished, not
that the Webhook was delivered. Delivery failures do not make the replay API response fail.
Inspect the recorded status and response_code with
Retrieve Assembly Notifications; require a
2xx response_code to confirm delivery. A failed delivery does not guarantee a saved error
field in the notification record.
Notification list entries do not expose the replay response’s notification_id, and concurrent
replays can share a start timestamp. An older successful record does not confirm delivery of
the replay you just requested. To identify a particular replay, include a unique application-defined
marker in the query string of an explicit notify_url and match the recorded url with your receiver’s delivery logs.
Use a non-secret marker; URL fragments are not sent to your receiver.