Use the error object on non-2xx responses for programmatic error handling. It includes a stable
error code, retry guidance, a human-readable message, optional structured details, and a request id
for support.
Use error for integrations
Some error responses also include detail. Treat detail as a descriptive field only. Build
retry logic, error handling, and support tooling from error.
"detail" : " Invalid API key " ,
"code" : " INVALID_API_KEY " ,
"message" : " Invalid API key " ,
Field Type Description error.codestring Stable machine-readable error code. error.status_codenumber HTTP status code returned by the request. error.retryableboolean Whether retrying the same request may succeed. error.messagestring Human-readable error message. error.detailsobject Additional structured details when available. error.request_idstring or null Request id for support. This is null when the request failed before a request record was created.
For failed async tasks, poll /task_status/{task_id} and read task_error.
"task_id" : " 9649d202-03ac-437a-80e8-ff91ff4ace67 " ,
"task_status" : " FAILURE " ,
"message" : " The presentation export failed. " ,
"request_id" : " cmqf2lohi00017wlp3du979zt "
Use task_error for failed tasks
When task_status is FAILURE, use task_error for error handling. task_result and
task_info are task payload fields and may be null for failed tasks.
Code Status Retryable Meaning MISSING_API_KEY401 No The X-API-Key header was not provided. INVALID_API_KEY401 No The API key is invalid or inactive. NO_API_SUBSCRIPTION402 No No active API subscription was found. INSUFFICIENT_API_CREDITS403 No The API key does not have enough credits for the request. details carries required_credits and available_credits. USER_NOT_FOUND400 No The user behind the API key could not be resolved.
Code Status Retryable Meaning VALIDATION_FAILED422 No The request body, query, or path parameters failed validation. details.errors lists the failures. INVALID_LENGTH422 No The requested presentation length is not valid for this request. INVALID_LAYOUT400 No A layout name was given for a template that does not support it. INVALID_SLIDE_POSITION422 No The slide position is outside the presentation. UNSUPPORTED_SLIDE_EDIT422 No Cover and table-of-contents slides cannot be edited. UNSUPPORTED_FILE_TYPE400 No The uploaded file type is not supported. FILENAME_REQUIRED400 No The uploaded file is missing a filename. FILE_TOO_LARGE413 No The uploaded file exceeds the allowed size.
Code Status Retryable Meaning DOCUMENT_NOT_FOUND404 No One or more referenced documents were not found or are unavailable. VERSION_NOT_FOUND404 No The version_id does not exist, is older than the 90-day retention window, or belongs to another API key. TASK_ID_NOT_FOUND404 No The task id does not exist or is not visible to this API key. REQUEST_NOT_FOUND404 No The presentation request id was not found. REUSABLE_SECTION_NOT_ACCESSIBLE403 No The reusable section is not available to this user. DESIGN_KIT_NOT_ACCESSIBLE403 No The design kit is not available to this user.
These are the only codes worth retrying. Retry with exponential backoff.
Code Status Retryable Meaning REQUEST_NOT_READY404 Yes The request exists but does not have a result yet. Keep polling. DOWNLOAD_NOT_AVAILABLE404 Yes A download URL is not available yet. Keep polling. RATE_LIMITED429 Yes Too many requests. Back off and retry. GENERATION_FAILED500 Yes Presentation generation failed after the task started. EXPORT_FAILED500 Yes The presentation export failed after the task started. TASK_FAILED500 Yes The async task failed and no more specific error was stored. INTERNAL_ERROR500 Yes An unexpected server error occurred.
Read retryable, not the status code
error.retryable is the authoritative signal. Any 5xx, plus 408 and 429, is retryable even if
the code is not listed above. Everything else requires changing the request, API key, subscription,
credits, or referenced resources before retrying.