Перейти к содержимому
NotHolyДокументация

Справочник API

Responses

POST /v1/responses в формате OpenAI Responses. Без состояния, поэтому каждый раз отправляйте всю переписку.

Открыть как Markdown

OpenAI Responses API на тех же моделях, ключах и с той же оплатой, что и chat completions. Используйте его, если ваш SDK или цикл агента (Codex, OpenAI Agents SDK) говорит на Responses, а не на chat.

POSThttps://api.notholy.com/v1/responses

Запрос

ПолеТипОбязательноеПримечания
modelstringДаID модели, например notholy-specter
inputstring или arrayДаПромпт или список элементов message, function_call и function_call_output. Элементы других типов отбрасываются
instructionsstringНетСистемный промпт, ставится перед input
max_output_tokensnumberНетЛимит выхода. По умолчанию максимум модели, больше него не бывает
streambooleanНетtrue возвращает именованные события response.*
toolsarrayНетФункции. Инструменты других типов отбрасываются
tool_choicestring или objectНетИспользуется, если задано tools
reasoning.effortstringНетОдно из значений reasoning_efforts модели. Любое другое значение возвращает 400
temperature, top_pnumberНетПередаются модели

Эндпоинт не хранит состояние. previous_response_id возвращает 400 unsupported_parameter, а store, metadata и text.format игнорируются. Отправляйте всю переписку в input, включая прежние элементы function_call и function_call_output.

Ответ без стриминга

JSON
{
  "id": "resp_6mQ2x9",
  "object": "response",
  "created_at": 1793836800,
  "status": "completed",
  "model": "notholy-specter",
  "output": [
    { "type": "reasoning", "id": "rs_1", "summary": [{ "type": "summary_text", "text": "…" }] },
    {
      "type": "message",
      "id": "msg_1",
      "status": "completed",
      "role": "assistant",
      "content": [{ "type": "output_text", "text": "AV:N means the attack works over the network…", "annotations": [] }]
    }
  ],
  "usage": {
    "input_tokens": 18,
    "input_tokens_details": { "cached_tokens": 0 },
    "output_tokens": 96,
    "output_tokens_details": { "reasoning_tokens": 40 },
    "total_tokens": 114
  },
  "error": null,
  "incomplete_details": null,
  "store": false
}
  • status равен incomplete с incomplete_details.reason: "max_output_tokens", если лимит выхода обрезал ответ.
  • Вызовы инструментов возвращаются как элементы {"type": "function_call", "call_id": "call_…", "name": "…", "arguments": "…"}.
  • Если модель рассуждала, первым идёт элемент reasoning.

Стриминг

С "stream": true приходят события response.created, response.in_progress, затем для каждого элемента вывода response.output_item.added, дельты текста или рассуждений, их события .done и response.output_item.done, и в конце response.completed (или response.incomplete) с usage. Строки [DONE] нет. Сбой посреди потока приходит как response.failed.

Пример

curl https://api.notholy.com/v1/responses \
  -H "Authorization: Bearer $NOTHOLY_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"model": "notholy-specter", "input": "Summarize what CVSS 3.1 AV:N means."}'

Ошибки

Те же коды, что и у chat completions: 400 нет model или input · 401 неверный ключ · 402 закончились кредиты · 404 неизвестная модель · 429 занято (соблюдайте retry-after) · 503 модель недоступна. См. Ошибки.