Render App Store / Play Store screenshots
render_screenshotsGenerate App Store and Google Play screenshots from layout JSON and local image paths. Queue a render job, poll status, then download the finished bundle.
Instructions
Queue a screenshot render; returns jobId, poll get_render_status until done, then fetch the bundle from the resource_link.
BEFORE CALLING THIS: read the appscreen://options resource and present the user the FULL menu of background effects, frames, and presets — each has a preview URL they can open. Let the user pick; never choose a background or frame silently. blur+tint, mesh, and every frame are all valid choices they should see.
IMAGES — put a local file path right on the element; the server reads the bytes off disk and wires up the binding for you. Never base64 real screenshots (a large base64 corrupts token-by-token → renders black):
• screenshot: screens[i].screenshot.path = "/shot.png" (or pathsByLang: { en, es } for per-locale shots)
• background image: screens[i].bg = { kind:"image", box, path:"/bg.png" }
• logo/decoration: screens[i].objects[] = { kind:"image", id:"logo", box, mime:"image/png", path:"~/logo.png" }
Geometry is automatic: omit screenshot.box and the server centers the device at the correct aspect ratio. screensMeta is auto-derived when you upload exactly one file per screen. Text overlays use the tiptap doc format and support rich, PARTIAL styling — per-run color, fontSize, fontWeight, fontFamily (~37 fonts), plus bold/italic/underline and per-paragraph align. See appscreen://schema/text + appscreen://catalog/fonts. Free anonymous tier: 5 lifetime renders.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| files | No | Low-level uploads + manual screensMeta binding. PREFER inline paths instead: put screenshot.path / screenshot.pathsByLang on each screen, bg.path on an image background, and path on image objects — the server assembles the upload + binding for you. Use this top-level files[] only if you're hand-managing screensMeta. | |
| langs | Yes | Locales (catalog.langs). | |
| sizes | Yes | Target canvas sizes (catalog.sizes[].id). | |
| layout | No | One of catalog.layouts (default = `default`). | |
| rounded | No | ||
| screens | Yes | ||
| screensMeta | No | ||
| cornerRadius | No | ||
| idempotencyKey | No |