Credits, Plans & Limits
Every render costs credits, drawn from your subscription allowance plus any one-time credit packs. Plans also set limits — maximum duration, resolution, element counts — that are enforced at submit time.
What a render costs
| Output | Cost |
|---|---|
Video with width × height ≤ 2,073,600 pixels | ceil(duration × 1) credits |
Video with width × height > 2,073,600 pixels | ceil(duration × 4) credits |
| Image | 1 credit per image, including bulk renders, at any resolution |
duration is the resolved output length in seconds. Multiply by the rate,
then round the total up to a whole credit. A 10-second 1920×1080 video costs
10 credits; a 2.1-second video above that pixel-area threshold costs 9.
Resolution presets resolve before pricing, so tiktok (1080×1920) uses the
same rate as 1920×1080. Your plan's dimension limits still apply independently.
Credits are reserved when a job is queued (creditsReserved in the submit
response) and refunded automatically if the render fails or is cancelled.
Estimate before submitting with POST /api/render/validate/api-key and read
creditsRequired. Validation and estimation
are free and do not queue a job or reserve credits.
Credit pools
Your balance has two pools, spent in this order:
- Subscription credits — replenished every billing cycle.
- Add-on credits — one-time credit packs that never expire with the cycle.
curl -X GET https://api.zvid.io/api/credits/balance \
-H "x-api-key: YOUR_API_KEY"
{
"balance": 1164,
"subscriptionCredits": 1064,
"addonCredits": { "balance": 100, "totalEarned": 200, "totalSpent": 100 }
}
GET /api/credits/transactions returns the ledger and
GET /api/credits/usage-stats aggregates usage over 24 h / 7 d / 30 d — both
are also visualized on the
dashboard's Credits page.
Plan limits
Limits scale with your plan. The enforced dimensions:
| Limit | Meaning |
|---|---|
maxDuration | Output length in seconds |
maxInputDuration | Complete video/GIF source length: 7,200 seconds (2 hours), independent of output length |
maxOutputResolution | Output width/height in pixels |
maxVisualElements | Total visual elements per project |
maxImagesCount / maxVideosCount / maxGifsCount | Per-type element counts |
maxAudioElements | Audio tracks |
maxCaptionElements | Subtitle cues |
maxScenes | Scenes after iterate expansion |
maxIterateItems | Items per iterated scene |
maxTemplates | Stored templates |
maxBulkItems | Items per bulk render |
maxWebhooks | Registered webhooks (Free: 1) |
Retrieve your current account-aware limits through the
render schema endpoint. Render validation
errors include a planLimits object with your plan's active values:
{
"error": "Validation failed",
"details": [
{
"field": "payload.duration",
"message": "Duration cannot exceed 1800 seconds (30 minutes) based on your Startup plan"
}
],
"planLimits": {
"planName": "Startup",
"maxDuration": 1800,
"maxOutputResolution": 3820,
"maxScenes": 150,
"…": "…"
}
}
Current plans and pricing live at zvid.io/pricing; manage your subscription and buy credit packs from the dashboard.