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 largeUNAUTHENTICATED(401): missing/invalid API keyPERMISSION_DENIED(403): account disabledRESOURCE_EXHAUSTED(429): no active plan/credits for the accountINTERNAL(5xx): provider errors, timeouts, unexpected failures
Frequently asked questions​
Which HTTP status codes and status strings should I expect?​
| HTTP status | status string | Typical cause |
|---|---|---|
| 400 | INVALID_ARGUMENT | Malformed request or missing parameters. |
| 401 | UNAUTHENTICATED | Invalid or missing API key. |
| 403 | PERMISSION_DENIED | Account is disabled. |
| 404 | NOT_FOUND | Unknown endpoint or route. |
| 429 | RESOURCE_EXHAUSTED | Rate limit or quota exceeded. |
| 5xx | INTERNAL | Server-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.