Skip to main content

Initialize Real-time Session

Create a WebSocket session for real-time transcription.

Endpoint

POST /api/v4/realtime/session

Request

Headers

HeaderValueRequired
AuthorizationBearer {API_KEY}Yes
Content-Typeapplication/jsonYes

Request Body

{
"language": "en",
"sample_rate": 16000,
"interim_results": true
}
FieldTypeRequiredDefaultDescription
languagestringYes-Language code (e.g., "en")
sample_rateintegerYes-Audio sample rate (Hz)
interim_resultsbooleanNotrueEnable partial transcripts

Response

Status: 201 Created

{
"session_id": "session_abc123",
"websocket_url": "wss://api.scriptix.io/realtime/session_abc123",
"expires_at": "2025-01-17T14:00:00Z"
}
FieldTypeDescription
session_idstringUnique session identifier
websocket_urlstringWebSocket connection URL
expires_atstringSession expiration timestamp (4 hours)

Examples

cURL

curl -X POST https://api.scriptix.io/api/v4/realtime/session \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"language": "en",
"sample_rate": 16000,
"interim_results": true
}'

Python

import requests

response = requests.post(
'https://api.scriptix.io/api/v4/realtime/session',
headers={
'Authorization': 'Bearer YOUR_API_KEY',
'Content-Type': 'application/json'
},
json={
'language': 'en',
'sample_rate': 16000,
'interim_results': True
}
)

session = response.json()
print(f"Session ID: {session['session_id']}")
print(f"WebSocket URL: {session['websocket_url']}")

JavaScript

const response = await fetch(
'https://api.scriptix.io/api/v4/realtime/session',
{
method: 'POST',
headers: {
'Authorization': 'Bearer YOUR_API_KEY',
'Content-Type': 'application/json'
},
body: JSON.stringify({
language: 'en',
sample_rate: 16000,
interim_results: true
})
}
);

const session = await response.json();
console.log('Session ID:', session.session_id);
console.log('WebSocket URL:', session.websocket_url);

Supported Sample Rates

  • 8000 Hz
  • 16000 Hz (recommended)
  • 22050 Hz
  • 44100 Hz
  • 48000 Hz

Session Expiration

  • Sessions expire after 4 hours
  • Create new session for continued use
  • Idle timeout: 30 seconds of silence

Next Steps

After initialization, connect to the WebSocket URL: