Download OpenAPI specification:
Capture any public URL as JPEG, PNG, WebP, AVIF, or PDF.
Authentication: include your 12-character alphanumeric API key as key in every POST request body.
No HTTP headers required.
Result CDN: https://static.shotbot.net/{token[0]}/{token[0..1]}/{token}.{format}
Example: token 4XyZaBd2… → https://static.shotbot.net/4/4X/4XyZaBd2….jpg
Pro subscription unlocks all formats (PNG / WebP / AVIF / PDF), custom viewport widths
(280-3840 px), URLs with custom TCP ports, wait up to 30 s, and advanced options
(scroll_before_capture, block_ads, http_auth, crop_height,
cookies, selector, autoplay_videos, omit_background,
emulate_print_media, non-default render_region).
Subscribe at https://shotbot.net/pro/
Typical flow
POST /capture → get tokenGET /capture/{token} every ~2 s until status is done or failedimage URL from the CDNOr use POST /capture/callback and let Shotbot push the result to your webhook.
Private captures (private: true): the result is not published on
static.shotbot.net. The done response carries a download URL on
api.shotbot.net that streams the file; you can fetch it as many times as
you like until it auto-expires after a short retention window.
Useful when the captured page is sensitive (intranet, account dashboards…).
Submit a URL for screenshot capture. Returns immediately with a token.
Poll GET /capture/{token} until status is done or failed.
If the same URL was already submitted within the last 60 seconds by the same account,
the existing token is returned (deduplicated: true) without consuming quota.
If quota and credits are both exhausted, the request is queued in a wait list
(status: waitlisted) and will be processed at the next monthly quota reset.
| preset | string Default: "" Enum: "" "og" "mobile" "youtube_thumbnail" "square" "reel" "pinterest" "tablet" "desktop" "desktop_hd" "twitter_header" "linkedin_banner" "hero_banner" Named output preset. When set, fills missing
Omit | |||||||||||||||||||||||||||||||||||||||
| viewport_width | integer [ 280 .. 3840 ] Default: 1280 Browser viewport width in pixels. Default: 1280.
Common labelled widths: 360, 375, 390, 414, 430, 768, 1024, 1200, 1280, 1440, 1920.
Non-Pro accounts are limited to 390, 768, 1280.
Shotbot Pro may also pass any custom width between 280 and 3840 px,
useful for CSS / responsive testing at arbitrary breakpoints.
A value outside the allowed set returns | |||||||||||||||||||||||||||||||||||||||
| output_size | integer Enum: 120 160 240 320 390 480 640 768 1024 1080 1200 1280 1440 1500 1584 1920 Output image width in pixels. Defaults to | |||||||||||||||||||||||||||||||||||||||
| ratio | string Default: "16:9" Enum: "16:9" "4:3" "16:10" "3:2" "2:1" "1:1" "9:16" "3:4" "10:16" "2:3" "1:2" Aspect ratio used to compute output height.
Ignored when | |||||||||||||||||||||||||||||||||||||||
| crop_height | integer [ 10 .. 30000 ] Custom output height in pixels. Overrides | |||||||||||||||||||||||||||||||||||||||
| fullpage | boolean Default: false Capture the full page height (max 30,000 px). Ignores | |||||||||||||||||||||||||||||||||||||||
| format | string Default: "jpg" Enum: "jpg" "png" "webp" "webp_lossless" "avif" "pdf" Output format. Non-Pro accounts are limited to | |||||||||||||||||||||||||||||||||||||||
| hidpi | boolean Default: false Render at 2× device pixel ratio (HiDPI / Retina). | |||||||||||||||||||||||||||||||||||||||
| color_scheme | string or null Enum: "dark" "light" null Force a color scheme before capture.
| |||||||||||||||||||||||||||||||||||||||
| render_region | string Default: "fr-paris" Enum: "fr-paris" "ca-montreal" "sg-singapore" "au-sydney" "vn-hanoi" Geographic region the rendering worker exits from. The browser is routed through a SOCKS5 proxy in the chosen region and its locale, timezone, and geolocation are emulated to match. Region key shape:
Use to capture geo-restricted content, regionally localised pages, currency
or banner variants, or to verify what a page looks like from a given
market. Pro only for non- | |||||||||||||||||||||||||||||||||||||||
| nojs | boolean Default: false Disable JavaScript execution before capture. | |||||||||||||||||||||||||||||||||||||||
| autoplay_videos | boolean Default: false Launch Chromium with No effect on PDF captures (no playback) or when the page itself
has no | |||||||||||||||||||||||||||||||||||||||
| prefers_reduced_motion | boolean Default: false Emulate the | |||||||||||||||||||||||||||||||||||||||
| omit_background | boolean Default: false Render with a transparent background ( Visible on | |||||||||||||||||||||||||||||||||||||||
| emulate_print_media | boolean Default: false Call | |||||||||||||||||||||||||||||||||||||||
| wait_time | integer [ 0 .. 30 ] Default: 5 Seconds to wait after page load before capturing
(0 = capture immediately after page load).
Free accounts: 0-5. Shotbot Pro: 0-30 (longer waits help
JavaScript-heavy / slow pages). A free request above 5 s is rejected
with | |||||||||||||||||||||||||||||||||||||||
| dismiss_cookies | string Default: "" Enum: "" "accept" "reject" Auto-interact with cookie consent banners. Pro only.
| |||||||||||||||||||||||||||||||||||||||
| frame | string Default: "" Enum: "" "rounded" "shadow" "browser_chrome" "browser_chrome_dark" "mobile" "mobile_light" "tablet" "tablet_light" "laptop" "polaroid" "gradient" "shotbot_brand" Decorative frame composited around the rendered image (image formats only, silently ignored for PDF).
Most variants extend OUTSIDE the requested Free accounts get a small PNG/WebP/AVIF formats render transparent pixels outside the mockup bezel (real see-through corners). JPG has no alpha channel so those areas flatten to black. | |||||||||||||||||||||||||||||||||||||||
| scroll_before_capture | boolean Default: false Scroll the page before capturing (triggers lazy-loaded images). Pro only. | |||||||||||||||||||||||||||||||||||||||
| scroll_offset_px | integer [ 0 .. 30000 ] Default: 0 Scroll the page down by this many pixels before capturing (no scroll back),
so the viewport frame starts at Y=N. Runs after | |||||||||||||||||||||||||||||||||||||||
| scroll_to | string <= 500 characters CSS selector to | |||||||||||||||||||||||||||||||||||||||
| block_ads | boolean Default: false Block ad network requests during capture. Pro only. | |||||||||||||||||||||||||||||||||||||||
object HTTP Basic Auth credentials for password-protected pages. Pro only. | ||||||||||||||||||||||||||||||||||||||||
| pdf_page_size | string Default: "A4" Enum: "A4" "A3" "A5" "Letter" "Legal" "Tabloid" PDF page size. Only used when | |||||||||||||||||||||||||||||||||||||||
| pdf_margin_mm | integer [ 0 .. 50 ] Default: 10 PDF page margin in mm. Only used when | |||||||||||||||||||||||||||||||||||||||
| pdf_scale | number [ 0.1 .. 2 ] Default: 1 PDF rendering scale factor. Only used when | |||||||||||||||||||||||||||||||||||||||
| pdf_landscape | boolean Default: false PDF landscape orientation. Only used when | |||||||||||||||||||||||||||||||||||||||
| selector | string <= 500 characters CSS selector of the DOM element to screenshot. Only the matched element is
captured and resized to | |||||||||||||||||||||||||||||||||||||||
| private | boolean Default: false Private capture. When The web preview ( Deduplication is disabled for private captures (each call produces a fresh token with its own file). Available to all accounts (not Pro-gated). | |||||||||||||||||||||||||||||||||||||||
Array of objects <= 50 items Cookies to inject before navigation. Useful for capturing authenticated pages
without HTTP Basic Auth. Each entry must include | ||||||||||||||||||||||||||||||||||||||||
| key required | string^[0-9A-Za-z]{12}$ Your 12-character alphanumeric API key. | |||||||||||||||||||||||||||||||||||||||
| url required | string <uri> Target URL. Must be a public http/https URL (no private IPs, no localhost).
URLs with a non-standard TCP port (e.g. |
{- "key": "aB3kR7mZx9Lq",
}{- "job_id": 1843221,
- "token": "a1b2c3d4e5f6a1b2c3d4e5f6a1b2c3d4",
- "status": "queued",
- "eta_seconds": 17
}Submit a URL for capture with webhook delivery of the result.
No polling required - Shotbot POSTs the result image (multipart) to your callback_url
when the capture is complete.
If callback_secret is set, the worker echoes it back in the callback POST.
Verify authenticity on your side with hash_equals($secret, $received_secret).
On failure the worker POSTs status=ERR to your callback URL.
The callback_url must use HTTPS and resolve to a public IP (SSRF protection).
DNS rebinding is mitigated by re-validation on the worker side.
| preset | string Default: "" Enum: "" "og" "mobile" "youtube_thumbnail" "square" "reel" "pinterest" "tablet" "desktop" "desktop_hd" "twitter_header" "linkedin_banner" "hero_banner" Named output preset. When set, fills missing
Omit | |||||||||||||||||||||||||||||||||||||||
| viewport_width | integer [ 280 .. 3840 ] Default: 1280 Browser viewport width in pixels. Default: 1280.
Common labelled widths: 360, 375, 390, 414, 430, 768, 1024, 1200, 1280, 1440, 1920.
Non-Pro accounts are limited to 390, 768, 1280.
Shotbot Pro may also pass any custom width between 280 and 3840 px,
useful for CSS / responsive testing at arbitrary breakpoints.
A value outside the allowed set returns | |||||||||||||||||||||||||||||||||||||||
| output_size | integer Enum: 120 160 240 320 390 480 640 768 1024 1080 1200 1280 1440 1500 1584 1920 Output image width in pixels. Defaults to | |||||||||||||||||||||||||||||||||||||||
| ratio | string Default: "16:9" Enum: "16:9" "4:3" "16:10" "3:2" "2:1" "1:1" "9:16" "3:4" "10:16" "2:3" "1:2" Aspect ratio used to compute output height.
Ignored when | |||||||||||||||||||||||||||||||||||||||
| crop_height | integer [ 10 .. 30000 ] Custom output height in pixels. Overrides | |||||||||||||||||||||||||||||||||||||||
| fullpage | boolean Default: false Capture the full page height (max 30,000 px). Ignores | |||||||||||||||||||||||||||||||||||||||
| format | string Default: "jpg" Enum: "jpg" "png" "webp" "webp_lossless" "avif" "pdf" Output format. Non-Pro accounts are limited to | |||||||||||||||||||||||||||||||||||||||
| hidpi | boolean Default: false Render at 2× device pixel ratio (HiDPI / Retina). | |||||||||||||||||||||||||||||||||||||||
| color_scheme | string or null Enum: "dark" "light" null Force a color scheme before capture.
| |||||||||||||||||||||||||||||||||||||||
| render_region | string Default: "fr-paris" Enum: "fr-paris" "ca-montreal" "sg-singapore" "au-sydney" "vn-hanoi" Geographic region the rendering worker exits from. The browser is routed through a SOCKS5 proxy in the chosen region and its locale, timezone, and geolocation are emulated to match. Region key shape:
Use to capture geo-restricted content, regionally localised pages, currency
or banner variants, or to verify what a page looks like from a given
market. Pro only for non- | |||||||||||||||||||||||||||||||||||||||
| nojs | boolean Default: false Disable JavaScript execution before capture. | |||||||||||||||||||||||||||||||||||||||
| autoplay_videos | boolean Default: false Launch Chromium with No effect on PDF captures (no playback) or when the page itself
has no | |||||||||||||||||||||||||||||||||||||||
| prefers_reduced_motion | boolean Default: false Emulate the | |||||||||||||||||||||||||||||||||||||||
| omit_background | boolean Default: false Render with a transparent background ( Visible on | |||||||||||||||||||||||||||||||||||||||
| emulate_print_media | boolean Default: false Call | |||||||||||||||||||||||||||||||||||||||
| wait_time | integer [ 0 .. 30 ] Default: 5 Seconds to wait after page load before capturing
(0 = capture immediately after page load).
Free accounts: 0-5. Shotbot Pro: 0-30 (longer waits help
JavaScript-heavy / slow pages). A free request above 5 s is rejected
with | |||||||||||||||||||||||||||||||||||||||
| dismiss_cookies | string Default: "" Enum: "" "accept" "reject" Auto-interact with cookie consent banners. Pro only.
| |||||||||||||||||||||||||||||||||||||||
| frame | string Default: "" Enum: "" "rounded" "shadow" "browser_chrome" "browser_chrome_dark" "mobile" "mobile_light" "tablet" "tablet_light" "laptop" "polaroid" "gradient" "shotbot_brand" Decorative frame composited around the rendered image (image formats only, silently ignored for PDF).
Most variants extend OUTSIDE the requested Free accounts get a small PNG/WebP/AVIF formats render transparent pixels outside the mockup bezel (real see-through corners). JPG has no alpha channel so those areas flatten to black. | |||||||||||||||||||||||||||||||||||||||
| scroll_before_capture | boolean Default: false Scroll the page before capturing (triggers lazy-loaded images). Pro only. | |||||||||||||||||||||||||||||||||||||||
| scroll_offset_px | integer [ 0 .. 30000 ] Default: 0 Scroll the page down by this many pixels before capturing (no scroll back),
so the viewport frame starts at Y=N. Runs after | |||||||||||||||||||||||||||||||||||||||
| scroll_to | string <= 500 characters CSS selector to | |||||||||||||||||||||||||||||||||||||||
| block_ads | boolean Default: false Block ad network requests during capture. Pro only. | |||||||||||||||||||||||||||||||||||||||
object HTTP Basic Auth credentials for password-protected pages. Pro only. | ||||||||||||||||||||||||||||||||||||||||
| pdf_page_size | string Default: "A4" Enum: "A4" "A3" "A5" "Letter" "Legal" "Tabloid" PDF page size. Only used when | |||||||||||||||||||||||||||||||||||||||
| pdf_margin_mm | integer [ 0 .. 50 ] Default: 10 PDF page margin in mm. Only used when | |||||||||||||||||||||||||||||||||||||||
| pdf_scale | number [ 0.1 .. 2 ] Default: 1 PDF rendering scale factor. Only used when | |||||||||||||||||||||||||||||||||||||||
| pdf_landscape | boolean Default: false PDF landscape orientation. Only used when | |||||||||||||||||||||||||||||||||||||||
| selector | string <= 500 characters CSS selector of the DOM element to screenshot. Only the matched element is
captured and resized to | |||||||||||||||||||||||||||||||||||||||
| private | boolean Default: false Private capture. When The web preview ( Deduplication is disabled for private captures (each call produces a fresh token with its own file). Available to all accounts (not Pro-gated). | |||||||||||||||||||||||||||||||||||||||
Array of objects <= 50 items Cookies to inject before navigation. Useful for capturing authenticated pages
without HTTP Basic Auth. Each entry must include | ||||||||||||||||||||||||||||||||||||||||
| key required | string^[0-9A-Za-z]{12}$ Your 12-character alphanumeric API key. | |||||||||||||||||||||||||||||||||||||||
| url required | string <uri> Target URL. Must be a public http/https URL (no private IPs, no localhost).
URLs with a non-standard TCP port (e.g. | |||||||||||||||||||||||||||||||||||||||
| callback_url required | string <uri> HTTPS endpoint where Shotbot will POST the result (multipart image). Must use HTTPS and resolve to a public IP address. | |||||||||||||||||||||||||||||||||||||||
| callback_secret | string <= 255 characters Optional shared secret. Shotbot echoes it back in the callback POST body.
Compare with |
{- "key": "aB3kR7mZx9Lq",
- "callback_secret": "s3cr3t"
}{- "job_id": 1843222,
- "token": "a1b2c3d4e5f6a1b2c3d4e5f6a1b2c3d4",
- "status": "queued",
- "eta_seconds": 17
}Poll the status of a submitted capture. No API key required - the 32-character token is a bearer: anyone who holds it can read the status and download the result.
Poll every ~2 seconds. A queued response includes eta_seconds as a hint.
Result image URLs follow the pattern:
https://static.shotbot.net/{token[0]}/{token[0..1]}/{token}.{format}
| token required | string^[A-Za-z0-9]{32}$ Example: 4XyZaBd2E1lk39PQ7m8r5wN0c6f4H2g1 32-character alphanumeric token returned by POST /capture |
{- "token": "a1b2c3d4e5f6a1b2c3d4e5f6a1b2c3d4",
- "status": "queued",
- "format": "jpg",
- "viewport_width": 1280,
- "output_size": 1280,
- "output_height": 720,
- "ratio": "16:9",
- "fullpage": false,
- "eta_seconds": 18
}Download the binary result of a private capture (private: true on
submission). The file is not deleted on read: you can fetch it as
many times as you like until it auto-expires after a short retention
window, after which you get 410 Gone.
This endpoint is the only way to retrieve a private capture: the bytes
are not on static.shotbot.net, and there is no other URL.
Authentication is by token: the 32-character alphanumeric token returned at submission acts as a bearer credential. Anyone holding it can read the file.
| token required | string^[A-Za-z0-9]{32}$ 32-character alphanumeric token from POST /capture (with |
{- "error": "not_found"
}Submit up to 500 URLs (Pro accounts: up to 5000) in a single request.
Global options (top-level) apply to all jobs. Per-job options override globals for that specific job.
Quota is allocated atomically in a single transaction. If quota runs out mid-batch, remaining jobs go to the wait list. Deduplication (60 s window, same account + URL) is applied before quota consumption.
The response contains a per-job status for each submitted URL:
queued, waitlisted, or error.
To receive results via webhook instead of polling, include a global callback_url.
All jobs in the batch then become callback jobs.
Batch submission is expensive: large batches with slow DNS can exceed transport timeouts and produce 504 responses on the client side, while server-side processing continues. Naive retry then creates duplicate jobs.
Send an idempotency_key (16-128 chars [A-Za-z0-9_.-]) to make retries safe:
a second batch with the same key from the same account, within 24 h, returns the
original response (X-Idempotent-Replay: true header) without creating new jobs
or deducting quota.
Recommended pattern: generate a UUID before the first call, retry with the same UUID on transport/parse errors, drop it on success.
| preset | string Default: "" Enum: "" "og" "mobile" "youtube_thumbnail" "square" "reel" "pinterest" "tablet" "desktop" "desktop_hd" "twitter_header" "linkedin_banner" "hero_banner" Named output preset. When set, fills missing
Omit | |||||||||||||||||||||||||||||||||||||||
| viewport_width | integer [ 280 .. 3840 ] Default: 1280 Browser viewport width in pixels. Default: 1280.
Common labelled widths: 360, 375, 390, 414, 430, 768, 1024, 1200, 1280, 1440, 1920.
Non-Pro accounts are limited to 390, 768, 1280.
Shotbot Pro may also pass any custom width between 280 and 3840 px,
useful for CSS / responsive testing at arbitrary breakpoints.
A value outside the allowed set returns | |||||||||||||||||||||||||||||||||||||||
| output_size | integer Enum: 120 160 240 320 390 480 640 768 1024 1080 1200 1280 1440 1500 1584 1920 Output image width in pixels. Defaults to | |||||||||||||||||||||||||||||||||||||||
| ratio | string Default: "16:9" Enum: "16:9" "4:3" "16:10" "3:2" "2:1" "1:1" "9:16" "3:4" "10:16" "2:3" "1:2" Aspect ratio used to compute output height.
Ignored when | |||||||||||||||||||||||||||||||||||||||
| crop_height | integer [ 10 .. 30000 ] Custom output height in pixels. Overrides | |||||||||||||||||||||||||||||||||||||||
| fullpage | boolean Default: false Capture the full page height (max 30,000 px). Ignores | |||||||||||||||||||||||||||||||||||||||
| format | string Default: "jpg" Enum: "jpg" "png" "webp" "webp_lossless" "avif" "pdf" Output format. Non-Pro accounts are limited to | |||||||||||||||||||||||||||||||||||||||
| hidpi | boolean Default: false Render at 2× device pixel ratio (HiDPI / Retina). | |||||||||||||||||||||||||||||||||||||||
| color_scheme | string or null Enum: "dark" "light" null Force a color scheme before capture.
| |||||||||||||||||||||||||||||||||||||||
| render_region | string Default: "fr-paris" Enum: "fr-paris" "ca-montreal" "sg-singapore" "au-sydney" "vn-hanoi" Geographic region the rendering worker exits from. The browser is routed through a SOCKS5 proxy in the chosen region and its locale, timezone, and geolocation are emulated to match. Region key shape:
Use to capture geo-restricted content, regionally localised pages, currency
or banner variants, or to verify what a page looks like from a given
market. Pro only for non- | |||||||||||||||||||||||||||||||||||||||
| nojs | boolean Default: false Disable JavaScript execution before capture. | |||||||||||||||||||||||||||||||||||||||
| autoplay_videos | boolean Default: false Launch Chromium with No effect on PDF captures (no playback) or when the page itself
has no | |||||||||||||||||||||||||||||||||||||||
| prefers_reduced_motion | boolean Default: false Emulate the | |||||||||||||||||||||||||||||||||||||||
| omit_background | boolean Default: false Render with a transparent background ( Visible on | |||||||||||||||||||||||||||||||||||||||
| emulate_print_media | boolean Default: false Call | |||||||||||||||||||||||||||||||||||||||
| wait_time | integer [ 0 .. 30 ] Default: 5 Seconds to wait after page load before capturing
(0 = capture immediately after page load).
Free accounts: 0-5. Shotbot Pro: 0-30 (longer waits help
JavaScript-heavy / slow pages). A free request above 5 s is rejected
with | |||||||||||||||||||||||||||||||||||||||
| dismiss_cookies | string Default: "" Enum: "" "accept" "reject" Auto-interact with cookie consent banners. Pro only.
| |||||||||||||||||||||||||||||||||||||||
| frame | string Default: "" Enum: "" "rounded" "shadow" "browser_chrome" "browser_chrome_dark" "mobile" "mobile_light" "tablet" "tablet_light" "laptop" "polaroid" "gradient" "shotbot_brand" Decorative frame composited around the rendered image (image formats only, silently ignored for PDF).
Most variants extend OUTSIDE the requested Free accounts get a small PNG/WebP/AVIF formats render transparent pixels outside the mockup bezel (real see-through corners). JPG has no alpha channel so those areas flatten to black. | |||||||||||||||||||||||||||||||||||||||
| scroll_before_capture | boolean Default: false Scroll the page before capturing (triggers lazy-loaded images). Pro only. | |||||||||||||||||||||||||||||||||||||||
| scroll_offset_px | integer [ 0 .. 30000 ] Default: 0 Scroll the page down by this many pixels before capturing (no scroll back),
so the viewport frame starts at Y=N. Runs after | |||||||||||||||||||||||||||||||||||||||
| scroll_to | string <= 500 characters CSS selector to | |||||||||||||||||||||||||||||||||||||||
| block_ads | boolean Default: false Block ad network requests during capture. Pro only. | |||||||||||||||||||||||||||||||||||||||
object HTTP Basic Auth credentials for password-protected pages. Pro only. | ||||||||||||||||||||||||||||||||||||||||
| pdf_page_size | string Default: "A4" Enum: "A4" "A3" "A5" "Letter" "Legal" "Tabloid" PDF page size. Only used when | |||||||||||||||||||||||||||||||||||||||
| pdf_margin_mm | integer [ 0 .. 50 ] Default: 10 PDF page margin in mm. Only used when | |||||||||||||||||||||||||||||||||||||||
| pdf_scale | number [ 0.1 .. 2 ] Default: 1 PDF rendering scale factor. Only used when | |||||||||||||||||||||||||||||||||||||||
| pdf_landscape | boolean Default: false PDF landscape orientation. Only used when | |||||||||||||||||||||||||||||||||||||||
| selector | string <= 500 characters CSS selector of the DOM element to screenshot. Only the matched element is
captured and resized to | |||||||||||||||||||||||||||||||||||||||
| private | boolean Default: false Private capture. When The web preview ( Deduplication is disabled for private captures (each call produces a fresh token with its own file). Available to all accounts (not Pro-gated). | |||||||||||||||||||||||||||||||||||||||
Array of objects <= 50 items Cookies to inject before navigation. Useful for capturing authenticated pages
without HTTP Basic Auth. Each entry must include | ||||||||||||||||||||||||||||||||||||||||
| key required | string^[0-9A-Za-z]{12}$ Your 12-character alphanumeric API key. | |||||||||||||||||||||||||||||||||||||||
required | Array of objects (BatchJobInput) [ 1 .. 5000 ] items Array of capture jobs. Each entry must include a | |||||||||||||||||||||||||||||||||||||||
| callback_url | string <uri> Global webhook URL. When set, all jobs in the batch become callback jobs. Must use HTTPS and resolve to a public IP. | |||||||||||||||||||||||||||||||||||||||
| callback_secret | string <= 255 characters Global HMAC secret echoed back in every callback POST. | |||||||||||||||||||||||||||||||||||||||
| idempotency_key | string^[A-Za-z0-9_.\-]{16,128}$ Client-supplied retry-safety key. Replaying the same key within 24 h from
the same account returns the original response ( |
{- "key": "aB3kR7mZx9Lq",
- "format": "png",
- "viewport_width": 1280,
}{- "submitted": 2,
- "waitlisted": 0,
- "deduplicated": 1,
- "errors": 1,
- "eta_seconds": 25,
- "jobs": [
- {
- "index": 0,
- "token": "a1b2c3d4e5f6a1b2c3d4e5f6a1b2c3d4",
- "job_id": 1843221,
- "status": "queued"
}, - {
- "index": 1,
- "token": "b2c3d4e5f6a1b2c3d4e5f6a1b2c3d4e5",
- "status": "queued",
- "deduplicated": true
}, - {
- "index": 2,
- "token": "c3d4e5f6a1b2c3d4e5f6a1b2c3d4e5f6",
- "job_id": 1843222,
- "status": "queued"
}, - {
- "index": 3,
- "status": "error",
- "error": "invalid_url",
- "detail": "Only public http/https URLs are supported"
}
]
}Returns the current plan, credit balance, monthly quota usage, and number of captures in flight for the authenticated account.
Authentication: pass the 12-character alphanumeric API key as ?key= query
parameter or as an Authorization: Bearer <key> header.
| key | string^[0-9A-Za-z]{12}$ 12-character alphanumeric API key (required if no Bearer header). |
{- "plan": "free",
- "pro_until": null,
- "credit": 50,
- "quota_used": 12,
- "quota_total": 200,
- "quota_remaining": 188,
- "inflight": 1,
- "inflight_cap": 3
}