POST /v1/responses serves OpenAI’s Responses format. It is the same door as
chat completions: the same key, the same catalog, the same hold against your
balance and the same usage record, under its own endpoint family so a charge
is recognisable. The input is forwarded as you sent it, whether a string or
the array of typed input items, and stream: true gives server-sent events.
This platform stores no response
The Responses API was designed around a server that keeps your conversation: a response has an id, a follow-up can name it asprevious_response_id, and
store defaults to keeping it. Hopscotch keeps no prompts and no responses,
so on our own provider credentials the stored-state parts of the format are
refused rather than quietly accepted and lost.
Each refusal is an HTTP 400 in the OpenAI envelope with the field in
param,
and it says what to do:
400
endpoint_not_supported: reading a response by id, deleting one, and
listing its input items. There is nothing behind them to read.
Tools
Tools you define yourself are forwarded and work as they do on chat. Hosted tools that the provider bills for separately are refused on our credentials because we do not meter them: web search, web fetch, code execution and the code interpreter, file search, image generation, and remote MCP servers. The refusal names the tool:400
Everything else
service_tier is accepted as auto or default. The small set of fields no
endpoint meters on our credentials, a priority or fast mode, regional
processing, audio input and output, and a one-hour cache write, is refused
with the same shape of 400 here as on chat. See
OpenAI compatibility.
Streaming, the response headers, the request id, and billing work the same
way on every endpoint. Read the usage and charge of a request back with
Usage lookup.
Next
Streaming
What a stream carries, and what happens when credit runs out mid-stream.
Tool calling
Your own tools, which are forwarded on every endpoint.
Every response carries the same id on two headers:
x-hopscotch-request-id,
which is ours, and x-request-id, which is the one the official OpenAI SDKs
surface on their error objects. Every error envelope repeats it as
request_id. Quote it when you ask us about a request. Without it we are
guessing at which of your requests you mean.