[{"data":1,"prerenderedAt":526},["ShallowReactive",2],{"navigation_docs":3,"-providers":104,"-providers-surround":522},[4,44],{"title":5,"path":6,"stem":7,"children":8,"icon":43},"Guide","\u002Fguide","1.guide\u002F1.index",[9,11,15,19,23,27,31,35,39],{"title":10,"path":6,"stem":7},"Getting Started",{"title":12,"path":13,"stem":14},"Searching","\u002Fguide\u002Fsearch","1.guide\u002F2.search",{"title":16,"path":17,"stem":18},"Fan-out","\u002Fguide\u002Ffanout","1.guide\u002F3.fanout",{"title":20,"path":21,"stem":22},"Reading","\u002Fguide\u002Fread","1.guide\u002F4.read",{"title":24,"path":25,"stem":26},"Reverse Image Search","\u002Fguide\u002Fimage","1.guide\u002F5.image",{"title":28,"path":29,"stem":30},"CLI","\u002Fguide\u002Fcli","1.guide\u002F6.cli",{"title":32,"path":33,"stem":34},"Agents","\u002Fguide\u002Fagents","1.guide\u002F7.agents",{"title":36,"path":37,"stem":38},"Custom Providers","\u002Fguide\u002Fcustom","1.guide\u002F8.custom",{"title":40,"path":41,"stem":42},"Explorer","\u002Fguide\u002Fexplorer","1.guide\u002F9.explorer","i-lucide-book-open",{"title":45,"path":46,"stem":47,"children":48,"icon":103},"Providers","\u002Fproviders","2.providers\u002F0.index",[49,51,55,59,63,67,71,75,79,83,87,91,95,99],{"title":50,"path":46,"stem":47},"Overview",{"title":52,"path":53,"stem":54},"Brave","\u002Fproviders\u002Fbrave","2.providers\u002F01.brave",{"title":56,"path":57,"stem":58},"Context.dev","\u002Fproviders\u002Fcontext","2.providers\u002F02.context",{"title":60,"path":61,"stem":62},"Exa","\u002Fproviders\u002Fexa","2.providers\u002F03.exa",{"title":64,"path":65,"stem":66},"Firecrawl","\u002Fproviders\u002Ffirecrawl","2.providers\u002F04.firecrawl",{"title":68,"path":69,"stem":70},"Jina","\u002Fproviders\u002Fjina","2.providers\u002F05.jina",{"title":72,"path":73,"stem":74},"Mojeek","\u002Fproviders\u002Fmojeek","2.providers\u002F06.mojeek",{"title":76,"path":77,"stem":78},"SearXNG","\u002Fproviders\u002Fsearxng","2.providers\u002F07.searxng",{"title":80,"path":81,"stem":82},"SerpAPI","\u002Fproviders\u002Fserpapi","2.providers\u002F08.serpapi",{"title":84,"path":85,"stem":86},"SerpBase","\u002Fproviders\u002Fserpbase","2.providers\u002F09.serpbase",{"title":88,"path":89,"stem":90},"Tavily","\u002Fproviders\u002Ftavily","2.providers\u002F10.tavily",{"title":92,"path":93,"stem":94},"TinyFish","\u002Fproviders\u002Ftinyfish","2.providers\u002F11.tinyfish",{"title":96,"path":97,"stem":98},"OpenAI Codex","\u002Fproviders\u002Fopenai-codex","2.providers\u002F12.openai-codex",{"title":100,"path":101,"stem":102},"Marginalia","\u002Fproviders\u002Fmarginalia","2.providers\u002F13.marginalia","i-lucide-library",{"id":105,"title":45,"body":106,"description":515,"extension":516,"links":517,"meta":518,"navigation":519,"path":46,"seo":520,"stem":47,"__hash__":521},"docs\u002F2.providers\u002F0.index.md",{"type":107,"value":108,"toc":511},"minimark",[109,134,455],[110,111,112,113,117,118,121,122,125,126,129,130,133],"p",{},"Every search provider answers the same ",[114,115,116],"code",{},"search()"," with the same ",[114,119,120],{},"SearchResult",". Six of them also ",[114,123,124],{},"read()",", one also ",[114,127,128],{},"searchByImage()",". What changes is the API behind it, the filters it can honour, which optional fields it fills, and what ends up in ",[114,131,132],{},"metadata",". The pages are short on purpose. The part worth reading on each one is the gotcha list.",[135,136,137,165],"table",{},[138,139,140],"thead",{},[141,142,143,147,150,153,156,159,162],"tr",{},[144,145,146],"th",{},"Provider",[144,148,149],{},"Env var",[144,151,152],{},"Search",[144,154,155],{},"Image",[144,157,158],{},"Read",[144,160,161],{},"Filters",[144,163,164],{},"Paging",[166,167,168,193,215,237,259,281,308,330,352,371,392,413,434],"tbody",{},[141,169,170,176,181,184,186,188,191],{},[171,172,173],"td",{},[174,175,52],"a",{"href":53},[171,177,178],{},[114,179,180],{},"BRAVE_API_KEY",[171,182,183],{},"yes",[171,185],{},[171,187],{},[171,189,190],{},"dates",[171,192,183],{},[141,194,195,199,204,206,208,210,213],{},[171,196,197],{},[174,198,56],{"href":57},[171,200,201],{},[114,202,203],{},"CONTEXT_DEV_API_KEY",[171,205,183],{},[171,207],{},[171,209,183],{},[171,211,212],{},"domains",[171,214],{},[141,216,217,221,226,228,230,232,235],{},[171,218,219],{},[174,220,60],{"href":61},[171,222,223],{},[114,224,225],{},"EXA_API_KEY",[171,227,183],{},[171,229],{},[171,231,183],{},[171,233,234],{},"domains, category, dates",[171,236],{},[141,238,239,243,248,250,252,254,257],{},[171,240,241],{},[174,242,64],{"href":65},[171,244,245],{},[114,246,247],{},"FIRECRAWL_API_KEY",[171,249,183],{},[171,251],{},[171,253,183],{},[171,255,256],{},"domains, sources, categories",[171,258],{},[141,260,261,265,270,272,274,276,279],{},[171,262,263],{},[174,264,68],{"href":69},[171,266,267],{},[114,268,269],{},"JINA_API_KEY",[171,271,183],{},[171,273],{},[171,275,183],{},[171,277,278],{},"include domains, category",[171,280],{},[141,282,283,287,297,299,301,303,306],{},[171,284,285],{},[174,286,100],{"href":101},[171,288,289,292,293,296],{},[114,290,291],{},"MARGINALIA_API_KEY",", or the shared ",[114,294,295],{},"public"," key when named",[171,298,183],{},[171,300],{},[171,302],{},[171,304,305],{},"none",[171,307,183],{},[141,309,310,314,319,321,323,325,328],{},[171,311,312],{},[174,313,72],{"href":73},[171,315,316],{},[114,317,318],{},"MOJEEK_API_KEY",[171,320,183],{},[171,322],{},[171,324],{},[171,326,327],{},"domains, dates",[171,329,183],{},[141,331,332,336,342,344,346,348,350],{},[171,333,334],{},[174,335,96],{"href":97},[171,337,338,339],{},"Existing login; optional ",[114,340,341],{},"OPENAI_CODEX_ACCESS_TOKEN",[171,343,183],{},[171,345],{},[171,347],{},[171,349,305],{},[171,351],{},[141,353,354,358,360,362,364,366,369],{},[171,355,356],{},[174,357,76],{"href":77},[171,359,305],{},[171,361,183],{},[171,363],{},[171,365],{},[171,367,368],{},"category",[171,370,183],{},[141,372,373,377,382,384,386,388,390],{},[171,374,375],{},[174,376,80],{"href":81},[171,378,379],{},[114,380,381],{},"SERPAPI_API_KEY",[171,383,183],{},[171,385,183],{},[171,387],{},[171,389,190],{},[171,391,183],{},[141,393,394,398,403,405,407,409,411],{},[171,395,396],{},[174,397,84],{"href":85},[171,399,400],{},[114,401,402],{},"SERPBASE_API_KEY",[171,404,183],{},[171,406],{},[171,408],{},[171,410,368],{},[171,412,183],{},[141,414,415,419,424,426,428,430,432],{},[171,416,417],{},[174,418,88],{"href":89},[171,420,421],{},[114,422,423],{},"TAVILY_API_KEY",[171,425,183],{},[171,427],{},[171,429,183],{},[171,431,234],{},[171,433],{},[141,435,436,440,445,447,449,451,453],{},[171,437,438],{},[174,439,92],{"href":93},[171,441,442],{},[114,443,444],{},"TINYFISH_API_KEY",[171,446,183],{},[171,448],{},[171,450,183],{},[171,452,234],{},[171,454,183],{},[456,457,458,463,467,471,475,479,483,487,491,495,499,503,507],"card-group",{},[459,460,462],"card",{"icon":461,"title":52,"to":53},"i-simple-icons-brave","The Brave Search API, one GET per page, with extra snippets joined into text and a continuation that carries the offset.",[459,464,466],{"icon":465,"title":56,"to":57},"i-lucide-book-text","The Context.dev API for search with Markdown ranked by relevance and for scraping pages into Markdown or HTML.",[459,468,470],{"icon":469,"title":60,"to":61},"i-lucide-sparkles","The Exa neural search API, the richest result shape of the built-ins, with highlights by default and summaries and full text on request, and Exa Contents for reading pages.",[459,472,474],{"icon":473,"title":64,"to":65},"i-lucide-flame","The Firecrawl v2 API for search with scraped passages and for scraping a page into Markdown or HTML.",[459,476,478],{"icon":477,"title":68,"to":69},"i-lucide-file-text","Jina's s.jina.ai for search and r.jina.ai for reading, the default reader, with an optional key.",[459,480,482],{"icon":481,"title":100,"to":101},"i-lucide-notebook-text","Marginalia Search, an independent index of small personal sites and plain text pages, usable without a key when you name it.",[459,484,486],{"icon":485,"title":72,"to":73},"i-simple-icons-mojeek","The Mojeek Search API, an independent index with classic SERP metadata, domain and date filters and paging.",[459,488,490],{"icon":489,"title":96,"to":97},"i-lucide-search","Hosted web search through the ChatGPT Codex backend using an existing Pi, OMP, Codex or OpenCode login. Native sources, not snippets invented by the model.",[459,492,494],{"icon":493,"title":76,"to":77},"i-simple-icons-searxng","A self-hosted SearXNG metasearch instance, no key, with a reachability probe and the engines behind each result in metadata.",[459,496,498],{"icon":497,"title":80,"to":81},"i-lucide-scan-search","SerpAPI's Google endpoints for classic SERP results and Google Lens for reverse image search.",[459,500,502],{"icon":501,"title":84,"to":85},"i-lucide-layers","SerpBase's Google SERP endpoints, with a category that picks the web, images, news or videos endpoint.",[459,504,506],{"icon":505,"title":88,"to":89},"i-lucide-compass","The Tavily search API, with an optional generated answer in response metadata, and Tavily Extract for reading pages.",[459,508,510],{"icon":509,"title":92,"to":93},"i-lucide-fish","TinyFish Search for news and research results with publisher metadata, and TinyFish Fetch for reading pages.",{"title":512,"searchDepth":513,"depth":513,"links":514},"",2,[],"Thirteen providers, one class shape. Pick one to see its endpoints, the filters it honours, the fields it fills and the traps.","md",null,{"icon":103},{"title":50},{"title":45,"description":515},"qk7GPFkd4S9A2705ZVuR-veKXUL_btPIAdg1Lx5ZA0U",[523,525],{"title":40,"path":41,"stem":42,"description":524,"children":-1},"The explorer page behind web.agntn.dev that runs the library live, and what it does to be a good citizen.",{"title":52,"path":53,"stem":54,"description":462,"children":-1},1790458674841]