{
  "id": "mrscraper.scrape.screenshot",
  "object": "tool",
  "name": "Capture Page Screenshot",
  "summary": "Capture a full-page or viewport screenshot of any rendered page.",
  "description": "Render any URL in a real browser and capture a screenshot — the entire scroll height or just the top viewport — returned base64-encoded in the screenshot field alongside the page HTML. Anti-bot bypass, proxies, and geo-targeting are handled server-side. Supports navigation and CSS-selector waits, proxy country selection, and a real-device stealth mode. Suited for visual audits, layout verification, archiving, and debugging why an extraction sees a different page than a human does.\n\nRaw mrscraper#/scrape/screenshot endpoint: input is { body, queryParams, pathParams } as the provider documents them (https://docs.mrscraper.com/docs/api/playground/get-screenshot).",
  "category": "lookup",
  "hosted_by": "MrScraper",
  "runtime": "partner",
  "side_effects": false,
  "status": "live",
  "credits": 0,
  "price": null,
  "providers": [
    {
      "id": "mrscraper",
      "name": "MrScraper",
      "price": null,
      "own_key_only": true
    }
  ],
  "mcp_name": "mrscraper_scrape_screenshot",
  "input_schema": {
    "type": "object",
    "properties": {
      "body": {
        "type": "object",
        "properties": {
          "url": {
            "type": "string",
            "pattern": "^https?:\\/\\/\\S+$",
            "description": "Full URL to scrape, including the http:// or https:// scheme."
          },
          "screenshot": {
            "type": "string",
            "enum": [
              "full",
              "top"
            ],
            "description": "Capture area: 'full' for the entire scroll height (default), 'top' for the visible viewport only."
          },
          "geoCode": {
            "type": "string",
            "minLength": 2,
            "maxLength": 2,
            "description": "Two-letter country code to load the page from (default 'us')."
          },
          "proxyCountry": {
            "type": "string",
            "minLength": 2,
            "maxLength": 2,
            "description": "Two-letter country code of the proxy exit (default 'us')."
          },
          "waitUntil": {
            "type": "string",
            "enum": [
              "domcontentloaded",
              "load",
              "networkidle0",
              "networkidle2"
            ],
            "description": "When the browser considers navigation complete (browser rendering only). 'networkidle0' is the most thorough but slowest. Default 'domcontentloaded'."
          },
          "timeout": {
            "type": "integer",
            "minimum": 1,
            "maximum": 300,
            "description": "Maximum seconds to wait for the page to fully load (default 300)."
          },
          "waitForSelector": {
            "type": "string",
            "minLength": 1,
            "description": "Wait until this CSS selector appears in the DOM before extracting — for content that loads after the initial page."
          },
          "super": {
            "type": "boolean",
            "description": "Route through real devices to bypass hard anti-bot protection. Uses more upstream resources, so runs consume more tokens. Default false."
          }
        },
        "required": [
          "url"
        ],
        "additionalProperties": false
      }
    },
    "required": [
      "body"
    ],
    "additionalProperties": false
  },
  "kind": "endpoint"
}