--- title: "Dubbing Quickstart" section: "Dubbing" order: 0 sidebarLabel: "Quickstart" --- Dub audio or video into another language in 5 minutes. No SDK needed — just REST API calls. ## Prerequisites - A Pinch API key from the [Developer Portal](https://portal.startpinch.com/dashboard/developers) - An audio file (WAV, MP3, FLAC, OGG, M4A, AAC, WMA) or video file (MP4, MOV, MKV, WebM, AVI) — or a public URL ## Quick example ```bash # 1. Create a dubbing job from a URL curl -X POST https://api.startpinch.com/api/dubbing/jobs \ -H "Authorization: Bearer YOUR_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "source_url": "https://example.com/video.mp4", "source_lang": "auto", "target_lang": "es" }' # Response: { "job_id": "abc-123", "status": "pending", ... } # 2. Poll for completion curl https://api.startpinch.com/api/dubbing/jobs/abc-123 \ -H "Authorization: Bearer YOUR_API_KEY" # 3. Download the result when status is "completed" curl https://api.startpinch.com/api/dubbing/jobs/abc-123/result \ -H "Authorization: Bearer YOUR_API_KEY" # Response: { "download_url": "https://...", "expires_at": "..." } ``` ## Upload a local file If your file isn't publicly accessible, upload it first: ```bash # 1. Get a presigned upload URL curl -X POST https://api.startpinch.com/api/dubbing/upload-url \ -H "Authorization: Bearer YOUR_API_KEY" \ -H "Content-Type: application/json" \ -d '{"filename": "my-video.mp4", "content_type": "video/mp4"}' # Response: { "upload_url": "https://...", "source_url": "https://..." } # 2. Upload the file directly to S3 curl -X PUT "UPLOAD_URL_FROM_STEP_1" \ -H "Content-Type: video/mp4" \ --data-binary @my-video.mp4 # 3. Create the dubbing job using the source_url from step 1 curl -X POST https://api.startpinch.com/api/dubbing/jobs \ -H "Authorization: Bearer YOUR_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "source_url": "SOURCE_URL_FROM_STEP_1", "target_lang": "es" }' ``` ## Job lifecycle Jobs go through these statuses: ``` pending → downloading → processing → uploading → completed → failed ``` Poll `GET /api/dubbing/jobs/{id}` to track progress. Typical processing time is 2-5 minutes for 1 minute of input. ## Pricing & limits | | | | --- | --- | | **Price** | $0.50 per minute of input media | | **Max duration** | 10 minutes | | **Min duration** | 1 second | | **Max file size** | 500 MB | | **Input formats** | Video: MP4, MOV, MKV, WebM, AVI; Audio: WAV, MP3, FLAC, OGG, M4A, AAC, WMA | | **Output format** | Video input: MP4 (H.264 + AAC); Audio input: MP3 or WAV | | **Rate limit** | 10 jobs per minute | | **Output expiry** | Download URLs expire after 48 hours | ## Supported languages | Code | Language | |------|----------| | `en` | English | | `es` | Spanish | | `fr` | French | | `de` | German | | `it` | Italian | | `pt` | Portuguese | | `ru` | Russian | | `ja` | Japanese | | `ko` | Korean | | `zh` | Chinese | ## Next steps - [Dubbing API Reference](/docs/dubbing-api) — full endpoint documentation - [Dubbing Dashboard](https://portal.startpinch.com/dashboard/dubbing) — dub audio and video from the browser ## Guides - [How to Dub Videos with Python](/guides/how-to-dub-videos-with-python) — complete Python tutorial with batch processing - [AI Video Dubbing API](/guides/ai-video-dubbing-api) — deep dive into how dubbing APIs work - [Dubbing API Pricing Comparison](/guides/dubbing-api-pricing-comparison) — Pinch vs ElevenLabs vs Rask.ai pricing breakdown