# Запуск нейросетевого семантического веб-поиска.

**API:** Data API

**Endpoint:** `POST /v1/beta/exa/search`

**Tags:** Exa

Ищет в вебе по смыслу, а не по ключевым словам. `query` обязателен; сужайте через `category`, `includeDomains`, `excludeDomains`, `startPublishedDate`, `endPublishedDate` и задайте `numResults`. Возвращает `requestId`, `resolvedSearchType`, `searchTime`, `costDollars` и `results[]` с `id`, `title` и `url`. **`id` — это URL**, и именно его принимает `post_exa_contents`. ⚠️ Результаты **не содержат текста страниц**, если не попросить: передайте `contents` или затем вызовите `post_exa_contents`. Выбирайте вместо `searchWeb`, когда запрос — это описание, а не ключевые слова; выбирайте Tavily, когда текст нужен в том же вызове, и `post_exa_answer`, когда нужен письменный ответ, а не список.

### Справочная информация о ценах

- Тарификация: заявленная стоимость ответа.
- Справочная оценка запроса: USD 0.017.
- Справочный множитель для клиента: 1.0. Не применяйте его повторно к уже рассчитанной сумме клиента.

Только справочные метаданные, а не котировка для аккаунта, гарантированная цена или лимит расходов. Кредиты ресурсов — не кредиты Felo. Итоговые списания определяются записями биллинга Felo.

## Base URL

- `https://openapi.felo.ai`

## Authentication

- `FeloBearerAuth` (http bearer, bearer format Felo API Key)
- `FeloApiKey` (apiKey in header `X-API-Key`)

## Request body

Required: **yes**

### application/json

Schema:

```json
{
  "type": "object",
  "properties": {
    "query": {
      "type": "string",
      "description": "Поисковый запрос на естественном языке.",
      "example": "latest evaluation frameworks for AI agents"
    },
    "type": {
      "type": "string",
      "enum": [
        "auto",
        "fast",
        "instant",
        "deep-lite",
        "deep",
        "deep-reasoning"
      ],
      "default": "auto",
      "description": "Режим поиска. auto позволяет Exa выбрать режим; режимы deep обменивают задержку на более качественное извлечение."
    },
    "numResults": {
      "type": "integer",
      "minimum": 1,
      "maximum": 100,
      "default": 10,
      "description": "Количество возвращаемых результатов."
    },
    "category": {
      "type": "string",
      "enum": [
        "company",
        "research paper",
        "news",
        "personal site",
        "financial report",
        "people"
      ],
      "description": "Необязательная подсказка о том, каким типам страниц отдавать приоритет."
    },
    "includeDomains": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "description": "Возвращать результаты только с этих доменов."
    },
    "excludeDomains": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "description": "Исключить результаты с этих доменов."
    },
    "startPublishedDate": {
      "type": "string",
      "format": "date-time",
      "description": "Возвращать только результаты, опубликованные не ранее этой даты ISO 8601."
    },
    "endPublishedDate": {
      "type": "string",
      "format": "date-time",
      "description": "Возвращать только результаты, опубликованные не позднее этой даты ISO 8601."
    },
    "contents": {
      "type": "object",
      "description": "Параметры содержимого, возвращаемого вместе с каждым результатом.",
      "properties": {
        "text": {
          "type": "boolean",
          "description": "Возвращать полный текст страницы."
        },
        "highlights": {
          "type": "boolean",
          "description": "Возвращать выделенные релевантные фрагменты."
        },
        "summary": {
          "type": "boolean",
          "description": "Возвращать сгенерированное ИИ резюме страницы."
        }
      }
    },
    "outputSchema": {
      "type": "object",
      "description": "JSON Schema, используемая для синтеза структурированного вывода из результатов."
    },
    "systemPrompt": {
      "type": "string",
      "description": "Инструкция, определяющая, как формируется структурированный вывод."
    },
    "stream": {
      "default": false,
      "enum": [
        false
      ],
      "type": "boolean"
    }
  },
  "required": [
    "query"
  ]
}
```

## Responses

### 200 — Поиск выполнен успешно.

Headers:
- `X-Request-Id` (string) — Идентификатор запроса, который нужно указать при обращении в поддержку Felo.

**application/json**

Schema: object

```json
{
  "type": "object",
  "properties": {
    "requestId": {
      "type": "string",
      "description": "Идентификатор запроса Exa."
    },
    "results": {
      "type": "array",
      "description": "Ранжированные результаты поиска.",
      "items": {
        "type": "object",
        "properties": {
          "title": {
            "type": "string"
          },
          "url": {
            "type": "string"
          },
          "publishedDate": {
            "type": "string"
          },
          "author": {
            "type": "string"
          },
          "id": {
            "type": "string"
          }
        }
      }
    },
    "output": {
      "description": "Структурированный вывод, присутствующий только при переданном outputSchema."
    },
    "costDollars": {
      "description": "Детализация затрат провайдера за использование ресурсов. Только для информации; это не сумма списания с клиента Felo и не квитанция об оплате Felo."
    }
  }
}
```

### 400 — Запрос не удалось обработать. Проверьте параметры запроса.

### 401 — Требуется действительный API-ключ Felo.

### 402 — Запрос не может быть выполнен: не выполнено требование биллинга.

### 403 — Аккаунту не разрешено выполнять эту операцию.

### 429 — Достигнут лимит запросов или расходов.

### 502 — Сервис не смог выполнить запрос.

### 503 — API или сервис биллинга временно недоступны.

### 504 — Истекло время ожидания обработки запроса.

### default — Ответ с ошибкой; сквозные ответы upstream могут использовать форматы провайдера

**application/json**

Schema:

```json
{}
```
