idpath · RequiredResource identifier returned by the corresponding create operation.
Maximum characters: 64./api/v1/storage/assets/{id}/downloadAuthentication · x-api-key
Archive completion is required. URL signatures expire independently of storage. Other users' resources return 404.
Scope: task:read
Billing and effects: Free resource read; no generation purchase.
Recovery: Read the current resource before retrying a mutation; do not assume this operation supports Idempotency-Key.
Follow this operation’s workflow → · All permission rulesidpath · RequiredResource identifier returned by the corresponding create operation.
Maximum characters: 64.Read the HTTP status and body together. A receipt confirms acceptance; poll the returned Task or product view for terminal execution and media delivery. Example IDs and credit amounts are illustrative, not a price quote.
Complete JSON example (optional fields may be omitted).
{ "success": false, "error": { "code": "INVALID_API_KEY", "message": "Invalid API key" }}application/json
Required fields apply within their object and selected option. An optional object may be absent; when present, its required fields must be included. Required and nullable are independent: null is allowed only where listed.
All constraint groups below apply to the same value.
Constraint group 1 — requires id, providerCode, resourceId, format, byteLength, status, deliveredAt, freeUntil, retainedUntilAll groupsbyteLengthRequiredSize of the media object in bytes, not kilobytes or billing credits.
deliveredAtRequiredStart of this billing or usage period as an ISO 8601 timestamp.
Format: date-time.
formatRequiredStored media format for this retained object; use content/URL metadata rather than deriving a file extension from its resource ID.
freeUntilRequiredStart of this billing or usage period as an ISO 8601 timestamp.
Format: date-time.
idRequiredIdentifier of this resource. Keep identifiers for Tasks, product resources and child assets separately; use the ID required by the destination endpoint.
providerCodeRequiredProvider/product code of this retained asset, such as suno or mv.
resourceIdRequiredIdentifier of the product resource, separate from the Task executing an operation on it.
retainedUntilRequiredStart of this billing or usage period as an ISO 8601 timestamp.
Use a complete option below; the value must satisfy at least one option.
Option 1 — stringOptionStart of this billing or usage period as an ISO 8601 timestamp.
Format: date-time.
Option 2 — nullOptionstatusRequiredState of the object containing this field. Use its listed values; operation acceptance, Task completion and media delivery are separate states.
Constraint group 2 — requires url, urlExpiresAtAll groupsurlRequiredAccess URL for the containing resource. Use it as returned; do not construct URLs from identifiers. Availability and expiry follow the surrounding resource state.
urlExpiresAtRequiredISO 8601 timestamp when this access URL expires. Refresh the owning resource for a new URL; URL lifetime is separate from retention.
Format: date-time.
application/json
Required fields apply within their object and selected option. An optional object may be absent; when present, its required fields must be included. Required and nullable are independent: null is allowed only where listed.
errorRequiredStructured failure information. Branch on code, show message, and interpret details only for that code. The request ID is returned in the X-Request-Id header.
error.codeRequiredApplication-specific error code (see error catalog)
error.messageRequiredHuman readable error message
error.detailsOptionalOptional error-specific context. Read code first; details keys depend on that code. Unknown keys must not break error handling. See /resources/errors/.
error.details[key]Each valueKey pattern: ^(.*)$.
successRequiredAlways false for error responses
application/json
Required fields apply within their object and selected option. An optional object may be absent; when present, its required fields must be included. Required and nullable are independent: null is allowed only where listed.
errorRequiredStructured failure information. Branch on code, show message, and interpret details only for that code. The request ID is returned in the X-Request-Id header.
error.codeRequiredApplication-specific error code (see error catalog)
error.messageRequiredHuman readable error message
error.detailsOptionalOptional error-specific context. Read code first; details keys depend on that code. Unknown keys must not break error handling. See /resources/errors/.
error.details[key]Each valueKey pattern: ^(.*)$.
successRequiredAlways false for error responses
application/json
Required fields apply within their object and selected option. An optional object may be absent; when present, its required fields must be included. Required and nullable are independent: null is allowed only where listed.
errorRequiredStructured failure information. Branch on code, show message, and interpret details only for that code. The request ID is returned in the X-Request-Id header.
error.codeRequiredApplication-specific error code (see error catalog)
error.messageRequiredHuman readable error message
error.detailsOptionalOptional error-specific context. Read code first; details keys depend on that code. Unknown keys must not break error handling. See /resources/errors/.
error.details[key]Each valueKey pattern: ^(.*)$.
successRequiredAlways false for error responses
application/json
Required fields apply within their object and selected option. An optional object may be absent; when present, its required fields must be included. Required and nullable are independent: null is allowed only where listed.
errorRequiredStructured failure information. Branch on code, show message, and interpret details only for that code. The request ID is returned in the X-Request-Id header.
error.codeRequiredApplication-specific error code (see error catalog)
error.messageRequiredHuman readable error message
error.detailsOptionalOptional error-specific context. Read code first; details keys depend on that code. Unknown keys must not break error handling. See /resources/errors/.
error.details[key]Each valueKey pattern: ^(.*)$.
successRequiredAlways false for error responses
Request allowance or task admission capacity exceeded. Follow Retry-After when present; otherwise wait for active tasks and use bounded backoff. Limits do not guarantee throughput. For SSE, this is the HTTP connection response, not an event.
application/json
Required fields apply within their object and selected option. An optional object may be absent; when present, its required fields must be included. Required and nullable are independent: null is allowed only where listed.
errorRequiredStructured failure information. Branch on code, show message, and interpret details only for that code. The request ID is returned in the X-Request-Id header.
error.codeRequiredRATE_LIMITED for request and task admission rejections.
error.messageRequiredHuman-readable explanation. Wording may change; use the machine-readable code for programmatic decisions.
error.detailsOptionalOptional error-specific context. Read code first; details keys depend on that code. Unknown keys must not break error handling. See /resources/errors/.
error.details.currentOptionalCurrent count for the rate-limit window identified by policy and scope.
Minimum: 0.
error.details.inFlightOptionalCurrent accepted tasks counted against the relevant account or API-key admission limit.
Minimum: 0.
error.details.limitOptionalMaximum count allowed by this response context. A limit is not a throughput guarantee.
Minimum: 0.
error.details.policyOptionalAllowance bucket: query for resource reads, operation for task-producing or operation requests. See the rate-limit response headers.
error.details.retryAfterSecOptionalSuggested delay in seconds before another request. Honor the Retry-After header when present; use bounded backoff.
Minimum: 1.
error.details.scopeOptionalEntity whose allowance was exceeded, such as the user, API key or IP address.
error.details.tierOptionalAccount allowance tier used for this admission or rate-limit decision.
error.details.typeOptionalAdmission limit that rejected the request: rps (continuously refilled requests-per-second bucket), daily or monthly UTC request budget. Interpret with policy, scope and retryAfterSec.
error.details[key]Each valueKey pattern: ^(.*)$.
successRequiredWhether this response reports a successful action; false accompanies the structured error object.
Default: false.
application/json
Required fields apply within their object and selected option. An optional object may be absent; when present, its required fields must be included. Required and nullable are independent: null is allowed only where listed.
errorRequiredStructured failure information. Branch on code, show message, and interpret details only for that code. The request ID is returned in the X-Request-Id header.
error.codeRequiredApplication-specific error code (see error catalog)
error.messageRequiredHuman readable error message
error.detailsOptionalOptional error-specific context. Read code first; details keys depend on that code. Unknown keys must not break error handling. See /resources/errors/.
error.details[key]Each valueKey pattern: ^(.*)$.
successRequiredAlways false for error responses
application/json
Required fields apply within their object and selected option. An optional object may be absent; when present, its required fields must be included. Required and nullable are independent: null is allowed only where listed.
errorRequiredStructured failure information. Branch on code, show message, and interpret details only for that code. The request ID is returned in the X-Request-Id header.
error.codeRequiredApplication-specific error code (see error catalog)
error.messageRequiredHuman readable error message
error.detailsOptionalOptional error-specific context. Read code first; details keys depend on that code. Unknown keys must not break error handling. See /resources/errors/.
error.details[key]Each valueKey pattern: ^(.*)$.
successRequiredAlways false for error responses