Create App Store screenshots programmatically. Send natural language messages, get back canvas state JSON with device mockups, backgrounds, and text.
All API requests require a Bearer token in the Authorization header. Create API keys in Settings → API Keys.
Authorization: Bearer sk_live_your_key_here
https://appscreenshotstudio.com/api/v1
/projectsCreate a new builder project. Optionally pass codebase_context to persist app context for all future chats.
Request body
{
"device_id": "iphone-6.9", // or "android-phone"
"name": "My App Screenshots", // optional
"codebase_context": { // optional — persisted for all chats
"readme_summary": "A habit tracking app...",
"key_screens": ["Dashboard", "Settings", "Profile"],
"color_tokens": { "primary": "#7C3AED" },
"target_audience": "busy professionals",
"app_category": "productivity",
"competitive_edge": "AI-powered habit suggestions",
"ui_style": "dark mode with purple accents",
"primary_user_flow": "Sign up → Add habits → Track daily → View streaks"
}
}Response
{
"success": true,
"data": {
"id": "uuid",
"name": "My App Screenshots",
"device_id": "iphone-6.9",
"canvas_state": { "cards": [], "codebaseContext": {...}, ... }
},
"credits_remaining": 74
}/projectsList all your builder projects.
Response
{
"success": true,
"data": [ ... ],
"credits_remaining": 74
}/projects/:idGet a project with its full canvas state.
Response
{
"success": true,
"data": {
"id": "uuid",
"canvas_state": { "cards": [...], ... },
...
},
"credits_remaining": 74
}/projects/:id/chatSend a message to build screenshots. Costs 5 credits per message.
Request body
{
"message": "Create 5 App Store screenshots for a fitness app called FitPro",
"images": [ // optional
{ "dataUrl": "data:image/png;base64,..." }
],
"selected_card_indices": [0, 1] // optional
}Response
{
"success": true,
"data": {
"message": "Created 5 cards with ...",
"operations": [ ... ],
"canvas_state": { "cards": [...], ... },
"suggestions": ["Add ratings", "Change colors", ...]
},
"credits_remaining": 73
}/projects/:idUpdate a project's name, device, or canvas state.
Request body
{
"name": "Updated Name", // optional
"device_id": "android-phone", // optional
"canvas_state": { ... } // optional
}/projects/:idDelete a project.
Response
{ "success": true }/projects/:id/upload-screenshotsUpload app screenshots into device mockup elements. Maps each screenshot to a card by index. Free — no credit cost.
Request body
{
"screenshots": [
{ "card_index": 0, "image_base64": "iVBORw0KGgo..." },
{ "card_index": 1, "image_base64": "data:image/png;base64,iVBOR..." }
]
}Response
{
"success": true,
"data": {
"uploaded": 2,
"results": [
{ "card_index": 0, "success": true },
{ "card_index": 1, "success": true }
]
},
"credits_remaining": 74
}/projects/:id/renderRender all cards as PNG images. Free — no credit cost. No request body needed.
Response
{
"success": true,
"data": {
"images": [
{ "card_index": 0, "url": "https://...png", "width": 1260, "height": 2736 },
{ "card_index": 1, "url": "https://...png", "width": 1260, "height": 2736 }
]
},
"credits_remaining": 68
}Rate limit info is included in response headers.
| Endpoint | Limit |
|---|---|
| POST /projects/:id/chat | 60 requests / 5 minutes |
| All other endpoints | 120 requests / minute |
{
"success": false,
"error": "Human-readable message",
"code": "ERROR_CODE"
}| Code | HTTP | Meaning |
|---|---|---|
| UNAUTHORIZED | 401 | Invalid or revoked API key |
| NO_CREDITS | 402 | Insufficient credits |
| NOT_FOUND | 404 | Project not found or not yours |
| VALIDATION_ERROR | 400 | Invalid request body |
The AI creates screenshots by composing these element types on a canvas. When you send a chat message, the AI returns operations that add, update, or remove these elements. Understanding them helps you write better prompts.
Every card has one. Supports solid colors, multi-color gradients with angle control, or AI-generated images via a text prompt.
Example prompt
“"Make card 1's background a dark blue to purple gradient at 135 degrees"”
Rich text with per-word color, weight, italic, underline, highlight pills, gradient fills, stroke outlines, and emoji support.
Example prompt
“"Make the headline 'Scan Any Food' with 'Any' in a blue highlight pill, 'Food' underlined"”
Phone or tablet frame with a screenshot slot. Supports 9 perspective variants for 3D angles.
Example prompt
“"Tilt the phone to 15 degrees left and use isometric view on card 3"”
78+ shape types across 13 categories for decorative elements, glow orbs, floating UI panels, laurel wings, and more.
Example prompt
“"Add laurel wings around a 4.9 star rating, scatter leaf and sparkle shapes in the background"”
Colored label with text — for 'App of the Day', '#1 in Health', etc.
Example prompt
“"Add a '#1 Health App' badge below the phone"”
5-star rating display with custom color.
Example prompt
“"Add a 4.8 star rating in gold below the headline"”
General image element for 3D illustrations and decorative graphics.
Example prompt
“"Add a 3D illustration of a running shoe floating next to the phone"”
App icon or small image with optional rounded corners.
Example prompt
“"Add my app icon in the top corner"”
Every element supports these base properties:
x, y — position on canvas width, height — size rotation — degrees opacity — 0 to 1 zIndex — layer order (0 = back, higher = front) shadowColor, shadowBlur, shadowOffsetX, shadowOffsetY
| Device ID | Name | Canvas Size |
|---|---|---|
| iphone-6.9 | iPhone 16 Pro Max | 1260 × 2736 |
| ipad-13 | iPad Pro 13" | 2064 × 2752 |
| android-phone | Android Phone | 1080 × 2340 |
| android-tablet-10 | Android Tablet 7" | 1200 × 1920 |
| apple-watch-ultra | Apple Watch Ultra 2 | 410 × 502 |
The chat endpoint understands natural language. Here are prompts that work well:
Create from scratch
Create 5 App Store screenshots for a meditation app called ZenFlow. Use calming blues and purples.
With app screenshots
Here are my app screens. Create 4 professional screenshots with headlines and a dark theme.
Attach images via the images array
Style specific cards
Make card 1 a title card with no phone — just a big headline with highlight pills and a star rating.
Refine
Make the headlines bolder, add text stroke for contrast, and use emoji in the headings.
Perspective
Tilt all phones to left-15 perspective and add floating UI snippets.
Theme change
Switch everything to a warm sunset gradient theme with coral and gold.
Laurel stats
Add laurel wings around a 4.9 star rating on the social proof card, and a 1M+ Users stat on the CTA card.
Decorative shapes
Scatter leaf and sparkle shapes in the background. Add a trophy shape near the headline.
Text styling
Make 'Every' underlined and italic, put 'Free' in a green highlight pill.
# 1. Create a project
curl -X POST https://appscreenshotstudio.com/api/v1/projects \
-H "Authorization: Bearer sk_live_your_key" \
-H "Content-Type: application/json" \
-d '{"device_id": "iphone-6.9", "name": "FitPro"}'
# 2. Build screenshots via chat (5 credits per message)
curl -X POST https://appscreenshotstudio.com/api/v1/projects/PROJECT_ID/chat \
-H "Authorization: Bearer sk_live_your_key" \
-H "Content-Type: application/json" \
-d '{"message": "Create 5 screenshots for a fitness app"}'
# 3. Iterate
curl -X POST .../chat \
-d '{"message": "Make the backgrounds darker and add star ratings"}'
# 4. Render as PNGs (free)
curl -X POST https://appscreenshotstudio.com/api/v1/projects/PROJECT_ID/render \
-H "Authorization: Bearer sk_live_your_key"Using Claude Code, Cursor, or another MCP-compatible agent? Install the MCP server and your agent gets screenshot generation as a native tool — no manual API calls needed.
MCP Setup Guide →