Render API · v1
JSON in. Scene out.
Render screenshots and videos from the same scene data you use in TheFake.
Try the WhatsApp API playground$15/mo · 200 monthly credits · cancel anytime
curl -X POST https://www.thefake.design/api/v1/screenshots \
-H "x-api-key: $THEFAKE_API_KEY" \
-H "Content-Type: application/json" \
-o scene.png \
-d '{
"template": "chat-square",
"scene": {
"platform": "imessage",
"messages": [{
"id": "reply", "type": "text",
"text": "already shipped.",
"direction": "outgoing", "status": "read"
}]
}
}'API access
Get a key and start.
Subscribe, then create or revoke scoped keys from the same place.
API Starter
One plan for screenshots and video.
Create scoped keys, render from your server, and revoke access whenever you need to.
200 credits monthly · scoped keys · cancel anytime
Monthly
$15/mo
200 credits included
No trial. Studio Pro is separate.
Quickstart
One request. One file.
Create a key, send scene JSON, and save the response. Screenshots return immediately.
- 1Create a scoped API key
- 2Send it in the x-api-key header
- 3Save the PNG or poll the video job
Keep keys on your server. Never ship them in browser code.
curl -X POST https://www.thefake.design/api/v1/screenshots \
-H "x-api-key: $THEFAKE_API_KEY" \
-H "Idempotency-Key: first-scene-001" \
-H "Content-Type: application/json" \
-o scene.png \
-d '{
"template": "chat-square",
"format": "png",
"scene": {
"platform": "imessage",
"messages": [{
"id": "ready",
"type": "text",
"text": "ship it.",
"direction": "outgoing",
"status": "read"
}]
}
}'Reference
Open only what you need.
PNG and JPEG screenshots; asynchronous MP4 and WebM video jobs. Check the public template catalog for each template's screenshot and video support.
Screenshot rendersRequired fields, formats, scale, and binary responses.
- Required
templateandscene- Optional
format,scale,frameIndex, andfilename- Response
- PNG or JPEG binary with
200 OK
Scene controls use scene.showDeviceFrame and scene.settings. Set contentZoom to 100, 106, 112, 118, 122, 126, or 130, then combine it with darkMode, showStatusBar, showMessageTimes, or conversationBodyOnly.
Video jobsCreate, poll, download, or cancel a private render.
Video creates return 202 Accepted with a private status URL. Poll until the job is completed, then download it with the same key.
# Create a private video job
curl -X POST https://www.thefake.design/api/v1/video-renders \
-H "x-api-key: $THEFAKE_API_KEY" \
-H "Idempotency-Key: first-video-001" \
-H "Content-Type: application/json" \
-d '{
"template": "chat-vertical",
"durationSeconds": 5,
"scene": { "platform": "whatsapp", "messages": [] }
}'
# Poll the statusUrl returned by the create request
curl https://www.thefake.design/api/v1/video-renders/render_01J... \
-H "x-api-key: $THEFAKE_API_KEY"Templates and endpoints31 templates across chat, post, comments, story, email, and X.
Call GET /api/v1/templates to discover the current IDs and whether each supports screenshots, videos, or both.
/api/v1/templatesList templates and output support./api/v1/screenshotsRender a PNG or JPEG immediately./api/v1/video-rendersCreate a private MP4 or WebM job./api/v1/video-renders/{renderId}Read a video job./api/v1/video-renders/{renderId}/downloadDownload a completed job./api/v1/video-renders/{renderId}Cancel and remove a job.Credits, limits, and errorsThe operational details to keep a production integration steady.
Rate limits
- Screenshots
- 20/min
- Video creates
- 5/min
- Video status
- 60/min
- Downloads
- 20/min
Retries
Errors include a stable code and requestId. Retry 409 in-progress, 429, 503, and 504 responses using Retry-After. Reuse the same idempotency key.
Standard screenshots use 1 credit. Higher scale, frame rate, or duration uses more. Failed renders return reserved credits.
TheFake creates fictional mockups. Do not use exports to impersonate people, fabricate harmful evidence, or mislead audiences.
Acceptable use