# Brave Search

> 将可配置 Brave Search 端点的客户端指向 Search1API，继续使用 Brave 的网页、新闻和图片搜索格式。

Canonical URL: https://s1.dev/zh/docs/compatibility/brave

Search1API 支持 Brave Search API 的网页、新闻和图片搜索端点：

| Brave Search | Search1API |
| --- | --- |
| `https://api.search.brave.com/res/v1/web/search` | `https://api.search1api.com/compat/brave/res/v1/web/search` |
| `https://api.search.brave.com/res/v1/news/search` | `https://api.search1api.com/compat/brave/res/v1/news/search` |
| `https://api.search.brave.com/res/v1/images/search` | `https://api.search1api.com/compat/brave/res/v1/images/search` |

与 Brave 客户端的做法一样，在 `X-Subscription-Token` 请求头中发送你的 Search1API 密钥。也可以使用 `Authorization: Bearer`。搜索使用 Search1API 的默认引擎。

这适用于允许设置端点的客户端，例如 LangChain 的 `BraveSearchWrapper` 和 Dify 的 Brave 工具。自行拼接 Brave URL 的客户端无法指向这里。

## 配置客户端

<Tabs items={['LangChain', 'curl']}>

<Tab value="LangChain">

```python
from langchain_community.utilities import BraveSearchWrapper

search = BraveSearchWrapper(
    api_key="YOUR_API_KEY",
    base_url="https://api.search1api.com/compat/brave/res/v1/web/search",
    search_kwargs={"count": 5},
)
results = search.run("hono cloudflare workers")
```

</Tab>

<Tab value="curl">

```bash
curl "https://api.search1api.com/compat/brave/res/v1/web/search?q=hono+workers&count=5" \
  -H "X-Subscription-Token: YOUR_API_KEY"
```

</Tab>

</Tabs>

## 参数

| 参数 | 行为 |
| --- | --- |
| `q` | 必填。 |
| `count` | 网页：默认值和最大值均为 `20`。新闻：默认 `20`，最多 `50`。图片：默认值和最大值均为 `50`。 |
| `offset` | 从 `0` 开始的页码，以 `count` 为单位，与 Brave 一致。超出前 50 条结果的页面不返回结果。 |
| `search_lang`、`ui_lang` | 结果的主要语言。 |
| `freshness` | `pd`、`pw`、`pm`、`py`，或 `YYYY-MM-DDtoYYYY-MM-DD` 范围；范围会转换为能覆盖它的最短时间窗口（日、周、月或年）。 |

`country`、`safesearch`、`extra_snippets`、`goggles`、`result_filter`、`summary`、`spellcheck` 和 `text_decorations` 会被忽略。

## 响应

- **网页搜索**返回 `type: "search"`、`query`（`original` 和 `more_results_available`）、`mixed` 和 `web.results`。每条结果包含 `type`、`title`、`url`、`description`、`profile`、`meta_url`，以及已知时的 `page_age`。
- **新闻搜索**返回 `type: "news"` 和 `results`，结果字段相同，且 `type: "news_result"`。
- **图片搜索**返回 `type: "images"` 和 `results`，其中 `url` 和 `thumbnail.src` 为图片 URL，`source` 为其主机名。

不返回 `extra_snippets`、`age`、网页结果中的 `thumbnail`，以及 `faq`、`discussions`、`videos`、`infobox` 和 `summarizer` 部分。

## 积分

每次请求消耗 1 积分，与原生搜索价格相同。

## 错误

错误以 `{ "type": "ErrorResponse", "error": { "id", "status", "code", "detail", "meta" }, "time" }` 返回，并带有相应的状态码。错误码包括 `VALIDATION`（400、422）、`SUBSCRIPTION_TOKEN_INVALID`（401）、`QUOTA_LIMITED`（402）、`RATE_LIMITED`（429）和 `INTERNAL_ERROR`。