Kalemio

Arabic speech, ready for your product.

Dialect-aware, with a timestamp on every word.

No card needed to start. Free processing uses a slower queue. Free plan: 60 minutes a month. Paid plans from USD 5.00 a month.
Need an SRT without code? Try Arabic Subtitles.

conversation — zsh
~/interviews % python kalemio_quickstart.py conversation.m4a
Job tr_5d0c3f6a8e2b4c71a9f0e6d2b8c4a1f3 accepted (priority processing)
Saved conversation.json
Saved conversation.srt
~/interviews % 
conversation.json

A little Levantine Arabic · speaker_0

أهلاً، كيف فيني ساعدك؟

“Hello, how can I help you?”

  • أهلاً،0.24–0.68
  • كيف0.72–0.94
  • فيني0.98–1.22
  • ساعدك؟1.26–1.78
{ "text": "أهلاً، كيف فيني ساعدك؟",
  "words": [
    {"text":"أهلاً،","start":0.24,"end":0.68,"speaker_id":"speaker_0"},
    {"text":"كيف","start":0.72,"end":0.94,"speaker_id":"speaker_0"},
    {"text":"فيني","start":0.98,"end":1.22,"speaker_id":"speaker_0"},
    {"text":"ساعدك؟","start":1.26,"end":1.78,"speaker_id":"speaker_0"}
  ],
  "duration_seconds": 1.92 }
1
00:00:00,240 --> 00:00:01,780
[speaker_0] أهلاً، كيف فيني ساعدك؟

Example: the transcript and job are written for this page, not a transcription of a real recording. Times are in seconds.

The request and its 202 Accepted response
Request
export KALEMIO_API_BASE='https://kalemio.app'
export KALEMIO_API_KEY='YOUR_API_KEY'

curl "$KALEMIO_API_BASE/v1/transcriptions" \
  -H "Authorization: Bearer $KALEMIO_API_KEY" \
  -H "Idempotency-Key: conversation-001" \
  -F 'file=@conversation.m4a' \
  -F 'speakers=auto'

Response202 Accepted

{ "id": "tr_5d0c3f6a8e2b4c71a9f0e6d2b8c4a1f3",
  "status": "queued", "duration_seconds": 1.92,
  "billed_seconds": 0, "billed_minutes": 0,
  "reserved_seconds": 2, "billing_method": "credits",
  "processing": "priority",
  "expires_at": "2026-10-01T09:30:00.000Z" }

Asynchronous: the job ID comes back at once. Poll GET /v1/transcriptions/{id} until "status" is "completed", then download /result as JSON or /srt. Complete quickstart script

Three ways to use the result.

Every completed job returns it as JSON and SRT.

  1. Subtitle export. Download /srt and import it into your player or video editor. Each cue holds up to eight words or five seconds, from one speaker.

    Download results
  2. Word highlighting. Every word has a start and end time in seconds. Highlight the word under the playhead, and seek when someone taps a word.

    Word-level timestamps
  3. Transcript search. Search the transcript text, then move the player to the matching word’s start time. Speaker labels tell voices apart within one recording.

    Build searchable audio

Download a longer written example without an account: SRT · JSON · WebVTT. Dialogue and timings are illustrative, not a transcription of a real recording. Sample source and limitations

Lowest dialect-tolerant error rate in our test.

Kalemio keeps the dialect as it was said.

Dialect-tolerant word error rate · Lower is better

  1. Kalemio4.6%
  2. Google Chirp 35.0%
  3. Meta Muse Voice 1.06.3%
  4. Hamsa General V27.4%
  5. ElevenLabs Scribe v27.4%
  6. Groq Whisper large-v317.0%
  7. Groq Whisper turbo25.1%

We chart this measure because it doesn’t count dialect spellings as errors, and keeping the dialect is what Kalemio is for. How the benchmark was run

Kalemio benchmark · September 2026 · 2.06 hours of Levantine audio, seven single-speaker videos from one channel. Same recordings and scoring for every system. Small gaps, such as 4.6% against 5.0%, may not hold on other audio.

Interviews, podcasts and everyday conversations don’t sound like a textbook. Kalemio is built for Modern Standard Arabic and spoken dialects, keeping the words as they were said.

In our September 2026 benchmark on 2.06 hours of Levantine Arabic, Kalemio had the lowest dialect-tolerant word error rate of the seven systems tested: 4.6%. Every system got the same recordings and the same scoring.

The benchmark scores wording only, on Levantine Arabic. It doesn’t measure word timing or speaker labels, and other dialects aren’t part of it yet.

From a recording to a saved transcript.

Three steps, with a ready script in Python, Bash or Node.js.

Run the quickstart

  1. Create a key that stays on your server, with the Submit transcriptions and Read transcripts permissions.

  2. Run the quickstart in Python, Bash or Node.js. It uploads once and waits for the job; running it again resumes the same job with the same Idempotency-Key.

  3. Save the JSON or SRT before the result expires, 24 hours after submission.

Limits to plan around

Formats
MP3, M4A, PCM WAV, MP4 and MOV. We extract the audio from video.
File size
Up to 20 MiB and 10 minutes per file.
Jobs
Two active jobs per account on paid plans; one on the Free plan.
Longer recordings
Split them into pieces under 10 minutes and submit each as its own job. Speaker labels don’t carry from one piece to the next.
OpenAI SDKs
An OpenAI-compatible transcription endpoint: set the base URL to https://kalemio.app/v1 and the model to kalemio-arabic-1. It answers in the same request.

Choose your monthly minutes.

The same transcription features on every plan.

PlanMinutesPrice
FreeSlower, queued processing60 minutes per monthUSD 0.00 / monthStart free
Starter1,250 minutes per monthUSD 5.00 / monthChoose Starter
StarterBilled yearly1,250 minutes per monthUSD 50.00 / yearChoose Starter annual
Studio5,000 minutes per monthUSD 13.93 / monthChoose Studio
StudioBilled yearly5,000 minutes per monthUSD 159.00 / yearChoose Studio annual
Top-up500 extra minutesUSD 5.00 one timeFor subscribers. These minutes never expire, even if you cancel your plan.

Start free to evaluate; paid plans get priority, faster processing.

Free plan: 60 minutes a month, with slower, queued processing on a best-effort basis. Jobs are typically several times slower than on paid plans and may wait in a queue. Meant for evaluation, one job at a time. Paid jobs are processed separately with priority and never wait behind the free queue.

Plans renew monthly or yearly until cancelled. Minutes reset every month, on annual plans too, and don’t roll over. Upgrade or cancel from your account.

Prefer no monthly allowance? Optional usage-based billing costs US$0.015 per minute, more than any plan, with a 2-minute minimum (US$0.03) per job. How plans and usage-based billing compare

Estimate your monthly cost

Enter your workload. The estimate uses the same prices and rounding as billing.

20 recordings × 0.5 min = 10 minutes of audio a month.

For priority processing, Starter has the lowest estimated prepaid cost shown for this workload: USD 5.00 a month.

This workload also fits Free for slower evaluation. Assumes the same workload each month. Plans renew; monthly minutes do not roll over. Future top-ups may cost less because their unused minutes carry forward.

Review Starter
  • FreeUSD 0.00 a month

    Counts 20 of 60 free minutes: each job counts whole minutes, at least 1. Slower, queued processing for evaluation.

  • StarterUSD 5.00 a month

    Uses 10 of 1,250 minutes each month; 1,240 unused minutes don’t roll over. Each upload counts to the next second.

  • Starter annualUSD 50.00 a year

    Uses 10 of 1,250 minutes each month; 1,240 unused minutes don’t roll over. Each upload counts to the next second.

  • StudioUSD 13.93 a month

    Uses 10 of 5,000 minutes each month; 4,990 unused minutes don’t roll over. Each upload counts to the next second.

  • Studio annualUSD 159.00 a year

    Uses 10 of 5,000 minutes each month; 4,990 unused minutes don’t roll over. Each upload counts to the next second.

  • Usage-basedUSD 0.60 a month

    Bills 40 minutes at US$0.015 each: every job is rounded up to whole minutes, at least 2. Invoiced in USD at the end of the month.

Estimates until checkout confirms them: checkout shows the amount before you pay, and usage-based totals come from your monthly invoice. Plans renew monthly or yearly until cancelled; usage-based billing is invoiced at the end of each month. Checkout shows the final total, including any tax, before you pay.

Your recordings stay yours.

We don’t train on them, and working audio is deleted after processing.

  • Reliability. We check the API console and the transcription service every five minutes, and the status page shows the results. These checks aren’t a full transcription test or an uptime guarantee.

    API status
  • Data. We don’t use your recordings to train models. Working audio is deleted after processing. Yours to download for 24 hours after submission.

    How we handle your data
  • Support. Email us in Arabic or English. We usually reply within two business days.

    Contact supportAbout the Arabic transcription API

Try it on your own recordings.

60 free minutes a month, no card needed.

Just need a subtitle file, not an integration? Arabic Subtitles is a separate no-code product for making SRT files.