API Overview
Complete guide to the Scriptix API for speech-to-text transcription, real-time streaming, document management, and custom models.
Introduction
The Scriptix API provides programmatic access to the speech recognition platform. Build applications that:
- Transcribe audio/video files to text (batch processing)
- Stream real-time audio for live transcription
- Manage documents (transcripts and captions)
- Train custom models for domain-specific accuracy
- Create glossaries for terminology customization
- Translate content to multiple languages
- Export in multiple formats
Base URL
All API requests use this base URL:
https://api.scriptix.io
API Versions
The Scriptix API is versioned. Current versions:
| Version | Endpoint Prefix | Status | Recommended |
|---|---|---|---|
| v4 | /api/v4 | Current | ✅ For glossaries and realtime |
| v3 | /api/v3 | Stable | ✅ Primary API version |
Recommendation: Use v3 for most operations, v4 for glossaries and realtime features.
Authentication
All API requests require authentication via Bearer token.
Using Your Token
Include your authentication token in the Authorization header:
Authorization: Bearer YOUR_TOKEN
Example:
curl https://api.scriptix.io/api/v3/account/me \
-H "Authorization: Bearer your_token_here"
⚠️ Never commit tokens to version control or expose them client-side.
API Categories
Speech-to-Text Sessions API
Upload audio/video files for transcription and manage transcription sessions.
Key Endpoints:
GET /api/v3/speech-to-text/session- List sessionsGET /api/v3/speech-to-text/session/{sessionId}- Get session detailsDELETE /api/v3/speech-to-text/session/{sessionId}- Delete session
Use cases: Podcasts, interviews, meetings, video subtitles
Documents API
Manage transcripts and captions within sessions.
Key Endpoints:
GET /api/v3/speech-to-text/session/{sessionId}/document/{docId}- Get documentPUT /api/v3/speech-to-text/session/{sessionId}/document/{docId}- Update documentDELETE /api/v3/speech-to-text/session/{sessionId}/document/{docId}- Delete documentPOST /api/v3/speech-to-text/session/{sessionId}/document- Copy documentPUT /api/v3/speech-to-text/session/{sessionId}/document/{docId}/clear_text- Clear textPUT /api/v3/speech-to-text/session/{sessionId}/document/{docId}/reset_to_original- Reset documentPOST /api/v3/speech-to-text/session/{sessionId}/document/{docId}/finished_status- Mark as finished
Query Parameters for GET:
format- Output format (default: json)template_id- Export template ID
Translation API
Translate documents to multiple languages.
Endpoints:
POST /api/v3/speech-to-text/session/{sessionId}/document/{docId}/translate-multiple- Translate document
Request Body:
{
"languages": ["nl", "fr", "de"],
"filename": "translated_document"
}
Document Operations API
Additional document operations.
Endpoints:
POST /api/v3/speech-to-text/merge- Merge multiple documentsPOST /api/v3/speech-to-text/session/{sessionId}/document/{docId}/export/summarize- Summarize document
Sharing API
Share documents via magic links.
Endpoints:
POST /api/v3/speech-to-text/session/{sessionId}/document/{docId}/share- Create share linkPOST /api/v3/speech-to-text/session/{sessionId}/document/{docId}/share/email- Share via emailGET /api/v3/speech-to-text/session/{sessionId}/shared- Get shared sessionGET /api/v3/speech-to-text/session/{sessionId}/shared/document/{docId}- Get shared documentPUT /api/v3/speech-to-text/session/{sessionId}/shared/document/{docId}- Update shared documentPUT /api/v3/speech-to-text/session/{sessionId}/shared/document/{docId}/clear_text- Clear shared textPUT /api/v3/speech-to-text/session/{sessionId}/shared/document/{docId}/reset_to_original- Reset sharedPUT /api/v3/speech-to-text/session/{sessionId}/shared/document/{docId}/finish- Finish shared document
Comments API
Collaborate on documents with comments.
Endpoints:
GET /api/v3/speech-to-text/session/{sessionId}/document/{docId}/comments- List commentsPOST /api/v3/speech-to-text/session/{sessionId}/document/{docId}/comments- Create commentPUT /api/v3/speech-to-text/session/{sessionId}/document/{docId}/comments/{commentId}- Update commentDELETE /api/v3/speech-to-text/session/{sessionId}/document/{docId}/comments/{commentId}- Delete comment
Custom Models API
Train specialized models for domain-specific vocabulary.
Endpoints:
GET /api/v3/speech-to-text/models- List available modelsGET /api/v3/custom_models- List custom modelsGET /api/v3/custom_models/{id}- Get model detailsGET /api/v3/custom_models/{id}/data- Get training datasetsPOST /api/v3/custom_models- Create custom modelPOST /api/v3/custom_models/{id}- Update modelPUT /api/v3/custom_models/{id}/data- Upload training dataPOST /api/v3/custom_models/{id}/run- Start trainingDELETE /api/v3/custom_models/{id}- Delete modelDELETE /api/v3/custom_models/{id}/data/{dataId}- Delete dataset
Use cases: Medical, legal, technical terminology
Glossaries API (v4)
Create custom glossaries for terminology recognition.
Endpoints:
GET /api/v4/glossaries- List glossariesGET /api/v4/glossaries/{id}- Get glossary detailsGET /api/v4/glossaries/{id}/entries- Get glossary entries (CSV format)GET /api/v4/glossaries/supported-languages- Get supported language pairsPOST /api/v4/glossaries- Create glossaryPATCH /api/v4/glossaries/{id}- Update glossaryDELETE /api/v4/glossaries/{id}- Delete glossary
Query Parameters for GET glossary:
include_entries- Include entries in response (default: false)limit- Max entries to return (default: 1000)
Note: Glossary entries are returned in CSV format when requested via the entries endpoint.
Real-time API (v4)
Stream live audio for real-time transcription.
Endpoints:
POST /api/v4/realtime/initialize- Initialize real-time sessionGET /api/v4/realtime/status- Check real-time service status
Use cases: Live captions, voice assistants, call centers
Folders API
Organize documents in folders.
Endpoints:
GET /api/v3/folders- List foldersGET /api/v3/folders/{id}- Get folder contentsPOST /api/v3/folders- Create folderPUT /api/v3/folders/{id}- Update folderDELETE /api/v3/folders/{id}- Delete folder
Organization Management API
Manage organization settings and members.
Endpoints:
GET /api/v3/account/organization- Get organization detailsPOST /api/v3/account/organization- Update organizationPOST /api/v3/organization/group- Create team/groupGET /api/v3/organization/group- List teamsGET /api/v3/organization/group/{id}- Get team detailsGET /api/v3/organization/group/{id}/users- List team membersPUT /api/v3/organization/group/{id}- Update teamDELETE /api/v3/organization/group/{id}- Delete teamPOST /api/v3/organization/group/{id}/users- Add members to teamDELETE /api/v3/organization/group/{id}/users/remove- Remove membersPOST /api/v3/organization/user- Create userGET /api/v3/organization/user- List usersGET /api/v3/organization/user/{id}- Get user detailsPUT /api/v3/organization/user/{id}- Update userDELETE /api/v3/organization/user/{id}- Delete userPOST /api/v3/organization/user/{id}/resend-activation- Resend activation emailPOST /api/v3/organization/profile/{id}/logo- Upload organization logoDELETE /api/v3/organization/profile/{id}- Delete organization logo
Export Templates API
Manage custom export templates.
Endpoints:
GET /api/v3/organization/templates- List templatesPOST /api/v3/organization/templates- Create templateDELETE /api/v3/organization/templates/{id}- Delete template
User Account API
Manage user accounts and preferences.
Endpoints:
GET /api/v3/account/me- Get current userPOST /api/v3/account/me- Update profilePOST /api/v3/account/password- Change passwordPATCH /api/v3/account- Deactivate accountDELETE /api/v3/account- Delete account
Authentication API
User authentication and session management.
Endpoints:
POST /api/v3/auth/login- LoginPOST /api/v3/auth/login/mfa- Login with MFAPOST /api/v3/auth/logout- LogoutGET /api/v3/auth/login/microsoft- Microsoft SSO login
Two-Factor Authentication API
Enable and manage 2FA.
Endpoints:
GET /api/v3/mfa/2fa/qr_code- Get QR code for setupGET /api/v3/mfa/2fa/backup_codes- Get backup codesPOST /api/v3/mfa/2fa/enable- Enable 2FAPOST /api/v3/mfa/2fa/disable- Disable 2FAPOST /api/v3/mfa/2fa/verify_totp- Verify TOTP codePOST /api/v3/mfa/2fa/verify_backup_code- Verify backup code
API Tokens API
Manage API access tokens.
Endpoints:
GET /api/v3/tokens- List tokensPOST /api/v3/tokens- Create token (not in POST_URL but implied)DELETE /api/v3/tokens/{id}- Delete token
Subscriptions API
Manage subscriptions and billing.
Endpoints:
GET /api/v3/subscription- List subscriptionsGET /api/v3/subscription/{id}- Get subscription detailsGET /api/v3/subscription/{id}/usage- Get usage statsPOST /api/v3/order_subscription/new_order- Create subscriptionDELETE /api/v3/subscription/{id}- Cancel subscription
Invoices API
View and download invoices.
Endpoints:
GET /api/v3/invoices- List invoicesGET /api/v3/invoices/{id}/download- Download invoice PDF
Mandates API
Manage payment mandates.
Endpoints:
GET /api/v3/mandates- List mandates
User Preferences API
Store and retrieve user preferences.
Endpoints:
GET /api/v3/user_preferences- List preferencesGET /api/v3/user_preferences/{id}- Get preferencePOST /api/v3/user_preferences- Create preferencePUT /api/v3/user_preferences/{id}- Update preferenceDELETE /api/v3/user_preferences/{id}- Delete preference
Reseller API
Manage customers and organizations (reseller accounts only).
Endpoints:
GET /api/v3/reseller/customer- List customersGET /api/v3/reseller/customer/{id}- Get customer detailsGET /api/v3/reseller/customer/{id}/usage- Get customer usageGET /api/v3/reseller/customer/{id}/logins- List customer loginsGET /api/v3/reseller/customer/{id}/tokens- List customer tokensGET /api/v3/reseller/customer/{id}/subscriptions- List customer subscriptionsGET /api/v3/reseller/customer/{id}/transcript- List customer transcriptsGET /api/v3/reseller/plan- List available plansGET /api/v3/reseller/usage- Get reseller usage statisticsGET /api/v3/reseller/statistics- Get reseller statisticsGET /api/v3/reseller/reporting/export- Export reseller reportsPOST /api/v3/reseller/customer- Create customerPOST /api/v3/reseller/customer/{id}/logins- Create customer loginPOST /api/v3/reseller/customer/{id}/logins/{loginId}/resend-activation- Resend activationPOST /api/v3/reseller/customer/{id}/logins/{loginId}/reset- Reset passwordPOST /api/v3/reseller/customer/{id}/tokens- Create tokenPOST /api/v3/reseller/plan/{planId}/subscribe- Subscribe to planPUT /api/v3/reseller/customer/{id}- Update customerPUT /api/v3/reseller/customer/{id}/logins/{loginId}/deactivate- Deactivate loginDELETE /api/v3/reseller/customer/{id}- Delete customerDELETE /api/v3/reseller/customer/{id}/logins/{loginId}- Delete loginDELETE /api/v3/reseller/customer/{id}/tokens/{tokenId}- Delete token
Pagination
List endpoints return paginated results using offset and limit parameters.
Request Parameters
GET /api/v3/folders?offset=0&limit=25
| Parameter | Type | Default | Description |
|---|---|---|---|
offset | integer | 0 | Number of items to skip |
limit | integer | 25 | Number of items to return |
Response Format
{
"count": 25,
"total_results": 150,
"result": [...]
}
| Field | Type | Description |
|---|---|---|
count | integer | Items in current response |
total_results | integer | Total items across all pages |
result | array | Array of items |
Pagination Example
def get_all_folders():
offset = 0
limit = 100
all_folders = []
while True:
response = requests.get(
'https://api.scriptix.io/api/v3/folders',
headers={'Authorization': 'Bearer YOUR_TOKEN'},
params={'offset': offset, 'limit': limit}
)
data = response.json()
all_folders.extend(data['result'])
# Check if more pages exist
if len(data['result']) < limit:
break
offset += limit
return all_folders
Filtering & Sorting
Many list endpoints support filtering and sorting via query parameters.
Common Query Parameters
| Parameter | Type | Example | Description |
|---|---|---|---|
q | string | meeting | Search query |
sort | string | created_at | Field to sort by |
direction | string | desc | Sort direction (asc or desc) |
Example
# Sort folders by name, descending
GET /api/v3/folders?sort=name&direction=desc
# Search with query
GET /api/v3/folders?q=meeting&limit=50
Error Handling
All errors follow a consistent format with standard HTTP status codes.
HTTP Status Codes
| Code | Meaning | Common Causes |
|---|---|---|
| 200 | OK | Request successful |
| 201 | Created | Resource created successfully |
| 204 | No Content | Successful deletion |
| 400 | Bad Request | Invalid parameters |
| 401 | Unauthorized | Invalid or missing token |
| 403 | Forbidden | Insufficient permissions |
| 404 | Not Found | Resource doesn't exist |
| 409 | Conflict | Resource state conflict |
| 422 | Unprocessable Entity | Validation error |
| 429 | Too Many Requests | Rate limit exceeded |
| 500 | Internal Server Error | Server error |
Error Response Format
Errors may include detail arrays or message strings depending on the endpoint.
{
"detail": [
{
"loc": ["body", "field_name"],
"msg": "field required",
"type": "value_error.missing"
}
]
}
or
{
"message": "Error description"
}
Best Practices
1. Handle Errors Gracefully
Implement retry logic with exponential backoff:
import time
import requests
def api_call_with_retry(func, max_retries=3):
for attempt in range(max_retries):
try:
return func()
except requests.exceptions.RequestException:
if attempt == max_retries - 1:
raise
time.sleep(2 ** attempt) # Exponential backoff
2. Use Pagination Efficiently
Don't load all results at once - paginate through data:
# ✅ Good - paginate through results
offset = 0
limit = 100
while True:
page = get_page(offset, limit)
process(page)
if len(page) < limit:
break
offset += limit
3. Secure Your Tokens
- Never commit tokens to version control
- Use environment variables
- Rotate tokens regularly
- Use different tokens for dev/production
import os
API_TOKEN = os.environ.get('SCRIPTIX_API_TOKEN')
if not API_TOKEN:
raise ValueError("SCRIPTIX_API_TOKEN environment variable not set")
4. Respect API Limits
- Check response headers for rate limit information
- Implement backoff when approaching limits
- Cache responses when possible
Quick Start Examples
Get Current User
curl https://api.scriptix.io/api/v3/account/me \
-H "Authorization: Bearer YOUR_TOKEN"
List Sessions
curl https://api.scriptix.io/api/v3/speech-to-text/session?offset=0&limit=25 \
-H "Authorization: Bearer YOUR_TOKEN"
Get Document
curl https://api.scriptix.io/api/v3/speech-to-text/session/{sessionId}/document/{docId} \
-H "Authorization: Bearer YOUR_TOKEN"
Create Glossary
curl -X POST https://api.scriptix.io/api/v4/glossaries \
-H "Authorization: Bearer YOUR_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"name": "Medical Terms",
"source_language": "en",
"target_language": "nl"
}'
Translate Document
curl -X POST https://api.scriptix.io/api/v3/speech-to-text/session/{sessionId}/document/{docId}/translate-multiple \
-H "Authorization: Bearer YOUR_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"languages": ["nl", "fr", "de"],
"filename": "translated_output"
}'
Next Steps
Explore specific API sections for detailed documentation:
- Custom Models - Custom Models API
- Glossaries - Glossaries API
- Document Management - Documents API
- Real-time - Realtime API
Need help? Contact support at support@scriptix.io