Create Capture
Create a styled screenshot render from a URL with device frames, backgrounds, elements, text, AI styling, and output controls.
POST
/v1/capture
Captures a URL, composes the requested styling, stores the image, and returns a CDN URL. Set `async` to `true` to queue a job instead.
Authentication
Bearer Token
Request Body required
application/jsonurl
string (uri)
REQUIRED
project_id
string
auth_profile_id
string
viewport
object
width
integer
REQUIRED
height
integer
REQUIRED
capture_dpr
number
user_agent
string
emulate_mobile
boolean
emulate_touch
boolean
wait_for
unknown
block
string[]
Array of:
inject_css
string
device
string
Enum:
iphone-16-pro, macbook-pro-16, ipad-pro-m4, browser-macos, browser-windowsdevice_color
string
device_scale
number
background_style
string
Enum:
gradient, solid, none, transparentbackground_preset
string
Enum:
aurora, sunset, ocean, midnight, arctic, dusk, forest, ember, custombackground_color
string
background_gradient
string
background
string
Hosted ScreenFramed background reference, e.g. fractal-glass-gradients/fractal-glass-34. Resolved to a render-sized image variant.
background_image_url
string (uri)
Custom public image URL. Overrides background when both are provided.
padding
number
corner_radius
number
shadow
string
Enum:
none, soft, hard, glow, floatshadow_color
string
shadow_blur
number
shadow_offset_x
number
shadow_offset_y
number
shadow_spread
number
shadow_opacity
number
perspective
string
Enum:
none, tilt-left, tilt-right, tilt-up, tilt-down, tilt-left-strong, tilt-right-strong, iso-left, iso-rightperspective_intensity
number
camera_preset
string
Enum:
hero, dashboard, flat, cinematic, detailtilt_x
number
tilt_y
number
roll
number
zoom
number
offset_x
number
offset_y
number
frame_scale
number
layout
string
Enum:
default, bottom-cropped, top-croppeddepth_blur
number
depth_blur_type
string
Enum:
dir, radial, tilt, lensdepth_blur_direction
string
Enum:
top, bottom, left, rightdepth_blur_angle
number
depth_blur_position
number
depth_blur_band
number
depth_blur_width
number
title
string
title_font
string
title_size
number
title_color
string
title_position
string
Enum:
above, below, bottom-left, top-left, overlay-bottomsubtitle
string
subtitle_font
string
subtitle_size
number
subtitle_color
string
badge
string
text_enabled
boolean
text_content
string
text_x
number
text_y
number
text_size
number
text_color
string
text_gradient
string
text_shadow
string
text_weight
number
text_font
string
text_align
string
Enum:
left, center, righttext_max_width
number
text_line_height
number
text_autofit
boolean
text_fit_min
number
text_box_h
number
text_vertical_align
string
Enum:
top, middle, bottomai
boolean
ai_style
boolean
ai_copy
boolean
prompt
string
element
string
selector
string
auto_balance
boolean
inset
number
inset_balance
boolean
output
object
format
string
Enum:
png, webp, jpgwidth
integer
height
integer
quality
integer
dpr
integer
Enum:
1, 2, 3cache_ttl
number
show_resolved_params
boolean
dark_mode
boolean
full_page
boolean
hide_selectors
string[]
Array of:
border
string
Enum:
none, subtle, bold, glassborder_color
string
border_width
number
aspect_ratio
string
Enum:
auto, 16:9, 4:3, 1:1, 3:2, 9:16, 21:9frame_ratio
string
Enum:
auto, 16:9, 4:3, 1:1, 3:2, 9:16, 21:9watermark
string
compose_mode
string
Enum:
satori, browserasync
boolean
webhook_url
string (uri)
Responses
201
Capture created
application/jsonid
string
url
string (uri)
width
integer
height
integer
format
string
duration_ms
integer
credits_used
integer
cached
boolean
warnings
string[]
Array of:
created_at
string
resolved_params
object
ai_decisions
object
element_resolved
object
202
Async capture queued
400
Error response
401
Error response
402
Error response
403
Error response
422
Error response
429
Error response
curl -X POST 'https://screenframed.com/v1/capture' \ -H 'Authorization: Bearer YOUR_API_TOKEN' \ -H 'Content-Type: application/json' \ -d '{ "url": "https://example.com", "project_id": "string", "auth_profile_id": "string", "viewport": { "width": 1, "height": 1 }, "capture_dpr": 1, "user_agent": "string", "emulate_mobile": true, "emulate_touch": true, "wait_for": "load", "block": [ "cookie-banners" ], "inject_css": "string", "device": "iphone-16-pro", "device_color": "string", "device_scale": 0.4, "background_style": "gradient", "background_preset": "aurora", "background_color": "string", "background_gradient": "string", "background": "string", "background_image_url": "https://example.com", "padding": 0, "corner_radius": 0, "shadow": "none", "shadow_color": "string", "shadow_blur": 0, "shadow_offset_x": -100, "shadow_offset_y": -100, "shadow_spread": -50, "shadow_opacity": 0, "perspective": "none", "perspective_intensity": 0, "camera_preset": "hero", "tilt_x": -30, "tilt_y": -30, "roll": -30, "zoom": 50, "offset_x": -2000, "offset_y": -2000, "frame_scale": 0, "layout": "default", "depth_blur": 0, "depth_blur_type": "dir", "depth_blur_direction": "top", "depth_blur_angle": 0, "depth_blur_position": 0, "depth_blur_band": 0, "depth_blur_width": 0, "title": "string", "title_font": "string", "title_size": 24, "title_color": "string", "title_position": "above", "subtitle": "string", "subtitle_font": "string", "subtitle_size": 0, "subtitle_color": "string", "badge": "string", "text_enabled": true, "text_content": "string", "text_x": 0, "text_y": 0, "text_size": 8, "text_color": "string", "text_gradient": "string", "text_shadow": "string", "text_weight": 100, "text_font": "string", "text_align": "left", "text_max_width": 0.1, "text_line_height": 0.8, "text_autofit": true, "text_fit_min": 6, "text_box_h": 0.05, "text_vertical_align": "top", "ai": true, "ai_style": true, "ai_copy": true, "prompt": "string", "element": "string", "selector": "string", "auto_balance": true, "inset": 0, "inset_balance": true, "output": { "format": "png", "width": 1, "height": 1, "quality": 1, "dpr": 1 }, "cache_ttl": 0, "show_resolved_params": true, "dark_mode": true, "full_page": true, "hide_selectors": [ "string" ], "border": "none", "border_color": "string", "border_width": 0, "aspect_ratio": "auto", "frame_ratio": "auto", "watermark": "string", "compose_mode": "satori", "async": true, "webhook_url": "https://example.com"}'
const response = await fetch('https://screenframed.com/v1/capture', { method: 'POST', headers: { "Authorization": "Bearer YOUR_API_TOKEN", "Content-Type": "application/json" }, body: JSON.stringify({ "url": "https://example.com", "project_id": "string", "auth_profile_id": "string", "viewport": { "width": 1, "height": 1 }, "capture_dpr": 1, "user_agent": "string", "emulate_mobile": true, "emulate_touch": true, "wait_for": "load", "block": [ "cookie-banners" ], "inject_css": "string", "device": "iphone-16-pro", "device_color": "string", "device_scale": 0.4, "background_style": "gradient", "background_preset": "aurora", "background_color": "string", "background_gradient": "string", "background": "string", "background_image_url": "https://example.com", "padding": 0, "corner_radius": 0, "shadow": "none", "shadow_color": "string", "shadow_blur": 0, "shadow_offset_x": -100, "shadow_offset_y": -100, "shadow_spread": -50, "shadow_opacity": 0, "perspective": "none", "perspective_intensity": 0, "camera_preset": "hero", "tilt_x": -30, "tilt_y": -30, "roll": -30, "zoom": 50, "offset_x": -2000, "offset_y": -2000, "frame_scale": 0, "layout": "default", "depth_blur": 0, "depth_blur_type": "dir", "depth_blur_direction": "top", "depth_blur_angle": 0, "depth_blur_position": 0, "depth_blur_band": 0, "depth_blur_width": 0, "title": "string", "title_font": "string", "title_size": 24, "title_color": "string", "title_position": "above", "subtitle": "string", "subtitle_font": "string", "subtitle_size": 0, "subtitle_color": "string", "badge": "string", "text_enabled": true, "text_content": "string", "text_x": 0, "text_y": 0, "text_size": 8, "text_color": "string", "text_gradient": "string", "text_shadow": "string", "text_weight": 100, "text_font": "string", "text_align": "left", "text_max_width": 0.1, "text_line_height": 0.8, "text_autofit": true, "text_fit_min": 6, "text_box_h": 0.05, "text_vertical_align": "top", "ai": true, "ai_style": true, "ai_copy": true, "prompt": "string", "element": "string", "selector": "string", "auto_balance": true, "inset": 0, "inset_balance": true, "output": { "format": "png", "width": 1, "height": 1, "quality": 1, "dpr": 1 }, "cache_ttl": 0, "show_resolved_params": true, "dark_mode": true, "full_page": true, "hide_selectors": [ "string" ], "border": "none", "border_color": "string", "border_width": 0, "aspect_ratio": "auto", "frame_ratio": "auto", "watermark": "string", "compose_mode": "satori", "async": true, "webhook_url": "https://example.com" })});const data = await response.json();console.log(data);
import requestsheaders = { 'Authorization': 'Bearer YOUR_API_TOKEN'}response = requests.post('https://screenframed.com/v1/capture', headers=headers, json={ "url": "https://example.com", "project_id": "string", "auth_profile_id": "string", "viewport": { "width": 1, "height": 1 }, "capture_dpr": 1, "user_agent": "string", "emulate_mobile": true, "emulate_touch": true, "wait_for": "load", "block": [ "cookie-banners" ], "inject_css": "string", "device": "iphone-16-pro", "device_color": "string", "device_scale": 0.4, "background_style": "gradient", "background_preset": "aurora", "background_color": "string", "background_gradient": "string", "background": "string", "background_image_url": "https://example.com", "padding": 0, "corner_radius": 0, "shadow": "none", "shadow_color": "string", "shadow_blur": 0, "shadow_offset_x": -100, "shadow_offset_y": -100, "shadow_spread": -50, "shadow_opacity": 0, "perspective": "none", "perspective_intensity": 0, "camera_preset": "hero", "tilt_x": -30, "tilt_y": -30, "roll": -30, "zoom": 50, "offset_x": -2000, "offset_y": -2000, "frame_scale": 0, "layout": "default", "depth_blur": 0, "depth_blur_type": "dir", "depth_blur_direction": "top", "depth_blur_angle": 0, "depth_blur_position": 0, "depth_blur_band": 0, "depth_blur_width": 0, "title": "string", "title_font": "string", "title_size": 24, "title_color": "string", "title_position": "above", "subtitle": "string", "subtitle_font": "string", "subtitle_size": 0, "subtitle_color": "string", "badge": "string", "text_enabled": true, "text_content": "string", "text_x": 0, "text_y": 0, "text_size": 8, "text_color": "string", "text_gradient": "string", "text_shadow": "string", "text_weight": 100, "text_font": "string", "text_align": "left", "text_max_width": 0.1, "text_line_height": 0.8, "text_autofit": true, "text_fit_min": 6, "text_box_h": 0.05, "text_vertical_align": "top", "ai": true, "ai_style": true, "ai_copy": true, "prompt": "string", "element": "string", "selector": "string", "auto_balance": true, "inset": 0, "inset_balance": true, "output": { "format": "png", "width": 1, "height": 1, "quality": 1, "dpr": 1 }, "cache_ttl": 0, "show_resolved_params": true, "dark_mode": true, "full_page": true, "hide_selectors": [ "string" ], "border": "none", "border_color": "string", "border_width": 0, "aspect_ratio": "auto", "frame_ratio": "auto", "watermark": "string", "compose_mode": "satori", "async": true, "webhook_url": "https://example.com"})print(response.json())
201
Response
{ "id": "<string>", "url": "<uri>", "width": 123, "height": 123, "format": "<string>", "duration_ms": 123, "credits_used": 123, "cached": true, "warnings": [ "<string>" ], "created_at": "<string>", "resolved_params": "<object>", "ai_decisions": "<object>", "element_resolved": "<object>"}
API Playground
Try this endpoint
POST
/v1/capture