Overview
GoModel exposes OpenAI-compatible Responses API endpoints under /v1/responses.
Create requests use the translated model routing pipeline, so virtual models,
workflows, guardrails, failover, usage logging, and response caching continue to
apply. Lifecycle and utility endpoints use native provider capabilities when
available, and return explicit compatibility errors when the selected provider
does not support the requested operation.
For feature-level behavior, including hosted tools and chat-translated
providers, see Responses compatibility.
Supported endpoints
Stored responses
For non-streaming POST /v1/responses calls, GoModel stores the normalized
response body and the normalized input items from the request.
This enables:
GET /v1/responses/{id} for responses created through GoModel.
GET /v1/responses/{id}/input_items for the original normalized input.
DELETE /v1/responses/{id} even when the provider does not expose native
response deletion.
Streaming responses are not stored as response snapshots.
Native provider lookup
When a response was not created through the current GoModel process or response
store, lifecycle endpoints can still use a native provider lookup.
Specify the provider when the response ID is not stored locally:
Without a stored response or provider hint, GoModel checks providers that expose
native Responses lifecycle support. If lifecycle routing is unavailable,
GoModel returns a compatibility error. If lifecycle routing is available but no
provider can serve the response, GoModel returns a normal not-found error.
GoModel normalizes stored input into OpenAI-compatible response input items.
String input becomes a user message with an input_text content item:
Structured input arrays preserve message, function call, and function call
output items where possible.
Compatibility errors
Some providers do not support every Responses lifecycle or utility endpoint.
When the selected provider cannot perform an operation, GoModel returns an
OpenAI-compatible error with:
GoModel uses OpenAI’s invalid_request_error type for unsupported operations
so the public error type set stays closed. The unsupported_response_operation
code identifies the unsupported operation, returned with HTTP 501 Not Implemented.
Example
Create a response:
Retrieve it later:
List its stored input items:
Last modified on August 1, 2026