Errors
Errors are JSON with a stable error code and a human message:
{
"error": "rate_limited",
"message": "Too many calls this minute.",
"retry_after_seconds": 12
}| Status | Code | Meaning |
|---|---|---|
| 400 | invalid_json | The body is not valid JSON. |
| 400 | missing_text | Send {"text": "..."}. |
| 400 | missing_fields | A required field is missing; the message names it. |
| 400 | missing_media | Send {"media": [{"url": "..."}]} or {"url": "..."}. |
| 400 | bad_request | The address is not valid (for example, a broken percent-encoding). |
| 401 | missing_api_key | No key was sent. Use Authorization: Bearer vk_live_... |
| 401 | malformed_api_key | The key is not in the vk_live_ or vk_test_ format. |
| 401 | unknown_api_key | No such key. |
| 401 | invalid_api_key | The key did not verify. |
| 401 | revoked_api_key | The key has been revoked. Create a new one. |
| 402 | product_not_in_plan | Your plan does not include this product. |
| 402 | quota_exhausted | The free plan’s monthly calls are used up. Move to pay as you go. |
| 403 | account_past_due | The last payment failed. Update the card in the billing portal; access returns when it succeeds. |
| 403 | account_canceled | The account has been cancelled. |
| 403 | product_not_in_key_scope | This key was created without access to this product. |
| 404 | not_found | No such endpoint or record. |
| 405 | method_not_allowed | Wrong HTTP method; the allow header lists the right one. |
| 413 | payload_too_large | The request body is larger than allowed. |
| 413 | payload_too_long | The text has more words than your plan allows in one call. |
| 415 | unsupported_media_type | Send JSON (content-type: application/json). |
| 429 | rate_limited | Too many calls this minute. Wait for the seconds in retry-after. |
| 429 | slow_down | Too many attempts from one address at an endpoint that needs no key, such as starting a checkout. |
| 500 | internal_error | Our fault. Quote the reference when you contact support. |
| 501 | billing_not_configured | Billing is not set up on this server. |
| 502 | stripe_error | The payment provider did not answer. Try again shortly. |