docs/dev/search_api.rst
.. _search API:
SearXNG supports querying via a simple HTTP API.
Two endpoints, / and /search, are supported for both GET and POST methods.
The GET method expects parameters as URL query parameters, while the POST method expects parameters as form data.
If you want to consume the results as JSON, CSV, or RSS, you need to set the
format parameter accordingly. Supported formats are defined in settings.yml, under the search section.
Requesting an unset format will return a 403 Forbidden error. Be aware that many public instances have these formats disabled.
Endpoints:
GET /
GET /search
POST /
POST /search
example cURL calls:
.. code-block:: bash
curl 'https://searx.example.org/search?q=searxng&format=json'
curl -X POST 'https://searx.example.org/search' -d 'q=searxng&format=csv'
curl -L -X POST -d 'q=searxng&format=json' 'https://searx.example.org/'
.. sidebar:: Further reading ..
engines-devsettings.ymlconfigured enginesq : required
The search query. This string is passed to external search services. Thus,
SearXNG supports syntax of each search service. For example, site:github.com SearXNG is a valid query for Google. However, if simply the query above is
passed to any search engine which does not filter its results based on this
syntax, you might not get the results you wanted.
See more at :ref:search-syntax
categories : optional
Comma separated list, specifies the active search categories (see
:ref:configured engines)
engines : optional
Comma separated list, specifies the active search engines (see
:ref:configured engines).
language : default from :ref:settings search
Code of the language.
pageno : default 1
Search page number.
time_range : optional
[ day, month, year ]
Time range of search for engines which support it. See if an engine supports time range search in the preferences page of an instance.
format : optional
[ json, csv, rss ]
Output format of results. Format needs to be activated in :ref:settings search.
results_on_new_tab : default 0
[ 0, 1 ]
Open search results on new tab.
image_proxy : default from :ref:settings server
[ True, False ]
Proxy image results through SearXNG.
autocomplete : default from :ref:settings search
[ google, dbpedia, duckduckgo, mwmbl, startpage,
wikipedia, swisscows, qwant ]
Service which completes words as you type.
safesearch : default from :ref:settings search
[ 0, 1, 2 ]
Filter search results of engines which support safe search. See if an engine supports safe search in the preferences page of an instance.
theme : default simple
[ simple ]
Theme of instance.
Please note, available themes depend on an instance. It is possible that an instance administrator deleted, created or renamed themes on their instance. See the available options in the preferences page of the instance.
enabled_plugins : optional
List of enabled plugins.
:default:
Hash_plugin, Self_Information,
Tracker_URL_remover, Ahmia_blacklist
:values: .. enabled by default
``Hash_plugin``, ``Self_Information``,
``Tracker_URL_remover``, ``Ahmia_blacklist``,
.. disabled by default
``Hostnames_plugin``, ``Open_Access_DOI_rewrite``,
``Vim-like_hotkeys``, ``Tor_check_plugin``
disabled_plugins: optional
List of disabled plugins.
:default:
Hostnames_plugin, Open_Access_DOI_rewrite,
Vim-like_hotkeys, Tor_check_plugin
:values:
see values from enabled_plugins
enabled_engines : optional : all :origin:engines <searx/engines>
List of enabled engines.
disabled_engines : optional : all :origin:engines <searx/engines>
List of disabled engines.