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.
Supported Providers
Section titled “Supported Providers”Authentication
Section titled “Authentication”For real-time WebSockets, authentication can be done using:
- Headers (for non-browser environments)
sec-websocket-protocol
(for browsers)
Examples
Section titled “Examples”OpenAI
Section titled “OpenAI”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" }, }),);
Google AI Studio
Section titled “Google AI Studio”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"] }, }, }),);
Cartesia
Section titled “Cartesia”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, }),);
ElevenLabs
Section titled “ElevenLabs”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