// developer api

one endpoint. clean transcripts.

Upload audio or video, get back text, SRT, VTT, and timestamped segments — from hosted Whisper large-v3. No API key during the free preview.

base: https://api.vocce.io/api/v1 OpenAPI spec ↓ MCP · CLI · Skill ↗
// endpoints

Two calls. That's the whole API.

Create a job, then poll it. Both are open — no key, no signup.

POST /transcribe

Upload a file (multipart/form-data). Fields: file (required), language (optional). Returns { task_id, status }.

GET /transcribe/tasks/{task_id}

Poll the job. While running, status is queued/processing; when done, result holds the transcript.

// quickstart

Copy, paste, transcribe.

# 1) Start a job — no API key needed
curl -X POST https://api.vocce.io/api/v1/transcribe \
  -F "file=@meeting.mp3" \
  -F "language=en"

# → { "task_id": "job_2481", "status": "queued" }
# 2) Poll until it's done
curl https://api.vocce.io/api/v1/transcribe/tasks/job_2481

# → {
#     "status": "done",
#     "result": {
#       "text": "Full transcript…",
#       "srt": "1\n00:00:00,000 --> …",
#       "vtt": "WEBVTT\n\n00:00:00.000 --> …",
#       "language": "en",
#       "duration": 92.4,
#       "segments": [ { "start": 0.0, "end": 4.4, "text": "…" } ]
#     }
#   }
// response

What you get back.

The result object, once the job is done.

field type description
text string Full transcript as plain text
srt string Subtitles in SubRip (SRT) format
vtt string Subtitles in WebVTT format
language string Detected or specified language code
duration number Media duration in seconds
segments array Timestamped segments: { start, end, text }
// for agents

Or skip the HTTP — wire it into your agent.

The same backend, exposed as an MCP server, a CLI, and an Agent Skill.