Retrieve a Storage asset
Returns the current or explicitly retained version of a Workspace asset by stable identity.
https://api2.transloadit.com/ dam/ assets/ {assetId}Before calling this endpoint, obtain the IDs of existing assets in the same Workspace as the Auth Key used for the request.
For files stored with /transloadit/store, retrieve their Assembly Status and wait for ASSEMBLY_COMPLETED. In the returned results[stepName] arrays, retain each stored file’s workspace, asset_id, version_id, and returned path. The ordinary file id is not its Storage asset ID. Use asset_id for ASSET_ID or params.asset_ids in the examples below.
Use asset_id to follow an asset through native moves and renames. Add version_id when importing to select the same retained bytes after an overwrite. A saved path is a mutable location, not an immutable reference. Access and version retention still apply.
Omit version_id to retrieve the current version. Include it to retrieve one exact retained version of this asset. A missing, deleted, or differently owned version returns an error; it never falls back to current bytes.
The returned asset has the same reference shape as a stored Assembly result. Its path reflects the asset’s current location even when an older version is selected.
Request example
Set ASSET_ID to your resource value without percent-encoding it.
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=dam:read dam: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.
curl --fail-with-body -sS --request GET --get \
--url "https://api2.transloadit.com/dam/assets/${ASSET_ID:?Set ASSET_ID}" \
--header "Authorization: Bearer ${TRANSLOADIT_TOKEN:?Set TRANSLOADIT_TOKEN}" \
--data-urlencode 'params={}'
Authentication
This endpoint accepts signed params or a bearer token. See Authentication for setup instructions.
Required scopes for the Auth Key or bearer token: dam:read, dam:write.
Signed requests require both a signature and a future params.auth.expires timestamp. Bearer tokens do not require either.
Path parameters
assetId(path segment), required. pattern:^[A-Za-z0-9_-]{21}[AQgw]$, minimum length: 22, maximum length: 22
Query parameters
params(JSON string). 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 signed 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 a Storage metadata request.
|
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. | stringOptional retained version of the selected asset. Omit for the current version. A missing or deleted version returns an error and never falls back to current bytes. Validation pattern (regular expression)^[A-Za-z0-9_-]{21}[AQgw]$ |
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.version_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
params: Only the fields listed for this object are accepted.
Uses the field definitions above: params.version_id
| Field | Type and description |
|---|---|
params. | Contains the Transloadit API key and signature-authentication metadata for a Storage metadata request.
|
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:
{
"asset": {
"asset_id": "AAAAAAAAAAAAAAAAAAAAAA",
"height": 600,
"mime": "image/jpeg",
"path": "renamed.jpg",
"size": 12345,
"version_id": "AAAAAAAAAAAAAAAAAAAAAQ",
"width": 800,
"workspace": "example-workspace"
},
"message": "The Storage asset was successfully found.",
"ok": "DAM_ASSET_FOUND"
}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 |
|---|---|
assetrequired |
|
asset.required | stringStable asset ID. It survives native moves and renames; use it without a version to select the current bytes. Validation pattern (regular expression)^[A-Za-z0-9_-]{21}[AQgw]$ |
asset. | integer (exclusive minimum: 0, maximum: 9007199254740991)Display height in pixels, after applying EXIF orientation, when known. |
asset. | stringLowercase MD5 checksum of the stored bytes, when available. Validation pattern (regular expression)^[a-f0-9]{32}$ |
asset.required | null | stringMIME type of the stored bytes, or null when unknown. |
asset.required | string (minimum length: 1)Current mutable location relative to the Workspace. A rename makes the previous path stale; overwriting can change the bytes at this path. |
asset. | stringLowercase SHA-256 checksum of the stored bytes, when available. Validation pattern (regular expression)^[a-f0-9]{64}$ |
asset.required | integer (minimum: 0, maximum: 9007199254740991)Size of the stored file in bytes. |
asset.required | stringExact immutable version of this asset. Pair with asset_id to select retained bytes; a missing version never falls back to the current version. Validation pattern (regular expression)^[A-Za-z0-9_-]{21}[AQgw]$ |
asset. | integer (exclusive minimum: 0, maximum: 9007199254740991)Display width in pixels, after applying EXIF orientation, when known. |
asset.required | string (minimum length: 1)Workspace slug that owns this asset. Authenticate for the same Workspace when reading or managing it. |
messagerequired | string (minimum length: 1) |
okrequired | string (always: "DAM_ASSET_FOUND") |
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 |