Skip to main content

Render Minutes & Billing

ViralSync measures your rendering consumption in render minutes — the total duration of video you produce each month. This page explains exactly how render minutes are counted, what the limits are per plan, and what happens when you approach or exceed them.


What is a render minute?

One render minute equals one minute of output video duration.

A job that produces a 90-second video consumes 1.5 render minutes.
A job that produces a 6-second video consumes 0.1 render minutes (6 ÷ 60).

Render minutes are measured by the actual output video duration returned in mediaData.duration when the job completes.

What counts towards your limit

ScenarioRender minutes consumed
Job completes successfully (status: "done")mediaData.duration ÷ 60
Job fails before any output is produced0
Job is cancelled before completion0
Job produces partial output then fails0 (no charge for incomplete renders)

What does NOT count

  • Polling or streaming the progress endpoint
  • Failed asset downloads (job fails, no charge)
  • Jobs queued but never started
  • Dashboard previews and editor playback

Monthly limits by plan

PlanPriceRender Minutes / MonthDaily Soft CapMax Job DurationMax Resolution
Free$030 min5 min / day10 min720p (1280 × 720)
Pro$29 / mo200 minNone10 min1080p (1920 × 1080)
Business$99 / mo600 minNone20 min1440p (2560 × 1440)
Enterprise$299 / moUnlimitedNone120 min4K (3840 × 2160)

For the full feature comparison including concurrent jobs, storage, and API access, see Plans & Limits.


Monthly reset

Your render minute counter resets on the 1st of each calendar month at 00:00 UTC.

If you sign up mid-month, you receive the full monthly allocation immediately (not prorated).


Free plan: daily soft cap

Free-plan accounts have an additional 5 render minutes per day cap, independent of the monthly limit. This prevents automated abuse while still giving developers meaningful testing bandwidth.

Example: A Free-plan user has consumed 12 of their 30 monthly render minutes. They can still render up to 5 minutes today. Tomorrow the daily counter resets to 5 minutes regardless of total monthly consumption.

When you hit the daily cap, new render jobs are rejected with:

{
"error": "Daily render quota exceeded. Your limit resets at midnight UTC.",
"code": "RENDER_QUOTA_DAILY_EXCEEDED"
}

Checking your current usage

curl -s \
-H "x-api-key: $VIRALSYNC_API_KEY" \
https://api.viralsync.io/v1/usage

Response:

{
"plan": "pro",
"renderMinutesUsed": 47.3,
"renderMinutesLimit": 200,
"renderMinutesResetAt": "2026-05-01T00:00:00.000Z",
"dailyRenderMinutesUsed": null,
"dailyRenderMinutesLimit": null,
"concurrentJobsLimit": 3,
"concurrentJobsRunning": 1
}

For Free-plan accounts, dailyRenderMinutesUsed and dailyRenderMinutesLimit will be populated (e.g. 2.1 and 5).


What happens when you hit the monthly limit

Free plan — jobs are hard-blocked immediately. New render job submissions return:

{
"error": "Monthly render quota exceeded. Upgrade your plan or wait until the 1st of next month.",
"code": "RENDER_QUOTA_EXCEEDED"
}

Pro / Business plans — render jobs continue to be accepted. Render minutes consumed beyond your monthly allocation are billed as overages at $0.05 per render minute, charged automatically at the end of your billing cycle.

Enterprise — unlimited render minutes included. Overages do not apply.


Overage protection (Pro / Business)

To prevent unexpected overage charges, you can set an overage budget cap in Dashboard → Billing → Overage Limit. Once your overage spend would exceed this cap in a given month, new jobs are blocked.

Upgrade vs. overage

If you regularly hit your monthly limit, upgrading is more cost-effective than paying overage fees. Pro → Business doubles your allowance (200 → 600 min) at 3.4× the price — only $0.165/min vs $0.05/min overage.


Render minutes vs. other limits

Render minutes are one of three independent resource limits — all three must be satisfied for a job to be accepted:

Limit typeDescriptionError code
Render minutesMonthly output durationRENDER_QUOTA_EXCEEDED
Concurrent jobsJobs running simultaneouslyCONCURRENCY_LIMIT_EXCEEDED
Daily capFree-plan only: per-day outputRENDER_QUOTA_DAILY_EXCEEDED

A job that passes the render minute check but exceeds the concurrent job limit will be rejected with CONCURRENCY_LIMIT_EXCEEDED. You can retry once an existing job completes.


Frequently asked questions

Does a 4K render consume more minutes than a 1080p render?
No. Render minutes measure output duration, not compute intensity. A 60-second 4K video and a 60-second 720p video both consume 1.0 render minute. Resolution affects render speed, not the quota consumed.

Does the quality preset (stable, fast, turbo) affect render minutes?
No. Quality preset controls how many scene workers run in parallel, affecting render speed — not the quota consumed.

If I have multiple scenes in one job, do they each count separately?
No. The total video duration is what counts, regardless of scene count. A 5-scene movie with 10 seconds per scene produces a 50-second output = 0.83 render minutes.

What if my job times out (30-minute hard timeout)?
A timed-out job counts as failed. No render minutes are consumed.

Can I see a breakdown of render minutes per job?
Yes — each completed job response includes mediaData.duration (the output duration in seconds). You can track per-job consumption by recording mediaData.duration ÷ 60 for each job in your system.