API and webhooks

Upload recordings, follow each transcription and fetch transcripts from your own code. Signed webhooks tell you when a job finishes. Included in the Unlimited plans.

Scribewren API Illustration

Complete an upload

POST https://api.scribewren.com/v1/media/{id}/complete
Authorization: Bearer swp_0190EXAMPLE_EXAMPLEEXAMPLEEXAMPLE
Content-Type: application/json

{ "parts": [{ "partNumber": 1, "etag": "EXAMPLE-ETAG" }] }

Response201

{
  "success": true,
  "code": 201,
  "message": "Created",
  "data": {
    "media": { "status": "uploaded" },
    "transcription": {
      "id": "019a4f2e-7c1b-7d3a-9f00-3c5e8a1b2d4f",
      "status": "queued"
    }
  },
  "error": null,
  "meta": {
    "requestId": "019a4f30-1c22-7a10-b5d3-42f1c0a8e777",
    "timestamp": "2026-11-04T09:41:07.512Z"
  }
}

When it finishes, a signed delivery to your endpoint

webhook-id: msg_019a4f30-1c22-7a10-b5d3-42f1c0a8e777
webhook-timestamp: 1793785267
webhook-signature: v1,EXAMPLE-SIGNATURE-NOT-REAL

What it does

The API does what the app does, from your code: upload audio or video, follow the transcription and fetch the transcript as segments or as a file. It is included in the Unlimited plans at no extra price. Accounts on Free cannot use it.

API requests share your plan limits and fair use with the app. There is no separate quota and no separate price. The full reference, with every endpoint and error code, is on the docs site.

  • Authenticate with a bearer API key. Create and revoke keys in Settings.
  • Upload in parts straight to storage with presigned links. The API never streams media itself.
  • Read a transcript as segments, or export it as TXT, DOCX, PDF, SRT or VTT.
  • Get a signed webhook when a transcription succeeds or fails, instead of polling.
  • Webhook payloads carry IDs, status, language, duration and timestamps. They never carry a title, filename or transcript text.

How it works

  1. Create an API key in Settings → API in the app. Keys work while your account is on an Unlimited plan.
  2. Start an upload with the API, send the file in parts straight to storage with the presigned URLs, then complete it.
  3. Wait for the transcription to finish, either by polling it or with a signed webhook.
  4. Read the transcript as segments, or export it as a document or as subtitles.

Details

Base URL
https://api.scribewren.com/v1
Authentication
Bearer API key. JSON in camelCase.
Browsers
No cookies and no CORS. Call it from your server, not from a web page.
Webhook events
transcription.succeeded and transcription.failed.
Signing
Standard Webhooks headers: webhook-id, webhook-timestamp and webhook-signature.
Failed deliveries
Retried automatically, with a delivery log you can read and a test event you can send.

Plan availability

This feature on the Free and Unlimited plans
Free Unlimited
API access Not included Included
Transcriptions 3 per day No daily cap
Fair use Not applicable 300 audio hours per month

API requests count towards the same limits and fair use as the app. Compare the plans.

More features

Documentation

The full reference, with every endpoint, error code and rate limit, is on the docs site.

Questions

Is the API included in Unlimited?

Yes, at no extra price. Free accounts cannot use the API.

Does the API have its own quota?

No. API requests share your plan limits and fair use with the app. Requests are also rate limited, and the docs describe how.

Can I call the API from a browser?

No. The API sets no cookies and allows no cross-origin requests, so call it from your server and keep keys out of client code.

How do webhooks work?

Register an HTTPS endpoint in Settings and choose the events. Each delivery is signed so you can verify it came from Scribewren, and failed deliveries are retried.

What happens to the API if I leave Unlimited?

Requests are refused while your account is not on an Unlimited plan. Your transcripts stay in the app.

Try it on your own recording

Free includes a few transcriptions a day. No card needed. Compare plans.

Start free