Convert API — Free Tier + Pay-As-You-Go
Production-grade file conversion API with 9 language SDKs, async webhooks, and cloud-to-cloud workflows. Free tier available.
What it does
The Convert API is the developer-facing surface of the ConvertIntoMP4 platform — a REST API with 9 language SDKs (Node, Python, PHP, Java, Go, Ruby, C#, Kotlin, Swift) covering 255 formats and 2,290+ conversion pairs. Authentication is via API key (`X-Api-Key` header, recommended) or OAuth 2.0 client credentials grant for server-to-server flows where rotating keys is a hassle. Idempotency keys (Stripe-style `Idempotency-Key` header) make retries safe — duplicate jobs with the same key return the original job ID rather than triggering a second conversion, even across days.
Async webhook callbacks fire on `job.completed` and `job.failed` with HMAC-SHA256 signatures derived from your webhook secret; payload includes the output URL, file size, duration, MIME type, and exit warnings. The API supports cloud-to-cloud workflows where the input is pulled from S3 / GCS / Azure / signed URL and the output is pushed to S3 / GCS / Azure / SFTP / Google Drive — the bytes never round-trip through your servers. The Free tier allows 50 conversions per day with 200 MB file size limit and no API key required (IP-gated rate limiting); Pro and Business plans scale up from there.
Supported formats
Source formats (19)
- mp4
- mp3
- wav
- flac
- jpg
- png
- webp
- avif
- heic
- docx
- xlsx
- pptx
- html
- epub
- mobi
- zip
- ttf
- woff2
Target formats (17)
- mp4
- webm
- mp3
- wav
- flac
- jpg
- png
- webp
- avif
- docx
- html
- epub
- mobi
- zip
- ttf
- woff2
Quick start
All three SDK languages show the same conversion: a single POST to /v1/convert with your API key in the X-Api-Key header.
curl -X POST https://api.convertintomp4.com/v1/convert \
-H "X-Api-Key: ck_your_api_key" \
-F "file=@input.mp4" \
-F "target=mp3"import { ConvertIntoMP4 } from "@convertintomp4/sdk";
import fs from "node:fs";
const client = new ConvertIntoMP4({ apiKey: process.env.CIM4_API_KEY });
const job = await client.convert({
file: fs.createReadStream("input.mp4"),
target: "mp3",
});
const result = await client.waitForJob(job.id);
console.log("Output URL:", result.outputUrl);from convertintomp4 import Client
client = Client(api_key="ck_your_api_key")
with open("input.mp4", "rb") as f:
job = client.convert(file=f, target="mp3")
result = client.wait_for_job(job.id)
print("Output URL:", result.output_url)Features
- 9 language SDKs maintained by the core team
- OAuth 2.0 client credentials + API key auth
- Idempotency keys for safe retries
- Webhook callbacks with HMAC-SHA256 signatures
- Cloud-to-cloud workflows (S3, GCS, Azure, SFTP, Drive)
- Free tier — 50/day, no key required
- Live sandbox at /account/api/sandbox
Pricing
From $9.99/mo (Pro) or $24.99/mo (Business) — or pay-as-you-go on the API plan.
Free tier: 5 conversions/day, 100 MB file size, no API key required (IP-gated). Pro $9.99/mo: 100/day (2,000/month), 2 GB files. Business $24.99/mo: 1,000/day (20,000/month), 10 GB files, GPU encoding, dedicated support.
See full pricing breakdown →Built for production
99.9% uptime SLA
Multi-region failover, transparent status page, 60-second response-time guarantee on Business.
Encryption + auto-delete
TLS 1.2+ in transit, AES-256 at rest. Files deleted after 1h / 24h / 7d depending on plan, or instantly via DELETE endpoint. See the security page.
~7s median latency
Most sub-100 MB jobs complete in 6-9 seconds. Webhook-driven async for heavier workloads; waitForJob for synchronous flows.
Frequently Asked Questions
How is the Convert API different from the File Conversion API?
They're aliases — same underlying endpoint surface. The Convert API marketing emphasises the developer ergonomics (SDKs, idempotency, webhooks, sandbox); the File Conversion API emphasises the format coverage (255 formats, 2,290+ pairs). Pick whichever framing fits your buying conversation.
How do idempotency keys work?
Pass an `Idempotency-Key: <uuid>` header on POST /v1/convert. The API records the resulting job ID against the key; subsequent POSTs with the same key return the original job ID for 24 hours. Safe for retry storms, network blips, and at-least-once message-queue semantics.
What's in a webhook payload?
`{ event: 'job.completed', jobId, outputUrl, sizeBytes, durationMs, mimeType, sourceMime, warnings: [] }` for success; `{ event: 'job.failed', jobId, errorCode, errorMessage, warnings: [] }` for failure. Payload is signed with HMAC-SHA256 against your webhook secret — verify before processing.
What languages are the SDKs in?
Node.js (TypeScript), Python, PHP, Java, Go, Ruby, C#, Kotlin, Swift. Each SDK is maintained in-tree as part of the monorepo so SDK + API changes ship in lock-step. PRs welcome for additional language wrappers.
Can I test conversions without consuming credits?
Yes — the sandbox at `/account/api/sandbox` runs all conversions in dry-run mode with a watermarked output. No credits consumed, no rate limits applied. Great for SDK integration testing and trying out request shapes.
Related APIs
- File Conversion APIOne unified file conversion API for video, audio, image, document, ebook, archive, and font formats — 255 formats, 2,290+ conversion pairs.
- Media Conversion APIVideo and audio conversion API in one endpoint. 27 video + 21 audio formats, FFmpeg-backed, GPU-accelerated.
Or browse the full catalogue of 23 API products →
Get an API key
Start integrating the Convert API in five minutes. Read the docs, grab a key, and ship your first conversion before the trial coffee cools.