Skip to content

Features

Three engines and the thing that joins them

Posters, video and screenshots share one template model, one credit balance and one API. Workflows chain them together and run the result on a schedule.

Poster & image engine

Posters that match your design exactly

Designs render in headless Chrome with the same markup the editor previews, so there is no second rendering path to drift out of sync. Sub-second, and the CDN URL comes back in the response.

Real typography

Google Fonts and your own files, shaped by Chrome — correct kerning, wrapping, line clamping, and Indic, CJK and emoji by default.

Gradients and effects

Linear and radial fills, gradient-filled text, shadows, strokes, blend modes and image filters.

Every layer type

Text, images, shapes, SVG, charts, tables, QR and barcodes — positioned, rotated and masked.

Any output

PNG, JPEG, WebP and print-ready PDF at up to 3× scale, with optional auto-trim to content.

Render
curl -X POST https://pixbix.app/api/v1/render \
  -H "x-api-key: pk_live_…" \
  -d '{
    "templateId": "offer-poster",
    "values": {
      "headline": "Diwali Sale",
      "offer": "50% off",
      "product": "https://cdn.lumen.co/lmp-2214.jpg"
    },
    "output": { "format": "png", "scale": 2 }
  }'

Video engine

A real timeline, rendered in the cloud

Describe the edit as JSON — tracks, clips, assets, transitions, output. The engine composites and encodes it, then calls you back with a signed webhook.

The edit format follows the standard timeline shape, so an edit written for a comparable video API is already a valid pixbix edit. Repoint the base URL and your existing JSON keeps working.

Timeline composition

Tracks and clips on a seconds-based timeline. Layer video, images, text, shapes, Lottie and captions.

Transitions and motion

Fade, slide, wipe, carousel, shuffle and zoom, plus Ken Burns effects and full keyframe animation.

Clip control

Trim, speed, crop, chroma key, opacity, blend modes and per-clip masks with feathered edges.

Audio and captions

Soundtrack with ducking, per-clip volume, loudness normalisation — and word-timed captions from a voice-over.

edit.json
{
  "timeline": {
    "soundtrack": { "src": "https://…/bed.mp3", "effect": "fadeInFadeOut" },
    "tracks": [
      { "clips": [{
        "asset": { "type": "text", "text": "{{HEADLINE}}" },
        "start": 0.4, "length": 5,
        "transition": { "in": "slideUp", "out": "fade" }
      }]},
      { "clips": [{
        "asset": { "type": "video", "src": "https://…/clip.mp4" },
        "start": 0, "length": 6, "fit": "cover", "effect": "zoomInSlow"
      }]}
    ]
  },
  "output": { "format": "mp4", "resolution": "fhd", "fps": 30 }
}

Screenshot API

Capture any URL, or raw HTML you send

The same real browser that renders templates. The things that usually break in screenshot services — web fonts, lazy-loaded images, content behind a cookie banner — simply work.

A preset is a named set of capture options stored in your workspace. The person who knows a site needs #intercom-container hidden is rarely the person who owns the cron job — edit the preset once and every job that names it picks the change up.

Real headless Chrome

Not an HTML-to-image approximation. Web fonts, CSS grid, container queries, canvas, SVG and shadow DOM all render as a browser shows them.

Full page or one element

Capture the whole scroll height, a device viewport, or a single element by CSS selector.

Clean captures

Dismiss cookie banners, hide selectors, set cookies and headers, and wait for the network to settle first.

Presets and caching

Save the whole recipe under a name and capture by naming it. Identical repeat captures are served from cache and cost nothing.

Capture
curl -X POST https://pixbix.app/api/v1/screenshot \
  -H "x-api-key: pk_live_…" \
  -d '{
    "url": "https://acme.in/pricing",
    "format": "png",
    "fullPage": true,
    "scale": 2,
    "viewport": { "width": 1440, "height": 900 },
    "blockCookieBanners": true,
    "hideSelectors": ["#intercom-container"],
    "waitUntil": "networkidle2"
  }'

Workflows

Chain all three, and let it run at 3am

Every part of this is already an API call: read a spreadsheet, capture a URL, render a template, push the result somewhere. A workflow is that glue — stored as data and run by us, so there is no cron box of your own to keep alive.

Source

source.sheet · source.http · source.list · contacts

Shape

filter · map · limit · dedupe · route · delay

Work

screenshot.url · render.template · http.request · audio.voiceover · captions.generate

Deliver

deliver.webhook · deliver.sheet · deliver.drive · deliver.whatsapp · deliver.email

One bad row is counted, logged with its row number and dropped — the other 4,181 keep going. There is no approval step by design: a workflow that can block on a person is one that stops silently at 3am and is found on Friday.

On a schedule

A cron you set, at minute resolution. The builder previews the next five fire times before you switch it on.

On an event

The same events webhooks deliver — render.completed, render.failed and the rest. A workflow never reacts to a render it produced, so it cannot loop.

From a URL

A private hook any other system can POST to — a Shopify webhook, a Zapier action, a step in your deploy pipeline.

Placeholders
// Every string in a step is a template.
"{{item.Name}}"
"{{item.Price | multiply: 1.18 | round: 2 | currency}}"
"{{now | date: 'DD MMM YYYY'}}"
"{{trigger.payload.order.id}}"

Template studio

Decide exactly what can change

A template is a design plus a field schema. The design is locked; the fields are the contract you expose to the API, the app and your team.

20+ field types

  • Text, long text, rich text
  • Number, slider, toggle
  • Select and multi-select
  • Colour and gradient
  • Image, video, audio, Lottie
  • Date, URL, email, phone
  • JSON, chart, table, QR

Bindings, not just swaps

  • Target any property path
  • Drive font size from a slider
  • Retime a clip from a field
  • Value transforms and scaling
  • Skip-if-empty behaviour
  • One field, many targets

Authoring controls

  • Grouped editor panels
  • Conditional visibility rules
  • Validation and defaults
  • Editor-only or API-only fields
  • Versioning with rollback
  • Private or public

Mobile app

Creative that ships from the field

The people who need a poster most are rarely at a desk. The app puts your published templates in their pocket — they fill in the fields, preview live, and export or share straight from the phone.

  • Android and iOS
  • Live preview while editing
  • Save to gallery or share
  • Offline drafts
  • Same credits and templates
  • WhatsApp OTP sign-in
9:41
Offer poster

Headline

Diwali Sale

Offer

50% off

Price

₹1,249

Export

Platform

Production concerns, already solved

The parts you would otherwise build before this could face a customer.

Teams and roles

Owner, admin, billing, editor and viewer, with invitations and ownership transfer. Nobody can grant a role above their own.

Scoped API keys

Per-key scopes, IP allowlists and expiry. Test keys render for free and always watermark.

Signed webhooks

HMAC over timestamp and body, retried with backoff, auto-disabled when an endpoint stays dead.

Predictable credits

Priced from the request before it runs. Held on submit, settled on success, refunded on failure.

Media library

Upload once, reuse everywhere. Probed for dimensions and duration, with storage counted against your plan.

Idempotency

Send an Idempotency-Key and a retried request returns the original render instead of billing twice.

Start free

Or read the API reference first.