- Query: 3–2000 characters. Outside that range the
POSTis422; whitespace only is400. - Target: 1–50 results. Omitting the field leaves the server default of 50, which is the most expensive setting, so send a value you actually want.
- The server repeats the funnel for at most 6 rounds, then stops and sets
metfrom what it actually found. speed: "fast"reads fewer pages thanadvanced. Sendfastunless you want the deeper pass. Omittingspeedselectsadvanced.relax: trueis the default. Setfalseto keep every filter as first written.sitesis optional. When it names websites, every search in the run stays on those sites. Leave it empty to search the web. At most 20 domains.- Every run carries a deadline, published as
deadlineAtand one hour out on the hosted service. A run still going then is ended by the server and lands asinterruptedwithstopReason: "deadline". GET /v1/searchesreturns your 50 most recent runs. There are no paging parameters.- Events expire 24 hours after they are written, which is also how long
resultkeeps answering on a finished run. - An API key’s name is 1–100 characters.
Concurrency
Nothing caps how many searches you run at once. The bound is money: each one holds 25.00 free, and the next is refused with a402 until one of them lands or you top up. There is no per-account rate limit and no “already running a search” refusal: that was a property of the old one-run-per-connection transport and it is gone.
Streaming does not consume a slot either. Any number of readers can stream the same run, and a run keeps going whether or not anyone is reading it.
