Error Codes
All error responses follow the same shape:
{ "success": false, "error_code": "..." }
invalid_site_key
Invalid site key
The provided site_key does not match any project.
Double-check the key in your dashboard and make sure it belongs to the correct project.
project_inactive
Project inactive
The project associated with this site key is inactive.
Log in to your dashboard and verify the project status.
monthly_limit_exceeded
Monthly challenge limit exceeded
Your plan's monthly challenge quota has been reached.
Upgrade your plan or wait for the limit to reset at the start of next month.
rate_limited
Rate limited
Too many challenge requests from this IP or site key in a short window. The response also includes a retry_after field (seconds).
Wait for the retry_after value before sending another request.
rate_limited
Rate limited
Too many verify requests from this IP in a short window.
Wait for the short rate-limit window to pass before retrying verification requests.
invalid_token
Invalid token
The token passed to /verify is missing, invalid, already used, or no longer available.
Ensure the client submits the latest token returned by /challenge and does not reuse old tokens.
invalid_solution
Invalid solution
The provided solution does not satisfy the Proof-of-Work requirement for the given token.
Make sure captcha.js is loaded and has completed before form submission.
ip_mismatch
IP mismatch
The IP address that requested the challenge does not match the IP making the verify request.
Make sure challenge and verify requests represent the same client IP path, especially when proxies or load balancers are involved.