Веб-поиск
Встроенный веб-поиск выполняет провайдер модели: отдельный сервис и ключи не нужны. Поддерживается там, где модель и площадка объявляют эту возможность.
Кому подходит
- Разработчикам — нужны свежие данные из интернета в ответе модели.
- Администраторам — контроль расходов на поисковые вызовы.
Как указать инструмент
Формат зависит от протокола запроса.
<Tabs items={["Responses (OpenAI)", "Messages (Anthropic)", "Chat Completions"]}>
{
"model": "openai/gpt-6.1-sol",
"input": "Что нового вышло на этой неделе?",
"tools": [{"type": "web_search"}]
}{
"model": "anthropic/claude-sonnet-5.5",
"max_tokens": 1024,
"messages": [{"role": "user", "content": "Что нового вышло на этой неделе?"}],
"tools": [{"type": "web_search_20250305", "name": "web_search"}]
}{
"model": "openai/gpt-6.1-sol",
"messages": [{"role": "user", "content": "Что нового вышло на этой неделе?"}],
"web_search_options": {}
}web_search_options работает только у моделей и площадок, которые его объявляют. В остальных случаях запрос отклоняется с 400 host_parameters_unsupported, а не выполняется без поиска.
Маршрутизация
Для серверного инструмента площадка должна принимать протокол запроса как есть — POST /responses или POST /messages. Площадки, которые умеют только Chat Completions, не участвуют в выборе: при переводе в chat серверный инструмент теряется.
Если ни одна площадка не может выполнить инструмент, API возвращает 400 с кодом host_parameters_unsupported. Молчаливого выполнения без поиска не бывает.
Grounding Gemini (google_search, google_maps, url_context) через наш chat-совместимый маршрут не поддерживается и отклоняется тем же кодом.
Что видно в ответе
Провайдер сообщает число выполненных поисков в usage:
{
"usage": {
"input_tokens": 105,
"output_tokens": 6039,
"server_tool_use": {"web_search_requests": 1}
}
}В Responses API счётчик приходит не в usage, а элементами output с типом web_search_call. Платформа считает их сама — клиенту разбирать ответ для биллинга не нужно.
Как считается стоимость
- Ставка
web_searchв карточке модели — цена за один поиск, а не за тысячу. Она видна вprices.dimension_prices.web_searchприprices=1. - К списанию идёт фактическое число поисков из usage. У поставщиков, которые возвращают итоговую стоимость запроса, она имеет приоритет.
- Токены найденных страниц тарифицируются как обычные входные токены модели.
- Ошибка поиска у Anthropic не тарифицируется — счётчик в usage её не учитывает.
Если площадка не объявляет ставку web_search и не возвращает итоговую стоимость, поисковая часть не списывается. Чтобы не терять в себестоимости, выбирайте площадки с объявленной ставкой.