EU GPT logo
EU GPT

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 lijst InputContent-parts, elk met type: "input_text" en een text-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_text is het convenience-veld. Voor plain-text-consumenten is dit alles wat je nodig hebt.
  • output draagt de structured items: text content, tool calls en hun outputs, file references. Komt overeen met de shape van de gestreamde response.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
  }'