{
  "openapi": "3.0.1",
  "info": {
    "title": "Website Screenshot API: Screenshot URL to PNG, JPEG or PDF",
    "description": "Website screenshot API: screenshot a URL list to PNG, JPEG or PDF (URL to image), full page up to 4,000 CSS px or exact size, with final URL, HTTP status, title. HTML strings to PDF too: A4/Letter, landscape, margins. Bench 10-10: 17 of 18 checks passed. $0.80 per 1,000; dead links free.",
    "version": "0.1",
    "x-build-id": "VsXdsQbeBh8pChOl3"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/hiver~bulk-website-screenshots/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-hiver-bulk-website-screenshots",
        "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/hiver~bulk-website-screenshots/runs": {
      "post": {
        "operationId": "runs-sync-hiver-bulk-website-screenshots",
        "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/hiver~bulk-website-screenshots/run-sync": {
      "post": {
        "operationId": "run-sync-hiver-bulk-website-screenshots",
        "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": "Pages to capture, one per line. `example.com` works as well as `https://example.com`. One result row per URL.",
            "items": {
              "type": "string"
            }
          },
          "html": {
            "title": "HTML strings",
            "description": "A string, a list of strings, or {name, html} objects. Either html or urls is needed; both may be mixed. Each item renders on about:blank; use absolute https URLs for remote assets. Empty, non-string and over-2-MiB UTF-8 items return free error rows."
          },
          "htmlNames": {
            "title": "HTML file names",
            "type": "array",
            "description": "Optional names matched by zero-based HTML position; object name wins. File names are sanitized and include the position to avoid overwrites.",
            "items": {
              "type": "string"
            }
          },
          "format": {
            "title": "Format",
            "enum": [
              "png",
              "jpeg",
              "pdf"
            ],
            "type": "string",
            "description": "PNG is lossless, JPEG is much smaller, PDF is a printable page.",
            "default": "png"
          },
          "pageSize": {
            "title": "PDF page size",
            "enum": [
              "A4",
              "Letter",
              "Legal",
              "A3",
              "A5",
              "Tabloid"
            ],
            "type": "string",
            "description": "PDF paper size. Default A4 preserves previous URL output. PNG/JPEG unaffected.",
            "default": "A4"
          },
          "landscape": {
            "title": "PDF landscape",
            "type": "boolean",
            "description": "Print PDFs in landscape orientation instead of portrait.",
            "default": false
          },
          "margin": {
            "title": "PDF margins",
            "description": "One nonnegative CSS length (e.g. \"0.5in\"), zero, or {top,right,bottom,left}. Units: px, pt, in, cm, mm. Missing sides are zero. Only used for PDF.",
            "default": 0
          },
          "printBackground": {
            "title": "PDF backgrounds",
            "type": "boolean",
            "description": "Include background colors and images in PDFs.",
            "default": true
          },
          "fullPage": {
            "title": "Full page",
            "type": "boolean",
            "description": "Capture the scrollable page up to 4,000 CSS pixels instead of just the first screen. Longer PNG/JPEG pages are clipped and report pageHeight plus truncatedAt: 4000. PDF is unaffected.",
            "default": false
          },
          "device": {
            "title": "Device",
            "enum": [
              "desktop",
              "laptop",
              "tablet",
              "mobile",
              "custom"
            ],
            "type": "string",
            "description": "desktop 1920x1080, laptop 1366x768, tablet 820x1180, mobile 390x844 (touch, mobile user agent). `custom` uses the width and height below.",
            "default": "desktop"
          },
          "viewportWidth": {
            "title": "Custom width (px)",
            "minimum": 200,
            "maximum": 3840,
            "type": "integer",
            "description": "Viewport width in pixels when device is custom.",
            "default": 1280
          },
          "viewportHeight": {
            "title": "Custom height (px)",
            "minimum": 200,
            "maximum": 3840,
            "type": "integer",
            "description": "Viewport height in pixels when device is custom.",
            "default": 800
          },
          "deviceScaleFactor": {
            "title": "Pixel ratio",
            "minimum": 1,
            "maximum": 3,
            "type": "integer",
            "description": "2 gives sharper retina images (4x the pixels, larger files).",
            "default": 1
          },
          "jpegQuality": {
            "title": "JPEG quality",
            "minimum": 30,
            "maximum": 100,
            "type": "integer",
            "description": "JPEG quality, 30 to 100.",
            "default": 80
          },
          "waitUntil": {
            "title": "Wait for",
            "enum": [
              "domcontentloaded",
              "load",
              "networkidle"
            ],
            "type": "string",
            "description": "When the page counts as loaded. `networkidle` waits until requests stop; slower, good for heavy single-page apps.",
            "default": "load"
          },
          "waitForSelector": {
            "title": "Wait for selector",
            "type": "string",
            "description": "Optional CSS selector that must appear before capture, for example `#app .loaded`."
          },
          "delayMs": {
            "title": "Extra delay (ms)",
            "minimum": 0,
            "maximum": 30000,
            "type": "integer",
            "description": "Pause after load, before capture, so animations and lazy images settle.",
            "default": 1000
          },
          "hideCookieBanners": {
            "title": "Hide cookie banners",
            "type": "boolean",
            "description": "Clicks common 'accept' buttons and hides known consent pop-ups.",
            "default": true
          },
          "hideSelectors": {
            "title": "Hide elements",
            "type": "array",
            "description": "CSS selectors to hide before capture (chat widgets, sticky bars, ads).",
            "items": {
              "type": "string"
            }
          },
          "darkMode": {
            "title": "Dark mode",
            "type": "boolean",
            "description": "Ask pages for their dark colour scheme.",
            "default": false
          },
          "blockAds": {
            "title": "Block ads and trackers",
            "type": "boolean",
            "description": "Skips well-known ad and tracking requests: faster, cleaner images.",
            "default": true
          },
          "userAgent": {
            "title": "User agent",
            "type": "string",
            "description": "Override the browser user agent. Leave empty for the default."
          },
          "timeoutSecs": {
            "title": "Page timeout (s)",
            "minimum": 5,
            "maximum": 120,
            "type": "integer",
            "description": "Navigation and selector timeout. Load timeouts can fall back only after DOMContentLoaded (reported in loadState); explicit networkidle and selector timeouts still fail. Redirect settlement adds at most 10 seconds per attempt, with one retry on a document change. Full-page raster budget: 10 seconds + 5 seconds per tile, capped at 90 seconds, plus a 10-second per-tile cap; bounded by the run deadline.",
            "default": 30
          },
          "maxConcurrency": {
            "title": "Pages in parallel",
            "minimum": 1,
            "maximum": 10,
            "type": "integer",
            "description": "How many viewport/PDF pages are captured at the same time (1-10). Full-page PNG/JPEG URLs run one at a time to bound CPU and memory usage.",
            "default": 4
          },
          "proxyConfiguration": {
            "title": "Proxy",
            "type": "object",
            "description": "Optional. Off by default; turn on for sites that block data-centre IPs."
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}