Transcribe Endpoint
The transcribe endpoint provides two operations:
POST https://api.importly.io/transcribe- Start a new transcriptionGET https://api.importly.io/transcribe/status?id={id}- Check transcription status
Purpose
Turn a media URL into a transcript: clean text plus timestamped segments. For YouTube URLs with captions (including auto-generated ones), extraction is fully managed and costs $0.01 per video. For caption-less media, connect your own AI transcription provider (AssemblyAI, Deepgram, or OpenAI) and Importly orchestrates the full download-and-transcribe pipeline for $0.03 per job plus your provider's own usage fees.
Parameters
| Parameter | Type | Description |
|---|---|---|
url* | string | Publicly accessible media URL to transcribe. |
language | string | Language code (e.g., |
provider | string | AI transcription provider for caption-less media:
|
apiKey | string | Your API key for the chosen provider. Optional if you have stored one via
|
providerOptions | object | Provider-specific options, passed through unchanged. |
webhookUrl | string | URL to receive a callback notification when the transcript is ready. |
Authentication is required via the Authorization: Bearer <API_KEY> header.
Example Request (YouTube captions)
bash1curl -X POST "https://api.importly.io/transcribe" \2 -H "Authorization: Bearer YOUR_API_KEY" \3 -H "Content-Type: application/json" \4 -d '{5 "url": "https://www.youtube.com/watch?v=dQw4w9WgXcQ",6 "webhookUrl": "https://your-app.com/api/importly-webhook"7 }'
Example Request (AI transcription with your provider key)
bash1curl -X POST "https://api.importly.io/transcribe" \2 -H "Authorization: Bearer YOUR_API_KEY" \3 -H "Content-Type: application/json" \4 -d '{5 "url": "https://example.com/podcast-episode.mp3",6 "provider": "deepgram",7 "apiKey": "YOUR_DEEPGRAM_KEY",8 "language": "en"9 }'
Response
json1{2 "success": true,3 "data": {4 "jobId": "b2f7c9e4-…",5 "status": "queued",6 "message": "Transcription has been queued for processing."7 }8}
Checking Status
bash1curl "https://api.importly.io/transcribe/status?id={jobId}" \2 -H "Authorization: Bearer YOUR_API_KEY"
When the job completes, the response includes the transcript:
json1{2 "success": true,3 "data": {4 "jobId": "b2f7c9e4-…",5 "status": "completed",6 "result": {7 "text": "Full transcript text…",8 "language": "en",9 "duration": 212,10 "data": {11 "segments": [12 { "start": 0.0, "end": 4.2, "text": "First segment…" }13 ]14 }15 }16 }17}
If no captions are available and no provider is configured, the job fails with a message asking you to supply a provider and apiKey — nothing is charged for failed jobs beyond the attempted work.
See also: Import Endpoint for downloading the media itself, and Webhooks for callback delivery details.