Skip to content

Errors

All errors share one shape, regardless of which provider failed:

{
"error": {
"code": "all_providers_failed",
"message": "All providers failed for search",
"attempted": [
{ "provider": "serper", "status": "timeout", "latency_ms": 10000 },
{ "provider": "brave", "status": "rate_limited", "latency_ms": 220 }
]
}
}
HTTPCodeMeaning
400invalid_requestRequest body failed validation (message has details)
401unauthorizedMissing or invalid API key
402insufficient_creditsBalance exhausted — top up in the dashboard
404not_foundUnknown route or tool category
429rate_limitedPer-key rate limit exceeded
502all_providers_failedEvery candidate provider failed (never billed)
500internal_errorOur fault — retry, and tell us if it persists

Failed calls are never charged.