Skip to content

Ask AI

Ask a question about Scribewren, such as uploading a file, editing a transcript, plans or the API.

Ctrl or Cmd+Enter to send

Answers are written by AI and can be wrong. For account or billing help, use the chat or contact us. Contact support (opens in a new tab)

Usage, plans and languages

Three read-only endpoints tell you where you stand and what you can ask for. GET /me/usage needs your API key. GET /plans and GET /languages are public.

GET /me/usage

Terminal window
curl -sS "https://api.scribewren.com/v1/me/usage" \
-H "Authorization: Bearer $SCRIBEWREN_API_KEY"

The numbers below are examples. Yours depend on the plan and on what you have done today.

{
"planId": "unlimited_monthly",
"day": {
"date": "2026-12-01",
"resetsAt": "2026-12-02T00:00:00.000Z",
"transcriptions": { "used": 12, "limit": null },
"aiNotes": { "used": 0, "limit": 100 },
"translations": { "used": 0, "limit": 25 },
"askQuestions": { "used": 0, "limit": 100 }
},
"month": {
"start": "2026-12-01",
"resetsAt": "2027-01-01T00:00:00.000Z",
"audioMs": { "used": 86400000, "limit": 1000000000 },
"fairUseThrottled": false
},
"inFlight": { "used": 1, "limit": 5 }
}

This object is the data field of the usual envelope.

Field Notes
planId The owner’s plan: free, unlimited_monthly or unlimited_yearly.
day.date The current day in UTC. Daily counters reset at 00:00 UTC, at day.resetsAt.
day.transcriptions Transcriptions started today. An upload counts when you complete it. A retry counts as a new start.
day.aiNotes, day.translations, day.askQuestions Counters for features of the app. They share the account, so they move when someone uses the app. This API has no endpoint for them.
month.start, month.resetsAt The current calendar month in UTC.
month.audioMs Audio processed this month, in milliseconds. limit is the fair-use level, not a hard cap.
month.fairUseThrottled true once used reaches the fair-use level. New jobs then go to the standard queue until the month resets. They are never rejected for this reason.
inFlight Uploads that are still pending plus transcriptions that are queued or running. limit is how many may be open at once.

Each counter is an object with used and limit. When limit is null, the plan has no cap on that counter.

Because the endpoint is cheap, you can check it before a large batch. If inFlight.used has reached inFlight.limit, a new POST /media returns 403 PLAN_LIMIT_EXCEEDED with details.limit set to concurrency. For the other limits, see Errors.

GET /plans

No key is needed. The response lists every plan with its limits and features, straight from the same configuration the app uses. Read limits from here instead of hardcoding them, because plan limits can change.

Each plan has:

Field Notes
id free, unlimited_monthly or unlimited_yearly.
name Display name.
interval month, year or null for the free plan.
price { amount, currency }, with amount in minor currency units.
limits Numbers, with null meaning no cap: dailyTranscriptions, maxDurationMs, maxFileSizeBytes, concurrency, aiNotesDaily, translationsDaily, playbackRetentionDays, fairUseAudioMsMonthly and a few more for app features.
features queueClass, aiNoteTypes, translation, diarization, exportFormats and api.

features.api is true for the plans that include this API.

GET /languages

No key is needed. The response has two lists, transcription and translation. Each entry is { code, name, rtl }, where rtl is true for right-to-left languages.

Pass a code from transcription as options.language when you create media. The value auto is always accepted and detects the language. It is not listed.

Anonymous calls are limited per IP address. See Rate limits.

Can't find what you need? Contact support, email [email protected], or open Help and then Contact in the app. scribewren.com