Яндекс.Метрика

Public API

Developer documentation and request examples.

Base URL

Use the base URL for all API requests.

https://polyglotvoice.ru/api/v1

Authorization

All requests require an API key in the Authorization header.

Authorization: Bearer sk_...

The key is valid for 30 days and works only for transcriptions/*.

How to get an API key

  1. Sign in to your account.
  2. Open Profile → “API keys”.
  3. Create a key and save it (shown once).
  4. Use the key in requests.

Endpoints

Core endpoints for working with transcriptions.

POST /api/v1/transcriptions/upload

Upload a file for transcription.

POST /api/v1/transcriptions/from-url

Transcribe from a media URL.

POST /api/v1/transcriptions/validate-url

Validate a media URL before processing.

GET /api/v1/transcriptions

List transcription tasks.

GET /api/v1/transcriptions/{task_id}

Task details.

GET /api/v1/transcriptions/{task_id}/result

Transcription result.

GET /api/v1/transcriptions/{task_id}/downloads/{kind}

Download result file (srt/txt/json etc.).

GET /api/v1/transcriptions/{task_id}/source

Stream the source media (Range).

POST /api/v1/transcriptions/convert-audio

Convert audio and download the result.

Request examples

Basic examples to get started.

curl

curl -X POST "https://polyglotvoice.ru/api/v1/transcriptions/upload" \
  -H "Authorization: Bearer sk_..." \
  -F "file=@audio.mp3"

Python

import requests

url = "https://polyglotvoice.ru/api/v1/transcriptions/upload"
headers = {"Authorization": "Bearer sk_..."}
files = {"file": open("audio.mp3", "rb")}

response = requests.post(url, headers=headers, files=files)
print(response.json())

JavaScript

const formData = new FormData();
formData.append("file", file);

fetch("https://polyglotvoice.ru/api/v1/transcriptions/upload", {
  method: "POST",
  headers: { Authorization: "Bearer sk_..." },
  body: formData
})
  .then((res) => res.json())
  .then(console.log);

File formats

Popular audio and video formats are supported.

For example: mp3, wav, m4a, ogg, mp4, webm.

Responses and errors

Example of task creation response and auth error.

{ "task_id": "9b9c1b9a-....", "status": "queued" }
{ "detail": "Invalid token." }

Limits

These values are enforced by the API. Short-term (burst) limits apply per signed-in user — the same account whether you use a session JWT or an sk_ key. Daily and monthly counters count every request made with any of your sk_ keys (UTC calendar day and month). When a limit is exceeded, the API responds with HTTP 429.

The live JSON field rate_limits is returned by:

GET https://polyglotvoice.ru/api/v1/developer/documentation

Loading current limits…

In addition: each plan limits max audio length per file, max upload size, concurrent tasks, and (on the website) daily uploads. See your subscription on the dashboard.