[{"data":1,"prerenderedAt":415},["ShallowReactive",2],{"navigation_docs":3,"-providers-brave":96,"-providers-brave-surround":410},[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":95},"Providers","\u002Fproviders","2.providers\u002F0.index",[49,51,55,59,63,67,71,75,79,83,87,91],{"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","i-lucide-library",{"id":97,"title":52,"body":98,"description":403,"extension":404,"links":405,"meta":406,"navigation":163,"path":53,"seo":408,"stem":54,"__hash__":409},"docs\u002F2.providers\u002F01.brave.md",{"type":99,"value":100,"toc":396},"minimark",[101,105,110,246,262,266,298,324,328,353,357,382,386,392],[102,103],"provider-facts",{"provider":104},"brave",[106,107,109],"h2",{"id":108},"address-it","Address it",[111,112,117],"pre",{"className":113,"code":114,"language":115,"meta":116,"style":116},"language-ts shiki shiki-themes github-light github-light poimandres","import { create } from \"@agntn\u002Fweb\";\n\nconst brave = create(\"brave\"); \u002F\u002F BRAVE_API_KEY\nconst results = await brave.search(\"typescript runtimes\", { maxResults: 10 });\n","ts","",[118,119,120,158,165,198],"code",{"__ignoreMap":116},[121,122,125,129,133,137,140,144,148,152,155],"span",{"class":123,"line":124},"line",1,[121,126,128],{"class":127},"sP0CR","import",[121,130,132],{"class":131},"sKlNE"," {",[121,134,136],{"class":135},"snHMy"," create",[121,138,139],{"class":131}," }",[121,141,143],{"class":142},"stCPd"," from",[121,145,147],{"class":146},"scVjq"," \"",[121,149,151],{"class":150},"sQ7BG","@agntn\u002Fweb",[121,153,154],{"class":146},"\"",[121,156,157],{"class":131},";\n",[121,159,161],{"class":123,"line":160},2,[121,162,164],{"emptyLinePlaceholder":163},true,"\n",[121,166,168,172,176,179,182,185,187,189,191,194],{"class":123,"line":167},3,[121,169,171],{"class":170},"s1TYA","const",[121,173,175],{"class":174},"saoiD"," brave",[121,177,178],{"class":170}," =",[121,180,136],{"class":181},"sULi6",[121,183,184],{"class":131},"(",[121,186,154],{"class":146},[121,188,104],{"class":150},[121,190,154],{"class":146},[121,192,193],{"class":131},"); ",[121,195,197],{"class":196},"sjhu3","\u002F\u002F BRAVE_API_KEY\n",[121,199,201,203,206,208,212,215,218,221,223,225,228,230,233,236,239,243],{"class":123,"line":200},4,[121,202,171],{"class":170},[121,204,205],{"class":174}," results",[121,207,178],{"class":170},[121,209,211],{"class":210},"sZW6a"," await",[121,213,175],{"class":214},"spVlQ",[121,216,217],{"class":131},".",[121,219,220],{"class":181},"search",[121,222,184],{"class":131},[121,224,154],{"class":146},[121,226,227],{"class":150},"typescript runtimes",[121,229,154],{"class":146},[121,231,232],{"class":131},", {",[121,234,235],{"class":135}," maxResults",[121,237,238],{"class":131},":",[121,240,242],{"class":241},"siHFe"," 10",[121,244,245],{"class":131}," });\n",[247,248,249,250,253,254,257,258,261],"p",{},"The key goes in the ",[118,251,252],{},"X-Subscription-Token"," header. Pass ",[118,255,256],{},"apiKey"," to ",[118,259,260],{},"create()"," if you do not want env involved.",[106,263,265],{"id":264},"what-it-reads","What it reads",[267,268,269,282],"table",{},[270,271,272],"thead",{},[273,274,275,279],"tr",{},[276,277,278],"th",{},"Call",[276,280,281],{},"Endpoint",[283,284,285],"tbody",{},[273,286,287,292],{},[288,289,290],"td",{},[118,291,220],{},[288,293,294,297],{},[118,295,296],{},"GET \u002Fres\u002Fv1\u002Fweb\u002Fsearch?q=…&count=…&offset=…"," on api.search.brave.com",[247,299,300,303,304,307,308,311,312,315,316,319,320,323],{},[118,301,302],{},"count"," is ",[118,305,306],{},"maxResults",", 20 at most. ",[118,309,310],{},"offset"," comes from the continuation and steps through pages of that size. ",[118,313,314],{},"query.more_results_available"," in the response decides whether the next token is ",[118,317,318],{},"next"," or ",[118,321,322],{},"end",", so Brave is one of the few engines that actually tells you.",[106,325,327],{"id":326},"what-comes-back","What comes back",[247,329,330,333,334,337,338,341,342,345,346,349,350,217],{},[118,331,332],{},"favicon"," from ",[118,335,336],{},"meta_url.favicon",", and ",[118,339,340],{},"text"," as the ",[118,343,344],{},"extra_snippets"," joined with newlines when Brave sends them. No score, no date, and no filters at all. ",[118,347,348],{},"includeDomains"," and friends come back in ",[118,351,352],{},"ignoredFilters",[106,354,356],{"id":355},"gotchas","Gotchas",[358,359,360,364,371],"ul",{},[361,362,363],"li",{},"A page is 20 results max. Ask for more and you get 20 plus a continuation.",[361,365,366,367,370],{},"Snippets carry ",[118,368,369],{},"\u003Cstrong>"," markup and HTML entities exactly as Brave sends them. Data, render as text.",[361,372,373,374,377,378,381],{},"The free plan is a couple of thousand queries a month and a burst gets you a 429 with ",[118,375,376],{},"Retry-After",", which is ",[118,379,380],{},"RateLimitError"," here.",[106,383,385],{"id":384},"where-it-lives","Where it lives",[247,387,388,391],{},[118,389,390],{},"src\u002Fproviders\u002Fbrave.ts",". Smallest search adapter with pagination, copy it when you write a new one.",[393,394,395],"style",{},"html pre.shiki code .sP0CR, html code.shiki .sP0CR{--shiki-light:#D73A49;--shiki-default:#D73A49;--shiki-dark:#5DE4C7}html pre.shiki code .sKlNE, html code.shiki .sKlNE{--shiki-light:#24292E;--shiki-default:#24292E;--shiki-dark:#A6ACCD}html pre.shiki code .snHMy, html code.shiki .snHMy{--shiki-light:#24292E;--shiki-default:#24292E;--shiki-dark:#ADD7FF}html pre.shiki code .stCPd, html code.shiki .stCPd{--shiki-light:#D73A49;--shiki-default:#D73A49;--shiki-dark:#A6ACCD}html pre.shiki code .scVjq, html code.shiki .scVjq{--shiki-light:#032F62;--shiki-default:#032F62;--shiki-dark:#A6ACCD}html pre.shiki code .sQ7BG, html code.shiki .sQ7BG{--shiki-light:#032F62;--shiki-default:#032F62;--shiki-dark:#5DE4C7}html pre.shiki code .s1TYA, html code.shiki .s1TYA{--shiki-light:#D73A49;--shiki-default:#D73A49;--shiki-dark:#91B4D5}html pre.shiki code .saoiD, html code.shiki .saoiD{--shiki-light:#005CC5;--shiki-default:#005CC5;--shiki-dark:#E4F0FB}html pre.shiki code .sULi6, html code.shiki .sULi6{--shiki-light:#6F42C1;--shiki-default:#6F42C1;--shiki-dark:#E4F0FBD0}html pre.shiki code .sjhu3, html code.shiki .sjhu3{--shiki-light:#6A737D;--shiki-light-font-style:inherit;--shiki-default:#6A737D;--shiki-default-font-style:inherit;--shiki-dark:#767C9DB0;--shiki-dark-font-style:italic}html pre.shiki code .sZW6a, html code.shiki .sZW6a{--shiki-light:#D73A49;--shiki-default:#D73A49;--shiki-dark:#5DE4C7C0}html pre.shiki code .spVlQ, html code.shiki .spVlQ{--shiki-light:#24292E;--shiki-default:#24292E;--shiki-dark:#E4F0FB}html pre.shiki code .siHFe, html code.shiki .siHFe{--shiki-light:#005CC5;--shiki-default:#005CC5;--shiki-dark:#5DE4C7}html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}",{"title":116,"searchDepth":160,"depth":160,"links":397},[398,399,400,401,402],{"id":108,"depth":160,"text":109},{"id":264,"depth":160,"text":265},{"id":326,"depth":160,"text":327},{"id":355,"depth":160,"text":356},{"id":384,"depth":160,"text":385},"The Brave Search API, one GET per page, with extra snippets joined into text and a continuation that carries the offset.","md",null,{"icon":407},"i-simple-icons-brave",{"title":52,"description":403},"t76wugntEiW498YsWcHcbJdjzbtoBRAfKW0ZnvL6Z5Y",[411,413],{"title":50,"path":46,"stem":47,"description":412,"children":-1},"Eleven providers, one class shape. Pick one to see its endpoints, the filters it honours, the fields it fills and the traps.",{"title":56,"path":57,"stem":58,"description":414,"children":-1},"The Context.dev API for search with Markdown ranked by relevance and for scraping pages into Markdown or HTML.",1788509441443]