Subscribe Sign in

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
}
StatusCodeMeaning
400invalid_jsonThe body is not valid JSON.
400missing_textSend {"text": "..."}.
400missing_fieldsA required field is missing; the message names it.
400missing_mediaSend {"media": [{"url": "..."}]} or {"url": "..."}.
400bad_requestThe address is not valid (for example, a broken percent-encoding).
401missing_api_keyNo key was sent. Use Authorization: Bearer vk_live_...
401malformed_api_keyThe key is not in the vk_live_ or vk_test_ format.
401unknown_api_keyNo such key.
401invalid_api_keyThe key did not verify.
401revoked_api_keyThe key has been revoked. Create a new one.
402product_not_in_planYour plan does not include this product.
402quota_exhaustedThe free plan’s monthly calls are used up. Move to pay as you go.
403account_past_dueThe last payment failed. Update the card in the billing portal; access returns when it succeeds.
403account_canceledThe account has been cancelled.
403product_not_in_key_scopeThis key was created without access to this product.
404not_foundNo such endpoint or record.
405method_not_allowedWrong HTTP method; the allow header lists the right one.
413payload_too_largeThe request body is larger than allowed.
413payload_too_longThe text has more words than your plan allows in one call.
415unsupported_media_typeSend JSON (content-type: application/json).
429rate_limitedToo many calls this minute. Wait for the seconds in retry-after.
429slow_downToo many attempts from one address at an endpoint that needs no key, such as starting a checkout.
500internal_errorOur fault. Quote the reference when you contact support.
501billing_not_configuredBilling is not set up on this server.
502stripe_errorThe payment provider did not answer. Try again shortly.