OpenAI WebSocket API: Real-time streaming tegen 75% lagere kosten
Smart AIPI ondersteunt nu OpenAI's WebSocket API voor real-time, bidirectional streaming. Lagere latency dan SSE, persistente verbindingen en 75% goedkoper. Zo maak je verbinding.
Kort gezegd: Smart AIPI ondersteunt nu OpenAI's WebSocket API. Maak verbinding met wss://api.smartaipi.com/v1/realtime, stuur een response.create-event en stream responses in real time via een persistente verbinding. Dezelfde modellen, hetzelfde protocol, 75% goedkoper.
WebSocket streaming is de snelste manier om met AI-modellen te werken. In tegenstelling tot traditionele HTTP-requests of zelfs Server-Sent Events (SSE), houdt WebSocket een persistente, bidirectional verbinding in stand tussen je applicatie en de API. Geen verbindingsopzet per request, geen HTTP-overhead, geen half-duplex beperkingen.
Smart AIPI ondersteunt dit protocol nu op wss://api.smartaipi.com/v1/realtime — volledig compatibel met OpenAI's WebSocket API, tegen 75% lagere kosten.
Waarom WebSocket in plaats van SSE?
Server-Sent Events zijn de standaard geweest voor AI streaming, maar ze hebben nadelen die WebSocket wegneemt:
| Functie | SSE (HTTP) | WebSocket |
|---|---|---|
| Verbinding per request | Elke keer een nieuwe verbinding | Persistent (hergebruikt) |
| Richting | Alleen Server → Client | Bidirectional |
| Meerdere requests op één verbinding | Nee | Ja |
| Latency tot eerste token | Hoger (nieuwe TCP + TLS) | Lager (hergebruik van verbinding) |
| Ideaal voor | Eenvoudige integraties | Agents, real-time apps, high-throughput |
Voor agent-loops die tientallen API-calls direct achter elkaar doen, zijn de opgetelde latencybesparingen van een persistente WebSocket-verbinding aanzienlijk.
Hoe het werkt
De WebSocket API volgt een event-driven protocol. Je stuurt JSON-events naar de server en ontvangt JSON-events terug — allemaal via één persistente verbinding.
1. Verbinden en authenticeren
Open een WebSocket-verbinding met je API key in de headers:
wss://api.smartaipi.com/v1/realtime
Authorization: Bearer sk-proj-your-smart-aipi-key
OpenAI-Beta: realtime=v1
2. Stuur een request
Stuur een response.create-event met je prompt:
{
"type": "response.create",
"response": {
"model": "gpt-5.3-codex",
"store": false,
"instructions": "You are a helpful assistant.",
"input": [
{
"type": "message",
"role": "user",
"content": [
{ "type": "input_text", "text": "What is WebSocket?" }
]
}
]
}
}
Let op: De parameter store: false is verplicht voor Smart AIPI WebSocket-verbindingen.
3. Ontvang streaming-events
De server stuurt een reeks events terug terwijl de response wordt gegenereerd:
| Event | Beschrijving |
|---|---|
| response.created | Response-object is aangemaakt |
| response.output_item.added | Nieuw output-item (bericht) gestart |
| response.content_part.added | Content-deel gestart binnen een output-item |
| response.output_text.delta | Tekstchunk (de daadwerkelijk gestreamde content) |
| response.output_text.done | Tekstoutput is voltooid |
| response.completed | Volledige response is afgerond (terminaal event) |
Codevoorbeelden
Node.js
import WebSocket from "ws";
const ws = new WebSocket("wss://api.smartaipi.com/v1/realtime", {
headers: {
"Authorization": "Bearer sk-proj-your-key",
"OpenAI-Beta": "realtime=v1",
},
});
ws.on("open", () => {
ws.send(JSON.stringify({
type: "response.create",
response: {
model: "gpt-5.3-codex",
store: false,
input: [{
type: "message",
role: "user",
content: [{ type: "input_text", text: "Hello!" }],
}],
},
}));
});
ws.on("message", (data) => {
const event = JSON.parse(data);
if (event.type === "response.output_text.delta") {
process.stdout.write(event.delta);
}
if (event.type === "response.completed") {
console.log("\n\nDone. Usage:", event.response.usage);
ws.close();
}
});
Python
import asyncio
import json
import websockets
async def main():
headers = {
"Authorization": "Bearer sk-proj-your-key",
"OpenAI-Beta": "realtime=v1",
}
async with websockets.connect(
"wss://api.smartaipi.com/v1/realtime",
extra_headers=headers,
) as ws:
await ws.send(json.dumps({
"type": "response.create",
"response": {
"model": "gpt-5.3-codex",
"store": False,
"input": [{
"type": "message",
"role": "user",
"content": [{"type": "input_text", "text": "Hello!"}],
}],
},
}))
async for message in ws:
event = json.loads(message)
if event["type"] == "response.output_text.delta":
print(event["delta"], end="", flush=True)
if event["type"] == "response.completed":
print(f"\n\nUsage: {event['response']['usage']}")
break
asyncio.run(main())
cURL (snelle test)
Controleer met één commando of de WebSocket-handshake slaagt:
curl -isN --http1.1 \
-H "Connection: Upgrade" \
-H "Upgrade: websocket" \
-H "Sec-WebSocket-Version: 13" \
-H "Sec-WebSocket-Key: dGVzdA==" \
-H "Authorization: Bearer sk-proj-your-key" \
-H "OpenAI-Beta: realtime=v1" \
https://api.smartaipi.com/v1/realtime
Een succesvolle verbinding geeft HTTP/1.1 101 Switching Protocols terug.
Wanneer gebruik je WebSocket vs SSE
Beide protocollen werken via Smart AIPI. Kies op basis van je use case:
- Gebruik SSE voor eenvoudige integraties, losse requests en wanneer je de simpelst mogelijke implementatie wilt. Zet
stream: trueop elke standaard API-call. - Gebruik WebSocket voor agent-loops, interactieve applicaties, requestpatronen met hoge frequentie en overal waar je de laagst mogelijke latency tussen opeenvolgende calls nodig hebt.
Prijzen
WebSocket-requests worden op dezelfde manier gefactureerd als standaard API-requests — op basis van tokengebruik. De korting van 75% geldt ook hier:
| Model | OpenAI Direct | Smart AIPI | Besparing |
|---|---|---|---|
| GPT-5.3 Codex (output) | $14.00 / 1M tokens | $3.50 / 1M tokens | 75% |
| GPT-5.2 (output) | $10.00 / 1M tokens | $2.50 / 1M tokens | 75% |
| Codex Mini (output) | $0.60 / 1M tokens | $0.15 / 1M tokens | 75% |
Aan de slag
- Haal een API key op — Meld je aan op smartaipi.com (inclusief gratis credits, geen creditcard vereist)
- Verbind — Open een WebSocket naar
wss://api.smartaipi.com/v1/realtime - Stuur events — Gebruik de
response.create-envelope met je model en prompt - Stream responses — Verwerk
response.output_text.delta-events zodra ze binnenkomen
Als je OpenAI's WebSocket API al gebruikt, is de enige wijziging de URL. Alles daarbuiten — authenticatie, events, payload-formaat — is identiek.
Veelgestelde vragen
Ondersteunt Smart AIPI de OpenAI WebSocket API?
Ja. Maak verbinding met wss://api.smartaipi.com/v1/realtime met je API key in de Authorization-header. Het protocol is volledig compatibel met OpenAI's WebSocket Responses API.
Is WebSocket sneller dan SSE?
Voor opeenvolgende requests wel. WebSocket houdt een persistente verbinding in stand en elimineert daarmee de overhead van de TCP- en TLS-handshake die SSE bij elk nieuw request heeft. Voor losse eenmalige requests is het verschil verwaarloosbaar.
Welke modellen werken via WebSocket?
Alle modellen die beschikbaar zijn via de Responses API: GPT-5.3 Codex, GPT-5.2, Codex Mini en andere. Geef het model op in het response.create-event.
Werken function calling en tool use via WebSocket?
Ja. De volledige feature set van de Responses API is beschikbaar — function calling, tool use, structured outputs en multi-turn gesprekken werken allemaal via de WebSocket-verbinding.
Is er een tijdslimiet voor verbindingen?
Inactieve verbindingen worden na 15 minuten gesloten. Stuur periodiek berichten of maak opnieuw verbinding wanneer nodig. Actieve verbindingen die data streamen worden niet onderbroken.
Kan ik meerdere requests via één verbinding versturen?
Ja. Dat is een van de belangrijkste voordelen. Nadat een response is voltooid, stuur je nog een response.create-event via dezelfde verbinding zonder opnieuw te verbinden.
OpenAI-compatible API gateway. Krijg toegang tot frontier AI-modellen voor 75% lagere kosten.
Gratis starten