Developers
Build transcription into your product
A clean REST API for synchronous short-clip transcription and asynchronous jobs, with per-org API keys and signed webhooks.
Authentication
Create a per-organization API key in the console under
Organization → API keys (format tsk_<prefix>_<secret>,
shown once, stored hashed). Send it as a bearer token:
Authorization: Bearer <YOUR_API_KEY>
# or
X-Internal-Key: <YOUR_API_KEY>
Endpoints
| Method | Path | Scope | Purpose |
|---|---|---|---|
| GET | /v1/health | none | Liveness + fast-lane readiness |
| POST | /v1/transcribe | transcribe | Sync short-clip transcription |
| POST | /v1/jobs | jobs:write | Enqueue an async job (long media) |
| GET | /v1/jobs/{id} | jobs:read | Job status + transcript/SRT when done |
Quickstart
Sync transcription (cURL)
curl -sS https://YOUR_HOST/v1/transcribe \
-H "Authorization: Bearer $TRANSIBO_KEY" \
-F "file=@clip.wav" -F language=auto
Async job + poll (Python)
import time, requests
BASE = "https://YOUR_HOST"
H = {"Authorization": f"Bearer {TOKEN}"}
job = requests.post(f"{BASE}/v1/jobs", headers=H,
files={"file": open("meeting.mp4", "rb")},
data={"language": "auto"}).json()
jid = job["job_id"]
while True:
s = requests.get(f"{BASE}/v1/jobs/{jid}", headers=H).json()
if s["status"] in ("done", "error"):
break
time.sleep(3)
print(s.get("text"))
Webhooks
Register an endpoint under Organization → Webhooks. On
job.completed / job.failed you receive a signed POST; verify
HMAC_SHA256(secret, raw_body) against the signature header.
X-Transibo-Event: job.completed
X-Transibo-Signature: sha256=<hex>