---
title: "Create a real-time translation session"
method: POST
path: "/api/beta1/session"
tags: ["Real-time Translation"]
---

# Create a real-time translation session

`POST /api/beta1/session`

Creates a new real-time translation session and returns WebSocket connection credentials. Connect to the returned `url` with a LiveKit client SDK using the `token` to start streaming audio and receiving translated audio + transcripts.

## Request body

- CreateSessionRequest
  - `source_language` string, required — Source language code (e.g. "en-US"). 50+ languages supported.
  - `target_language` string, required — Target language code (e.g. "es-ES"). 50+ languages supported.
  - `voice_type` 'clone' | 'female' | 'male' — Voice type for translated audio. "clone" uses the speaker's voice.

## Response `200`

Session created successfully

- SessionResponse
  - `url` string, uri, required — WebSocket URL for LiveKit connection
  - `token` string, required — JWT token for authenticating to the room
  - `room_name` string, required — Unique room identifier (format: api-<id>)

## Other responses

- `400` — Invalid request (e.g. unsupported language)
- `401` — Invalid or expired API token
- `429` — Too many requests (max 10 per minute)
- `500` — Internal server error

---

[API](https://skmtc.dev/startpinch/apis/pinch-api.md) · [All operations](https://skmtc.dev/startpinch/apis/pinch-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/startpinch/pinch-api/revisions/a0d3acb9ed16/schema)
