Skip to main content

Errors

Errors use a Google-style envelope:

{
"error": {
"code": 401,
"message": "Missing API key",
"status": "UNAUTHENTICATED"
}
}

Common statuses you may see:

  • INVALID_ARGUMENT (400): missing/invalid parameters, request too large
  • UNAUTHENTICATED (401): missing/invalid API key
  • PERMISSION_DENIED (403): account disabled
  • RESOURCE_EXHAUSTED (429): no active plan/credits for the account
  • INTERNAL (5xx): provider errors, timeouts, unexpected failures

Frequently asked questions​

Which HTTP status codes and status strings should I expect?​

HTTP statusstatus stringTypical cause
400INVALID_ARGUMENTMalformed request or missing parameters.
401UNAUTHENTICATEDInvalid or missing API key.
403PERMISSION_DENIEDAccount is disabled.
404NOT_FOUNDUnknown endpoint or route.
429RESOURCE_EXHAUSTEDRate limit or quota exceeded.
5xxINTERNALServer-side error.

There are also specific billing-related status strings: MONTHLY_CHARACTER_LIMIT_EXCEEDED (monthly character limit reached) and PAYMENT_REQUIRED (no active payment method or subscription).

When should I retry a request?​

Only retry on 429 (RESOURCE_EXHAUSTED) and 5xx (INTERNAL) responses. Other 4xx errors (e.g., INVALID_ARGUMENT, UNAUTHENTICATED) will not succeed on retry without modifying the request or the API key.

What does MONTHLY_CHARACTER_LIMIT_EXCEEDED mean, and how do I resolve it?​

This status is returned when your account has used up its monthly character allowance. The HTTP status is 429. To continue translating, upgrade your plan or wait until the next billing cycle.

I got a NOT_FOUND (404) error. What should I check?​

The endpoint you requested does not exist. Verify the URL path (the translate endpoint is POST /language/translate/v2) and confirm you are using the correct base URL from the API documentation.