用途:让智能体在不依赖 SDK 的情况下,通过原始 HTTP 调用 Exa 语义网页检索。端点固定为 POST https://api.exa.ai/search;若已有 URL 只需抽取内容,应改用 POST /contents。
鉴权:请求头 x-api-key: $EXA_API_KEY(也接受 Authorization: Bearer,但示例统一用 x-api-key)。API Key 在 https://dashboard.exa.ai/api-keys 获取。
主要能力:query 为必填的自然语言查询,长而语义丰富的描述效果较好;type 可选 auto、fast、instant、deep-lite、deep、deep-reasoning,默认 auto;numResults 默认 10,最大 100,智能体循环中建议取小值。支持 category(company、people、research paper、news、personal site、financial report)、includeDomains/excludeDomains(各最多 1200)、startPublishedDate/endPublishedDate、userLocation、moderation、additionalQueries、systemPrompt、outputSchema、stream、compliance。
内容抽取:在 /search 上 text、highlights、summary 必须嵌套在 contents 下。contents.text 返回 markdown 正文,对象形式支持 maxCharacters、includeHtmlTags、verbosity、includeSections、excludeSections;contents.highlights 返回与查询相关的摘录,智能体流程建议直接用 true;contents.summary 返回逐条 LLM 摘要,成本较高应少用。contents.maxAgeHours 控制新鲜度(0 始终实时抓取,-1 仅用缓存,省略则默认缓存优先并回退抓取),livecrawlTimeout 默认 10000 毫秒,subpages 与 subpageTarget 控制子页面抓取,extras.links 与 extras.imageLinks 控制链接与图片提取。
结构化输出与流式:systemPrompt 控制行为,outputSchema 控制输出形状,schema 应保持紧凑、浅层嵌套;引用信息由 output.grounding 单独返回,不要写进 schema。仅当 stream: true 与 outputSchema 同时存在时才返回 SSE,每帧为 OpenAI 兼容的 chat completion chunk,从 choices[0].delta.content 读取增量文本。
响应字段:requestId、results(含 title、url、publishedDate、author、text、highlights、highlightScores、summary、subpages、extras.links)、output.content、output.grounding、costDollars.total、searchTime。
限制与注意:不要把 text、highlights、summary 放在顶层(那是 /contents 的形状);不要使用 tokensNum,改用 contents.text.maxCharacters;不要使用 useAutoprompt、numSentences、highlightsPerUrl;用 contents.maxAgeHours 替代 livecrawl;category 仅限文档列出的取值;company 与 people 不支持发布日期过滤,people 不支持 excludeDomains 且 includeDomains 仅接受 LinkedIn 域名;默认在 highlights、text、summary 中只选一种。compliance 为仅企业版可用的合规模式。资料未提供具体价格与配额信息。