Skip to content

Documentation

pixbix turns a template plus some data into a finished image or video. These guides cover how to design templates, call the API, and handle the results.

The mental model#

Three objects, and everything follows from how they relate.

Template

A design plus a field schema. The design is locked; the fields are the contract you expose to callers.

Values

What you send per render — one value per field. Validated against the schema before anything runs.

Render

A billable job. Stills come back immediately; video is queued and settled by webhook.

A template can be an image template (layers, rendered in headless Chrome) or a video template (a timeline of tracks and clips). Both use the same field schema, so switching a campaign from a post to a reel does not mean rebuilding the integration.

Your first call#

Every render is one POST. Send a template id and the values for its fields; get back a URL.

curl -X POST https://pixbix.app/api/v1/render \
  -H "x-api-key: pk_test_your_key" \
  -H "Content-Type: application/json" \
  -d '{
    "templateId": "quote-card",
    "values": { "quote": "Ship it.", "author": "Anon" }
  }'

Start in test mode

Keys beginning pk_test_ exercise the real rendering path, cost no credits, and always watermark. Build your whole integration on one, then swap in a pk_live_ key when you are ready.

Where to start#

Migrating an existing video integration?#

The video edit format follows the standard timeline shape used across the industry — timeline, tracks, clips, assets, output — so an edit written for a comparable API is already a valid pixbix edit. Repoint your base URL to https://pixbix.app/api/v1, swap the key header, and your existing JSON keeps working.

What we add on top is optional:

  • Keyframes on any numeric property, with real easing curves
  • CSS-style blend modes per clip
  • Per-clip masks with feathered edges
  • Clip aliases, so template fields can bind to a clip by name rather than position

One thing that trips people up

tracks[0] is the topmost layer, not the bottom one. That is the established convention for this edit format and we kept it — silently inverting existing edits would be worse than the surprise.