GET/api/v1/screenshot

The API Endpoint

One endpoint handles everything: screenshots, PDFs, videos, and GIFs. Accepts GET and POST.

All captures go through a single endpoint:

GET / POST  https://screenshotcore.com/api/v1/screenshot

Parameters can be sent as a query string, JSON body, form data, or multipart. The API key must always be in the Authorization header or access_key query parameter.

Source

ParameterTypeDefaultDescription
sourcestringurlWhat to render: url, html, or markdown.
urlstringThe public URL to capture. Required when source=url.
htmlstringRaw HTML to render. Required when source=html.
markdownstringMarkdown string to render as HTML. Required when source=markdown.

Output

ParameterTypeDefaultDescription
formatstringpngOutput format: png, jpeg, webp, pdf, mp4, mov, avi, webm, gif.
response_typestringbinaryHow to deliver the result: binary, base64, json, or url.
qualityinteger80Compression quality 1–100. Applies to jpeg and webp only.

Viewport & Device

ParameterTypeDefaultDescription
viewport_widthinteger1280Browser viewport width in pixels.
viewport_heightinteger800Browser viewport height in pixels.
device_scale_factorfloat1.0Device pixel ratio (e.g. 2 for retina).
viewport_mobilebooleanfalseEmulate a mobile device.
viewport_has_touchbooleanfalseEnable touch events.
viewport_landscapebooleanfalseUse landscape orientation.
viewport_devicestringDevice preset, e.g. iphone-14, ipad, desktop-1080. Sets width, height, scale, and mobile flags automatically.
resolutionstringResolution shorthand: 720p, 1080p, 1440p, 2k, 4k.

Full Page

ParameterTypeDefaultDescription
full_pagebooleanfalseCapture the full scrollable page height, not just the viewport.
capture_beyond_viewportbooleanfalseExtend capture beyond the set viewport height.
full_page_scroll_delayinteger150Milliseconds to wait between scroll steps (for lazy-loaded content).
full_page_scroll_byinteger600Pixels to scroll per step.
full_page_max_heightintegerMaximum page height in pixels. Clips very long pages.

Image Output

ParameterTypeDefaultDescription
image_widthintegerResize output image to this width after capture.
image_heightintegerResize output image to this height after capture.
omit_backgroundbooleanfalseTransparent background (PNG only). Useful for compositing.

Timing

ParameterTypeDefaultDescription
wait_untilstringloadWhen to trigger the capture: load, domcontentloaded, networkidle.
wait_for_selectorstringWait for a CSS selector to appear before capturing.
delayinteger0Extra milliseconds to wait after the page loads before capturing.
timeoutintegerMaximum milliseconds to wait for the page to load before failing.

Blocking & Filtering

ParameterTypeDefaultDescription
block_adsbooleanfalseBlock ad networks.
block_cookie_bannersbooleanfalseBlock cookie consent popups.
block_trackersbooleanfalseBlock analytics and tracking scripts.
block_chatsbooleanfalseBlock live chat widgets.
block_requestsarrayBlock specific URL patterns (e.g. *.doubleclick.net).
block_resourcesarrayBlock resource types: image, stylesheet, font, script, etc.

Injection

ParameterTypeDefaultDescription
custom_cssstringCSS injected into the page before capture. Max 10 000 characters.
custom_jsstringJavaScript executed in the page before capture. Max 10 000 characters.

Interaction

ParameterTypeDefaultDescription
selectorstringCapture only the matching CSS element instead of the full page.
clickstringClick a CSS selector before capturing.
hoverstringHover over a CSS selector before capturing.
scroll_tostringScroll to a CSS selector before capturing.
scroll_into_viewstringScroll a CSS selector into the visible viewport.
adjust_topinteger0Pixels to shift the viewport up after scroll (useful for sticky headers).
hide_selectorsarrayCSS selectors to hide (set to display:none) before capture.

Request Context

ParameterTypeDefaultDescription
user_agentstringCustom User-Agent string sent to the target page.
authorizationstringAuthorization header sent to the target page (not your API key).
cookiesarrayCookies to send to the target page. Format: name=value.
headersarrayCustom HTTP headers sent to the target page. Format: Name: Value.
time_zonestringBrowser timezone, e.g. America/New_York.

Geolocation

ParameterTypeDefaultDescription
geolocation_latitudefloatLatitude to spoof in the browser.
geolocation_longitudefloatLongitude to spoof in the browser.
geolocation_accuracyfloatAccuracy radius in metres.

Display Emulation

ParameterTypeDefaultDescription
dark_modebooleanfalseEmulate prefers-color-scheme: dark.
reduced_motionbooleanfalseEmulate prefers-reduced-motion.
media_typestringOverride CSS media type: screen or print.

Rendering

ParameterTypeDefaultDescription
stealth_modebooleantrueHide browser automation signals to avoid bot detection.
gpu_renderingbooleanfalseEnable GPU acceleration (may improve rendering of complex animations).

Caching

ParameterTypeDefaultDescription
cache_ttlinteger0Cache the result for this many seconds. Identical requests within the window skip the capture and return the cached result without consuming quota.

PDF

ParameterTypeDefaultDescription
pdf_paper_formatstringA4Paper size: A4, Letter, Legal, Tabloid, etc.
pdf_landscapebooleanfalseRender PDF in landscape orientation.
pdf_print_backgroundbooleantrueInclude CSS background colours and images.
pdf_fit_one_pagebooleanfalseScale content to fit on a single page.
pdf_marginstringUniform margin (e.g. 1cm). Overrides individual margin params.
pdf_margin_topstringTop margin (e.g. 10mm).
pdf_margin_rightstringRight margin.
pdf_margin_bottomstringBottom margin.
pdf_margin_leftstringLeft margin.

Metadata

ParameterTypeDefaultDescription
metadata_page_titlebooleanfalseReturn the page <title>.
metadata_open_graphbooleanfalseReturn Open Graph tags.
metadata_iconbooleanfalseReturn the page favicon URL.
metadata_http_response_status_codebooleanfalseReturn the HTTP status code of the target page.
metadata_image_sizebooleanfalseReturn output image width and height.
metadata_fontsbooleanfalseReturn fonts used on the page.
metadata_contentbooleanfalseReturn the full rendered page content.
metadata_content_formatstringhtmlFormat for metadata_content: html or markdown.

Async & Webhooks

ParameterTypeDefaultDescription
asyncbooleanfalseQueue the capture and return 202 immediately. Requires webhook_url.
webhook_urlstringURL to POST the result to when the async capture finishes.
webhook_signbooleanfalseSign the webhook payload with HMAC-SHA256 using your signing secret.

Video & GIF

ParameterTypeDefaultDescription
video_durationintegerRecording length in seconds.
video_fpsintegerFrames per second.
video_scrollbooleantrueAuto-scroll the page during recording.
video_section_delayintegerMilliseconds to pause at each scroll section.
video_scroll_durationintegerTotal scroll animation duration in milliseconds.

Code Examples

# GET
curl "https://screenshotcore.com/api/v1/screenshot?access_key=KEY&url=https://example.com" -o out.png

# POST with JSON body
curl -X POST "https://screenshotcore.com/api/v1/screenshot" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"url":"https://example.com","viewport_width":1440,"full_page":true,"response_type":"json"}'

Response

(Raw bytes, Content-Type: image/png. Headers: X-Response-Time, X-Cache: MISS, X-Request-Id)