Responses
Use the OpenAI Responses API, store responses for 30 days, continue a conversation with previous_response_id, and retrieve or delete stored responses.
On this page
/api/v1/llm/v1/responses stream and Idempotency-Key.Scope: llm:access or llm:chat
/api/v1/llm/v1/responses/{response_id} Scope: llm:access or llm:chat
/api/v1/llm/v1/responses/{response_id} Scope: llm:access or llm:chat
Create a response
response = client.responses.create(
model="nebula-4.5",
instructions="Answer in two sentences.",
input="What does an SSRF finding let an attacker do?",
store=True,
)
print(response.output_text)
input is a string or a list of input items. instructions sets the system prompt. max_output_tokens, temperature, top_p, reasoning.effort, tools, tool_choice and parallel_tool_calls behave as in chat completions.
Stored threads
With store: true, the completed response is kept so you can continue it later by passing its id as previous_response_id. The earlier conversation, including tool calls and their results, is restored server-side.
follow_up = client.responses.create(
model="nebula-4.5",
previous_response_id=response.id,
input="And how would you test for it safely?",
store=True,
)
- Stored responses are kept for 30 days by default.
- Storing and threading need an organization-bound user. Otherwise the request gets
403. - A
previous_response_idyou do not own contributes no history; it is never an error that reveals someone else’s data.
Retrieve and delete
curl https://api.breachline.io/api/v1/llm/v1/responses/$RESPONSE_ID \
-H "Authorization: Bearer $BREACHLINE_API_KEY"
curl -X DELETE https://api.breachline.io/api/v1/llm/v1/responses/$RESPONSE_ID \
-H "Authorization: Bearer $BREACHLINE_API_KEY"
Delete returns {"id": "...", "object": "response.deleted", "deleted": true}. A response that does not exist, or that another user or organization created, returns 404. Stored responses are shared by every key and session of the user who created them in that organization.
Streaming events
With stream: true you receive response.created, response.output_item.added, response.output_text.delta, the matching .done events, one function_call item per tool call and finally response.completed. A failure after the stream starts ends with response.failed. See Streaming.