q
string, required
The query text. This is the only mandatory parameter.
Reference
All parameters go on /search as a query string. Unknown parameters are ignored rather than rejected, so a newer client can talk to an older instance.
string, required
The query text. This is the only mandatory parameter.
json (default), html, rss, csv
Response shape. json matches the SearXNG 1.0 schema, so an existing SearXNG client only needs a new hostname.
comma separated, default general
Which source groups to query: general, images, videos, news, science, it, map, music, files, social media. Comma or plus separated.
comma separated
Pin specific engines instead of a whole category. An engine that is not in the registry is reported in unresponsive_engines rather than silently dropped.
two-letter code, default en
Preferred result language where the upstream source supports it.
integer, default 1
Result page. Sources that do not paginate return the same first page rather than an error.
day, week, month, year
Restrict news and results by recency. Ignored by sources without a time filter.
0, 1, 2, default 0
Adult-content filter level, applied per source where the source supports it.
Send your key as a header. Query-string keys are refused on purpose, because URLs end up in logs and referrer headers.
X-API-Key: hvk_... preferred
Authorization: Bearer hvk_... also accepted
| Field | Type | Meaning |
|---|---|---|
| query | string | Echo of the query, after normalisation |
| number_of_results | integer | Merged count across every source that answered |
| results | array | Ranked, de-duplicated hits |
| answers | array | Direct answers for entity queries |
| corrections | array | Spelling suggestions offered by a source |
| infoboxes | array | Entity panels with source and thumbnail |
| suggestions | array | Related queries |
| unresponsive_engines | array | Sources that failed, each with the reason |
200 characters. Anything longer is truncated rather than rejected, so a pasted paragraph still returns something.
Up to 100 results returned per response, regardless of how many sources matched.
Each source is given a short budget. A slow source is recorded in unresponsive_engines instead of holding the whole response.
Proxied thumbnails are limited to public HTTP(S) addresses. Private and link-local ranges are refused.