Skip to main content

Errors

Valydar uses standard HTTP status codes and consistent error responses.

Error Response Format​

{
"error": { "code": "unauthorized", "message": "Invalid API key" }
}

HTTP Status Codes​

StatusMeaning
200Success
201Created
400Bad Request — invalid input
401Unauthorized — missing or invalid API key
402Payment Required — plan limit / monthly quota reached
403Forbidden — key doesn't have permission
404Not Found — resource doesn't exist
409Conflict — resource already exists
413Payload Too Large — file exceeds 10MB
429Too Many Requests — rate limit exceeded
500Internal Server Error

Common Errors​

Invalid API Key​

{
"error": { "code": "unauthorized", "message": "Invalid API key" }
}

Fix: Check your API key is correct and includes a valid API key.

Rate Limited​

{
"error": { "code": "rate_limited", "message": "Rate limit exceeded" }
}

Requests-per-minute depend on your plan. Responses include Retry-After (seconds) and X-RateLimit-Limit.

Fix: Implement exponential backoff and respect Retry-After.

Payment Required (plan limit)​

Returned when your plan doesn't include a feature, or your monthly verification quota is reached.

{
"error": {
"code": "payment_required",
"message": "monthly verification limit reached for the free plan (100/100); upgrade to continue"
}
}

Fix: Upgrade your plan (e.g. via checkout) or wait for the next billing cycle.

Verification Not Found​

{
"error": { "code": "not_found", "message": "Verification not found" }
}

Fix: Check the verification ID is correct.

File Too Large​

{
"error": { "code": "payload_too_large", "message": "File exceeds maximum size of 10MB" }
}

Fix: Compress the image before uploading.

Missing Document​

{
"error": { "code": "bad_request", "message": "Document required before running face match" }
}

Fix: Upload a document before running face match.