English documentation — We currently provide our documentation only in English. This helps us keep the information as accurate and up-to-date as possible during the rapid development of the API.
API
API reference
Interactive OpenAPI 3.1 reference for /v1/responses.
This is the live OpenAPI 3.1 reference for the EU GPT public API. Use the panels below to explore endpoints, see schemas, and try requests against your environment.
For a top-to-bottom prose walkthrough of the same surface, see Create a response.
EU GPT — Public API
v1.0.0 External-facing API for programmatic access to EU GPT.
Authenticate every request with an API key issued from the EU GPT web app:
Authorization: Bearer eugpt_<token>
Keys are managed in the chat UI (Settings → API Keys). They have no rotating refresh — revoke and reissue when needed.
Base URL
https://chat.eugpt.ai Production Authenticatie
apiKey http · bearer Bearer-formaat eugpt_<token>
Authorization: Bearer eugpt_<token>.Endpoints
/v1/responses Create a response
Generate an AI response from a user message. Two modes:
- Streaming (
stream: true, default) — returns Server-Sent Events with OpenAI-compatible event payloads. Each event is delivered asevent: message\ndata: <json>\n\n. Stream completion is signalled by aresponse.completedevent. - Non-streaming (
stream: false) — collects all output and returns a single JSON document.
Conversations are optional. Omit conversation_id for stateless
requests; pass an existing UUID to append to a thread that belongs to
the authenticated user. Tools (web search, web fetch, calculator,
etc.) are auto-approved for API requests — there is no interactive
approval gate.
Request body Verplicht
modelstringAccepted for OpenAI-SDK compatibility but ignored — the router always selects the model. Pass"auto"(the default and only meaningful value); any concrete id you send has no effect. The actual model used is reported in the responsemodelfield.StandaardautoVoorbeeldautoinputstring | ContentItem[]VerplichtEither a plain string (single user message) or a list of structuredContentItemobjects for multi-modal / file input.streambooleanStream as SSE (true, default) or return a single JSON response (false).StandaardtrueinstructionsstringNullableSystem prompt for this response (or conversation, if new).conversation_iduuidNullableAppend to an existing conversation. Omit for a stateless request — an ephemeral conversation is created and returned in the response.project_iduuidNullableProject context for RAG retrieval. Caller must be a member of the project.max_output_tokensintegerNullableUpper bound on the number of tokens the model may generate for this response. Omit for no explicit cap (the model's own maximum applies). Values above the model's maximum are clamped to it.Voorbeeld1024
Responses
200 Either an SSE stream (stream: true) or a single JSON response
(stream: false). application/json · text/event-stream ▾
stream: true) or a single JSON response
(stream: false). iduuidVerplichtobject"response"Verplichtcreated_atintegerVerplichtUnix epoch milliseconds (zero if the chain didn't emit).status"completed"VerplichtmodelstringVerplichtConcrete model id used (resolved from"auto"when needed).outputobject[]VerplichtStructured output items (text blocks, tool calls, etc.) in the same shape as the SSEresponse.output_item.addedevents.output_textstringVerplichtConcatenated text deltas — convenience for plain-text consumers.
400 Input message is required or otherwise invalid. application/json ▾
detailstring | objecterrorobject
401 Missing, expired, or revoked API key. application/json ▾
detailstring | objecterrorobject
403 License or organization policy denies the request — for example,
user is not a member of the requested project, or the
organization's plan disallows the operation. application/json ▾
detailstring | objecterrorobject
404 Referenced conversation or project does not exist. application/json ▾
detailstring | objecterrorobject
429 Daily or monthly token usage limit exceeded. application/json ▾
detailstring | objecterrorobject
500 Internal error during response generation. application/json ▾
detailstring | objecterrorobject
Schemas
CreateResponseRequest
object modelstringAccepted for OpenAI-SDK compatibility but ignored — the router always selects the model. Pass"auto"(the default and only meaningful value); any concrete id you send has no effect. The actual model used is reported in the responsemodelfield.StandaardautoVoorbeeldautoinputstring | ContentItem[]VerplichtEither a plain string (single user message) or a list of structuredContentItemobjects for multi-modal / file input.streambooleanStream as SSE (true, default) or return a single JSON response (false).StandaardtrueinstructionsstringNullableSystem prompt for this response (or conversation, if new).conversation_iduuidNullableAppend to an existing conversation. Omit for a stateless request — an ephemeral conversation is created and returned in the response.project_iduuidNullableProject context for RAG retrieval. Caller must be a member of the project.max_output_tokensintegerNullableUpper bound on the number of tokens the model may generate for this response. Omit for no explicit cap (the model's own maximum applies). Values above the model's maximum are clamped to it.Voorbeeld1024
ContentItem
object rolestringNullableOptional role hint (e.g."user").typestringNullablecontentInputText | InputFile[]Verplicht
InputContent
InputText | InputFile InputText
object type"input_text"VerplichttextstringVerplicht
InputFile
object type"input_file"Verplichtfile_iduuidVerplichtId of a file previously uploaded via the file upload API.
ResponseObject
object stream: false.iduuidVerplichtobject"response"Verplichtcreated_atintegerVerplichtUnix epoch milliseconds (zero if the chain didn't emit).status"completed"VerplichtmodelstringVerplichtConcrete model id used (resolved from"auto"when needed).outputobject[]VerplichtStructured output items (text blocks, tool calls, etc.) in the same shape as the SSEresponse.output_item.addedevents.output_textstringVerplichtConcatenated text deltas — convenience for plain-text consumers.
SseEventStream
text/event-stream data: line.
Event types:
- response.created — initial event with response metadata.
- response.output_text.delta — incremental text chunks.
- response.output_text.done — text part finalised.
- response.output_item.added / response.output_item.done —
structured items (tool calls, file references).
- response.content_part.added — additional content parts.
- response.completed — terminal success event.
- error — terminal error event with {type, code, message}.Error
object detailstring | objecterrorobject