NAME

Net::Async::WebSearch::Provider::SearxNG - SearxNG/Searx JSON endpoint provider

VERSION

version 0.002

SYNOPSIS

my $sx = Net::Async::WebSearch::Provider::SearxNG->new(
  endpoint => 'https://searxng.example.org',
  name     => 'my-searxng',
  api_key  => 'optional-bearer-token',
);

DESCRIPTION

Provider for self-hosted or public SearxNG instances using the JSON format (&format=json). The endpoint instance must have the JSON output format enabled in its settings.yml.

RUNNING A LOCAL SEARXNG

The default SearxNG settings only serve HTML — hitting ?format=json returns 403 Forbidden until you explicitly enable it. In modern SearxNG the built-in rate limiter also requires both a Valkey instance (redis is deprecated in its config) AND a separate /etc/searxng/limiter.toml.

For a private single-user instance you don't need any of that complexity: ship a settings.yml that turns server.limiter off and enables json in search.formats, and you're done. See ex/docker-compose.searxng.yml and ex/searxng/settings.yml in this distribution for a working config. Paste your own server.secret_key (openssl rand -hex 32) into the yaml before first start.

If you later expose the instance publicly you'll want to turn the limiter back on — then add a Valkey container, set valkey.url, and write a limiter.toml. See https://docs.searxng.org/admin/searx.limiter.html.

endpoint

Required. Base URL of the SearxNG instance (no trailing slash needed).

api_key

Optional. Sent as a Bearer token (some private instances protect JSON).

Honours limit, language, safesearch, categories, engines, pageno.

SEE ALSO

https://docs.searxng.org/

SUPPORT

Issues

Please report bugs and feature requests on GitHub at https://github.com/Getty/p5-net-async-websearch/issues.

CONTRIBUTING

Contributions are welcome! Please fork the repository and submit a pull request.

AUTHOR

Torsten Raudssus <torsten@raudssus.de> https://raudss.us/

COPYRIGHT AND LICENSE

This software is copyright (c) 2026 by Torsten Raudssus.

This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.