> For clean Markdown of any page, append .md to the page URL.
> For a complete documentation index, see https://docs.beatapi.io/llms.txt.
> For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://docs.beatapi.io/_mcp/server.

# GPT Responses

POST https://direct.beatapi.io/v1/responses
Content-Type: application/json

Вызывайте GPT-6.1 Terra, GPT-6.1 Sol, GPT-6 Astra, GPT-6 Sol и GPT-6 Luna через OpenAI Responses API с ключом BeatAPI.- Для моделей GPT используйте `POST /v1/responses`. Для переключения меняйте `model`.
- Рекомендуемый формат для новых интеграций с рассуждениями и вызовами инструментов.
- Текст и изображения на входе, текст на выходе, потоковая передача, вызовы функций, структурированный вывод и настраиваемая интенсивность рассуждений.
- Совместимо с OpenAI SDK: измените базовый URL и используйте ключ BeatAPI. Для существующей интеграции Chat Completions см. [Chat Completions](/text-api/gpt/chat-completions).Для текстовых запросов используйте базовый URL `https://direct.beatapi.io`. Этот адрес не ограничен 100-секундным тайм-аутом Cloudflare, который может прервать долгий запрос без потоковой передачи. Если ваша сеть не может подключиться к нему, используйте `https://api.beatapi.io`. Ключи, модели и цены одинаковы. API изображений и видео используют только `https://api.beatapi.io`.POST/v1/responsesПопробоватьОткрывает эндпоинт в API Explorer. Если ввести ключ BeatAPI и отправить запрос, будет выполнен реальный вызов с оплатой из вашего баланса.## МоделиПередайте один из этих ID в `model`. Каждый ID обозначает отдельную модель; не считайте их псевдонимами друг друга.| ID модели       | Контекст (токены) | Максимальный вывод (токены) | Назначение                                                                                                                        | Ввод, USD за миллион токенов | Вывод, USD за миллион токенов | Примечания                                                                                                                                            |
| --------------- | ----------------- | --------------------------- | --------------------------------------------------------------------------------------------------------------------------------- | ---------------------------- | ----------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------- |
| `gpt-6.1-terra` | 1 050 000         | 128 000                     | Визуальные рассуждения, управление компьютером и повседневные задачи                                                              | \$0.40                       | \$2.00                        | Интенсивность рассуждений от `none` до `max`; по умолчанию `medium`. Для инструментов нужен Responses. При входе свыше 272K токенов тариф повышается. |
| `gpt-6.1-sol`   | 1 050 000         | 128 000                     | GPT-6.1 Sol для программирования, управления компьютером и профессиональных задач. Для вызовов инструментов используйте Responses | \$0.80                       | \$4.00                        | Интенсивность рассуждений от `low` до `max`. При входе свыше 272K токенов тариф повышается.                                                           |
| `gpt-6-astra`   | 1 000 000         | 128 000                     | Самая мощная модель GPT: сложные рассуждения, программирование, управление компьютером, исследования и работа с документами       | \$4.00                       | \$20.00                       | При входе свыше 272K токенов тариф повышается.                                                                                                        |
| `gpt-6-sol`     | 1 050 000         | 128 000                     | Модель GPT-6 среднего уровня для повседневного программирования, исследований и задач агентов по более низкой цене                | \$0.80                       | \$4.00                        | Отдельная модель, отличная от GPT-6.1 Sol и GPT-5.6 Sol.                                                                                              |
| `gpt-6-luna`    | 1 050 000         | 128 000                     | Экономичная модель GPT-6 для массовых узких задач                                                                                 | \$0.04                       | \$0.20                        | Для массовых узких задач, например извлечения данных, классификации и маршрутизации.                                                                  |- Указаны базовые цены со скидкой. Не включены тарифы для длинного контекста, кэшированного ввода и записи в кэш. См. [страницу цен](https://beatapi.io/pricing).
- `—` означает, что каталог не публикует это значение.Старые ID этого семейства остаются доступны. См. [старые модели](/text-api/legacy-models).## Быстрый стартУстановите пакет `openai` на сервере и сохраните ключ в `BEATAPI_API_KEY`. Не помещайте ключ в код браузерного приложения. Свойство SDK `output_text` позволяет получить текст ответа без обхода блоков.У моделей GPT-5.6 интенсивность рассуждений принимает `none`, `low`, `medium`, `high`, `xhigh` и `max`; у `gpt-6.1-sol` — от `low` до `max`. Начните с `medium` как сбалансированного варианта, затем на своих задачах сравните уровень выше и ниже. Сам по себе HTTP 200 не означает, что ответ решает вашу задачу: проверяйте результат в приложении.```bash title="cURL"
curl --request POST \
  --url https://direct.beatapi.io/v1/responses \
  --header "Authorization: Bearer $BEATAPI_API_KEY" \
  --header 'Content-Type: application/json' \
  --data '{
  "model": "gpt-6.1-sol",
  "input": "Design a resilient webhook retry strategy for a payments API.",
  "reasoning": {
    "effort": "medium"
  }
}'
``````python title="Python"
import os
from openai import OpenAI

client = OpenAI(api_key=os.environ["BEATAPI_API_KEY"], base_url="https://direct.beatapi.io/v1")
response = client.responses.create(
    model="gpt-6.1-sol",
    input="Design a resilient webhook retry strategy for a payments API.",
    reasoning={
      "effort": "medium"
    },
)
print(response.output_text)
``````javascript title="JavaScript"
import OpenAI from "openai";

const client = new OpenAI({ apiKey: process.env.BEATAPI_API_KEY, baseURL: "https://direct.beatapi.io/v1" });
const response = await client.responses.create({
  "model": "gpt-6.1-sol",
  "input": "Design a resilient webhook retry strategy for a payments API.",
  "reasoning": {
    "effort": "medium"
  }
});
console.log(response.output_text);
```## Эндпоинт и аутентификация`POST https://direct.beatapi.io/v1/responses`Authorization
string
Обязательно`Bearer <BEATAPI_API_KEY>`. Ключ работает как с префиксом `sk-`, так и без него.## Параметры запросаПоддерживаются стандартные поля OpenAI Responses. Совместимость формата запроса не означает поддержку всех параметров конкретного провайдера и встроенных инструментов сервиса. Проверьте возможности, от которых зависит ваше приложение.model
string
ОбязательноТочный ID модели.**Допустимые значения**: `gpt-6.1-terra`, `gpt-6.1-sol`, `gpt-6-astra`, `gpt-6-sol`, `gpt-6-luna`- Прежние рабочие ID (`gpt-5.6-sol`, `gpt-5.6-terra`, `gpt-5.6-luna`) перечислены в разделе [Старые модели](/text-api/legacy-models).
- Вызовите `GET /v1/models` со своим ключом, чтобы проверить, какие модели ему доступны.input
string | object[]
ОбязательноПромпт: строка либо массив входных элементов с текстом и изображениями.- Все модели GPT на этой странице поддерживают изображения на входе.reasoning
object
НеобязательноНастройки рассуждений. `reasoning.effort` определяет, насколько интенсивно модель рассуждает перед ответом.**Допустимые значения**: `none`, `low`, `medium`, `high`, `xhigh`, `max`**Зависит от модели**- `gpt-6.1-terra`: `none`, `low`, `medium` (по умолчанию), `high`, `xhigh` и `max`.
- `gpt-6.1-sol`: `low`, `medium`, `high`, `xhigh` и `max`. `none` и `minimal` не поддерживаются.
- `gpt-5.6-sol`: `none`, `low`, `medium`, `high`, `xhigh` и `max`.
- `gpt-5.6-terra`: `none`, `low`, `medium`, `high`, `xhigh` и `max`.
- `gpt-5.6-luna`: `none`, `low`, `medium`, `high`, `xhigh` и `max`.**Пример**```json
{ "effort": "medium" }
```max_output_tokens
integer
НеобязательноМаксимальное число всех генерируемых токенов, включая рассуждения и видимый ответ.- Шлюз принимает значения до 1 073 741 823; превышение возвращает `400 bad_request`.
- Шлюз не сравнивает указанное значение с максимальным объёмом вывода модели из таблицы выше. Не превышайте этот предел.
- Значение также используется для оценки необходимого баланса. Слишком большое значение может привести к `402 insufficient_credits`, даже если фактический ответ был бы коротким. Указывайте столько токенов, сколько требуется задаче.stream
boolean
НеобязательноПо умолчанию: falseПередавать ответ потоком событий SSE. См. раздел о потоковой передаче ниже.**По умолчанию**: `false`tools
object[]
НеобязательноФункции-инструменты, которые может вызвать модель. Responses — рекомендуемый формат для вызовов инструментов.text
object
НеобязательноНастройки формата вывода, например `text.format` для структурированных ответов.## ОтветБез потоковой передачи запрос возвращает один JSON-объект. Ниже приведён сокращённый пример.```json
{
  "id": "resp_example",
  "object": "response",
  "model": "gpt-6.1-sol",
  "status": "completed",
  "output": [
    {
      "type": "message",
      "role": "assistant",
      "content": [
        {
          "type": "output_text",
          "text": "Retry with exponential backoff and jitter, and make every handler idempotent."
        }
      ]
    }
  ],
  "usage": {
    "input_tokens": 19,
    "output_tokens": 16,
    "total_tokens": 35
  }
}
```### Поля ответа| Поле       | Тип        | Описание                                                                                                                       |
| ---------- | ---------- | ------------------------------------------------------------------------------------------------------------------------------ |
| `id`       | `string`   | ID ответа. Сохраняйте его вместе с ID запроса для обращений в поддержку и сверки расходов.                                     |
| `model`    | `string`   | Модель, сформировавшая ответ.                                                                                                  |
| `status`   | `string`   | `completed` означает, что ответ завершён.                                                                                      |
| `output[]` | `object[]` | Выходные элементы: сообщения, рассуждения и вызовы инструментов. Свойство SDK `output_text` объединяет текстовые части ответа. |
| `usage`    | `object`   | Количество токенов. Стоимость рассчитывается по фактическому использованию.                                                    |## Потоковая передачаУстановите `"stream": true`. BeatAPI передаёт поток SSE без преобразования, поэтому имена и объекты событий остаются совместимыми с OpenAI SDK.- Тип ответа — `text/event-stream`; без потоковой передачи — `application/json`.
- Ошибка до вызова модели возвращается обычным JSON-ответом с HTTP-кодом, а не событием потока.
- Явно задайте тайм-ауты и предусмотрите безопасное восстановление соединения при потоковой передаче.```text
event: response.output_text.delta
data: {"type":"response.output_text.delta","delta":"Retry"}

event: response.output_text.delta
data: {"type":"response.output_text.delta","delta":" with backoff"}

event: response.completed
data: {"type":"response.completed","response":{"id":"resp_example","status":"completed"}}
```## Устранение ошибок| Ошибка или симптом                                  | Причина                                                                                                              | Решение                                                                                       |
| --------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------- |
| `400` с неподдерживаемой интенсивностью рассуждений | Например, `none` у `gpt-6.1-sol`.                                                                                    | Используйте поддерживаемое моделью значение; см. `reasoning` выше.                            |
| `402 insufficient_credits`                          | Баланс меньше оценочной стоимости запроса, часто из-за слишком большого `max_output_tokens`.                         | Пополните баланс или уменьшите `max_output_tokens`.                                           |
| `403 forbidden`                                     | На аккаунте только регистрационный бонус, а модель не входит в разрешённый список, либо она недоступна группе ключа. | Пополните баланс, выберите бесплатную модель или используйте ключ с доступом к нужной модели. |
| `404 not_found`                                     | Неизвестный ID модели либо модель недоступна этому ключу.                                                            | Получите список доступных моделей через `GET /v1/models`.                                     |
| `429 rate_limit_exceeded`                           | Достигнут лимит запросов аккаунта или бесплатной модели.                                                             | Подождите время, указанное в `Retry-After`, затем повторите запрос.                           |### Обзор HTTP-ошибокОшибки до вызова модели используют поля BeatAPI `error.code`, `error.message`, `retryable` и `request_id`. Остальные сохраняют формат OpenAI SDK `{"error": {"message", "type", "code"}}`. Код находится в `error.code`, ID запроса — в конце `message`. См. [ошибки](/errors#text-endpoints).| HTTP-статус | Коды                                                       | Что делать                                                                                                         |
| ----------- | ---------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------ |
| 400         | `bad_request`, `content_policy_violation`                  | Исправьте запрос или ввод. Не отправляйте его повторно без изменений.                                              |
| 401         | `missing_api_key`, `invalid_api_key`                       | Проверьте ключ. Не повторяйте запрос без исправления.                                                              |
| 402         | `insufficient_credits`                                     | Пополните баланс или увеличьте лимит ключа. Слишком высокий `max_tokens` может вызвать эту ошибку.                 |
| 403         | `forbidden`                                                | Проверьте группу ключа, список разрешённых IP и доступность модели за бесплатные кредиты.                          |
| 404         | `not_found`                                                | Неизвестная модель. Проверьте активные модели через `GET /v1/models`.                                              |
| 429         | `rate_limit_exceeded`                                      | Подождите согласно `Retry-After` или `retry_after_seconds`, затем повторите запрос с увеличивающимися интервалами. |
| 500         | `internal_error`, `temporary_error`                        | Повторите запрос один-два раза с увеличивающимися интервалами.                                                     |
| 503         | `model_unavailable`, `upstream_timeout`, `temporary_error` | Повторите запрос с увеличивающимися интервалами или выберите другую модель.                                        |Все коды и правила повторных запросов: [ошибки](/errors#text-endpoints).## Примечания- Модели Claude не обслуживаются через `/v1/responses` (`400 bad_request`); используйте [Anthropic Messages](/text-api/claude/messages).
- При входе свыше 272K токенов `gpt-6.1-terra`, `gpt-6.1-sol` и `gpt-6-astra` применяют повышенный тариф ко всему запросу. Перед оценкой стоимости задач с длинным контекстом проверьте [таблицу цен](https://beatapi.io/pricing).
- Храните ключи на доверенных серверах, записывайте ID запроса из ответа и повторяйте запросы только при ошибках `429`, `500` и `503`.

Reference: https://docs.beatapi.io/api-reference/text-api/gpt-responses

## Authentication

- `Authorization` header (bearer token, required) — Передавайте API-ключ в виде `Authorization: Bearer <BEATAPI_API_KEY>`.

## Servers

- `https://direct.beatapi.io` (Direct, default)
- `https://api.beatapi.io` (API)

## Request

### Body (application/json)

This endpoint expects an object.

- `model` (enum, required) — Точный ID модели. Прежние рабочие ID (`gpt-5.6-sol`, `gpt-5.6-terra`, `gpt-5.6-luna`) перечислены в разделе [Старые модели](/text-api/legacy-models). Вызовите `GET /v1/models` со своим ключом, чтобы проверить, какие модели ему доступны. `gpt-6.1-terra`, `gpt-6.1-sol`, `gpt-6-astra`, `gpt-6-sol`, `gpt-6-luna`
  - Allowed values: `gpt-6.1-terra`, `gpt-6.1-sol`, `gpt-6-astra`, `gpt-6-sol`, `gpt-6-luna`
- `input` (V1ResponsesPostRequestBodyContentApplicationJsonSchemaInput, required) — Промпт: строка либо массив входных элементов с текстом и изображениями. Все модели GPT на этой странице поддерживают изображения на входе.
- `reasoning` (V1ResponsesPostRequestBodyContentApplicationJsonSchemaReasoning, optional) — Настройки рассуждений. `reasoning.effort` определяет, насколько интенсивно модель рассуждает перед ответом. `gpt-6.1-terra`: `none`, `low`, `medium` (по умолчанию), `high`, `xhigh` и `max`. `gpt-6.1-sol`: `low`, `medium`, `high`, `xhigh` и `max`. `none` и `minimal` не поддерживаются. `gpt-5.6-sol`: `none`, `low`, `medium`, `high`, `xhigh` и `max`. `gpt-5.6-terra`: `none`, `low`, `medium`, `high`, `xhigh` и `max`. `gpt-5.6-luna`: `none`, `low`, `medium`, `high`, `xhigh` и `max`. `none`, `low`, `medium`, `high`, `xhigh`, `max`
- `max_output_tokens` (integer, optional) — Максимальное число всех генерируемых токенов, включая рассуждения и видимый ответ. Шлюз принимает значения до 1 073 741 823; превышение возвращает `400 bad_request`. Шлюз не сравнивает указанное значение с максимальным объёмом вывода модели из таблицы выше. Не превышайте этот предел. Значение также используется для оценки необходимого баланса. Слишком большое значение может привести к `402 insufficient_credits`, даже если фактический ответ был бы коротким. Указывайте столько токенов, сколько требуется задаче.
- `stream` (boolean, optional, default: false) — Передавать ответ потоком событий SSE. См. раздел о потоковой передаче ниже.
- `tools` (list of V1ResponsesPostRequestBodyContentApplicationJsonSchemaToolsItems, optional) — Функции-инструменты, которые может вызвать модель. Responses — рекомендуемый формат для вызовов инструментов.
- `text` (V1ResponsesPostRequestBodyContentApplicationJsonSchemaText, optional) — Настройки формата вывода, например `text.format` для структурированных ответов.

## Response

### 200

Без потоковой передачи запрос возвращает один JSON-объект. Ниже приведён сокращённый пример.

- `id` (string, optional) — ID ответа. Сохраняйте его вместе с ID запроса для обращений в поддержку и сверки расходов.
- `model` (string, optional) — Модель, сформировавшая ответ.
- `status` (string, optional) — `completed` означает, что ответ завершён.
- `output` (list of V1ResponsesPostResponsesContentApplicationJsonSchemaOutputItems, optional) — Выходные элементы: сообщения, рассуждения и вызовы инструментов. Свойство SDK `output_text` объединяет текстовые части ответа.
- `usage` (V1ResponsesPostResponsesContentApplicationJsonSchemaUsage, optional) — Количество токенов. Стоимость рассчитывается по фактическому использованию.

## Errors

### 400 Bad Request Error

`bad_request`, `content_policy_violation` Исправьте запрос или ввод. Не отправляйте его повторно без изменений. Ошибки до вызова модели используют поля BeatAPI `error.code`, `error.message`, `retryable` и `request_id`. Остальные сохраняют формат OpenAI SDK `{"error": {"message", "type", "code"}}`. Код находится в `error.code`, ID запроса — в конце `message`. См. [ошибки](/errors#text-endpoints).

- `map from string to any`

### 401 Unauthorized Error

`missing_api_key`, `invalid_api_key` Проверьте ключ. Не повторяйте запрос без исправления. Ошибки до вызова модели используют поля BeatAPI `error.code`, `error.message`, `retryable` и `request_id`. Остальные сохраняют формат OpenAI SDK `{"error": {"message", "type", "code"}}`. Код находится в `error.code`, ID запроса — в конце `message`. См. [ошибки](/errors#text-endpoints).

- `map from string to any`

### 402 Payment Required Error

`insufficient_credits` Пополните баланс или увеличьте лимит ключа. Слишком высокий `max_tokens` может вызвать эту ошибку. Ошибки до вызова модели используют поля BeatAPI `error.code`, `error.message`, `retryable` и `request_id`. Остальные сохраняют формат OpenAI SDK `{"error": {"message", "type", "code"}}`. Код находится в `error.code`, ID запроса — в конце `message`. См. [ошибки](/errors#text-endpoints).

- `map from string to any`

### 403 Forbidden Error

`forbidden` Проверьте группу ключа, список разрешённых IP и доступность модели за бесплатные кредиты. Ошибки до вызова модели используют поля BeatAPI `error.code`, `error.message`, `retryable` и `request_id`. Остальные сохраняют формат OpenAI SDK `{"error": {"message", "type", "code"}}`. Код находится в `error.code`, ID запроса — в конце `message`. См. [ошибки](/errors#text-endpoints).

- `map from string to any`

### 404 Not Found Error

`not_found` Неизвестная модель. Проверьте активные модели через `GET /v1/models`. Ошибки до вызова модели используют поля BeatAPI `error.code`, `error.message`, `retryable` и `request_id`. Остальные сохраняют формат OpenAI SDK `{"error": {"message", "type", "code"}}`. Код находится в `error.code`, ID запроса — в конце `message`. См. [ошибки](/errors#text-endpoints).

- `map from string to any`

### 429 Too Many Requests Error

`rate_limit_exceeded` Подождите согласно `Retry-After` или `retry_after_seconds`, затем повторите запрос с увеличивающимися интервалами. Ошибки до вызова модели используют поля BeatAPI `error.code`, `error.message`, `retryable` и `request_id`. Остальные сохраняют формат OpenAI SDK `{"error": {"message", "type", "code"}}`. Код находится в `error.code`, ID запроса — в конце `message`. См. [ошибки](/errors#text-endpoints).

- `map from string to any`

### 500 Internal Server Error

`internal_error`, `temporary_error` Повторите запрос один-два раза с увеличивающимися интервалами. Ошибки до вызова модели используют поля BeatAPI `error.code`, `error.message`, `retryable` и `request_id`. Остальные сохраняют формат OpenAI SDK `{"error": {"message", "type", "code"}}`. Код находится в `error.code`, ID запроса — в конце `message`. См. [ошибки](/errors#text-endpoints).

- `map from string to any`

### 503 Service Unavailable Error

`model_unavailable`, `upstream_timeout`, `temporary_error` Повторите запрос с увеличивающимися интервалами или выберите другую модель. Ошибки до вызова модели используют поля BeatAPI `error.code`, `error.message`, `retryable` и `request_id`. Остальные сохраняют формат OpenAI SDK `{"error": {"message", "type", "code"}}`. Код находится в `error.code`, ID запроса — в конце `message`. См. [ошибки](/errors#text-endpoints).

- `map from string to any`

## Types

### V1ResponsesPostRequestBodyContentApplicationJsonSchemaInput

Промпт: строка либо массив входных элементов с текстом и изображениями. Все модели GPT на этой странице поддерживают изображения на входе.

- string
- list of V1ResponsesPostRequestBodyContentApplicationJsonSchemaInputOneOf1Items

### V1ResponsesPostRequestBodyContentApplicationJsonSchemaReasoning

Настройки рассуждений. `reasoning.effort` определяет, насколько интенсивно модель рассуждает перед ответом. `gpt-6.1-terra`: `none`, `low`, `medium` (по умолчанию), `high`, `xhigh` и `max`. `gpt-6.1-sol`: `low`, `medium`, `high`, `xhigh` и `max`. `none` и `minimal` не поддерживаются. `gpt-5.6-sol`: `none`, `low`, `medium`, `high`, `xhigh` и `max`. `gpt-5.6-terra`: `none`, `low`, `medium`, `high`, `xhigh` и `max`. `gpt-5.6-luna`: `none`, `low`, `medium`, `high`, `xhigh` и `max`. `none`, `low`, `medium`, `high`, `xhigh`, `max`

- `effort` (enum, optional)
  - Allowed values: `none`, `low`, `medium`, `high`, `xhigh`, `max`

### V1ResponsesPostRequestBodyContentApplicationJsonSchemaToolsItems

### V1ResponsesPostRequestBodyContentApplicationJsonSchemaText

Настройки формата вывода, например `text.format` для структурированных ответов.

### V1ResponsesPostResponsesContentApplicationJsonSchemaOutputItems

### V1ResponsesPostResponsesContentApplicationJsonSchemaUsage

Количество токенов. Стоимость рассчитывается по фактическому использованию.

### V1ResponsesPostRequestBodyContentApplicationJsonSchemaInputOneOf1Items

- `type` (string, optional)
- `role` (string, optional)
- `content` (V1ResponsesPostRequestBodyContentApplicationJsonSchemaInputOneOf1ItemsContent, optional)

### V1ResponsesPostRequestBodyContentApplicationJsonSchemaInputOneOf1ItemsContent

- string
- list of V1ResponsesPostRequestBodyContentApplicationJsonSchemaInputOneOf1ItemsContentOneOf1Items

### V1ResponsesPostRequestBodyContentApplicationJsonSchemaInputOneOf1ItemsContentOneOf1Items

- `type` (string, optional)
- `text` (string, optional)
- `image_url` (V1ResponsesPostRequestBodyContentApplicationJsonSchemaInputOneOf1ItemsContentOneOf1ItemsImageUrl, optional)
- `source` (V1ResponsesPostRequestBodyContentApplicationJsonSchemaInputOneOf1ItemsContentOneOf1ItemsSource, optional)

### V1ResponsesPostRequestBodyContentApplicationJsonSchemaInputOneOf1ItemsContentOneOf1ItemsImageUrl

- string
- V1ResponsesPostRequestBodyContentApplicationJsonSchemaInputOneOf1ItemsContentOneOf1ItemsImageUrl1

### V1ResponsesPostRequestBodyContentApplicationJsonSchemaInputOneOf1ItemsContentOneOf1ItemsSource

- `type` (string, optional)
- `media_type` (string, optional)
- `data` (string, optional)
- `url` (string, optional)

### V1ResponsesPostRequestBodyContentApplicationJsonSchemaInputOneOf1ItemsContentOneOf1ItemsImageUrl1

- `url` (string, optional)
- `detail` (string, optional)

## Examples

**Request**

```json
{
  "model": "gpt-6.1-sol",
  "input": "Design a resilient webhook retry strategy for a payments API.",
  "reasoning": {
    "effort": "medium"
  }
}
```

**Response**

```json
{
  "id": "resp_example",
  "model": "gpt-6.1-sol",
  "status": "completed",
  "output": [
    {
      "content": [
        {
          "text": "Retry with exponential backoff and jitter, and make every handler idempotent.",
          "type": "output_text"
        }
      ],
      "role": "assistant",
      "type": "message"
    }
  ],
  "usage": {
    "input_tokens": 19,
    "output_tokens": 16,
    "total_tokens": 35
  },
  "object": "response"
}
```

**SDK Code**

```python Быстрый старт
import requests

url = "https://direct.beatapi.io/v1/responses"

payload = {
    "model": "gpt-6.1-sol",
    "input": "Design a resilient webhook retry strategy for a payments API.",
    "reasoning": { "effort": "medium" }
}
headers = {
    "Authorization": "Bearer <token>",
    "Content-Type": "application/json"
}

response = requests.post(url, json=payload, headers=headers)

print(response.json())
```

```javascript Быстрый старт
const url = 'https://direct.beatapi.io/v1/responses';
const options = {
  method: 'POST',
  headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
  body: '{"model":"gpt-6.1-sol","input":"Design a resilient webhook retry strategy for a payments API.","reasoning":{"effort":"medium"}}'
};

try {
  const response = await fetch(url, options);
  const data = await response.json();
  console.log(data);
} catch (error) {
  console.error(error);
}
```

```go Быстрый старт
package main

import (
	"fmt"
	"strings"
	"net/http"
	"io"
)

func main() {

	url := "https://direct.beatapi.io/v1/responses"

	payload := strings.NewReader("{\n  \"model\": \"gpt-6.1-sol\",\n  \"input\": \"Design a resilient webhook retry strategy for a payments API.\",\n  \"reasoning\": {\n    \"effort\": \"medium\"\n  }\n}")

	req, _ := http.NewRequest("POST", url, payload)

	req.Header.Add("Authorization", "Bearer <token>")
	req.Header.Add("Content-Type", "application/json")

	res, _ := http.DefaultClient.Do(req)

	defer res.Body.Close()
	body, _ := io.ReadAll(res.Body)

	fmt.Println(res)
	fmt.Println(string(body))

}
```

```ruby Быстрый старт
require 'uri'
require 'net/http'

url = URI("https://direct.beatapi.io/v1/responses")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n  \"model\": \"gpt-6.1-sol\",\n  \"input\": \"Design a resilient webhook retry strategy for a payments API.\",\n  \"reasoning\": {\n    \"effort\": \"medium\"\n  }\n}"

response = http.request(request)
puts response.read_body
```

```java Быстрый старт
import com.mashape.unirest.http.HttpResponse;
import com.mashape.unirest.http.Unirest;

HttpResponse<String> response = Unirest.post("https://direct.beatapi.io/v1/responses")
  .header("Authorization", "Bearer <token>")
  .header("Content-Type", "application/json")
  .body("{\n  \"model\": \"gpt-6.1-sol\",\n  \"input\": \"Design a resilient webhook retry strategy for a payments API.\",\n  \"reasoning\": {\n    \"effort\": \"medium\"\n  }\n}")
  .asString();
```

```php Быстрый старт
<?php
require_once('vendor/autoload.php');

$client = new \GuzzleHttp\Client();

$response = $client->request('POST', 'https://direct.beatapi.io/v1/responses', [
  'body' => '{
  "model": "gpt-6.1-sol",
  "input": "Design a resilient webhook retry strategy for a payments API.",
  "reasoning": {
    "effort": "medium"
  }
}',
  'headers' => [
    'Authorization' => 'Bearer <token>',
    'Content-Type' => 'application/json',
  ],
]);

echo $response->getBody();
```

```csharp Быстрый старт
using RestSharp;

var client = new RestClient("https://direct.beatapi.io/v1/responses");
var request = new RestRequest(Method.POST);
request.AddHeader("Authorization", "Bearer <token>");
request.AddHeader("Content-Type", "application/json");
request.AddParameter("application/json", "{\n  \"model\": \"gpt-6.1-sol\",\n  \"input\": \"Design a resilient webhook retry strategy for a payments API.\",\n  \"reasoning\": {\n    \"effort\": \"medium\"\n  }\n}", ParameterType.RequestBody);
IRestResponse response = client.Execute(request);
```

```swift Быстрый старт
import Foundation

let headers = [
  "Authorization": "Bearer <token>",
  "Content-Type": "application/json"
]
let parameters = [
  "model": "gpt-6.1-sol",
  "input": "Design a resilient webhook retry strategy for a payments API.",
  "reasoning": ["effort": "medium"]
] as [String : Any]

let postData = JSONSerialization.data(withJSONObject: parameters, options: [])

let request = NSMutableURLRequest(url: NSURL(string: "https://direct.beatapi.io/v1/responses")! as URL,
                                        cachePolicy: .useProtocolCachePolicy,
                                    timeoutInterval: 10.0)
request.httpMethod = "POST"
request.allHTTPHeaderFields = headers
request.httpBody = postData as Data

let session = URLSession.shared
let dataTask = session.dataTask(with: request as URLRequest, completionHandler: { (data, response, error) -> Void in
  if (error != nil) {
    print(error as Any)
  } else {
    let httpResponse = response as? HTTPURLResponse
    print(httpResponse)
  }
})

dataTask.resume()
```