Realtime WebSockets API
Some AI providers support real-time, low-latency interactions over WebSockets. AI Gateway allows seamless integration with these APIs, supporting multimodal interactions such as text, audio, and video.
For real-time WebSockets, authentication can be done using:
- Headers (for non-browser environments)
sec-websocket-protocol
(for browsers)
import WebSocket from "ws";
const url = "wss://gateway.ai.cloudflare.com/v1/<account_id>/<gateway>/openai?model=gpt-4o-realtime-preview-2024-12-17";const ws = new WebSocket(url, { headers: { "cf-aig-authorization": process.env.CLOUDFLARE_API_KEY, Authorization: "Bearer " + process.env.OPENAI_API_KEY, "OpenAI-Beta": "realtime=v1", },});
ws.on("open", () => console.log("Connected to server."));ws.on("message", (message) => console.log(JSON.parse(message.toString())));
ws.send( JSON.stringify({ type: "response.create", response: { modalities: ["text"], instructions: "Tell me a joke" }, }),);
const ws = new WebSocket( "wss://gateway.ai.cloudflare.com/v1/<account_id>/<gateway>/google?api_key=<google_api_key>", ["cf-aig-authorization.<cloudflare_token>"],);
ws.on("open", () => console.log("Connected to server."));ws.on("message", (message) => console.log(message.data));
ws.send( JSON.stringify({ setup: { model: "models/gemini-2.0-flash-exp", generationConfig: { responseModalities: ["TEXT"] }, }, }),);
const ws = new WebSocket( "wss://gateway.ai.cloudflare.com/v1/<account_id>/<gateway>/cartesia?cartesia_version=2024-06-10&api_key=<cartesia_api_key>", ["cf-aig-authorization.<cloudflare_token>"],);
ws.on("open", function open() { console.log("Connected to server.");});
ws.on("message", function incoming(message) { console.log(message.data);});
ws.send( JSON.stringify({ model_id: "sonic", transcript: "Hello, world! I'm generating audio on ", voice: { mode: "id", id: "a0e99841-438c-4a64-b679-ae501e7d6091" }, language: "en", context_id: "happy-monkeys-fly", output_format: { container: "raw", encoding: "pcm_s16le", sample_rate: 8000, }, add_timestamps: true, continue: true, }),);
const ws = new WebSocket( "wss://gateway.ai.cloudflare.com/v1/<account_id>/<gateway>/elevenlabs?agent_id=<elevenlabs_agent_id>", [ "xi-api-key.<elevenlabs_api_key>", "cf-aig-authorization.<cloudflare_token>", ],);
ws.on("open", function open() { console.log("Connected to server.");});
ws.on("message", function incoming(message) { console.log(message.data);});
ws.send( JSON.stringify({ text: "This is a sample text ", voice_settings: { stability: 0.8, similarity_boost: 0.8 }, generation_config: { chunk_length_schedule: [120, 160, 250, 290] }, }),);
Was this helpful?
- Resources
- API
- New to Cloudflare?
- Products
- Sponsorships
- Open Source
- Support
- Help Center
- System Status
- Compliance
- GDPR
- Company
- cloudflare.com
- Our team
- Careers
- 2025 Cloudflare, Inc.
- Privacy Policy
- Terms of Use
- Report Security Issues
- Trademark