Get Screenshot

Capture full-page or viewport screenshots of dynamic, JavaScript-rendered pages with the Get Screenshot endpoint, with real browser rendering enabled by default.

Render a page in a real browser and return a base64-encoded screenshot. Real browser rendering is enabled by default so client-side scripts and layout elements render before the capture.

Note

  • Use the Playground API Server (https://api.mrscraper.com) host when calling this endpoint.
  • Set screenshot to full for the entire scroll height, or to top for the visible viewport only.
  • Set record to true to also capture a full-page recording, returned in recording_path.
  • See Get Screenshot in the Playground guide for the full list of settings.
POST
/

Query Parameters

token*string

API token.

screenshot*string

Screenshot area. full captures the entire scroll height, top captures the visible viewport at the top of the page. The image is returned base64-encoded.

Default"full"
Value in"full" | "top"
browserRendering?boolean

Render the page using a real Chromium browser. Enabled by default for this use case so dynamic pages, client-side scripts, and layout elements are captured as a user would see them.

Defaulttrue
waitUntil?string

Defines when the browser considers navigation complete. networkidle0 waits until all network activity stops — the most thorough option, but the slowest.

Default"domcontentloaded"
Value in"domcontentloaded" | "load" | "networkidle0" | "networkidle2"
timeout?integer

Maximum seconds to wait for the page to fully load before the request times out. Increase for slow or complex pages.

Default300
record?boolean

Captures a full-page recording of the rendered page. Use it to confirm the page loaded correctly. The video location is returned in recording_path.

Defaultfalse
html?boolean

Returns the raw HTML of the scraped page in the response.

Defaulttrue
markdown?boolean

Converts the page content into clean Markdown format, stripping HTML tags.

Defaultfalse
super?boolean

Uses additional resources to improve extraction accuracy on complex websites. Enable for sites protected by anti-bot systems or containing heavily dynamic content.

Defaultfalse
geoCode?string

Country to load the page from. Defaults to the United States.

Default"us"
proxyCountry?string

Country of the proxy server. Defaults to the United States.

Default"us"
saveResult?boolean

Saves the result to the Result tab.

Defaulttrue
blockResources?boolean

Skips non-essential assets such as images, fonts, and stylesheets to improve performance.

Defaultfalse
waitForSelector?string

Waits until a specific CSS selector appears in the DOM before starting extraction. Useful for content that loads asynchronously after the initial page load.

action?string

Routes the request to a specific scraper action, or simply flags it. Useful for separating analytics per domain.

proxy?string

Sends the request through your own proxy server, such as http://user:pass@host:port.

returnCookie?boolean

Returns the browser session cookies generated during the request. Useful for debugging sessions or reusing authenticated requests.

Defaultfalse

Header Parameters

x-api-token*string

API token.

Request Body

application/json

url*string

The full URL of the page you want to scrape. Must include the protocol (https://).

Formaturi
tokenCap?integer

Maximum total tokens the scrape and its retries can use. Automatic retries are bounded by this cap, so the total tokens for a single run stay at or below the value you set. Omit for no limit.

Range1 <= value
maxRetries?integer

Maximum number of retries for the request. Omit for no limit.

Range0 <= value

Response Body

application/json

application/json

application/json

curl -X POST "https://api.mrscraper.com/?token=string&screenshot=full" \  -H "x-api-token: string" \  -H "Content-Type: application/json" \  -d '{    "url": "https://www.walmart.com/search?q=table%20lamps"  }'
{
  "code": null,
  "screenshots": [],
  "recording_path": "results/6cef400f-ec7f-4a21-86df-0c7d46bfcf49/recording.mp4",
  "extractions": "{}",
  "data_path": "results/6cef400f-ec7f-4a21-86df-0c7d46bfcf49/data.json",
  "html_path": "results/6cef400f-ec7f-4a21-86df-0c7d46bfcf49/page.html",
  "error": null,
  "residential_proxy_usage": {
    "received": 0.0009365081787109375,
    "sent": 0.0002651214599609375,
    "total": 0.001201629638671875
  },
  "runtime": 4.082163572311401,
  "token_usage": 2,
  "listen_network_data": {},
  "html": "<!DOCTYPE html>...</html>",
  "markdown": "",
  "screenshot": "iVBORw0KGgoAAAANSUhEUgAA...",
  "data": {}
}
{
  "error": "Unauthorized",
  "message": "Invalid or missing API token",
  "statusCode": 401
}
{
  "error": "Internal Server Error",
  "message": "An unexpected error occurred",
  "statusCode": 500
}