Responses API
Get Response
Retrieve a response by ID.
GET
Headers
Path Parameters
The id resolves from the moment the run starts
A response id is retrievable for the whole life of the run, not only once it finishes. AGET issued while the run is still working returns the envelope with status: "in_progress"
and an empty output — for a background run, for a streaming run, and for an ordinary
synchronous one.
response.created (the first frame of a stream) usable
immediately — to poll, to show the run in an operator view, or to
cancel it.
A paused approval also reports
status: "in_progress"; what identifies it is an
mcp_approval_request item in output. See
Governance outcomes.When a response stops being retrievable
Runs that are not terminal — including one paused awaiting a human approval — are never
collected by retention at any age, so a pending approval cannot expire out from under the
client that is waiting on it.
Supported Providers
GET /v1/responses/{id} is provider-agnostic — every response Bud stores is retrievable
this way, whichever model produced it.
Retrieval is scoped to the API key that created the response: another key asking for the same
id gets
404, never another tenant’s content.