Authenticated, typed, and blazing fast. Integrate in minutes, scale to millions.
Every request is authenticated with an API key in the Authorization header. Keys are scoped to specific operations so you can safely delegate access.
ps_live_, for production useps_test_, no charges, watermarked outputSimple, predictable, REST-ful.
/api/v1/generate/imageGenerate a PNG or WebP image from a template and data payload.
200 OK/api/v1/generate/pdfRender a print-ready PDF document. Supports multi-page layouts.
202 Accepted/api/v1/renders/:jobIdPoll the status of an async render job. Returns URL when complete.
200 OKIt's just HTTP. Call it from cURL, JavaScript, Python, Ruby, Go, or PHP — anything that can make a POST request can generate images with PicStream.
curl -X POST https://api.picstream.io/v1/generate/image \
-H "Authorization: Bearer ps_live_sk_..." \
-H "Content-Type: application/json" \
-d '{
"template": "og-card-dark",
"format": "png",
"width": 1200,
"height": 630,
"data": {
"title": "Introducing PicStream 2.0",
"subtitle": "Image generation at any scale",
"theme": "dark"
}
}'Fast renders return synchronously. Heavy jobs go async and are polled via a job URL.
Returned for heavy templates. Poll poll_url until status is "complete".
{
"job_id": "job_f3a9c2b1",
"status": "queued",
"poll_url": "https://api.picstream.io
/v1/renders/job_f3a9c2b1",
"estimated_ms": 250
}Identical requests return cached results immediately — no re-render, sub-millisecond response.
{
"url": "https://cdn.picstream.io
/img/f3a9c2b1.png",
"cached": true,
"render_ms": 47,
"expires_at": "2025-07-01T00:00:00Z"
}Predictable responses for every scenario.
Image rendered and URL returned.
Async job queued. Poll for result.
Missing or invalid API key.
Template ID does not exist.
Slow down. Retry after header set.
1,000 images per month on the free plan. No credit card. Start generating in under 5 minutes.