Responses
POST /v1/responses: текстовый запрос в формате OpenAI Responses.
/v1/responsesОтправляет запрос текстовой модели в формате OpenAI Responses. Работает client.responses.create(...) из OpenAI SDK и Codex. Сервис не хранит историю: поля store и previous_response_id не поддерживаются, каждый запрос передаёт весь контекст.
Заголовки
| Заголовок | Значение |
|---|---|
Authorization | Bearer <ключ>. Обязателен. Вместо него принимается x-api-key: <ключ> |
Content-Type | application/json |
X-PII-Masking | on или off. Маскирование ПДн |
X-Morphogen-Space | spc_…: пространство расхода. Необязательный |
Тело запроса
modelstringобязательныйИмя модели из GET /v1/models.
inputstring | arrayобязательныйСтрока или список элементов ввода: сообщения, input_image, function_call_output.
instructionsstringСистемная инструкция.
max_output_tokensintegerМаксимальная длина ответа. Передавайте всегда: без него резервируется сумма по максимальной длине ответа модели.
streambooleantrue включает потоковый ответ событиями 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. Дайте модели запас по длине.
Ошибки
stateful_not_supportedВ запросе store: true или previous_response_id.invalid_jsonТело запроса не разобрано.model_category_mismatchМодель не текстовая.invalid_api_keyКлюч не передан, неверный, отозван или истёк.insufficient_fundsНа балансе не хватает денег на резерв запроса.key_limit_exceededИсчерпан дневной или месячный лимит ключа.model_not_allowedМодели нет в списке ключа.model_not_foundТакой модели нет в каталоге.request_too_largeТело запроса больше 32 МиБ.rate_limit_exceededПревышен лимит запросов или токенов в минуту. Повторите через время из Retry-After.Остальные коды: Ошибки.