Для получения чистого Markdown любой страницы добавьте .md к URL страницы.
Для полного индекса документации см. https://api.vega.chat/docs/llms.txt.
Для полного содержания документации см. https://api.vega.chat/docs/llms-full.txt.
Для интеграции AI‑клиента (Claude Code, Cursor и др.) подключитесь к MCP‑серверу по адресу https://api.vega.chat/docs/_mcp/server.
Веб‑поиск
Инструменты сервера находятся в бета‑версии. API и поведение могут измениться.
Инструмент сервера openrouter:web_search предоставляет любой модели на VEGA доступ к актуальной информации из интернета. Когда модель определяет, что ей нужна текущая информация, она вызывает инструмент с запросом поиска. VEGA выполняет поиск и возвращает результаты, которые модель использует для формирования обоснованного, с указанием источников ответа.
Как это работает
- Вы включаете
{ "type": "openrouter:web_search" }в массивtools. - На основе подсказки пользователя модель решает, нужен ли веб‑поиск, и генерирует запрос поиска.
- VEGA выполняет поиск, используя настроенный движок (по умолчанию
auto, который использует нативный поиск провайдера, если он доступен, или переходит к Exa). - Результаты поиска (URL‑адреса, заголовки и фрагменты содержимого) возвращаются модели.
- Модель синтезирует результаты в свой ответ. При необходимости она может выполнить несколько поисков в одном запросе.
Быстрый старт
const response = await fetch('https://api.vega.chat/api/v1/chat/completions', {
method: 'POST',
headers: {
Authorization: 'Bearer {{API_KEY_REF}}',
'Content-Type': 'application/json',
},
body: JSON.stringify({
model: '{{MODEL}}',
messages: [
{
role: 'user',
content: 'What were the major AI announcements this week?'
}
],
tools: [
{ type: 'openrouter:web_search' }
]
}),
});
const data = await response.json();
console.log(data.choices[0].message.content);import requests
response = requests.post(
"https://api.vega.chat/api/v1/chat/completions",
headers={
"Authorization": f"Bearer {{API_KEY_REF}}",
"Content-Type": "application/json",
},
json={
"model": "{{MODEL}}",
"messages": [
{
"role": "user",
"content": "What were the major AI announcements this week?"
}
],
"tools": [
{"type": "openrouter:web_search"}
]
}
)
data = response.json()
print(data["choices"][0]["message"]["content"])curl https://api.vega.chat/api/v1/chat/completions \
-H "Authorization: Bearer {{API_KEY_REF}}" \
-H "Content-Type: application/json" \
-d '{
"model": "{{MODEL}}",
"messages": [
{
"role": "user",
"content": "What were the major AI announcements this week?"
}
],
"tools": [
{"type": "openrouter:web_search"}
]
}'Конфигурация
Инструмент веб‑поиска принимает необязательные parameters для настройки поведения поиска:
{
"type": "openrouter:web_search",
"parameters": {
"engine": "exa",
"max_results": 5,
"max_total_results": 20,
"search_context_size": "medium",
"allowed_domains": ["example.com"],
"excluded_domains": ["reddit.com"]
}
}Местоположение пользователя
Передайте приблизительное местоположение, чтобы сместить результаты поиска в нужном направлении:
{
"type": "openrouter:web_search",
"parameters": {
"user_location": {
"type": "approximate",
"city": "San Francisco",
"region": "California",
"country": "US",
"timezone": "America/Los_Angeles"
}
}
}Все поля внутри user_location являются необязательными.
Выбор движка
Инструмент сервера веб‑поиска поддерживает несколько поисковых движков:
auto(по умолчанию): использует нативный поиск, если провайдер его поддерживает, иначе переходит к Exanative: принудительно использует встроенный веб‑поиск провайдера (при отсутствии поддержки переходит к Exa с предупреждением)exa: использует API поиска Exa, который сочетает поиск по ключевым словам и векторный поиск. Возвращает выделения Exa — отрывки из каждой страницы, наиболее релевантные запросу, а не усечённый текст страницы. См. раздел Exa ниже.firecrawl: использует API поиска Firecrawl (BYOK — bring your own key)parallel: использует API поиска Parallel
Возможности движков
<small> *\* Exa: ограничение применяется **на каждый результат***** Parallel: ограничение применяется как общее количество по всем результатам </small>
Exa
VEGA запрашивает у Exa выделения для каждого результата вместо опции text. Выделения — это извлечённые отрывки, выбранные Exa как наиболее релевантные запросу, что обычно даёт более качественный контекст на токен, чем усечённый текст страницы.
По умолчанию Exa выбирает адаптивный размер выделения для каждого запроса и документа — обычно ~2 000–4 000 символов на результат. Чтобы задать фиксированный бюджет на результат, установите search_context_size, который сопоставляется с параметром Exa contents.highlights.maxCharacters:
low— 5 000 символов на результатmedium— 15 000 символов на результатhigh— 30 000 символов на результат
Если search_context_size опущен, VEGA позволяет Exa выбрать размер выделения адаптивно. Выделения возвращаются модели в каждом результате и отображаются вызывающим API через аннотации url_citation. Внутри одного результата отрывки из разных частей страницы разделяются маркерами Exa [...], поэтому поле content аннотации url_citation может выглядеть так:
First excerpt drawn from the page.
[...]
Second excerpt drawn from elsewhere in the same page.
[...]
Third excerpt.
Firecrawl (BYOK)
Firecrawl использует ваш собственный API‑ключ. Чтобы настроить:
- Перейдите в Настройки плагинов VEGA и выберите Firecrawl в качестве движка веб‑поиска.
- Примите Условия использования Firecrawl — будет создан аккаунт Firecrawl, привязанный к вашему email.
- Ваш аккаунт получает 10 000 бесплатных кредитов (кредиты истекают через 3 месяца).
Поиски Firecrawl используют ваши кредиты напрямую — дополнительных расходов от VEGA нет. Firecrawl поддерживает фильтрацию доменов (allowed_domains / excluded_domains), но они взаимно исключают друг друга — нельзя использовать оба параметра в одном запросе.
Parallel
Parallel поддерживает фильтрацию доменов и контроль объёма контекста (search_context_size), а также использует кредиты VEGA по цене 0.5 ₽ за запрос. В запросе включено до 10 результатов, далее 0.1 ₽ за каждый дополнительный результат.
Фильтрация доменов
Ограничьте домены, которые могут появляться в результатах поиска, используя allowed_domains и excluded_domains:
{
"type": "openrouter:web_search",
"parameters": {
"allowed_domains": ["arxiv.org", "nature.com"],
"excluded_domains": ["reddit.com"]
}
}Управление общим числом результатов
Если модель выполняет несколько поисков в одном запросе, используйте max_total_results, чтобы ограничить суммарное количество результатов:
{
"type": "openrouter:web_search",
"parameters": {
"max_results": 5,
"max_total_results": 15
}
}После достижения лимита последующие вызовы поиска возвращают сообщение, информирующее модель о превышении лимита, вместо выполнения нового поиска. Это удобно для контроля стоимости и использования контекстного окна в агентных циклах.
Работает с API Responses
Инструмент сервера веб‑поиска также совместим с API Responses:
const response = await fetch('https://api.vega.chat/api/v1/responses', {
method: 'POST',
headers: {
Authorization: 'Bearer {{API_KEY_REF}}',
'Content-Type': 'application/json',
},
body: JSON.stringify({
model: '{{MODEL}}',
input: 'What is the current price of Bitcoin?',
tools: [
{ type: 'openrouter:web_search', parameters: { max_results: 3 } }
]
}),
});
const data = await response.json();
console.log(data);import requests
response = requests.post(
"https://api.vega.chat/api/v1/responses",
headers={
"Authorization": f"Bearer {{API_KEY_REF}}",
"Content-Type": "application/json",
},
json={
"model": "{{MODEL}}",
"input": "What is the current price of Bitcoin?",
"tools": [
{"type": "openrouter:web_search", "parameters": {"max_results": 3}}
]
}
)
data = response.json()
print(data)Отслеживание использования
Использование веб‑поиска отражается в объекте usage ответа:
{
"usage": {
"input_tokens": 105,
"output_tokens": 250,
"server_tool_use": {
"web_search_requests": 2
}
}
}Поле web_search_requests считает общее количество запросов поиска, выполненных моделью в рамках данного запроса.
Ценообразование
Все цены указаны дополнительно к стандартным затратам токенов LLM за обработку содержимого результатов поиска.
Переход от плагина Web Search
Плагин web search (plugins: [{ id: "web" }]) и вариант :online (/docs/guides/routing/model-variants/online) устарели. Вместо них используйте серверный инструмент openrouter:web_search.
Ключевые различия:
Пример миграции
// До (устарело)
{
"model": "openai/gpt-5.2",
"messages": [...],
"plugins": [{ "id": "web", "max_results": 3 }]
}
// После
{
"model": "openai/gpt-5.2",
"messages": [...],
"tools": [
{ "type": "openrouter:web_search", "parameters": { "max_results": 3 } }
]
}// До (устарело) — движок и фильтрация доменов
{
"model": "openai/gpt-5.2",
"messages": [...],
"plugins": [{
"id": "web",
"engine": "exa",
"max_results": 5,
"include_domains": ["arxiv.org"]
}]
}
// После
{
"model": "openai/gpt-5.2",
"messages": [...],
"tools": [{
"type": "openrouter:web_search",
"parameters": {
"engine": "exa",
"max_results": 5,
"allowed_domains": ["arxiv.org"]
}
}]
}// До (устарело) — вариант :online
{
"model": "openai/gpt-5.2:online"
}
// После
{
"model": "openai/gpt-5.2",
"tools": [{ "type": "openrouter:web_search" }]
}Следующие шаги
- Обзор серверных инструментов — Узнайте о серверных инструментах
- Datetime — Получите текущие дату и время
- Tool Calling — Узнайте о пользовательском вызове инструментов