Skip to Content
API AccessResponses

Responses

POST /v1/responses Content-Type: application/json Authorization: Bearer sk-steinkauz-live-...

The Responses endpoint implements the commonly interoperable core of the OpenAI Responses API : text and image input, instructions, function tools, structured text output, reasoning effort, sampling controls, streaming events, stored responses, and response-ID continuation.

Requests are authenticated and checked against routing policy and Budgets. Retained request evidence, reported usage and cost can be inspected in Activity.

Example

curl -sS "$STEINKAUZ_BASE_URL/v1/responses" \ -H "Content-Type: application/json" \ -H "Authorization: Bearer $STEINKAUZ_API_KEY" \ -d '{ "model": "vercel-ai-gateway/openai/gpt-5.5", "instructions": "Be concise.", "input": "Explain policy-as-code in one sentence." }'

OpenAI SDK

from openai import OpenAI client = OpenAI( api_key="sk-steinkauz-live-YOUR_SECRET", base_url="https://platform.steinkauz.ai/v1", ) response = client.responses.create( model="vercel-ai-gateway/openai/gpt-5.5", input="Hello 👋", ) print(response.output_text)

Set stream=True to receive typed Responses SSE events ending in response.completed.

Responses are stored for 30 days by default. Set store=False to keep the call stateless; a stateless response cannot be retrieved or referenced by previous_response_id.

store=False controls response retrieval and continuation, not audit retention. Sanitized request/response evidence is still retained under the configured content retention period and can be inspected in Activity with the appropriate permissions.

Stored responses and continuation

first = client.responses.create( model="vercel-ai-gateway/openai/gpt-5.5", input="Remember that the release name is Tawny Owl.", ) second = client.responses.create( model="vercel-ai-gateway/openai/gpt-5.5", previous_response_id=first.id, input="What is the release name?", )

Supported lifecycle operations are:

  • GET /v1/responses/{response_id}
  • DELETE /v1/responses/{response_id}
  • GET /v1/responses/{response_id}/input_items

Stored responses are scoped to the organization, user, and API key that created them. Deleting response state does not delete policy decisions, usage evidence, or generation billing records.

For store=False, you can manually append supported items from response.output to the next request’s input.

Supported input and tools

  • String input, or message items with user, assistant, system, and developer roles
  • input_text, output_text, and URL/data-URL input_image parts
  • Function definitions using the Responses flat tool shape
  • function_call and string function_call_output history items
  • tool_choice, parallel_tool_calls, JSON mode, and JSON Schema output
  • temperature, top_p, max_output_tokens, reasoning effort, and verbosity

Durable Conversation objects, background responses, cancellation, compaction, hosted file inputs, and OpenAI-hosted tools such as file search, web search, and computer use are not emulated. Unsupported fields return 400 invalid_request_error.

For Steinkauz API transcript continuity, the optional session_id and turn_id extension fields work as described under Chat Completions.

Attachment continuation

Stored state contains safe file evidence rather than original attachment bodies. If a previous response needs an omitted body, continuation returns 400 attachment_context_unavailable. Resend the complete supported input without previous_response_id. Text and tool-only continuation remain available.