{
  "openapi": "3.0.1",
  "info": {
    "title": "Website Screenshot & PDF: Full Page, Mobile, Batch URLs",
    "description": "Full-page or viewport screenshots (PNG, JPEG) and PDFs of any list of web pages. Desktop, tablet and phone sizes, cookie banners hidden, lazy images loaded. You pay only for pages captured cleanly; errors, 404s and bot checks are free.",
    "version": "1.0",
    "x-build-id": "nD3NbY0WxFSAxU7v7"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/private_image_hg9~website-screenshot-pdf/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-private_image_hg9-website-screenshot-pdf",
        "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/private_image_hg9~website-screenshot-pdf/runs": {
      "post": {
        "operationId": "runs-sync-private_image_hg9-website-screenshot-pdf",
        "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/private_image_hg9~website-screenshot-pdf/run-sync": {
      "post": {
        "operationId": "run-sync-private_image_hg9-website-screenshot-pdf",
        "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",
        "required": [
          "urls"
        ],
        "properties": {
          "urls": {
            "title": "Page addresses",
            "type": "array",
            "description": "The pages to capture, one per line: \"https://apify.com\", \"example.com/pricing\". Addresses without http:// or https:// get https://. Up to 10,000 pages per run; repeated addresses are captured once.",
            "items": {
              "type": "string"
            }
          },
          "format": {
            "title": "Format",
            "enum": [
              "png",
              "jpeg",
              "pdf"
            ],
            "type": "string",
            "description": "PNG is sharp and lossless. JPEG files are much smaller. PDF prints the page to a document with selectable text.",
            "default": "png"
          },
          "fullPage": {
            "title": "Full page",
            "type": "boolean",
            "description": "Capture the whole page from top to bottom. Turn off to capture only what fits on the screen (the viewport).",
            "default": true
          },
          "device": {
            "title": "Device",
            "enum": [
              "desktop",
              "desktop-hd",
              "laptop",
              "tablet",
              "iphone",
              "android"
            ],
            "type": "string",
            "description": "Screen size and type. Tablet and phone presets use the device's pixel density, touch and mobile browser, so you get the mobile layout of the site.",
            "default": "desktop"
          },
          "hideCookieBanners": {
            "title": "Hide cookie banners",
            "type": "boolean",
            "description": "Hide cookie and consent pop-ups from the common consent tools (OneTrust, Cookiebot, Usercentrics, Didomi, Quantcast and about 40 more) and home-made ones, so they don't cover the page. Nothing is clicked or accepted.",
            "default": true
          },
          "hidePopups": {
            "title": "Hide pop-ups",
            "type": "boolean",
            "description": "Hide sign-up, discount and newsletter pop-ups, Google's sign-in prompt and the dark layer behind them, so the page underneath shows. Turn off to capture pages exactly as a first-time visitor sees them.",
            "default": true
          },
          "scrollToLoad": {
            "title": "Scroll to load images",
            "type": "boolean",
            "description": "For full-page captures, scroll down the page first so lazy-loaded images and sections appear in the picture.",
            "default": true
          },
          "delaySeconds": {
            "title": "Extra wait (seconds)",
            "minimum": 0,
            "maximum": 30,
            "type": "integer",
            "description": "Seconds to wait after the page has loaded, for animations, sliders or late content.",
            "default": 1
          },
          "waitUntil": {
            "title": "Wait until",
            "enum": [
              "load",
              "domcontentloaded",
              "networkidle"
            ],
            "type": "string",
            "description": "When the page counts as loaded. Network idle waits for the page to stop fetching for half a second, which suits single-page apps. A page that never finishes loading is still captured when the page timeout runs out.",
            "default": "load"
          },
          "waitForSelector": {
            "title": "Wait for element",
            "type": "string",
            "description": "Optional CSS selector to wait for before capturing, e.g. \"#chart canvas\" or \".product-grid\"."
          },
          "selector": {
            "title": "Capture one element only",
            "type": "string",
            "description": "Optional CSS selector. When set, only the first visible matching element is captured, e.g. \"#pricing\" or \"main article\". Pages without it get status failed and are not charged."
          },
          "hideSelectors": {
            "title": "Hide these elements",
            "type": "array",
            "description": "CSS selectors of things to hide from the picture, such as chat widgets or promo bars: \".intercom-lightweight-app\", \"#promo-bar\".",
            "items": {
              "type": "string"
            }
          },
          "viewportWidth": {
            "title": "Custom width (pixels)",
            "minimum": 0,
            "maximum": 3840,
            "type": "integer",
            "description": "Overrides the device width. 0 keeps the preset.",
            "default": 0
          },
          "viewportHeight": {
            "title": "Custom height (pixels)",
            "minimum": 0,
            "maximum": 2160,
            "type": "integer",
            "description": "Overrides the device height (the visible screen; full-page captures are taller). 0 keeps the preset.",
            "default": 0
          },
          "deviceScaleFactor": {
            "title": "Pixel density",
            "minimum": 0,
            "maximum": 3,
            "type": "integer",
            "description": "2 gives a sharp retina image at twice the width and height. 0 keeps the device preset (1 for desktops).",
            "default": 0
          },
          "maxHeight": {
            "title": "Maximum height (pixels)",
            "minimum": 500,
            "maximum": 30000,
            "type": "integer",
            "description": "Very long pages are cut at this height so files stay usable. The row's truncated field says when a page was cut.",
            "default": 16000
          },
          "jpegQuality": {
            "title": "JPEG quality",
            "minimum": 10,
            "maximum": 100,
            "type": "integer",
            "description": "10 to 100. Used only for JPEG.",
            "default": 80
          },
          "colorScheme": {
            "title": "Color scheme",
            "enum": [
              "light",
              "dark",
              "no-preference"
            ],
            "type": "string",
            "description": "Ask the site for its light or dark theme. Sites without a dark theme look the same either way.",
            "default": "light"
          },
          "pdfPaperFormat": {
            "title": "PDF paper size",
            "enum": [
              "A4",
              "Letter",
              "Legal",
              "A3",
              "A5",
              "Tabloid"
            ],
            "type": "string",
            "description": "Used only for PDF.",
            "default": "A4"
          },
          "pdfLandscape": {
            "title": "PDF landscape",
            "type": "boolean",
            "description": "Print the PDF sideways.",
            "default": false
          },
          "pdfMedia": {
            "title": "PDF look",
            "enum": [
              "screen",
              "print"
            ],
            "type": "string",
            "description": "Screen keeps the page as you see it in a browser. Print uses the site's print styles, which usually drop menus and ads.",
            "default": "screen"
          },
          "pageTimeoutSecs": {
            "title": "Page timeout (seconds)",
            "minimum": 10,
            "maximum": 180,
            "type": "integer",
            "description": "Most time spent on one page. A page that hasn't started loading by then is retried once, then reported as failed (not charged).",
            "default": 45
          },
          "maxConcurrency": {
            "title": "Pages at once",
            "minimum": 0,
            "maximum": 10,
            "type": "integer",
            "description": "How many pages are open at the same time. Leave at 0 to set it from the run's memory: 2 at the default 4 GB, 4 at 8 GB. Apify gives one CPU core per 4 GB, and more pages per core makes pages time out.",
            "default": 0
          },
          "proxyConfiguration": {
            "title": "Proxy",
            "type": "object",
            "description": "Optional. Use Apify Proxy for sites that turn away data-center visitors or show a different country's version. Off by default."
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}