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
Every sample posts the job, then polls /v1/status/{jobId} until it finishes, with your API key in the X-Api-Key header. The parameter names below are the ones the endpoint actually accepts โ anything else is dropped rather than rejected.
curl -X POST https://api.convertintomp4.com/v1/convert \
-H "X-Api-Key: ck_your_api_key" \
-F "file=@input.mp4" \
-F "targetFormat=mp3"import { readFileSync } from "node:fs";
import { ConvertIntoMP4Client } from "convertintomp4";
const apiKey = process.env.CIM4_API_KEY;
const client = new ConvertIntoMP4Client({ apiKey });
// Presigned direct-to-R2 upload, then queue the conversion.
const { jobId } = await client.uploadDirect(
readFileSync("input.mp4"),
"input.mp4",
"application/octet-stream",
{ targetFormat: "mp3" },
);
// Poll until the job reaches a terminal state.
let job;
do {
await new Promise((r) => setTimeout(r, 2000));
job = await fetch(`https://api.convertintomp4.com/v1/status/${jobId}`, {
headers: { "X-Api-Key": apiKey },
}).then((r) => r.json());
} while (job.status !== "completed" && job.status !== "failed");
console.log("Download URL:", job.result?.downloadUrl);import time, requests
from convertintomp4 import Client
api_key = "ck_your_api_key"
client = Client(api_key=api_key)
# Presigned direct-to-R2 upload, then queue the conversion.
with open("input.mp4", "rb") as f:
job = client.upload_direct(
f, "input.mp4", "application/octet-stream", "mp3"
)
# Poll until the job reaches a terminal state.
while True:
status = requests.get(
f"https://api.convertintomp4.com/v1/status/{job['jobId']}",
headers={"X-Api-Key": api_key},
).json()
if status["status"] in ("completed", "failed"):
break
time.sleep(2)
print("Download URL:", status.get("result", {}).get("downloadUrl"))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.