Public preview — Deze API is in public preview. Endpoints, schemas en limieten kunnen wijzigen vóór general availability.
API
Een response aanmaken
Volledige referentie voor POST /v1/responses — elk veld, elke shape, elke default.
Genereer een response uit een gebruikersbericht. Dit is het enige conversationele endpoint op EU GPT.
Endpoint#
POST /v1/responses
Authorization: Bearer eugpt_<token>
Content-Type: application/json
De volledige interactieve referentie staat op API-referentie. Deze pagina documenteert de request- en response-shapes in prose zodat je hem van boven naar beneden kunt lezen.
Request body#
{
model?: string, // default: "auto"
input: string | ContentItem[], // required
stream?: boolean, // default: true
instructions?: string | null,
conversation_id?: string | null, // UUID
project_id?: string | null, // UUID
}
model#
Geaccepteerd voor OpenAI-SDK-compatibiliteit maar genegeerd — de router kiest altijd het model. Geef "auto" mee (de default en enige zinvolle waarde); elk concreet ID dat je meestuurt heeft geen effect. Het daadwerkelijk gebruikte model wordt gerapporteerd in het model-veld van de response. Zie Modellen voor routing-gedrag.
"model": "auto"
input#
Het gebruikersbericht. Een plain string voor text-only-input, of een lijst ContentItems voor structured input.
String-vorm:
"input": "Summarise the Q3 audit in three bullets."
Structured vorm:
"input": [
{
"role": "user",
"content": [
{ "type": "input_text", "text": "Summarise the Q3 audit in three bullets." }
]
}
]
Elke ContentItem heeft:
role(optioneel) — meestal"user". Als weggelaten, behandeld als user.content— een lijstInputContent-parts, elk mettype: "input_text"en eentext-veld.
stream#
Boolean. Default is true. Bij true is de response Server-Sent Events. Bij false is de response één JSON-document.
"stream": false
Zie Streaming voor de trade-offs en Streaming events voor de event-taxonomie.
instructions#
System prompt voor deze response. Stuurt toon, format, persona, taal.
"instructions": "Always respond in Dutch. Cite sources when using web_search."
Als conversation_id verwijst naar een gloednieuw gesprek, worden de instructions ook opgeslagen als de system message van het gesprek. Voor bestaande gesprekken gelden ze alleen voor deze response.
conversation_id#
UUID van een bestaand gesprek. Voeg eraan toe. Het gesprek moet eigendom zijn van de gebruiker die de API-key heeft uitgegeven.
"conversation_id": "8f14e45f-ceea-467a-a4ed-a9e9a5cb16ee"
Laat weg (of null) voor een stateless request. Zie Gesprekken.
project_id#
UUID van een project voor RAG-retrieval. De file-corpus van het project wordt doorzocht en relevante chunks worden toegevoegd aan de prompt-context.
"project_id": "1c8b9a7f-2d3e-4f5a-9b8c-7d6e5f4a3b2c"
De caller moet member zijn van het project. Anders is de response 403.
Response — non-streaming (stream: false)#
{
id: string, // UUID
object: "response",
created_at: number, // Unix epoch ms
status: "completed",
model: string, // resolved concrete model id
output: ContentItem[], // structured output (tool calls, content parts, …)
output_text: string, // flat concatenated text
}
output_textis het convenience-veld. Voor plain-text-consumenten is dit alles wat je nodig hebt.outputdraagt de structured items: text content, tool calls en hun outputs, file references. Komt overeen met de shape van de gestreamderesponse.output_item.added-events.
status is altijd completed als een response-body wordt geretourneerd — failures komen terug als HTTP-error-responses met de error-envelope, niet als een status-veld.
Response — streaming (stream: true)#
Content-Type: text/event-stream. Elk event heeft de shape:
event: message
data: { "type": "<event-name>", "sequence_number": <int>, … }
De volledige event-referentie staat in Streaming events. De minimum-sequence is:
response.created
response.output_text.delta (één of meer)
response.completed
Het terminal event is altijd response.completed (success) of error (failure mid-stream).
Voorbeelden#
Minimale stateless string-input#
curl https://chat.eugpt.ai/v1/responses \
-H "Authorization: Bearer $EUGPT_API_KEY" \
-H "Content-Type: application/json" \
-d '{"input":"Hello, world.","stream":false}'
Multi-turn-gesprek#
curl https://chat.eugpt.ai/v1/responses \
-H "Authorization: Bearer $EUGPT_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "auto",
"input": "And what was the previous answer in one sentence?",
"conversation_id": "8f14e45f-ceea-467a-a4ed-a9e9a5cb16ee",
"stream": false
}'
Project-gescopede RAG#
curl https://chat.eugpt.ai/v1/responses \
-H "Authorization: Bearer $EUGPT_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"input": "What does the 2024 audit say about server costs?",
"project_id": "1c8b9a7f-2d3e-4f5a-9b8c-7d6e5f4a3b2c",
"stream": false
}'