Brave Search API — поисковый API с собственным независимым индексом более 30 миллиардов веб-страниц. Он даёт AI-приложениям, чат-ботам и агентам доступ к свежим результатам поиска, извлечённым фрагментам страниц и готовым ответам с источниками.
Что такое Brave Search API
Brave Search API даёт программный доступ к индексу Brave Search: более 30 миллиардов страниц и свыше 100 миллионов обновлений ежедневно. У Brave собственные краулер, индекс и модели ранжирования; сервис не перепаковывает выдачу Google или Bing.
Работа краулера Brave частично использует данные Web Discovery Project. Участие пользователей браузера Brave добровольное, выключено по умолчанию и построено с учётом приватности; код проекта открыт для проверки.
Сервис рассчитан на поисковые инструменты агентов, RAG-пайплайны, чат-боты и приложения, которым нужны актуальные сведения из веба. Подписка также доступна через AWS Marketplace. Для корпоративных клиентов предлагаются индивидуальные условия и режим полного отсутствия хранения данных — Zero Data Retention.
Основные возможности
Web Search
Основная конечная точка (endpoint) поиска по ключевым словам возвращает заголовки, URL и текстовые сниппеты. В ответе также могут присутствовать новости, изображения, видео и обогащённые данные для поддерживаемых форматов.
Для контекстной релевантности API может добавлять до пяти сниппетов, выбранных в реальном времени. На плане Search также доступны Goggles для переранжирования и фильтрации источников, а также schema-обогащённые результаты. Автодополнение и проверка орфографии подключаются как отдельные планы.
LLM Context
LLM Context возвращает извлечённые фрагменты страниц и метаданные источников в формате, подготовленном для языковой модели. Дополнительный скрейпинг страниц на своей стороне обычно не нужен.
Основные параметры:
maximum_number_of_tokens— общий бюджет контекста от 1024 до 32768 токенов, по умолчанию 8192;maximum_number_of_urls— максимум 50 URL в ответе;maximum_number_of_snippets— параметр с диапазоном от 1 до 256 для числа фрагментов по всем URL;maximum_number_of_tokens_per_url— ограничение контекста для одного URL от 512 до 8192 токенов, по умолчанию 4096;maximum_number_of_snippets_per_url— параметр с диапазоном от 1 до 100 для числа фрагментов одного URL;context_threshold_mode— фильтрация по релевантности:strict,balanced,lenientилиdisabled;freshness— страницы за сутки, неделю, месяц, год или заданный диапазон дат;goggles— собственные правила ограничения, исключения и переранжирования источников;enable_localи заголовкиX-Loc-*— локальный поиск с данными о местах;enable_source_metadata— дополнительные сведения об источниках.
В стандартном ответе находятся grounding.generic с фрагментами по URL, grounding.map и объект sources с метаданными. При локальном поиске могут добавляться данные poi и результаты для карты.
Api-Version: 2026-02-06. Ограничения количества сниппетов больше не являются жёсткими, если заданный бюджет токенов позволяет вернуть больше фрагментов.Answers
Answers формирует готовый ответ на основе веб-поиска и работает через OpenAI-совместимую конечную точку /res/v1/chat/completions с моделью brave. Этот же сервис лежит в основе Ask Brave.
- По умолчанию выполняется один поиск; поток ответа обычно начинается в среднем менее чем за 4,5 секунды.
enable_research: trueвключает последовательные поиски. Такой режим полезен для сложного исследования, но работает дольше и расходует больше запросов и токенов.enable_citations: trueдобавляет цитаты. Цитаты и исследовательский режим требуютstream: true.- При потоковой выдаче (
streaming) метаданные использования приходят последним сообщением; при синхронном запросе соответствующие значения передаются в заголовках ответа.
Brave заявляет результаты уровня state of the art (SOTA, передового уровня) на SimpleQA без специальной оптимизации под этот бенчмарк. Конкретная метрика F1 в актуальной документации Answers не приводится.
research_maximum_number_of_results_per_query по умолчанию использует 30 результатов вместо 60. Если приложению нужна прежняя ширина поиска, задайте значение явно.Поиск изображений, видео и новостей
Отдельные конечные точки возвращают изображения, видео и новости. Они подходят для приложений, которым нужны результаты определённого типа без самостоятельного разбора общей веб-выдачи.
LLM Context или Answers: что выбрать
| Критерий | LLM Context | Answers |
| Результат | Извлечённые фрагменты и метаданные источников | Сформированный ответ с возможностью добавить цитаты |
| Основной сценарий | Свой LLM, RAG-пайплайн или поисковый инструмент агента | Чат-интерфейс или система ответов на вопросы |
| Контроль | Бюджет токенов, число URL, фильтрация и переранжирование | Язык, страна, цитаты и исследовательский режим |
| Поиск | Один поиск на запрос | Один поиск по умолчанию или несколько в исследовательском режиме |
| План | Search | Answers |
Подключение по API
Основные конечные точки
Base URL: https://api.search.brave.com/res/v1GET /web/search— веб-поиск;GET /llm/contextиPOST /llm/context— контекст для агентов и RAG;GET /images/search— изображения;GET /videos/search— видео;GET /news/search— новости;POST /chat/completions— Answers через OpenAI-совместимый интерфейс.
Place Search, Autosuggest, Spellcheck и другие специализированные возможности описаны отдельно в документации Brave.
Аутентификация
Передавайте ключ в заголовке X-Subscription-Token и храните его в переменной окружения:
export BRAVE_API_KEY='YOUR_API_KEY'
curl --get 'https://api.search.brave.com/res/v1/web/search' -H "X-Subscription-Token: $BRAVE_API_KEY" --data-urlencode 'q=artificial intelligence' --data-urlencode 'count=10'Для каждого активированного плана нужен отдельный ключ. В одном плане можно создать до десяти ключей.
Пример на Python
import os
import requests
response = requests.get(
'https://api.search.brave.com/res/v1/web/search',
headers={'X-Subscription-Token': os.environ['BRAVE_API_KEY']},
params={'q': 'Brave Search API', 'count': 10},
timeout=30,
)
response.raise_for_status()
for result in response.json().get('web', {}).get('results', []):
print(result['title'], result['url'])Запрос к LLM Context
curl -X POST 'https://api.search.brave.com/res/v1/llm/context' -H "X-Subscription-Token: $BRAVE_API_KEY" -H 'Content-Type: application/json' -d '{"q": "чем LLM Context отличается от обычного веб-поиска", "count": 20, "maximum_number_of_tokens": 8192, "context_threshold_mode": "balanced"}'Answers через OpenAI SDK
import os
from openai import OpenAI
client = OpenAI(
api_key=os.environ['BRAVE_API_KEY'],
base_url='https://api.search.brave.com/res/v1',
)
response = client.chat.completions.create(
model='brave',
messages=[{'role': 'user', 'content': 'Что такое Brave Search API?'}],
stream=False,
)
print(response.choices[0].message.content)Полезные сценарии
Поисковый инструмент для AI-агента
Задача: агенту нужно ответить на вопрос по свежим данным из веба.
Условие запуска: у агента есть текстовый запрос пользователя и доступ к ключу Search.
Передайте запрос в LLM Context и добавьте полученные фрагменты в контекст модели. URL из ответа используйте для атрибуции текущего результата. Хранение результатов, включая URL и фрагменты, требует отдельного согласования с Brave.
Наблюдаемый результат — непустой массив grounding.generic и соответствующие записи в sources.
Ограничение: сценарий не подходит для страниц, закрытых от поисковых роботов.
RAG только по доверенным доменам
Задача: собрать контекст из ограниченного набора документации.
Исходные данные: список доверенных доменов и запрос пользователя.
Передайте правила Goggles через URL или встроенное определение, выберите context_threshold_mode: strict и установите подходящий бюджет токенов. Результат проверяется по доменам в grounding.generic и sources.
Ограничение: Goggles управляют составом и ранжированием поисковой выдачи, но не дают дополнительных прав на хранение или использование содержимого страниц.
Готовый ответ для чат-интерфейса
Задача: показать пользователю сформированный ответ с проверяемыми источниками.
Исходные данные: вопрос пользователя и ключ плана Answers.
Вызовите Answers с stream: true и enable_citations: true, обработайте обычный текст, структурированные сообщения с цитатами и итоговые данные об использовании. Для фонового глубокого исследования можно включить enable_research.
Наблюдаемый результат — поток текста с цитатами и финальными метаданными стоимости.
Ограничение: для интерфейса с высокой нагрузкой учитывайте стандартную ёмкость плана Answers — 2 запроса в секунду.
Проверка результата и обработка ошибок
Примеры и ожидаемые признаки ниже сверены с официальной документацией. Фактический запрос с вашим ключом в рамках подготовки этого материала не выполнялся.
Минимальная проверка LLM Context:
curl -sS 'https://api.search.brave.com/res/v1/llm/context?q=brave+search+api' -H "X-Subscription-Token: $BRAVE_API_KEY"Успешный ответ содержит объект grounding и метаданные в sources. Пустой grounding.generic означает, что релевантный контент не найден; обрабатывайте этот результат отдельно и не запускайте безусловные повторы.
Для временных сбоев используйте экспоненциальную задержку. При ответе 429 соблюдайте ограничения скорости и учитывайте односекундное скользящее окно. Для сетевого запроса разумно установить тайм-аут около 30 секунд.
Тарифы и лимиты
Данные проверены 10 сентября 2026 года.
| План | Цена | Ёмкость | Назначение |
| Search | $5 за 1 000 запросов | 50 запросов/с | Web Search, LLM Context, новости, видео и изображения |
| Answers | $4 за 1 000 поисковых запросов плюс $5 за 1 млн входных и $5 за 1 млн выходных токенов | 2 запроса/с | Готовые ответы, потоковая выдача, цитаты и OpenAI-совместимый интерфейс |
| Autosuggest | $5 за 10 000 запросов | 100 запросов/с | Автодополнение и обогащённые подсказки |
| Spellcheck | $5 за 10 000 запросов | 100 запросов/с | Проверка орфографии и связанные подсказки |
| Enterprise | По договору | По договору | Индивидуальная ёмкость, соглашения, поддержка и Zero Data Retention |
Новые подключения стандартных планов работают по предоплатной модели: вы покупаете кредиты и списываете их по мере использования. Планы Search, Answers, Autosuggest и Spellcheck получают по $5 бесплатных кредитов каждый месяц. Оплаченные предоплаченные кредиты не сгорают, а бесплатные ежемесячные кредиты заменяются при следующем начислении. Для получения бесплатных кредитов всё равно требуется банковская карта как мера защиты от мошенничества; при активации можно установить сумму предоплаты в $0.
Существующие постоплатные планы продолжают работать на прежних условиях. После отмены такой план нельзя восстановить: повторное подключение будет доступно только по предоплатной модели.
usage limit) и предупреждения о расходах. Автопополнение (auto-reload) включайте только вместе с отдельным месячным пределом пополнений.Ограничения и правила хранения
- Новым пользователям нужен активированный план и банковская карта, хотя предоплату можно установить в $0 и использовать ежемесячные бесплатные кредиты.
- Answers по умолчанию ограничен двумя запросами в секунду. Для более высокой нагрузки потребуется очередь или индивидуальный план.
- Страницы с
noindex, а также страницы, недоступные для Googlebot, краулер Brave не обходит. - Собственный индекс Brave может отличаться от Google. Если задаче нужна именно выдача Google, потребуется другой поставщик.
- Brave запрещает сохранять любые данные, полученные через Search API, в рамках стандартных условий. Если нужно хранить результаты или использовать их для обучения модели, необходимо согласовать отдельные права с Brave.
- API не передаёт права на содержимое найденных страниц. Доступ к ним и дальнейшее использование должны соответствовать условиям правообладателей.
Официальные ссылки
- Сайт: brave.com/search/api
- Dashboard: api-dashboard.search.brave.com
- Документация: api-dashboard.search.brave.com/documentation
- LLM Context: документация endpoint
- Answers: документация endpoint
- Тарифы: актуальные планы
- FAQ и условия хранения: Help & Feedback
- Skill-файлы: brave/brave-search-skills
Следующий шаг
Если вы сравниваете поисковые API для собственного агента, посмотрите Tavily — Search API для AI-агентов.
Если вы выбираете поисковый слой для агента или RAG-системы, полезно заранее сопоставить требования к источникам, задержке, хранению данных и бюджету.
Если захотите обсудить, как это применить у себя или в команде — пишите в Telegram @pimenov

