Skip to documentation
Open dashboard
On this page

Errors and rate limits

Understand error responses, retry safely and recover from failed generations.

Error response#

HTTP errors describe a rejected request. A saved operation can fail later while its status endpoint still returns HTTP 200.

JSON
{  "error": {    "code": "REQUEST_INVALID",    "message": "Check the request fields and try again.",    "request_id": "e8aa0a87-6cd9-42eb-975a-b72bf43218c8",    "retryable": false  },  "request_id": "e8aa0a87-6cd9-42eb-975a-b72bf43218c8"}

Recovery#

HTTPErrorRecovery
400Invalid requestREQUEST_INVALIDCorrect the fields identified by the error before trying again.
401Invalid credentialCREDENTIAL_INVALIDCheck the credential, its expiry and whether it has been revoked.
402Insufficient creditsINSUFFICIENT_CREDITSAdd credits to the account that owns the credential, then continue the saved work.
403Permission deniedSCOPE_REQUIREDUse a credential with the required scopes and access to the selected resource.
404Resource unavailableRESOURCE_UNAVAILABLECheck the resource ID and that it belongs to the authorized account.
409Intent conflictIDEMPOTENCY_CONFLICTReuse an intent only with its original request. Use a new UUID for a different action.
429Rate limitedRATE_LIMITEDWait for Retry-After before retrying the same intended request.
503Temporarily unavailableDEPENDENCY_UNAVAILABLEWait for Retry-After and retry with the same intent. Check the saved operation after a timeout.

Error#

JSON
{  "REQUEST_INVALID": "Check the request fields and try again.",  "TOOL_INPUT_INVALID": "The tool input does not match its public schema.",  "IDEMPOTENCY_KEY_REQUIRED": "Supply a UUID Idempotency-Key for this action.",  "IDEMPOTENCY_CONFLICT": "This intent was already used for different details.",  "CREDENTIAL_INVALID": "The credential is invalid, expired or revoked.",  "AUTHENTICATION_REQUIRED": "A valid credential is required.",  "SCOPE_REQUIRED": "The credential does not permit this action.",  "ACTION_FORBIDDEN": "This action is not permitted.",  "ORIGIN_DENIED": "This origin is not registered for the credential.",  "RESOURCE_UNAVAILABLE": "The requested resource is unavailable.",  "TOOL_UNAVAILABLE": "This tool is unavailable.",  "CURSOR_INVALID": "Refresh the list and try again.",  "ACTION_CHANGED": "The action or its target changed. Read its current state.",  "HUMAN_REVIEW_REQUIRED": "Review this action in the authenticated Tong dashboard.",  "REVIEW_EXPIRED": "This review expired. Read the current operation.",  "INSUFFICIENT_CREDITS": "Add credits to continue.",  "PAID_FEATURE_DEPOSIT_REQUIRED": "Complete the account deposit requirement to use this tool.",  "POLICIES_REQUIRED": "Accept the current account policies to continue.",  "ACCOUNT_UNAVAILABLE": "This account is unavailable.",  "RATE_LIMITED": "Too many requests. Retry after the indicated interval.",  "QUEUE_FULL": "The account work queue is full. Retry later.",  "WEBHOOK_LIMIT": "The account webhook limit has been reached.",  "WEBHOOK_DESTINATION_INVALID": "Use an allowed public HTTPS webhook destination.",  "QUOTE_INVALID": "The quote is invalid or does not match this request.",  "QUOTE_UNAVAILABLE": "The requested quote is unavailable.",  "EXPORT_NOT_READY": "The export is not ready for download.",  "EXPORT_TOO_LARGE": "Narrow the export interval or filters.",  "QUERY_TOO_LARGE": "Narrow the query interval or filters.",  "INTERVAL_INVALID": "Use a valid interval of at most 90 days.",  "UPLOAD_TOO_LARGE": "The upload exceeds the media purpose limit.",  "DEVELOPER_ACCESS_UNAVAILABLE": "Developer access is unavailable.",  "DEPENDENCY_UNAVAILABLE": "A required service is temporarily unavailable.",  "CATALOG_UNAVAILABLE": "The current model catalog is temporarily unavailable.",  "CONFIGURATION_INVALID": "Developer service configuration is unavailable."}

Retries and timeouts#

Keep one UUID for each intended action and reuse it after a timeout or retry. A different input with the same UUID is rejected.

curl 'https://platform.tongai.io/v1/operations/by-intent/45be69f1-c266-4a09-a82c-bf3c6303eb03' \  -H "Authorization: Bearer $TONG_API_KEY"
Configuration
curl --version

Rate limits#

HTTP
Retry-After: {seconds}active_queue_per_account: 100admissions_per_minute: owner=500, credential=180, client=1000HTTP_per_minute: owner=5000, credential=2000, client=10000, IP=1000query_interval_max_days: 90export_max_rows: 100000export_max_bytes: 33554432webhooks_per_account: 10webhook_delivery_attempts: 12

Respect Retry-After. Retry a temporary failure with the same intent after waiting; do not create a second paid action.