[{"data":1,"prerenderedAt":663},["ShallowReactive",2],{"navigation_docs":3,"-providers-exa":104,"-providers-exa-surround":658},[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":60,"body":106,"description":651,"extension":652,"links":653,"meta":654,"navigation":177,"path":61,"seo":656,"stem":62,"__hash__":657},"docs\u002F2.providers\u002F03.exa.md",{"type":107,"value":108,"toc":644},"minimark",[109,113,118,384,392,396,473,495,499,530,564,568,631,635,640],[110,111],"provider-facts",{"provider":112},"exa",[114,115,117],"h2",{"id":116},"address-it","Address it",[119,120,125],"pre",{"className":121,"code":122,"language":123,"meta":124,"style":124},"language-ts shiki shiki-themes github-light github-light poimandres","import { create, readUrl } from \"@agntn\u002Fweb\";\n\nconst exa = await create(\"exa\"); \u002F\u002F EXA_API_KEY\nconst results = await exa.search(\"typescript runtime benchmarks\", {\n  maxResults: 5,\n  summary: true,\n  fullText: true,\n  category: \"research paper\",\n  startPublishedDate: \"2026-01-01\",\n});\n\nconst page = await readUrl(\"https:\u002F\u002Fbun.sh\u002Fblog\", { provider: \"exa\", noCache: true });\n","ts","",[126,127,128,172,179,216,249,265,278,290,307,324,330,335],"code",{"__ignoreMap":124},[129,130,133,137,141,145,148,151,154,158,162,166,169],"span",{"class":131,"line":132},"line",1,[129,134,136],{"class":135},"sP0CR","import",[129,138,140],{"class":139},"sKlNE"," {",[129,142,144],{"class":143},"snHMy"," create",[129,146,147],{"class":139},",",[129,149,150],{"class":143}," readUrl",[129,152,153],{"class":139}," }",[129,155,157],{"class":156},"stCPd"," from",[129,159,161],{"class":160},"scVjq"," \"",[129,163,165],{"class":164},"sQ7BG","@agntn\u002Fweb",[129,167,168],{"class":160},"\"",[129,170,171],{"class":139},";\n",[129,173,175],{"class":131,"line":174},2,[129,176,178],{"emptyLinePlaceholder":177},true,"\n",[129,180,182,186,190,193,197,200,203,205,207,209,212],{"class":131,"line":181},3,[129,183,185],{"class":184},"s1TYA","const",[129,187,189],{"class":188},"saoiD"," exa",[129,191,192],{"class":184}," =",[129,194,196],{"class":195},"sZW6a"," await",[129,198,144],{"class":199},"sULi6",[129,201,202],{"class":139},"(",[129,204,168],{"class":160},[129,206,112],{"class":164},[129,208,168],{"class":160},[129,210,211],{"class":139},"); ",[129,213,215],{"class":214},"sjhu3","\u002F\u002F EXA_API_KEY\n",[129,217,219,221,224,226,228,231,234,237,239,241,244,246],{"class":131,"line":218},4,[129,220,185],{"class":184},[129,222,223],{"class":188}," results",[129,225,192],{"class":184},[129,227,196],{"class":195},[129,229,189],{"class":230},"spVlQ",[129,232,233],{"class":139},".",[129,235,236],{"class":199},"search",[129,238,202],{"class":139},[129,240,168],{"class":160},[129,242,243],{"class":164},"typescript runtime benchmarks",[129,245,168],{"class":160},[129,247,248],{"class":139},", {\n",[129,250,252,255,258,262],{"class":131,"line":251},5,[129,253,254],{"class":143},"  maxResults",[129,256,257],{"class":139},":",[129,259,261],{"class":260},"siHFe"," 5",[129,263,264],{"class":139},",\n",[129,266,268,271,273,276],{"class":131,"line":267},6,[129,269,270],{"class":143},"  summary",[129,272,257],{"class":139},[129,274,275],{"class":260}," true",[129,277,264],{"class":139},[129,279,281,284,286,288],{"class":131,"line":280},7,[129,282,283],{"class":143},"  fullText",[129,285,257],{"class":139},[129,287,275],{"class":260},[129,289,264],{"class":139},[129,291,293,296,298,300,303,305],{"class":131,"line":292},8,[129,294,295],{"class":143},"  category",[129,297,257],{"class":139},[129,299,161],{"class":160},[129,301,302],{"class":164},"research paper",[129,304,168],{"class":160},[129,306,264],{"class":139},[129,308,310,313,315,317,320,322],{"class":131,"line":309},9,[129,311,312],{"class":143},"  startPublishedDate",[129,314,257],{"class":139},[129,316,161],{"class":160},[129,318,319],{"class":164},"2026-01-01",[129,321,168],{"class":160},[129,323,264],{"class":139},[129,325,327],{"class":131,"line":326},10,[129,328,329],{"class":139},"});\n",[129,331,333],{"class":131,"line":332},11,[129,334,178],{"emptyLinePlaceholder":177},[129,336,338,340,343,345,347,349,351,353,356,358,361,364,366,368,370,372,374,377,379,381],{"class":131,"line":337},12,[129,339,185],{"class":184},[129,341,342],{"class":188}," page",[129,344,192],{"class":184},[129,346,196],{"class":195},[129,348,150],{"class":199},[129,350,202],{"class":139},[129,352,168],{"class":160},[129,354,355],{"class":164},"https:\u002F\u002Fbun.sh\u002Fblog",[129,357,168],{"class":160},[129,359,360],{"class":139},", {",[129,362,363],{"class":143}," provider",[129,365,257],{"class":139},[129,367,161],{"class":160},[129,369,112],{"class":164},[129,371,168],{"class":160},[129,373,147],{"class":139},[129,375,376],{"class":143}," noCache",[129,378,257],{"class":139},[129,380,275],{"class":260},[129,382,383],{"class":139}," });\n",[385,386,387,388,391],"p",{},"The key goes in the ",[126,389,390],{},"x-api-key"," header, both requests are a POST.",[114,393,395],{"id":394},"what-it-reads","What it reads",[397,398,399,412],"table",{},[400,401,402],"thead",{},[403,404,405,409],"tr",{},[406,407,408],"th",{},"Call",[406,410,411],{},"Endpoint",[413,414,415,440],"tbody",{},[403,416,417,422],{},[418,419,420],"td",{},[126,421,236],{},[418,423,424,427,428,431,432,435,436,439],{},[126,425,426],{},"POST \u002Fsearch"," on api.exa.ai with ",[126,429,430],{},"type: \"auto\"",", ",[126,433,434],{},"numResults"," and a ",[126,437,438],{},"contents"," block",[403,441,442,447],{},[418,443,444],{},[126,445,446],{},"read",[418,448,449,452,453,431,456,431,459,462,463,466,467,462,470],{},[126,450,451],{},"POST \u002Fcontents"," with one URL in ",[126,454,455],{},"urls",[126,457,458],{},"text: true",[126,460,461],{},"maxAgeHours: 0"," for ",[126,464,465],{},"noCache"," and ",[126,468,469],{},"livecrawlTimeout",[126,471,472],{},"timeout",[385,474,475,478,479,482,483,478,486,431,489,478,492,233],{},[126,476,477],{},"contents.highlights"," follows ",[126,480,481],{},"highlights"," (default true), ",[126,484,485],{},"contents.summary",[126,487,488],{},"summary",[126,490,491],{},"contents.text",[126,493,494],{},"fullText",[114,496,498],{"id":497},"what-comes-back","What comes back",[385,500,501,431,504,431,507,431,510,431,513,431,516,519,520,466,522,525,526,529],{},[126,502,503],{},"score",[126,505,506],{},"publishedDate",[126,508,509],{},"author",[126,511,512],{},"image",[126,514,515],{},"favicon",[126,517,518],{},"highlights[]"," by default, ",[126,521,488],{},[126,523,524],{},"text"," on request. Domain filters, a ",[126,527,528],{},"category"," forwarded as given, and both date bounds all work. The most complete result shape in the provider list.",[385,531,532,533,536,537,431,540,466,542,544,545,548,549,552,553,555,556,559,560,563],{},"Reads give the page text as markdown in ",[126,534,535],{},"content",", plus ",[126,538,539],{},"title",[126,541,506],{},[126,543,512],{}," when Exa has them, and Exa's ",[126,546,547],{},"requestId"," in ",[126,550,551],{},"metadata.requestId",". ",[126,554,472],{}," is in seconds and goes out as milliseconds, capped at Exa's 90. No links, images, selectors or ",[126,557,558],{},"maxTokens",", and ",[126,561,562],{},"format"," is always markdown, whatever you ask for.",[114,565,567],{"id":566},"gotchas","Gotchas",[569,570,571,577,582,589,595,618,624],"ul",{},[572,573,574,576],"li",{},[126,575,494],{}," returns the whole page for every result. Ten of those is a lot of tokens, stick to highlights unless you will actually read the text.",[572,578,579,581],{},[126,580,528],{}," is passed through as typed, so an unknown value is Exa's problem, not the library's.",[572,583,584,585,588],{},"Exa is first in the detection order. With ",[126,586,587],{},"EXA_API_KEY"," set it is the default provider, whether you meant that or not. For reads it is the opposite, last in line after Jina, Context.dev, Firecrawl, TinyFish and Tavily.",[572,590,591,592,594],{},"Contents answers from Exa's cache when it has the page and crawls it when it doesn't. Nothing says how old that copy is, so ",[126,593,465],{}," is the thing to reach for on anything that changes.",[572,596,597,598,601,602,605,606,609,610,613,614,617],{},"A page Contents cannot fetch is not an HTTP error. The request comes back 200 with an empty ",[126,599,600],{},"results"," and a tag in ",[126,603,604],{},"statuses",", like ",[126,607,608],{},"CRAWL_NOT_FOUND"," or ",[126,611,612],{},"CRAWL_HTTP_403",". That becomes a ",[126,615,616],{},"WebError"," with the tag, not a fallback.",[572,619,620,623],{},[126,621,622],{},"url"," on a read is the one Exa reports, which can be the page after a redirect, not the address you passed.",[572,625,626,627,630],{},"Spent credits come back as HTTP 402 ",[126,628,629],{},"NO_MORE_CREDITS",", and Exa checks credits before it even looks at the request. Automatic reads move on to the next reader.",[114,632,634],{"id":633},"where-it-lives","Where it lives",[385,636,637,233],{},[126,638,639],{},"src\u002Fproviders\u002Fexa.ts",[641,642,643],"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 .sZW6a, html code.shiki .sZW6a{--shiki-light:#D73A49;--shiki-default:#D73A49;--shiki-dark:#5DE4C7C0}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 .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":124,"searchDepth":174,"depth":174,"links":645},[646,647,648,649,650],{"id":116,"depth":174,"text":117},{"id":394,"depth":174,"text":395},{"id":497,"depth":174,"text":498},{"id":566,"depth":174,"text":567},{"id":633,"depth":174,"text":634},"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.","md",null,{"icon":655},"i-lucide-sparkles",{"title":60,"description":651},"-5TwbLPDhzhmwHqdrMu0ucvsSeE7YYMRn9Y4YvZLrTU",[659,661],{"title":56,"path":57,"stem":58,"description":660,"children":-1},"The Context.dev API for search with Markdown ranked by relevance and for scraping pages into Markdown or HTML.",{"title":64,"path":65,"stem":66,"description":662,"children":-1},"The Firecrawl v2 API for search with scraped passages and for scraping a page into Markdown or HTML.",1790380569972]