Get a prepared download
const url = 'https://api.braiv.co/v1/downloads/example';const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
try { const response = await fetch(url, options); const data = await response.json(); console.log(data);} catch (error) { console.error(error);}curl --request GET \ --url https://api.braiv.co/v1/downloads/example \ --header 'Authorization: Bearer <token>'Returns a URL when ready. Failed download preparation is a terminal 200 response with status: failed and an error object. Required scope: downloads:write.
Authorizations
Section titled “Authorizations ”Parameters
Section titled “ Parameters ”Path Parameters
Section titled “Path Parameters ”Download request document ID returned by createDownload.
Responses
Section titled “ Responses ”Download is ready or terminally failed.
object
Download request ID.
Normalized to ready or failed at terminal state; otherwise stored queue status.
Download entitlement applied.
True for sample-tier artifacts.
Sample duration cap or null for full downloads.
Prepared artifact URL when ready.
Pollable download job ID.
Examples
{ "id": "dl_01", "status": "ready", "tier": "full", "truncated": false, "maxDurationSeconds": null, "url": "https://storage.googleapis.com/...zip", "error": null, "jobId": "download_dl_01"}{ "id": "dl_01", "status": "failed", "tier": "full", "truncated": false, "maxDurationSeconds": null, "url": null, "error": { "message": "Render failed" }, "jobId": "download_dl_01"}Download is still queued or processing.
object
Download request ID.
Normalized to ready or failed at terminal state; otherwise stored queue status.
Download entitlement applied.
True for sample-tier artifacts.
Sample duration cap or null for full downloads.
Prepared artifact URL when ready.
Pollable download job ID.
Example
{ "id": "dl_01", "status": "processing", "tier": "full", "truncated": false, "maxDurationSeconds": null, "url": null, "error": null, "jobId": "download_dl_01"}A supported authentication header is missing or contains an invalid Public API key.
object
Structured public API error envelope.
object
Stable machine-readable error code.
Human-readable error summary.
Machine-readable operation-specific context; empty when unavailable.
object
Examples
Authentication header missing
{ "error": { "code": "UNAUTHENTICATED", "message": "Missing API key.", "details": {} }}API key invalid
{ "error": { "code": "INVALID_API_KEY", "message": "Invalid API key", "details": {} }}Authentication succeeded, but the required scope, workspace role, or resource permission is missing.
object
Structured public API error envelope.
object
Stable machine-readable error code.
Human-readable error summary.
Machine-readable operation-specific context; empty when unavailable.
object
Examples
{ "error": { "code": "INSUFFICIENT_SCOPE", "message": "The API key lacks the required scope.", "details": {} }}The resource does not exist or is not accessible to the caller.
object
Structured public API error envelope.
object
Stable machine-readable error code.
Human-readable error summary.
Machine-readable operation-specific context; empty when unavailable.
object
Example
{ "error": { "code": "NOT_FOUND", "message": "Resource not found.", "details": {} }}The API key exceeded its allowed concurrency or request rate. Retry after in-flight work completes or the limit resets.
object
Structured public API error envelope.
object
Stable machine-readable error code.
Human-readable error summary.
Machine-readable operation-specific context; empty when unavailable.
object
Example
{ "error": { "code": "RATE_LIMITED", "message": "API key concurrency limit reached", "details": {} }}An unexpected server error occurred.
object
Structured public API error envelope.
object
Stable machine-readable error code.
Human-readable error summary.
Machine-readable operation-specific context; empty when unavailable.
object
Example
{ "error": { "code": "INTERNAL", "message": "An unexpected error occurred.", "details": {} }}