{
  "id": "contextdev.web.screenshot",
  "object": "tool",
  "name": "Capture Screenshot",
  "summary": "Capture a rendered screenshot of a website.",
  "description": "Get a production-ready screenshot of any site for previews, audits, brand libraries, and visual QA. Target a domain (Context.dev resolves the landing page, or heuristically finds a named page type such as pricing, careers, or login) or an exact URL. Capture a single viewport, the full page, or viewport-sized slices via scrollOffset; emulate light or dark mode; dismiss cookie banners and popups; and add a post-load wait for JavaScript-heavy pages. The response carries the hosted image URL plus its type and dimensions.\n\nRaw contextdev#web/screenshot endpoint: input is { body, queryParams, pathParams } as the provider documents them (https://docs.context.dev/api-reference/web-scraping/screenshot).",
  "category": "lookup",
  "hosted_by": "Context.dev",
  "runtime": "partner",
  "side_effects": false,
  "status": "live",
  "credits": 0,
  "price": null,
  "providers": [
    {
      "id": "contextdev",
      "name": "Context.dev",
      "price": null,
      "own_key_only": true
    }
  ],
  "mcp_name": "contextdev_web_screenshot",
  "input_schema": {
    "type": "object",
    "properties": {
      "queryParams": {
        "anyOf": [
          {
            "type": "object",
            "properties": {
              "domain": {
                "type": "string",
                "minLength": 3,
                "description": "Domain to screenshot, e.g. 'example.com'. Mutually exclusive with directUrl."
              },
              "fullScreenshot": {
                "type": "string",
                "enum": [
                  "true",
                  "false"
                ],
                "description": "'true' captures the entire page; 'false' (default) a single viewport."
              },
              "page": {
                "type": "string",
                "enum": [
                  "login",
                  "signup",
                  "blog",
                  "careers",
                  "pricing",
                  "terms",
                  "privacy",
                  "contact"
                ],
                "description": "Capture a specific page TYPE instead of the landing page: Context.dev crawls the domain's links and picks the best match. Only valid with domain."
              },
              "waitForMs": {
                "type": "integer",
                "minimum": 0,
                "maximum": 30000,
                "description": "Extra browser wait in milliseconds after page load before the content is captured (0-30000). Useful for JavaScript-heavy pages."
              },
              "handleCookiePopup": {
                "type": "boolean",
                "description": "Dismiss the cookie/consent banner before capturing. Default false."
              },
              "clearPopups": {
                "type": "boolean",
                "description": "Dismiss detected cookie/consent UI and other obstructive popups and overlays before capturing. Default false."
              },
              "colorScheme": {
                "type": "string",
                "enum": [
                  "light",
                  "dark"
                ],
                "description": "Browser color scheme to emulate for sites that honor prefers-color-scheme."
              },
              "scrollOffset": {
                "type": "integer",
                "minimum": 0,
                "maximum": 100000,
                "description": "Vertical scroll offset in pixels: returns the viewport-sized slice starting at this Y offset, so a long page can be walked in chunks. Takes precedence over fullScreenshot."
              },
              "maxAgeMs": {
                "type": "integer",
                "minimum": 0,
                "maximum": 2592000000,
                "description": "Reuse a cached result younger than this many milliseconds. Default 86400000 (1 day), max 2592000000 (30 days). Set 0 to always fetch fresh."
              },
              "country": {
                "type": "string",
                "enum": [
                  "ad",
                  "ae",
                  "af",
                  "ag",
                  "ai",
                  "al",
                  "am",
                  "ao",
                  "ar",
                  "at",
                  "au",
                  "aw",
                  "az",
                  "ba",
                  "bb",
                  "bd",
                  "be",
                  "bf",
                  "bg",
                  "bh",
                  "bi",
                  "bj",
                  "bm",
                  "bn",
                  "bo",
                  "bq",
                  "br",
                  "bs",
                  "bw",
                  "by",
                  "bz",
                  "ca",
                  "cd",
                  "cf",
                  "cg",
                  "ch",
                  "ci",
                  "cl",
                  "cm",
                  "cn",
                  "co",
                  "cr",
                  "cv",
                  "cw",
                  "cy",
                  "cz",
                  "de",
                  "dj",
                  "dk",
                  "dm",
                  "do",
                  "dz",
                  "ec",
                  "ee",
                  "eg",
                  "es",
                  "et",
                  "fi",
                  "fj",
                  "fr",
                  "ga",
                  "gb",
                  "gd",
                  "ge",
                  "gf",
                  "gg",
                  "gh",
                  "gm",
                  "gn",
                  "gp",
                  "gq",
                  "gr",
                  "gt",
                  "gu",
                  "gw",
                  "gy",
                  "hk",
                  "hn",
                  "hr",
                  "ht",
                  "hu",
                  "id",
                  "ie",
                  "il",
                  "im",
                  "in",
                  "iq",
                  "ir",
                  "is",
                  "it",
                  "je",
                  "jm",
                  "jo",
                  "jp",
                  "ke",
                  "kg",
                  "kh",
                  "kn",
                  "kr",
                  "kw",
                  "ky",
                  "kz",
                  "la",
                  "lb",
                  "lc",
                  "lk",
                  "lr",
                  "ls",
                  "lt",
                  "lu",
                  "lv",
                  "ly",
                  "ma",
                  "mc",
                  "md",
                  "me",
                  "mf",
                  "mg",
                  "mk",
                  "ml",
                  "mm",
                  "mn",
                  "mo",
                  "mq",
                  "mr",
                  "mt",
                  "mu",
                  "mv",
                  "mw",
                  "mx",
                  "my",
                  "mz",
                  "na",
                  "nc",
                  "ne",
                  "ng",
                  "ni",
                  "nl",
                  "no",
                  "np",
                  "nz",
                  "om",
                  "pa",
                  "pe",
                  "pf",
                  "pg",
                  "ph",
                  "pk",
                  "pl",
                  "pr",
                  "ps",
                  "pt",
                  "py",
                  "qa",
                  "re",
                  "ro",
                  "rs",
                  "ru",
                  "rw",
                  "sa",
                  "sc",
                  "sd",
                  "se",
                  "sg",
                  "si",
                  "sk",
                  "sl",
                  "sm",
                  "sn",
                  "so",
                  "sr",
                  "ss",
                  "st",
                  "sv",
                  "sx",
                  "sy",
                  "sz",
                  "tc",
                  "td",
                  "tg",
                  "th",
                  "tj",
                  "tl",
                  "tm",
                  "tn",
                  "tr",
                  "tt",
                  "tw",
                  "tz",
                  "ua",
                  "ug",
                  "us",
                  "uy",
                  "uz",
                  "vc",
                  "ve",
                  "vg",
                  "vi",
                  "vn",
                  "ye",
                  "yt",
                  "za",
                  "zm",
                  "zw"
                ],
                "description": "Two-letter ISO 3166-1 alpha-2 country code, lowercase (e.g. 'us', 'gb', 'de'). Must be one of Context.dev's supported countries."
              },
              "zdr": {
                "type": "string",
                "enum": [
                  "enabled",
                  "disabled"
                ],
                "description": "Set 'enabled' to bypass Context.dev's shared caches and omit request and response content from its retained usage logs. Requires zero data retention on the Context.dev organization, otherwise the call fails with ZDR_NOT_ENABLED."
              }
            },
            "required": [
              "domain"
            ],
            "additionalProperties": false
          },
          {
            "type": "object",
            "properties": {
              "directUrl": {
                "type": "string",
                "pattern": "^https?:\\/\\/\\S+$",
                "description": "Exact URL to use, bypassing domain resolution (e.g. 'https://example.com/pricing'). Mutually exclusive with domain."
              },
              "fullScreenshot": {
                "type": "string",
                "enum": [
                  "true",
                  "false"
                ],
                "description": "'true' captures the entire page; 'false' (default) a single viewport."
              },
              "page": {
                "type": "string",
                "enum": [
                  "login",
                  "signup",
                  "blog",
                  "careers",
                  "pricing",
                  "terms",
                  "privacy",
                  "contact"
                ],
                "description": "Capture a specific page TYPE instead of the landing page: Context.dev crawls the domain's links and picks the best match. Only valid with domain."
              },
              "waitForMs": {
                "type": "integer",
                "minimum": 0,
                "maximum": 30000,
                "description": "Extra browser wait in milliseconds after page load before the content is captured (0-30000). Useful for JavaScript-heavy pages."
              },
              "handleCookiePopup": {
                "type": "boolean",
                "description": "Dismiss the cookie/consent banner before capturing. Default false."
              },
              "clearPopups": {
                "type": "boolean",
                "description": "Dismiss detected cookie/consent UI and other obstructive popups and overlays before capturing. Default false."
              },
              "colorScheme": {
                "type": "string",
                "enum": [
                  "light",
                  "dark"
                ],
                "description": "Browser color scheme to emulate for sites that honor prefers-color-scheme."
              },
              "scrollOffset": {
                "type": "integer",
                "minimum": 0,
                "maximum": 100000,
                "description": "Vertical scroll offset in pixels: returns the viewport-sized slice starting at this Y offset, so a long page can be walked in chunks. Takes precedence over fullScreenshot."
              },
              "maxAgeMs": {
                "type": "integer",
                "minimum": 0,
                "maximum": 2592000000,
                "description": "Reuse a cached result younger than this many milliseconds. Default 86400000 (1 day), max 2592000000 (30 days). Set 0 to always fetch fresh."
              },
              "country": {
                "type": "string",
                "enum": [
                  "ad",
                  "ae",
                  "af",
                  "ag",
                  "ai",
                  "al",
                  "am",
                  "ao",
                  "ar",
                  "at",
                  "au",
                  "aw",
                  "az",
                  "ba",
                  "bb",
                  "bd",
                  "be",
                  "bf",
                  "bg",
                  "bh",
                  "bi",
                  "bj",
                  "bm",
                  "bn",
                  "bo",
                  "bq",
                  "br",
                  "bs",
                  "bw",
                  "by",
                  "bz",
                  "ca",
                  "cd",
                  "cf",
                  "cg",
                  "ch",
                  "ci",
                  "cl",
                  "cm",
                  "cn",
                  "co",
                  "cr",
                  "cv",
                  "cw",
                  "cy",
                  "cz",
                  "de",
                  "dj",
                  "dk",
                  "dm",
                  "do",
                  "dz",
                  "ec",
                  "ee",
                  "eg",
                  "es",
                  "et",
                  "fi",
                  "fj",
                  "fr",
                  "ga",
                  "gb",
                  "gd",
                  "ge",
                  "gf",
                  "gg",
                  "gh",
                  "gm",
                  "gn",
                  "gp",
                  "gq",
                  "gr",
                  "gt",
                  "gu",
                  "gw",
                  "gy",
                  "hk",
                  "hn",
                  "hr",
                  "ht",
                  "hu",
                  "id",
                  "ie",
                  "il",
                  "im",
                  "in",
                  "iq",
                  "ir",
                  "is",
                  "it",
                  "je",
                  "jm",
                  "jo",
                  "jp",
                  "ke",
                  "kg",
                  "kh",
                  "kn",
                  "kr",
                  "kw",
                  "ky",
                  "kz",
                  "la",
                  "lb",
                  "lc",
                  "lk",
                  "lr",
                  "ls",
                  "lt",
                  "lu",
                  "lv",
                  "ly",
                  "ma",
                  "mc",
                  "md",
                  "me",
                  "mf",
                  "mg",
                  "mk",
                  "ml",
                  "mm",
                  "mn",
                  "mo",
                  "mq",
                  "mr",
                  "mt",
                  "mu",
                  "mv",
                  "mw",
                  "mx",
                  "my",
                  "mz",
                  "na",
                  "nc",
                  "ne",
                  "ng",
                  "ni",
                  "nl",
                  "no",
                  "np",
                  "nz",
                  "om",
                  "pa",
                  "pe",
                  "pf",
                  "pg",
                  "ph",
                  "pk",
                  "pl",
                  "pr",
                  "ps",
                  "pt",
                  "py",
                  "qa",
                  "re",
                  "ro",
                  "rs",
                  "ru",
                  "rw",
                  "sa",
                  "sc",
                  "sd",
                  "se",
                  "sg",
                  "si",
                  "sk",
                  "sl",
                  "sm",
                  "sn",
                  "so",
                  "sr",
                  "ss",
                  "st",
                  "sv",
                  "sx",
                  "sy",
                  "sz",
                  "tc",
                  "td",
                  "tg",
                  "th",
                  "tj",
                  "tl",
                  "tm",
                  "tn",
                  "tr",
                  "tt",
                  "tw",
                  "tz",
                  "ua",
                  "ug",
                  "us",
                  "uy",
                  "uz",
                  "vc",
                  "ve",
                  "vg",
                  "vi",
                  "vn",
                  "ye",
                  "yt",
                  "za",
                  "zm",
                  "zw"
                ],
                "description": "Two-letter ISO 3166-1 alpha-2 country code, lowercase (e.g. 'us', 'gb', 'de'). Must be one of Context.dev's supported countries."
              },
              "zdr": {
                "type": "string",
                "enum": [
                  "enabled",
                  "disabled"
                ],
                "description": "Set 'enabled' to bypass Context.dev's shared caches and omit request and response content from its retained usage logs. Requires zero data retention on the Context.dev organization, otherwise the call fails with ZDR_NOT_ENABLED."
              }
            },
            "required": [
              "directUrl"
            ],
            "additionalProperties": false
          }
        ],
        "description": "Provide a domain or a directUrl."
      }
    },
    "required": [],
    "additionalProperties": false
  },
  "kind": "endpoint"
}