FFmpeg Micro API Documentation
Transform videos with our simple, secure API. Upload, transcode, and download processed videos.
All API requests should be sent to:https://api.ffmpeg-micro.com
Include your API key in the Authorization header:Authorization: Bearer YOUR_API_KEY
💡 Get your API key from the API Keys page in your dashboard.
Request a secure presigned URL to upload your video directly to cloud storage.
Use the presigned URL to upload your video file directly to storage (no API key needed for upload).
Confirm the upload completion with our API to verify the file was successfully stored.
Submit a transcode job with your desired output format and quality. Get job ID immediately.
Poll for job status, and when complete, download your processed video.
API Endpoints
Core routes for uploads, transcodes, and downloads.
/v1/upload/presigned-url{
"filename": "video.mp4",
"contentType": "video/mp4",
"fileSize": 12345678
}{
"success": true,
"result": {
"uploadUrl": "https://storage.googleapis.com/...",
"filename": "1234567890-video.mp4"
}
}curl -X POST https://api.ffmpeg-micro.com/v1/upload/presigned-url \
-H "Content-Type: application/json" \
-H "Authorization: Bearer YOUR_API_KEY" \
-d '{
"filename": "video.mp4",
"contentType": "video/mp4",
"fileSize": 12345678
}'uploadUrl (from step 1)# Replace UPLOAD_URL with the exact uploadUrl value from step 1 curl -X PUT "$UPLOAD_URL" \ -H "Content-Type: video/mp4" \ --data-binary @/path/to/video.mp4
/v1/upload/confirm{
"filename": "1234567890-video.mp4",
"fileSize": 12345678
}curl -X POST https://api.ffmpeg-micro.com/v1/upload/confirm \
-H "Content-Type: application/json" \
-H "Authorization: Bearer YOUR_API_KEY" \
-d '{
"filename": "1234567890-video.mp4",
"fileSize": 12345678
}'/v1/transcodes{
"inputs": [
{ "url": "gs://your-bucket/1234567890-video.mp4" }
],
"outputFormat": "mp4",
"preset": {
"quality": "medium",
"resolution": "1080p"
}
}{
"inputs": [
{ "url": "gs://your-bucket/1234567890-video.mp4" }
],
"outputFormat": "mp4",
"options": [
{ "option": "-c:v", "argument": "libx264" },
{ "option": "-crf", "argument": "23" },
{ "option": "@text-overlay", "argument": {
"text": "Hello World",
"style": { "fontSize": 60, "x": "0.15*w", "y": "(h-text_h)/2" }
}}
]
}{
"id": "job-uuid",
"status": "pending",
"inputs": [
{ "url": "gs://your-bucket/1234567890-video.mp4" }
],
"output_format": "mp4",
"created_at": "2025-01-01T00:00:00Z"
}curl -X POST https://api.ffmpeg-micro.com/v1/transcodes \
-H "Content-Type: application/json" \
-H "Authorization: Bearer YOUR_API_KEY" \
-d '{
"inputs": [
{ "url": "gs://your-bucket/1234567890-video.mp4" }
],
"outputFormat": "mp4",
"preset": {
"quality": "medium",
"resolution": "1080p"
}
}'/v1/transcodes/:id{
"success": true,
"jobId": "job-uuid",
"status": "completed",
"outputUrl": "gs://output-bucket/processed-video.mp4",
"createdAt": "2025-01-01T00:00:00Z",
"completedAt": "2025-01-01T00:02:30Z"
}curl -X GET https://api.ffmpeg-micro.com/v1/transcodes/job-uuid \ -H "Authorization: Bearer YOUR_API_KEY"
/v1/transcodes/:id/download{
"url": "https://storage.googleapis.com/...?X-Goog-Signature=..."
}# Get signed URL curl -X GET https://api.ffmpeg-micro.com/v1/transcodes/job-uuid/download \ -H "Authorization: Bearer YOUR_API_KEY" # Then download the file curl -O "$DOWNLOAD_URL"
/v1/transcodes- •
status— Filter by status (queued, processing, completed, failed) - •
page— Page number (default: 1) - •
limit— Items per page (default: 20, max: 100) - •
since— Jobs created after this timestamp - •
until— Jobs created before this timestamp
curl -X GET "https://api.ffmpeg-micro.com/v1/transcodes?status=completed&page=1&limit=20" \ -H "Authorization: Bearer YOUR_API_KEY"
/v1/transcodes/:idcurl -X GET "https://api.ffmpeg-micro.com/v1/transcodes/job-uuid" \ -H "Authorization: Bearer YOUR_API_KEY"
/health-check{
"ok": true,
"timestamp": "2025-10-23T14:30:45.123Z",
"uptime": 3600.5,
"supabase": {
"ok": true,
"status": 200,
"statusText": "OK",
"connected": true
}
}curl -X GET https://api.ffmpeg-micro.com/health-check
Supported Formats
- • MP4 (H.264, H.265)
- • WebM (VP8, VP9)
- • AVI (various codecs)
- • MOV (QuickTime)
- • MKV (Matroska)
- • FLV (Flash Video)
- • MP4 (H.264 + AAC)
- • WebM (VP9 + Opus)
- • Quality: low, medium, high
- • Resolutions: 480p, 720p, 1080p, 4K
- • @text-overlay — add styled text overlays
- • @quote-card — generate social-ready quote cards