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

# Realtime WebSocket

> WebSocket ile gerçek zamanlı ses ve çok modlu oturumlara bağlanın

## Genel bakış

Bu endpoint gerçek zamanlı konuşma tanıma, konuşma sentezi, konuşma çevirisi veya çok modlu realtime modeller için kullanılır. Normal `GET` istekleri metadata döndürür; WebSocket upgrade istekleri yönlendirilen upstream oturumuna proxy edilir.

## Desteklenen yüzey

Bu endpoint TokenLab'in gerçek zamanlı WebSocket proxy'sidir. Aynı path üzerinde normal `GET /v1/realtime` metadata kontrolünü ve WebSocket upgrade isteklerini destekler. `POST /v1/realtime/client_secrets`, `POST /v1/realtime/translations/client_secrets`, Realtime Calls (`accept`, `hangup`, `refer`, `reject`) veya legacy beta REST session / transcription-session oluşturma gibi OpenAI Realtime REST yardımcı endpoint'lerini sunmaz.

Tarayıcı veya mobil uygulamalarda uzun ömürlü API anahtarlarını sunucunuzda tutun. Bu endpoint kısa ömürlü Realtime client secret üretmez.

<Note>Agent’lar socket açmadan önce `/v1/models` ile realtime destekli modeli bulmalıdır.</Note>

## Bağlantı

<ParamField query="model" type="string" required>
  Gerçek zamanlı model ID’si. Genel sözleşmesinde realtime desteği bulunan bir model kullanın.
</ParamField>

<ParamField header="Authorization" type="string" required>
  Bearer API anahtarı. WebSocket istemcileri upgrade isteğinde `Authorization: Bearer sk-your-api-key` göndermelidir.
</ParamField>

<RequestExample>
  ```javascript JavaScript theme={null}
  import WebSocket from 'ws';

  const socket = new WebSocket('wss://api.tokenlab.sh/v1/realtime?model=gpt-realtime', {
    headers: { Authorization: 'Bearer sk-your-api-key' }
  });

  socket.on('open', () => {
    socket.send(JSON.stringify({
      type: 'session.update',
      session: { modalities: ['text', 'audio'] }
    }));
  });

  socket.on('message', (data) => {
    console.log('realtime event', data.toString());
  });
  ```

  ```bash cURL theme={null}
  curl "https://api.tokenlab.sh/v1/realtime" \
    -H "Authorization: Bearer sk-your-api-key"
  ```
</RequestExample>

## Mesajlar

TokenLab, istemciniz ile yönlendirilen realtime sağlayıcı arasında WebSocket mesajlarını aktarır. Seçilen modelin resmi event biçimlerini koruyun ve `model` değerini query string içinde gönderin.

## Ücretlendirme ve kapatma

Realtime oturumlar aynı API key bakiyesini kullanır. TokenLab socket açıldığında küçük bir tahmini tutarı önceden düşer, oturum kapanınca kesinleştirir veya iade eder.

Oturum tamamlandığında client socket’i kapatın. Upstream önce kapatırsa TokenLab mümkün olduğunda close code’u iletir.

## Yanıt örneği

<ResponseExample>
  ```json Connected theme={null}
  {
    "type": "session.created",
    "session": {
      "id": "sess_abc123",
      "model": "gpt-realtime",
      "modalities": ["text", "audio"]
    }
  }
  ```
</ResponseExample>

## Önemli alanlar

<ResponseField name="type" type="string">API tarafından dönen event veya message type.</ResponseField>
<ResponseField name="session.id" type="string">Gerçek zamanlı sağlayıcının döndürdüğü kimliktir; destek loglarında kullanın, REST session URL olarak değil.</ResponseField>
