Errors
Every error response has the same shape, and the docs field
always points at the matching section below.
{
"error": {
"code": "QUOTA_EXCEEDED",
"message": "Monthly quota exceeded for this API key.",
"docs": "https://kramank.pages.dev/errors#QUOTA_EXCEEDED"
}
}
Authentication & authorization
MISSING_API_KEY 401
No API key was sent. Provide one via Authorization: Bearer <key> or
X-API-Key. Direct-channel requests only — RapidAPI requests are identified by
X-RapidAPI-User instead.
INVALID_API_KEY 401
The API key sent doesn't match any key on record.
REVOKED_API_KEY 401
The API key was valid once but has since been revoked. Issue a new key.
WRONG_PRODUCT 403
The API key is valid but was issued for a different product (reference data vs. invoice extraction). Use a key issued for the product you're calling.
INVALID_PROXY_SECRET 401
RapidAPI channel only. The X-RapidAPI-Proxy-Secret header didn't match — this
means the request didn't actually come through RapidAPI's proxy.
MISSING_RAPIDAPI_USER 401
RapidAPI channel only. The X-RapidAPI-User header, which identifies the
calling customer, was missing.
Quota
QUOTA_EXCEEDED 429
Direct channel only — RapidAPI enforces its own quota. You've used your plan's monthly
call allowance; it resets at the start of next month, or upgrade your plan. The response
includes X-Quota-Limit and X-Quota-Remaining: 0 headers.
Format validation
For GSTIN/PAN, these come from candidate input that isn't even plausible — empty, or
absurdly long; anything else returns 200 with valid: false instead.
For IFSC/pincode, any pattern mismatch returns one of these, since those endpoints are
lookups, not format checkers — a well-formed-but-unknown value returns
IFSC not found/pincode not found
(404) instead.
INVALID_IFSC_FORMAT 400
The input doesn't match AAAA0XXXXXX (4 letters, then 0, then 6
alphanumerics).
INVALID_PINCODE_FORMAT 400
The input isn't a plausible 6-digit pincode.
GSTIN_TOO_LONG 400
The input is longer than any plausible GSTIN (over 50 characters) and was rejected before validation ran.
GSTIN_EMPTY 400
The GSTIN input was empty.
PAN_TOO_LONG 400
The input is longer than any plausible PAN (over 50 characters) and was rejected before validation ran.
PAN_EMPTY 400
The PAN input was empty.
Not found
The input was well-formed, but nothing matched it in the underlying dataset.
IFSC_NOT_FOUND 404
No IFSC record found for this code.
PINCODE_NOT_FOUND 404
No post offices found for this pincode.