> ## Documentation Index
> Fetch the complete documentation index at: https://docs.60db.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Realtime Overview

> OpenAI-compatible speech-to-speech Realtime API: change the URL, model and key and keep your existing client

60db Realtime is a speech-to-speech API over a single WebSocket. You stream microphone audio in and get spoken replies back, with server-side turn detection, barge-in and function calling. It speaks the **OpenAI Realtime GA protocol**, so the OpenAI SDKs and `@openai/agents-realtime` work unchanged once you point them at 60db.

Migrating from OpenAI? Change three values: the URL, the model and the key. See [Migrate from the OpenAI SDK](https://docs.60db.ai/realtime/openai-sdk-migration.md).

> **OpenAI-compatible**
>
> Same events, same session shape. Unmodified OpenAI clients connect to `wss://api.60db.ai/v1/realtime`

> **One socket**
>
> Speech recognition, the LLM turn and voice synthesis run on the server. No stitching three APIs together

> **60db voices**
>
> Use any 60db voice, including your own cloned or professional voices in the same session

> **Browser-safe keys**
>
> Mint short-lived `ek_` keys on your server and connect from the browser without exposing `sk_`

## Endpoints

| Endpoint | Purpose |
| - | - |
| `wss://api.60db.ai/v1/realtime?model=60db-realtime-v1-mini` | Realtime session (OpenAI GA protocol) |
| `POST https://api.60db.ai/v1/realtime/client_secrets` | Mint an ephemeral `ek_` key for a browser |
| `wss://api.60db.ai/ws/realtime` | Legacy native protocol. Still works. See [Legacy native protocol](https://docs.60db.ai/realtime/legacy-ws-realtime.md) |

Details: [WebSocket connection](https://docs.60db.ai/realtime/api-reference/websocket.md) and [Create ephemeral key](https://docs.60db.ai/realtime/api-reference/ephemeral-keys.md).

## Models

| Model | Notes |
| - | - |
| `60db-realtime-v1-mini` | Current model. Speech-to-text, LLM and voice in one session |
| `gpt-realtime`, `gpt-realtime-mini`, `gpt-4o-realtime-preview*` | Accepted for compatibility. Every one runs on `60db-realtime-v1-mini` |

> [!NOTE]
>
> A larger model tier is planned but not available yet. Use `60db-realtime-v1-mini` today.

## Pricing

Realtime is billed per connected minute, plus LLM tokens. There is no separate charge for speech-to-text or voice.

| Item | Rate |
| - | - |
| Connected minute (speech-to-text + voice) | **\$0.02 per minute** |
| LLM tokens | **\$0.50 per 1M tokens** |
| Memory / knowledge lookup (only when `memory` or `knowledge` is on and context is added to a reply) | \$0.0003 per lookup |

* Billed in 60-second ticks and prorated per second when the session closes.
* Charged to your workspace balance. See [Plans, Credits & Top-ups](https://docs.60db.ai/get-started/plans-credits-and-top-ups.md#realtime-pricing).
* A 10-minute call costs about \$0.20 plus tokens.

## Limits

| Limit | Behavior |
| - | - |
| Concurrent sessions | Limited per plan. A session over the limit is closed with code `4003` |
| Idle sessions | Closed with code `4000` after a period without audio or activity |
| Session length | Closed with code `4001` when the maximum duration is reached |
| Audio formats | `audio/pcm` at 24 kHz, `audio/pcmu` and `audio/pcma` at 8 kHz |

> [!NOTE]
>
> Idle and maximum-duration values are enforced by the server and may differ by plan. Handle close codes `4000` and `4001` by reconnecting or ending the call.

## Supported and not yet supported

| Supported | Not yet supported |
| - | - |
| WebSocket transport | WebRTC transport |
| Server VAD, semantic VAD and manual turn control | SIP calling (`call_id`) |
| Function tools (`tools`, `tool_choice`) | MCP tools inside a session |
| Text and audio input and output | Image input |
| Barge-in, transcripts, `response.done` usage | Out-of-band responses (`conversation: "none"`) |
| 60db extensions: `memory`, `knowledge`, `intent` | Phone agents (`/v1/realtime/agents`) |

## Next steps

> **[Quickstart](https://docs.60db.ai/realtime/quickstart.md)**
>
> Run a text turn and an audio turn in a few minutes

> **[Migrate from OpenAI](https://docs.60db.ai/realtime/openai-sdk-migration.md)**
>
> Change the URL, model and key in your existing app

> **[Browser ephemeral keys](https://docs.60db.ai/realtime/browser-ephemeral-keys.md)**
>
> Connect from a web page safely

> **[API reference](https://docs.60db.ai/realtime/api-reference/websocket.md)**
>
> Connection, client events and server events

> **[LiveKit](https://docs.60db.ai/realtime/livekit.md)**
>
> Run a LiveKit Agents voice agent on 60db Realtime

> **[Pipecat](https://docs.60db.ai/realtime/pipecat.md)**
>
> Run a Pipecat bot on 60db Realtime


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.