Responses
Stateless text and function items with typed response lifecycle events.
Request contract
Use string input or bounded typed input items, optional instructions and max_output_tokens. This subset is stateless: omit storage or set store:false. Carry previous text/function items forward explicitly.
Tool correlation
Assistant function_call items may be sent back with function_call_output using the matching call_id. Preserve every call and its result. Missing, duplicate or orphaned results are rejected.
Streaming lifecycle
Events include ordered sequence numbers and native response/output events. Successful output ends in response.completed. Output-bound exhaustion ends in response.incomplete with max_output_tokens; the stream does not use [DONE].
Storage boundary
store:true, previous_response_id, conversation IDs, background execution and native retrieve/delete/cancel semantics are unsupported. store:false disables public native response retrieval; it does not erase required durable safety and accounting records.
Request example
Use your own customer key. Confirm the model is published and your API wallet is funded. Copying an example never sends a request.
curl https://notholy.com/v1/responses \
-H "Authorization: Bearer $NOTHOLY_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "notholy-pulse",
"input": "Explain least privilege.",
"max_output_tokens": 256,
"store": false
}'HTTP contract fixture. Fixture checks are separate from production availability.
Request fields
Generated from the versioned contract. Refinement rules above still apply.
modelstringrequiredUp to 100 characters.
inputstring | array<object | object | object>requiredShow accepted variants
Variant 1stringUp to 131072 characters.
Variant 2array<object | object | object>Up to 128 items. At least 1 item.
instructionsstringUp to 131072 characters.
max_output_tokensintegerMinimum 32. Maximum 4096.
streambooleanstorefalsebackgroundfalsetoolsarray<object>Up to 8 items.
Show item fields
type"function"requirednamestringrequireddescriptionstringUp to 1000 characters.
parametersobjectrequiredstrictfalsetool_choice"auto" | "none" | "required" | objectShow accepted variants
Variant 1"auto" | "none" | "required"Variant 2objectUnknown fields rejected.
Show object fields
type"function"requirednamestringrequiredResponse schema
idstringrequiredobject"response"requiredcreated_atintegerrequiredMinimum -9007199254740991. Maximum 9007199254740991.
status"in_progress" | "completed" | "failed" | "incomplete"requirederrorobject | nullrequiredShow accepted variants
Variant 1objectUnknown fields rejected.
Show object fields
codestringrequiredmessagestringrequiredVariant 2nullincomplete_detailsobject | nullrequiredShow accepted variants
Variant 1objectUnknown fields rejected.
Show object fields
reason"max_output_tokens"requiredVariant 2nullinstructionsstring | nullrequiredmax_output_tokensintegerrequiredMinimum -9007199254740991. Maximum 9007199254740991.
modelstringrequiredoutputarray<object | object>requiredparallel_tool_callsbooleanrequiredtool_choicestring | objectrequiredShow accepted variants
Variant 1stringVariant 2objectUnknown fields rejected.
Show object fields
type"function"requirednamestringrequiredtoolsarray<object>requiredShow item fields
type"function"requirednamestringrequireddescriptionstringUp to 1000 characters.
parametersobjectrequiredstrictfalseusageobject | nullrequiredShow accepted variants
Variant 1objectUnknown fields rejected.
Show object fields
input_tokensintegerrequiredMinimum 0. Maximum 9007199254740991.
input_tokens_detailsobjectrequiredUnknown fields rejected.
Show object fields
cached_tokensintegerrequiredMinimum 0. Maximum 9007199254740991.
output_tokensintegerrequiredMinimum 0. Maximum 9007199254740991.
output_tokens_detailsobjectUnknown fields rejected.
Show object fields
reasoning_tokensintegerrequiredMinimum 0. Maximum 9007199254740991.
total_tokensintegerrequiredMinimum 0. Maximum 9007199254740991.
Variant 2nullstorefalserequiredmetadataobjectrequiredUnknown fields rejected.