{
  "openapi": "3.0.1",
  "info": {
    "title": "Website Screenshot Scraper: Full Page, Bulk",
    "description": "Capture up to 500 URLs per run as full-page screenshots with lazy-loaded images rendered and cookie banners hidden, not clicked. Desktop, mobile and tablet presets, retina, JPEG or PNG, plus free page title, meta description, visible text and rendered HTML. Failed pages are reported and cost $0.",
    "version": "0.1",
    "x-build-id": "66D9eVyeSihQtBVQK"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/automation_craft~website-screenshot-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-automation_craft-website-screenshot-scraper",
        "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/automation_craft~website-screenshot-scraper/runs": {
      "post": {
        "operationId": "runs-sync-automation_craft-website-screenshot-scraper",
        "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/automation_craft~website-screenshot-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-automation_craft-website-screenshot-scraper",
        "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 to capture",
            "type": "array",
            "description": "One screenshot per URL. Plain list of page URLs (http/https).",
            "items": {
              "type": "string"
            }
          },
          "fullPage": {
            "title": "Full-page screenshot",
            "type": "boolean",
            "description": "Capture the whole page, not just the first screen. Lazy-loaded images are scrolled into existence first. Turn off for an above-the-fold shot.",
            "default": true
          },
          "device": {
            "title": "Device",
            "enum": [
              "desktop",
              "mobile",
              "tablet"
            ],
            "type": "string",
            "description": "Device preset: `desktop` uses your viewport size below; `mobile` (390×844, iPhone) and `tablet` (820×1180, iPad) set realistic viewport, user agent and touch.",
            "default": "desktop"
          },
          "viewportWidth": {
            "title": "Viewport width (px)",
            "minimum": 320,
            "maximum": 3840,
            "type": "integer",
            "description": "Browser width for the `desktop` device (320–3840).",
            "default": 1280
          },
          "viewportHeight": {
            "title": "Viewport height (px)",
            "minimum": 320,
            "maximum": 2160,
            "type": "integer",
            "description": "Browser height for the `desktop` device (320–2160). This is the screenshot height when `fullPage` is off.",
            "default": 800
          },
          "retina": {
            "title": "Retina (2x) resolution",
            "type": "boolean",
            "description": "Render at 2× device pixel ratio - crisp images for presentations and print (roughly 4× the file size).",
            "default": false
          },
          "format": {
            "title": "Image format",
            "enum": [
              "jpeg",
              "png"
            ],
            "type": "string",
            "description": "`jpeg` is small and fast (quality below applies); `png` is lossless and supports pages taller than 65,000px.",
            "default": "jpeg"
          },
          "quality": {
            "title": "JPEG quality",
            "minimum": 1,
            "maximum": 100,
            "type": "integer",
            "description": "1–100, JPEG only. 80 is a good balance.",
            "default": 80
          },
          "maxPageHeight": {
            "title": "Max page height (px)",
            "minimum": 600,
            "maximum": 100000,
            "type": "integer",
            "description": "Ceiling for full-page captures. Endless-feed pages get cut here instead of running forever; the item reports `truncated: true` plus the real page height. JPEG caps at 65,000px (format limit).",
            "default": 20000
          },
          "dismissCookieBanners": {
            "title": "Hide cookie banners",
            "type": "boolean",
            "description": "Hide 40+ common consent popups (OneTrust, Cookiebot, Didomi, Usercentrics, Sourcepoint…) before capturing. Nothing is clicked - banners are just not in your shot.",
            "default": true
          },
          "hideSelectors": {
            "title": "Hide elements (CSS selectors)",
            "type": "array",
            "description": "Extra CSS selectors to hide before the shot - chat widgets, sticky bars, ads. Example: `#intercom-container`.",
            "items": {
              "type": "string"
            }
          },
          "delayMs": {
            "title": "Extra delay (ms)",
            "minimum": 0,
            "maximum": 30000,
            "type": "integer",
            "description": "Extra wait after the page settles, for late animations/fonts (0–30000).",
            "default": 0
          },
          "waitForSelector": {
            "title": "Wait for selector",
            "type": "string",
            "description": "Only capture after this CSS selector appears - useful for apps that render late."
          },
          "scrollToLoad": {
            "title": "Scroll to trigger lazy loading",
            "type": "boolean",
            "description": "Step-scroll to the bottom before a full-page shot so lazy-loaded images actually render (the #1 cause of blank areas in other tools).",
            "default": true
          },
          "capturePageData": {
            "title": "Capture page metadata (free)",
            "type": "boolean",
            "description": "Also store the page title, meta description, og:image, canonical URL and language on the dataset item. No extra charge.",
            "default": true
          },
          "captureText": {
            "title": "Capture visible text (free)",
            "type": "boolean",
            "description": "Also store the page's visible text on the dataset item. No extra charge.",
            "default": false
          },
          "captureHtml": {
            "title": "Capture rendered HTML (free)",
            "type": "boolean",
            "description": "Also save the fully rendered HTML as a linked file. No extra charge.",
            "default": false
          },
          "timeoutSecs": {
            "title": "Per-page timeout (s)",
            "minimum": 5,
            "maximum": 300,
            "type": "integer",
            "description": "Give up on a page after this long (5–300). Failed pages cost nothing.",
            "default": 60
          },
          "concurrency": {
            "title": "Concurrency",
            "minimum": 1,
            "maximum": 5,
            "type": "integer",
            "description": "Pages captured in parallel (1–5).",
            "default": 3
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}