MorphogenДокументация
API

Responses

POST /v1/responses: текстовый запрос в формате OpenAI Responses.

POST/v1/responses

Отправляет запрос текстовой модели в формате OpenAI Responses. Работает client.responses.create(...) из OpenAI SDK и Codex. Сервис не хранит историю: поля store и previous_response_id не поддерживаются, каждый запрос передаёт весь контекст.

Заголовки

ЗаголовокЗначение
AuthorizationBearer <ключ>. Обязателен. Вместо него принимается x-api-key: <ключ>
Content-Typeapplication/json
X-PII-Maskingon или off. Маскирование ПДн
X-Morphogen-Spacespc_…: пространство расхода. Необязательный

Тело запроса

modelstringобязательный

Имя модели из GET /v1/models.

inputstring | arrayобязательный

Строка или список элементов ввода: сообщения, input_image, function_call_output.

instructionsstring

Системная инструкция.

max_output_tokensinteger

Максимальная длина ответа. Передавайте всегда: без него резервируется сумма по максимальной длине ответа модели.

streamboolean

true включает потоковый ответ событиями Responses.

toolsarray

Описание функций для вызова инструментов.

storeboolean

Только false или без поля. true даёт 400 stateful_not_supported.

previous_response_idstring

Не поддерживается. Любое значение даёт 400 stateful_not_supported.

Пример запроса

curl https://api.morphogen.ru/v1/responses \
  -H "Authorization: Bearer $MORPHOGEN_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "gpt-6-luna",
    "max_output_tokens": 300,
    "input": "Назови столицу Франции одним словом"
  }'

Пример ответа

{
  "id": "resp_01HzQ4",
  "object": "response",
  "status": "completed",
  "model": "gpt-6-luna",
  "output": [
    {
      "type": "message",
      "role": "assistant",
      "content": [{ "type": "output_text", "text": "Париж" }]
    }
  ],
  "usage": { "input_tokens": 14, "output_tokens": 4, "total_tokens": 18 }
}

Если модель израсходовала весь max_output_tokens на размышления, статус ответа incomplete. В потоке в этом случае приходит событие response.incomplete. Дайте модели запас по длине.

Ошибки

400stateful_not_supportedВ запросе store: true или previous_response_id.
400invalid_jsonТело запроса не разобрано.
400model_category_mismatchМодель не текстовая.
401invalid_api_keyКлюч не передан, неверный, отозван или истёк.
402insufficient_fundsНа балансе не хватает денег на резерв запроса.
402key_limit_exceededИсчерпан дневной или месячный лимит ключа.
403model_not_allowedМодели нет в списке ключа.
404model_not_foundТакой модели нет в каталоге.
413request_too_largeТело запроса больше 32 МиБ.
429rate_limit_exceededПревышен лимит запросов или токенов в минуту. Повторите через время из Retry-After.
503service_unavailableСлужба временно недоступна. Повторите запрос.

Остальные коды: Ошибки.

На этой странице