LiveWing
CMS API

Render Tokens

Generate and manage render URLs for OBS, vMix, and browser-source overlays.

Render tokens provide capability-based URLs that display live graphics in OBS, vMix, or any browser source. Each token is scoped to a single production and renders whichever graphic is currently "on program."

The render URL is a standalone page with a transparent background — no login required. It subscribes reactively to production data, so score updates and graphic switches appear instantly.

Workflow

  1. Generate a render token for a production via the API or web dashboard
  2. Paste the URL into OBS as a browser source (e.g. https://yourapp.com/render/lw_rt_...)
  3. Set the program graphic via POST /api/productions/program — see Productions
  4. Update live data via POST /api/cms/productions/live — the graphic updates in real-time

Create Render Token

Generate a new render token for a production. Returns the full URL-safe token.

POST /api/render/token/create

Auth: readwrite

Request:

curl -X POST https://ideal-heron-677.convex.site/api/render/token/create \
  -H "Authorization: Bearer lw_your_key" \
  -H "Content-Type: application/json" \
  -d '{
    "productionId": "j572prod1...",
    "label": "OBS Main"
  }'
FieldTypeRequiredDescription
productionIdstringYesThe production this token is for
labelstringNoHuman-readable label (defaults to production name)

Response (201):

{
  "tokenId": "pd7token1...",
  "token": "lw_rt_a1b2c3d4e5f6..."
}

The render URL is: https://yourapp.com/render/{token}

List Render Tokens

List active (non-revoked) render tokens for a production.

POST /api/render/token/list

Auth: read

Request:

curl -X POST https://ideal-heron-677.convex.site/api/render/token/list \
  -H "Authorization: Bearer lw_your_key" \
  -H "Content-Type: application/json" \
  -d '{"productionId": "j572prod1..."}'

Response:

{
  "tokens": [
    {
      "_id": "pd7token1...",
      "token": "lw_rt_a1b2c3d4e5f6...",
      "label": "OBS Main",
      "createdAt": 1711929000000,
      "expiresAt": null
    }
  ]
}

Revoke Render Token

Revoke a render token. The render URL will immediately stop working.

POST /api/render/token/revoke

Auth: readwrite

Request:

curl -X POST https://ideal-heron-677.convex.site/api/render/token/revoke \
  -H "Authorization: Bearer lw_your_key" \
  -H "Content-Type: application/json" \
  -d '{"tokenId": "pd7token1..."}'

Response:

{
  "ok": true
}

Auto Field Mapping

The render page automatically maps production data to graphic fields. No manual field assignment is needed — graphics resolve their {fieldKey} bindings against a flat data bag built from the production snapshot:

Data SourceKey PatternExample
BindingsbindingKey.fieldNamehomeTeam.name, venue.city
Live datafieldKeyhomeScore, clock, period
Production metaproduction.fieldNameproduction.name, production.status

A graphic with a text node containing {homeTeam.name} will automatically display the bound team's name. A node with {homeScore} displays the current live data score.

Security

  • Render tokens are capability URLs — anyone with the token can view the render output
  • Tokens are scoped to a single production and cannot access other workspace data
  • Revoke tokens immediately when no longer needed
  • Tokens do not expire by default but can be given an expiry when created programmatically

On this page