Business APIsIntegrations › Amazon S3

Amazon S3 transcription integration

For engineering teams with an existing media bucket and a compliance reason to keep it there. The job: transcribe objects in place, in bulk, without copying the bucket anywhere.

The one thing that breaks this

A presigned GET works for one-off jobs but expires. For a standing pipeline, grant a scoped IAM role instead so nothing has to be re-signed on every run.

ModuleWhipscribe batch connector with an AssumeRole grant
ShapeConnector
Recipes4

Wiring it up

1 · Trigger

Any of these start the run:

2 · Submit from Whipscribe batch connector with an AssumeRole grant

# submit — returns immediately, does not block
curl -X POST https://whipscribe.com/api/v1/transcribe/url \
  -H "X-API-Key: $KEY" \
  -H "Idempotency-Key: s3-$FILE_ID" \
  -H "Content-Type: application/json" \
  -d '{"url":"https://example.com/recording.mp4",
       "diarize":true,
       "word_timestamps":true}'

→ 202 {"job_id":"a1b2…","status":"queued"}

# then poll — a self-serve (Pro) key collects by polling
curl "https://whipscribe.com/api/v1/jobs/$JOB" -H "X-API-Key: $KEY"
→ {"status":"processing"} … {"status":"done"}
Retry safety. Scope the role to the prefix you actually want transcribed; a bucket-wide grant is more access than the job needs.

3 · Collect

Connect the account once; we fetch the file ourselves.

# one job, every format — never re-submit per format
curl "https://whipscribe.com/api/v1/jobs/$JOB/result?format=txt" -H "X-API-Key: $KEY"
curl "https://whipscribe.com/api/v1/jobs/$JOB/result?format=srt" -H "X-API-Key: $KEY"
curl "https://whipscribe.com/api/v1/jobs/$JOB/result?format=vtt" -H "X-API-Key: $KEY"

What your key can actually do

TierReq/minMinutes/dayLongest fileResultsHow you get it
Free1060 min2 hoursPollNot self-serve — existing keys only
Pro60Unlimited10 hoursPollWhat POST /v1/keys mints, once your account has credit
Enterprise120Unlimited10 hoursSigned webhooksTalk to us
Collecting results. Self-serve keys are Pro tier, and Pro collects results by polling — webhook_url on a Pro key returns 403 TIER_FORBIDDEN. Signed callbacks are an Enterprise feature.

What it costs to run

Rate$0.008 / min
Per audio hour$0.48
10 hours of audio$4.80
CreditsNever expire

$8 per 1,000 minutes — about $0.48 an audio hour — and credits never expire.

Why run it here

No subscription to size wrongCompeting transcription tools sell $25–$65 monthly plans with a minute cap that resets whether you used it or not. Credits here are bought once and do not expire, so a quiet month costs nothing and a backlog run does not need an upgrade.
Your audio is not sent to a third-party modelTranscription runs on our own GPUs in our own private cloud. Nothing is forwarded to OpenAI or any other vendor's API, which is usually the blocking question when the recordings are customer calls or unreleased material.
One job, every formattxt, json, srt, vtt and docx all come from the same job id. Re-submitting a file per format is the most common way teams pay several times for one transcription.
Built to be retriedIdempotency-Key means an automation platform's automatic retry returns the original job instead of billing a second one. Every no-code platform retries; most transcription APIs charge you for it.

Recipes that use Amazon S3

Cut short-form clips out of a webinar automaticallyThe clips worth posting are buried somewhere in a 60-minute recording and finding them by scrubbing costs…60-min webinar ≈ $0.48Generate show notes and chapters from each episodeShow notes and chapter markers are the last job before publishing and the one most often skipped.…weekly show ≈ $1.56 a monthTranscribe a whole back catalogue in one runThe archive is the asset, but one-at-a-time upload means it never gets done.…1,000 hours ≈ $480, onceCaption lecture recordings for accessibilityCaptions are required, manual captioning is slow, and auto-captions from video platforms have no punctuat…12-week course ≈ $12
Try the quality free, then wire it up

Your first transcript in the web app is free, any length, no card — that is how to check accuracy on your own audio before writing any code. The API itself has no free tier: a key is self-serve once your account has credit ($50 minimum, spendable on transcription, and it does not expire). $8 per 1,000 minutes — about $0.48 an audio hour — and credits never expire.

Transcribe a file free →Create an API keyAPI reference
Platform reference: Amazon S3 docs ↗