Guarded Responses
Guarded Responses API: guardrails and output moderation applied to every request.
Error Reference: Guarded Responses
Authorizations
Headers
Body
Responses API request for the guarded v2 endpoint. model is required
(pinned-model routing only — no model_family/auto_routing on this shape).
String prompt or array of input items
Reasoning controls for a Responses request. On the Responses endpoints, a summary comes back only when summary is set. See the Reasoning guide (/api-guides/reasoning).
Text options, as on OpenAI's Responses API. text.format requests structured output — {"type": "json_schema", "name": ..., "schema": {...}, "strict": true}, {"type": "json_object"}, or {"type": "text"}. If response_format is also supplied it takes precedence. Other keys, such as verbosity, are accepted and ignored.
Image generation options (quality, size) mapped onto OpenAI's image_generation tool; ignored by providers without quality controls.
Optional tradition for guardrail static responses and personalization (catholic, evangelical, mainline, not_faith_specific). Invalid values are ignored gracefully.
Response
Successful Responses API result. If stream is false or omitted, the response is JSON. If stream=true, the response is a named Server-Sent Events stream.
A non-streaming Responses API result.
"response"Unix timestamp when the response was created.
completed, failed, in_progress, incomplete Items generated by the model, such as assistant messages, images, function calls, or reasoning summaries.
An assistant message produced by the model.
Token usage for the response.
Parameters that were ignored or not applied as sent. The request still succeeds. Entries are name=value: sampling parameters the selected model does not accept and, on Direct Responses, reasoning removed from input (input.reasoning=<n> reasoning items, input.reasoning_paired=<n> other items removed with them) and stateful parameters that have no effect (previous_response_id, conversation, store=True, background=True). On a stream, the parameter names are in the X-Ignored-Params header instead.
What happened to the reasoning items in the request's input. Present only when input contained at least one reasoning item, or the request asked for include: ["reasoning.encrypted_content"]; otherwise absent. Gloo does not carry reasoning from one request to the next: reasoning state sent back in input is removed before any model is called, and the request still succeeds. Returned by the guarded Responses and Grounded Responses endpoints. On a stream, the counts are in the X-Gloo-Reasoning-Carryover header and this object is a top-level field of the final response.completed or response.incomplete event's data; a stream that fails before either event ends without it. Direct Responses does not return this object or the header: it reports removed reasoning as input.reasoning=<n> and input.reasoning_paired=<n> in ignored_params (X-Ignored-Params on a stream).

