{
  "openapi": "3.0.1",
  "info": {
    "title": "Website Screenshot Pro — Bulk, Full Page, Mobile",
    "description": "Screenshot hundreds of URLs in one run: full page or viewport, desktop/tablet/mobile, PNG, JPEG, WebP or PDF. Hides cookie banners, blocks ads, loads lazy images, dark mode, element capture. Pay only for successful screenshots.",
    "version": "1.0",
    "x-build-id": "OXAljkqWeqqpsSgMk"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/egra_van~website-screenshot-pro/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-egra_van-website-screenshot-pro",
        "x-openai-isConsequential": false,
        "summary": "Executes an Actor, waits for its completion, and returns Actor's dataset items in response.",
        "tags": [
          "Run Actor"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/inputSchema"
              }
            }
          }
        },
        "parameters": [
          {
            "name": "token",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Enter your Apify token here"
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/acts/egra_van~website-screenshot-pro/runs": {
      "post": {
        "operationId": "runs-sync-egra_van-website-screenshot-pro",
        "x-openai-isConsequential": false,
        "summary": "Executes an Actor and returns information about the initiated run in response.",
        "tags": [
          "Run Actor"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/inputSchema"
              }
            }
          }
        },
        "parameters": [
          {
            "name": "token",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Enter your Apify token here"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/runsResponseSchema"
                }
              }
            }
          }
        }
      }
    },
    "/acts/egra_van~website-screenshot-pro/run-sync": {
      "post": {
        "operationId": "run-sync-egra_van-website-screenshot-pro",
        "x-openai-isConsequential": false,
        "summary": "Executes an Actor, waits for completion, and returns the OUTPUT from Key-value store in response.",
        "tags": [
          "Run Actor"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/inputSchema"
              }
            }
          }
        },
        "parameters": [
          {
            "name": "token",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Enter your Apify token here"
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    }
  },
  "components": {
    "schemas": {
      "inputSchema": {
        "type": "object",
        "properties": {
          "urls": {
            "title": "URLs",
            "type": "array",
            "description": "Web pages to capture, one per line, e.g. https://apify.com. Addresses without http(s):// get https:// added. Duplicates are skipped. Objects like {\"url\": \"https://...\"} are accepted too when calling via API.",
            "items": {
              "type": "string"
            }
          },
          "startUrlsDatasetId": {
            "title": "…or dataset with URLs",
            "type": "string",
            "description": "ID or name of an Apify dataset (e.g. the results of another Actor) to read URLs from. Combined with the list above. Useful for chaining: scrape a list of pages, then screenshot them."
          },
          "urlField": {
            "title": "URL field in dataset",
            "type": "string",
            "description": "Field of each dataset item that contains the URL. Nested fields use dots, e.g. \"page.url\". Ignored if no dataset is set.",
            "default": "url"
          },
          "device": {
            "title": "Device",
            "enum": [
              "desktop",
              "laptop",
              "tablet",
              "mobile",
              "custom"
            ],
            "type": "string",
            "description": "Screen size and device type. Desktop 1920×1080, Laptop 1366×768, Tablet 768×1024 (2x pixels, touch), Mobile 390×844 (3x pixels, touch, mobile browser). Choose Custom to set your own width and height.",
            "default": "desktop"
          },
          "width": {
            "title": "Custom width (px)",
            "minimum": 200,
            "maximum": 7680,
            "type": "integer",
            "description": "Browser window width in CSS pixels. Only used when Device is \"Custom size\".",
            "default": 1280
          },
          "height": {
            "title": "Custom height (px)",
            "minimum": 200,
            "maximum": 4320,
            "type": "integer",
            "description": "Browser window height in CSS pixels. Only used when Device is \"Custom size\".",
            "default": 800
          },
          "scaleFactor": {
            "title": "Pixel density (scale factor)",
            "minimum": 0.5,
            "maximum": 4,
            "type": "number",
            "description": "Image pixels per CSS pixel. 1 = normal, 2 = retina-sharp (4× more pixels, bigger files). Leave empty to use the device default (desktop/laptop 1, tablet 2, mobile 3)."
          },
          "fullPage": {
            "title": "Full page",
            "type": "boolean",
            "description": "Capture the whole page from top to bottom instead of only the visible window.",
            "default": false
          },
          "format": {
            "title": "Image format",
            "enum": [
              "png",
              "jpeg",
              "webp"
            ],
            "type": "string",
            "description": "PNG is lossless (best for text and QA). JPEG and WebP are much smaller (best for archives and AI). WebP images are at most 16,383 pixels tall.",
            "default": "png"
          },
          "quality": {
            "title": "Quality (JPEG / WebP)",
            "minimum": 1,
            "maximum": 100,
            "type": "integer",
            "description": "Compression quality from 1 to 100 for JPEG and WebP. Ignored for PNG.",
            "default": 80
          },
          "clipSelector": {
            "title": "Capture only this element",
            "type": "string",
            "description": "CSS selector of a single element to capture instead of the page, e.g. \"#pricing\" or \"main article\". The first matching element is used."
          },
          "maxHeight": {
            "title": "Max. height for full page (px)",
            "minimum": 0,
            "maximum": 100000,
            "type": "integer",
            "description": "Full-page screenshots taller than this (in CSS pixels) are cut here, so endless-scroll pages do not produce giant images. 0 = no limit.",
            "default": 15000
          },
          "savePdf": {
            "title": "Also save as PDF",
            "type": "boolean",
            "description": "Also save each page as an A4 PDF (print version of the page, with backgrounds). Charged as a separate PDF export event.",
            "default": false
          },
          "hideCookieBanners": {
            "title": "Hide cookie banners",
            "type": "boolean",
            "description": "Hide cookie and consent pop-ups (OneTrust, Cookiebot, Didomi, Quantcast, TrustArc, Usercentrics, CookieYes and similar, plus generic fixed cookie bars). Nothing is clicked or accepted.",
            "default": true
          },
          "blockAds": {
            "title": "Block ads and trackers",
            "type": "boolean",
            "description": "Block requests to common ad, tracking and analytics networks and hide empty ad slots. Pages usually also load faster.",
            "default": true
          },
          "hideSelectors": {
            "title": "Hide these elements",
            "type": "array",
            "description": "CSS selectors of elements to remove before capturing, e.g. chat widgets or sticky headers: \"#intercom-container\", \".newsletter-popup\".",
            "items": {
              "type": "string"
            }
          },
          "scrollToBottom": {
            "title": "Scroll to load lazy images",
            "type": "boolean",
            "description": "For full-page and element screenshots: scroll through the page first so lazy-loaded images and sections appear, then go back to the top.",
            "default": true
          },
          "darkMode": {
            "title": "Dark mode",
            "type": "boolean",
            "description": "Tell the website the visitor prefers a dark color scheme. Only sites that support dark mode change.",
            "default": false
          },
          "waitUntil": {
            "title": "Wait until",
            "enum": [
              "load",
              "domcontentloaded",
              "networkidle"
            ],
            "type": "string",
            "description": "When the page counts as loaded. \"Load\" is best for most sites. \"Network idle\" waits until nothing loads for 0.5 s (good for single-page apps). If a page never reaches it, the screenshot is still taken at the timeout, with a warning.",
            "default": "load"
          },
          "delaySecs": {
            "title": "Extra delay (seconds)",
            "minimum": 0,
            "maximum": 60,
            "type": "number",
            "description": "Wait this long after the page has loaded, e.g. for animations, sliders or charts to finish.",
            "default": 1
          },
          "waitForSelector": {
            "title": "Wait for element",
            "type": "string",
            "description": "CSS selector that must be visible before the screenshot, e.g. \".product-grid\". If it does not appear in time, the URL is reported as failed (and not charged)."
          },
          "timeoutSecs": {
            "title": "Page timeout (seconds)",
            "minimum": 5,
            "maximum": 600,
            "type": "integer",
            "description": "Maximum time for loading one page (per attempt).",
            "default": 60
          },
          "retries": {
            "title": "Retries per URL",
            "minimum": 0,
            "maximum": 5,
            "type": "integer",
            "description": "How many times to retry a URL after a network error, timeout or HTTP 429/5xx response. Each retry uses a new proxy IP when a proxy is enabled.",
            "default": 2
          },
          "maxConcurrency": {
            "title": "Parallel pages",
            "minimum": 1,
            "maximum": 20,
            "type": "integer",
            "description": "How many pages are captured at the same time. Higher is faster but needs more memory: about 1 page per 512 MB (e.g. 4 at 2 GB, 8 at 4 GB).",
            "default": 3
          },
          "proxyConfiguration": {
            "title": "Proxy",
            "type": "object",
            "description": "Use a proxy for sites that block data-center traffic or show country-specific content. Apify residential proxies help with strict anti-bot sites. No proxy by default.",
            "default": {
              "useApifyProxy": false
            }
          },
          "userAgent": {
            "title": "Custom user agent",
            "type": "string",
            "description": "Override the browser's User-Agent header. Leave empty to use a normal Chrome user agent that matches the chosen device."
          },
          "outputZip": {
            "title": "Also create a ZIP with all files",
            "type": "boolean",
            "description": "Bundle all screenshots (and PDFs) into one screenshots.zip in the key-value store. The download link is in the OUTPUT record.",
            "default": false
          }
        }
      },
      "runsResponseSchema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "object",
            "properties": {
              "id": {
                "type": "string"
              },
              "actId": {
                "type": "string"
              },
              "userId": {
                "type": "string"
              },
              "startedAt": {
                "type": "string",
                "format": "date-time",
                "example": "2025-01-08T00:00:00.000Z"
              },
              "finishedAt": {
                "type": "string",
                "format": "date-time",
                "example": "2025-01-08T00:00:00.000Z"
              },
              "status": {
                "type": "string",
                "example": "READY"
              },
              "meta": {
                "type": "object",
                "properties": {
                  "origin": {
                    "type": "string",
                    "example": "API"
                  },
                  "userAgent": {
                    "type": "string"
                  }
                }
              },
              "stats": {
                "type": "object",
                "properties": {
                  "inputBodyLen": {
                    "type": "integer",
                    "example": 2000
                  },
                  "rebootCount": {
                    "type": "integer",
                    "example": 0
                  },
                  "restartCount": {
                    "type": "integer",
                    "example": 0
                  },
                  "resurrectCount": {
                    "type": "integer",
                    "example": 0
                  },
                  "computeUnits": {
                    "type": "integer",
                    "example": 0
                  }
                }
              },
              "options": {
                "type": "object",
                "properties": {
                  "build": {
                    "type": "string",
                    "example": "latest"
                  },
                  "timeoutSecs": {
                    "type": "integer",
                    "example": 300
                  },
                  "memoryMbytes": {
                    "type": "integer",
                    "example": 1024
                  },
                  "diskMbytes": {
                    "type": "integer",
                    "example": 2048
                  }
                }
              },
              "buildId": {
                "type": "string"
              },
              "defaultKeyValueStoreId": {
                "type": "string"
              },
              "defaultDatasetId": {
                "type": "string"
              },
              "defaultRequestQueueId": {
                "type": "string"
              },
              "buildNumber": {
                "type": "string",
                "example": "1.0.0"
              },
              "containerUrl": {
                "type": "string"
              },
              "usage": {
                "type": "object",
                "properties": {
                  "ACTOR_COMPUTE_UNITS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_WRITES": {
                    "type": "integer",
                    "example": 1
                  },
                  "KEY_VALUE_STORE_LISTS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_INTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_EXTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_SERPS": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_UNBLOCKER_UNITS": {
                    "type": "integer",
                    "example": 0
                  }
                }
              },
              "usageTotalUsd": {
                "type": "number",
                "example": 0.00005
              },
              "usageUsd": {
                "type": "object",
                "properties": {
                  "ACTOR_COMPUTE_UNITS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_WRITES": {
                    "type": "number",
                    "example": 0.00005
                  },
                  "KEY_VALUE_STORE_LISTS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_INTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_EXTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_SERPS": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_UNBLOCKER_UNITS": {
                    "type": "integer",
                    "example": 0
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}