Everything you need to build with Rendrift's media processing API.
Start with our Free tier (instant provisioning) or upgrade to a paid plan anytime.
Use your API key in the Authorization header:
curl -X POST https://rendrift.io/v1/thumbnail \ -H "Authorization: Bearer YOUR_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "url": "https://example.com/video.mp4", "format": "jpg", "width": 320, "height": 180 }'
Upgrade, downgrade, or change your billing details anytime via the billing portal.
All API requests require an Authorization: Bearer YOUR_API_KEY header.
/v1/thumbnail
Generate a thumbnail from a video or image URL.
{
"url": "https://example.com/video.mp4", // Media URL (required)
"format": "jpg", // jpg, png, webp (required)
"width": 320, // Thumbnail width (required)
"height": 180, // Thumbnail height (required)
"timestamp": 5 // Seconds into video (optional, default: 0)
}
{
"url": "https://rendrift-cdn.io/thumb_abc123.jpg", // Download URL (valid 24 hours)
"format": "jpg",
"width": 320,
"height": 180
}
/v1/audio
Extract audio from video to MP3.
{
"url": "https://example.com/video.mp4", // Media URL (required)
"bitrate": "128k" // 128k, 192k, 320k (optional, default: 192k)
}
{
"url": "https://rendrift-cdn.io/audio_xyz789.mp3", // Download URL (valid 24 hours)
"duration_seconds": 120,
"bitrate": "192k"
}
/v1/probe
Get detailed metadata about a media file.
{
"url": "https://example.com/video.mp4" // Media URL (required)
}
{
"duration_seconds": 120,
"format": "mp4",
"video": {
"codec": "h264",
"width": 1920,
"height": 1080,
"fps": 30,
"bitrate": "5000k"
},
"audio": {
"codec": "aac",
"channels": 2,
"bitrate": "128k",
"sample_rate": 48000
}
}
/v1/image
Resize, crop, or convert an image.
{
"url": "https://example.com/image.jpg", // Image URL (required)
"format": "webp", // jpg, png, webp (optional, default: original)
"width": 800, // Width in px (optional)
"height": 600, // Height in px (optional)
"crop": "center" // center, top, bottom (optional)
}
{
"url": "https://rendrift-cdn.io/image_def456.webp", // Download URL (valid 24 hours)
"format": "webp",
"width": 800,
"height": 600
}
/v1/waveform
Generate waveform data (JSON) from audio or video.
{
"url": "https://example.com/audio.mp3", // Media URL (required)
"samples": 1000 // Data points (default: 1000, max: 10000)
}
{
"samples": [0.12, 0.45, 0.89, ...], // Normalized peak amplitude per sample (0-1)
"duration_seconds": 120,
"sample_rate": 1000
}
All errors return JSON with status code and message:
{
"error": "Unauthorized",
"message": "Invalid or missing API key"
}
Common status codes:
400 — Bad request (missing or invalid parameters)401 — Unauthorized (missing/invalid API key)429 — Rate limited (tier limit exceeded)500 — Server error (try again in a few seconds)$0/mo
Quotas
Features
$29/mo
Quotas
Features
$99/mo
Quotas
Features
$299/mo
Quotas
Features
All limits reset on the 1st of each month. When you exceed a limit:
429 Too Many Requests until next month413 Payload Too LargeNeed more? Upgrade anytime or contact us for enterprise limits.
Monitor your usage, manage API keys, and view billing details in real-time.
Visit /usage.html and sign in with your API key.
Step 1: Generate an API key via signup
Step 2: Go to /usage.html
Step 3: Paste your API key and click "Sign In"
Note: Your key is stored securely in browser local storage for this session only
Query your usage programmatically via these authenticated endpoints.
/v1/usage
Quick summary of your current usage and quota.
{
"plan": "free",
"usage_this_month": 42,
"limit": 500,
"remaining": 458,
"reset_at": "2026-05-01T00:00:00Z"
}
/v1/usage/details
Detailed breakdown of usage by endpoint and recent API calls.
{
"plan": "free",
"usage_this_month": 42,
"limit": 500,
"usage_percent": 8,
"reset_at": "2026-05-01T00:00:00Z",
"by_endpoint": [
{
"operation": "thumbnail",
"calls": 25,
"avg_duration_ms": 1200,
"total_bytes": 5242880
},
{
"operation": "probe",
"calls": 17,
"avg_duration_ms": 450
}
],
"recent_calls": [
{
"operation": "thumbnail",
"success": true,
"duration_ms": 1150,
"file_size_mb": "2.50",
"created_at": "2026-04-30T05:15:32.123Z"
}
]
}
/v1/api-keys
List all API keys for your account.
{
"keys": [
{
"id": "f0c1cd66-4344-4361-b013-39b03c6bb956",
"name": "John Doe",
"plan": "free",
"created_at": "2026-04-30T05:09:16.697Z",
"active": true,
"key_preview": "rnd_...3ebb"
}
]
}
/v1/api-keys/:id/rotate
Rotate an API key. The old key is immediately invalidated.
{
"message": "API key rotated successfully",
"new_key": "rnd_e3bb00ffdb765fe18d7e8e192d28cedc...",
"note": "Save this key now — you won't see it again. Update your applications to use the new key."
}
/v1/billing/info
Get your billing plan, quota, and Stripe subscription details.
{
"plan": "free",
"price": 0,
"status": "inactive",
"quota": {
"operations": 500,
"max_file_mb": 100,
"max_duration_sec": 300
},
"billing_email": "user@example.com",
"created_at": "2026-04-30T05:09:16.697Z",
"stripe_customer_id": null
}
Downloads URLs are valid for 24 hours. Store important files permanently on your own servers before expiry.
Not yet. Submit URLs that are publicly accessible. We're working on signed URL support.
Most requests complete within 10–60 seconds depending on file size and complexity. Check the response status in your application.
Video: MP4, WebM, MOV, MKV, AVI. Audio: MP3, WAV, AAC, FLAC. Images: JPG, PNG, WebP, GIF.
Webhooks are included in the Business plan. All endpoints are currently synchronous (request waits for result). Async processing coming soon.
We offer 30-day refunds if you're unhappy. Contact us at support@rendrift.io.
Visit the billing portal and select a new tier. Changes take effect immediately.
© 2026 Rendrift. All rights reserved. System Status