Skip to main content
Errors come back as JSON, with a stable error code to test in your code. Some carry extra fields that help you react:
Match on error, not on the wording of a message: messages can change, codes do not.
A refused call never takes a search from your quota. The input, your plan and the removals are checked before anything is counted, and a search refused by a limit is not counted either. The one exception is a 404 from a single-module route: it is an answer (“nothing there”), and it counts. What takes a search →

Error codes

Your request

Your key

Limits

Our side

In a search, a failing source never fails the whole call: that module answers "status": "error" and the others still come back.