Providers

Providers

Thirteen providers, one class shape. Pick one to see its endpoints, the filters it honours, the fields it fills and the traps.

Every search provider answers the same search() with the same SearchResult. Six of them also read(), one also searchByImage(). What changes is the API behind it, the filters it can honour, which optional fields it fills, and what ends up in metadata. The pages are short on purpose. The part worth reading on each one is the gotcha list.

ProviderEnv varSearchImageReadFiltersPaging
BraveBRAVE_API_KEYyesdatesyes
Context.devCONTEXT_DEV_API_KEYyesyesdomains
ExaEXA_API_KEYyesyesdomains, category, dates
FirecrawlFIRECRAWL_API_KEYyesyesdomains, sources, categories
JinaJINA_API_KEYyesyesinclude domains, category
MarginaliaMARGINALIA_API_KEY, or the shared public key when namedyesnoneyes
MojeekMOJEEK_API_KEYyesdomains, datesyes
OpenAI CodexExisting login; optional OPENAI_CODEX_ACCESS_TOKENyesnone
SearXNGnoneyescategoryyes
SerpAPISERPAPI_API_KEYyesyesdatesyes
SerpBaseSERPBASE_API_KEYyescategoryyes
TavilyTAVILY_API_KEYyesyesdomains, category, dates
TinyFishTINYFISH_API_KEYyesyesdomains, category, datesyes