Language Server¶
What is the Language Server?¶
A unified API platform for accessing AI models and services at one place
Key Features
- 🎤 Transcription - Convert audio to text with Google and Azure transcription services
- 🤖 Completion - Generate chat completions from LLMS
Available Services¶
🎤 Transcription¶
Convert audio files to text using state-of-the-art speech recognition models
🤖 Completion¶
Generate text completions using advanced language models
API Endpoints Overview¶
| Method | Path | Purpose |
|---|---|---|
| POST | /v1/task/batch/transcription |
Create a new batch transcription task |
| POST | /v1/task/transcription |
Create a new single transcription task |
| POST | /v1/task/batch/completion |
Create a new batch completion task |
| POST | /v1/task/completion |
Create a new single completion task |
| GET | /v1/status/{task_id} |
Get status and result of a specific task |
| GET | /v1/tasks/{user_email} |
List all tasks created by a user |
| GET | /v1/services |
List all services provided by the server |
Getting Started with Projects and API Keys¶
Note
These are prerequisites for using the Language Server API
Tip
Heads Up: Remember to replace the current Server-URL in your requests with the new one from the Language Server Team.
What is a Project?¶
A Project represents a logical grouping of tasks and resources. Each project:
- ✅ Has a unique
project_name - ✅ Is associated with specific tags and metadata
- ✅ Owns a dedicated API key for services
Tip
If you're using the platform for personal or individual use, set project_name to "Individual".
What is an API Key?¶
An API key is a secure token used to authenticate requests made to the platform:
- 🔐 Project-specific: Each project has its own API key
- 🔒 Secure: API keys should be kept secret and not shared between projects
- ✅ Required: Any API request must include a valid key for the associated project
How to Use¶
- Create a Project (currently not accessible through platform, please contact us for project creation)
- Obtain the API Key assigned to the project
Include the following in your request:
Info
The platform will validate that the project_name matches the API key.
Endpoint Details¶
1. Create Task¶
Batch Task Creation¶
- Endpoint:
POST /v1/task/batch/{task_name} - Description: Creates a new task, preprocesses the payload, and publishes it to the job queue
- Task Types:
transcriptionorcompletion
Parameters:
- task_name (path): Name of the task (e.g., transcription, completion)
- payload_data (form, required): JSON string with task details
Responses:
- 200: Successful Response
- 422: Validation Error
Single Task Creation¶
- Endpoint:
POST /v1/task/{task_name} - Description: Creates a new task, preprocesses the payload, and publishes it to the job queue
- Task Types:
transcriptionorcompletion
Parameters:
- task_name (path): Name of the task (e.g., transcription, completion)
- payload_data (form, required): JSON string with task details
- files (form, conditional): Array of files - required for transcription (audio files) and batch completion (.jsonl file)
Responses:
- 200: Successful Response
- 422: Validation Error
2. Get Task Status and Response¶
- Endpoint:
GET /v1/status/{task_id} - Description: Checks the status of a task. If the task is completed, returns the result; otherwise, returns the current status.
Parameters:
- task_id (path, required): ID of the task to check
Responses:
- 200: Successful Response
- 422: Validation Error
3. List Tasks by User¶
- Endpoint:
GET /v1/tasks/{user_email} - Description: Lists all the tasks created by a user.
Parameters:
- user_email (path, required): Email of the user
Responses:
- 200: Successful Response
- 422: Validation Error
4. List Services¶
- Endpoint:
GET /v1/services - Description: Lists all the services provided by the language server.
Parameters: None
Responses:
- 200: Successful Response
Example Usage¶
Create Task¶
Basic Request Format:
POST /v1/task/batch/{task_name}
Accept: application/json
X-API-Key: YOUR_API_KEY
Content-Type: multipart/form-data
payload_data={"user_email":"user@example.com","task_type":"BATCH","project_name":"Individual",...additional_fields}
files=@your_file_here
Transcription Example¶
POST /v1/task/batch/transcription
Accept: application/json
X-API-Key: YOUR_API_KEY
Content-Type: multipart/form-data
payload_data={"user_email":"user@example.com", "project_name":"Individual","task_type":"BATCH","provider":"AZURE","locale":"en-US"}
files=@audio_file.wav
Completion Example¶
POST /v1/task/batch/completion
Accept: application/json
X-API-Key: YOUR_API_KEY
Content-Type: multipart/form-data
payload_data={"user_email":"user@example.com","project_name":"Individual","task_type":"BATCH","models":["gemini-2.5-flash"]}
files=@requests.jsonl
Get Task Status¶
List Tasks by User¶
List Services¶
Available Models¶
Transcription Models¶
| Provider | Available Models | Default Model |
|---|---|---|
| Azure | base |
base |
long, short, telephony, telephony_short |
long |
Completion Models¶
| Model | Status |
|---|---|
gemini-2.5-flash |
Default |
gemini-2.0-flash |
Available |
gemini-2.0-flash-lite |
Available |
gemini-2.5-pro |
Available |
gpt-4o |
Available |
gpt-4o-mini |
Available |
claude-3-5-sonnet-v2 |
Available(Soon to be deprecated) |
claude-sonnet-4 |
Available |
How to Use Single Task Endpoint¶
Info
Single task endpoint format: /task/{task_name} where task_name can be 'completion' or 'transcription'
Transcription Workflow¶
- Prepare your audio files and a JSON payload with required fields
- Make a POST request to the transcription endpoint with the payload and files
- Receive a response and status of the task
Completion Workflow¶
- Prepare a
.jsonlfile with each line as a request - Make a POST request to the completion endpoint with the payload and the
.jsonlfile - Receive a response and task status