Rendering

Render turns a composition into a finished video or a single frame. It is a metered product: you are billed for the work done, not for a seat.

The endpoints

RouteWhat it produces
POST /v1/renderA rendered video.
POST /v1/render/stillA single frame — thumbnails, posters, previews.

Both are on the one gateway, so authentication, scope and metering behave exactly as they do for every other WAVE product.

Access

Render uses the standard scope pair:

  • render:read — read render jobs and their results.
  • render:write — submit a render.

A key without the right scope is refused with a 403 naming the scope it needed. A request with no credential at all is answered with a 402 payment challenge instead, because render is agent-payable — see below.

What you are billed for

Render records against these meters:

MeterUnitWhat it counts
wave_render_minutesminutesWall-clock render time on CPU.
wave_render_gpu_minutesminutesGPU render time, billed in minutes.
wave_render_gpu_secondssecondsGPU render time, billed in seconds.
wave_render_storage_gbGBOutput held in hot storage.
wave_render_storage_cold_gbGBOutput aged into cold storage.
wave_render_retrieval_gbGBReading output back out of cold storage.

Storage is a two-tier meter: hot output that is not read for a while ages into the cold tier, which is cheaper to hold and costs a retrieval fee to read back. A render you never fetch again gets cheaper over time on its own.

Meters are recorded by the gateway, not by the render worker, so the same accounting applies whether the call came from your server or from an agent paying per call.

Paying as an agent

Call the route with no credential and you get a quote:

POST https://api.wave.online/v1/render
→ 402 Payment Required
  accepts[0].protocol  = "x402"
  accepts[0].network   = "base"
  accepts[0].scheme    = "exact"
  accepts[0].resource  = "/v1/render"

Read network and scheme from the challenge you received. Render quotes base/exact while other products quote different rails — /v1/transcribe, for example, quotes tempo/permit. There is no single global network, and an agent that caches one product's answer will fail on the next.

See Billing and payment for the full 402 flow and the retry rules.

Where to go next