terminal
$ curl -X POST https://api.picstream.io/v1/generate/image \
-H "Authorization: Bearer pk_live_abc123" \
-d '{"template":"og-card","vars":{"title":"Hello World"}}'
// response
{
"url": "https://cdn.picstream.io/img/a1b2c3.png",
"render_ms": 42,
"cached": true
}

Built for developers who move fast.

A clean REST API, 5 official SDKs, and sub-50ms renders. Integrate PicStream in an afternoon, not a sprint.

Official SDKs

Available in your language.

import { PicStream } from '@picstream/sdk';
const client = new PicStream({ apiKey: process.env.PICSTREAM_KEY });
const { url } = await client.generate({ template: 'og-card', vars: { title } });
API Reference

Three endpoints. Endless output.

POST/api/v1/generate/image

Render a template into a PNG or WebP image. Returns a CDN-hosted URL. Synchronous by default.

Response~42ms P50
POST/api/v1/generate/pdf

Render a template into a multi-page PDF. Returns a signed CDN URL valid for 24 hours.

Response~120ms P50
GET/api/v1/renders/:id

Poll the status of an async render job. Returns pending / complete / failed with the output URL.

Response~5ms
Webhooks

Get notified when renders complete.

No polling required. Register a webhook endpoint and PicStream will POST the result the moment your image is ready — with full retry logic and signature verification.

  • HMAC-SHA256 signed payloads
  • Automatic retries with exponential backoff
  • Per-endpoint secret rotation
  • Event log in the dashboard
// POST to your-app.com/webhooks/picstream
{
"event": "render.complete",
"job_id": "rnd_x9f2k1mz",
"template": "og-card",
"url": "https://cdn.picstream.io/img/...",
"render_ms": 42,
"cached": false
}
Developer Experience

The API you wished every SaaS had.

OpenAPI Spec

Full OAS 3.1 spec — import into Insomnia, Postman, or generate your own client.

TypeScript Types

All request and response shapes are fully typed. Autocomplete everywhere.

Idempotent Requests

Pass an Idempotency-Key header — safe to retry without double-rendering.

Rate Limit Headers

X-RateLimit-Remaining on every response. No guessing when you'll be throttled.

Free forever for first 1,000 images/month

Get your API key. Free forever for the first 1,000 images/month.

No credit card. No sales call. Just sign up and start generating.