Does AI video API billing round up? Sume's ceil rules per endpoint

A 5.2 s clip is billed as 6 s. Which Sume endpoints round seconds or minutes up, which prorate, and worked examples from the published rates.

5 min readSume
All posts

Yes, on most Sume per-second endpoints the billed length is rounded up to a whole second before the rate is applied, so a 5.2 second source is billed as 6 seconds. The exceptions are speech to text, which is prorated by the duration you send, and flat per-job or per-image endpoints, where length does not matter.

This matters because the estimate you see in the catalog is a band, while the number reserved at submit comes from your actual input. The examples below use only Sume's published rates, so you can reproduce each figure with a calculator before you submit.

Which endpoints round up?

Each endpoint rounds the measure its rate is quoted in. Per-second endpoints round seconds, the timeline renderer rounds output minutes, and the rest take a fixed price. The table lists the rounding rule next to the published rate.

Rounding rule and published Sume rate per endpoint, read 2026-10-03
EndpointRounded unitRate
H3 Max RecastSource seconds, ceil (5-30 s)$0.375/s at 768p, $0.5625/s at 1080p
Kling 3.0 Motion ControlSeconds, ceil (max 30 s)$0.1575/s
H3 Max lip-syncAudio seconds, ceil to 15 s window$0.0625/s 480p, $0.10/s 768p, $0.20/s 1080p
VEED Fabric 1.0Audio seconds, ceil (max 300 s)$0.10/s 480p, $0.1875/s 720p
Timeline renderOutput minute, ceil (max $3.00)$0.10 per minute
STTProrated by duration_seconds$0.01 per audio minute

What do the worked examples come to?

Take four inputs that sit just past a whole second or minute. A 5.2 second Recast source bills 6 seconds, which at the 768p rate of $0.375 per second is $2.25. A 12.4 second Motion Control clip bills 13 seconds, which at $0.1575 per second is $2.0475. A 7.1 second lip-sync audio file bills 8 seconds, which at the 768p rate of $0.10 per second is $0.80. A 61 second timeline output bills 2 minutes, which at $0.10 per minute is $0.20.

The pattern is that the extra fraction is billed as a full unit, so trimming a source to a whole second below the limit is the cheapest edit you can make.

Rounding matters most in batches. A hundred Recast sources that each run 5.2 seconds are billed as 6 seconds apiece, so the batch reserves $225.00 at the 768p rate rather than the $195.00 that 5.2 seconds suggests, a gap of $30.00. A hundred 12.4 second Motion Control clips reserve $204.75 rather than $195.30. Trimming each source down to a whole second before upload removes the gap without changing the clip you want.

  • Recast: 5.2 s source, 6 s billed, $2.25 at 768p.
  • Motion Control: 12.4 s, 13 s billed, $2.0475.
  • Lip-sync at 768p: 7.1 s audio, 8 s billed, $0.80.
  • Timeline render: 61 s output, 2 minutes billed, $0.20.

Which endpoints do not round?

Speech to text reserves in proportion to the duration_seconds you pass, at $0.01 per audio minute, so a 90 second file is reserved at $0.015 and the 10 minute maximum at $0.10. If you leave the duration out, the reservation falls back to one minute. Flat endpoints such as background removal at $0.0225 per image and image upscale at $0.20 per image do not depend on length at all, and the video filter encode is $0.02 per job.

How do I check the reservation?

Submit with an Idempotency-Key, then read the ledger. The reservation row carries the amount held, and the usage summary shows held_usd_micros until the job settles. If a job fails, the hold is released. A 402 insufficient_credits is returned before any job starts if the balance cannot cover the rounded estimate, so check GET /v1/balance first when you are near zero.

Keep in mind that range limits apply before rounding is relevant. Recast sources must fall between 5 and 30 seconds, Motion Control is capped at 30 seconds and requires duration_seconds, and lip-sync audio must fit the 5 to 14.8 second window. A request outside those limits is refused rather than rounded into range.

curl https://api.sume.com/v1/balance \
  -H "Authorization: Bearer $SUME_API_KEY"

curl "https://api.sume.com/v1/usage?job_id=$JOB_ID" \
  -H "Authorization: Bearer $SUME_API_KEY"

What should I do with this?

Cut sources to whole seconds before you upload them, check clips that land just over a boundary, and keep the 402 path in your submit loop. For batch work, multiply the rounded figure rather than the raw duration so your balance check does not undershoot.

One limit: these rules describe the published rates on the date above. The catalog read is the live source if a rate changes.

Finally, remember that the rounding applies to the reservation as well as the final charge, so a wallet that looks sufficient on raw durations can still return a 402 on the rounded figure. Add one unit per clip when you sanity-check a batch, and you will rarely be surprised.

Sources

Related posts

More in Pricing

All Pricing posts

Written by Sume