{
  "openapi": "3.0.1",
  "info": {
    "title": "Website Screenshot – Full Page, Fast, Pay Only on Success",
    "description": "Website screenshots of the full page or just above the fold, as PNG, JPEG, WebP or PDF. Sticky headers frozen, cookie banners hidden, lazy images loaded. Monitors pages for visual and text changes. Captures every page of a site from its sitemap. Live screenshot API. Charged only on success.",
    "version": "0.3",
    "x-build-id": "BqjnWoaurNT8v6pKm"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/gratified_ashram~fast-screenshot/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-gratified_ashram-fast-screenshot",
        "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/gratified_ashram~fast-screenshot/runs": {
      "post": {
        "operationId": "runs-sync-gratified_ashram-fast-screenshot",
        "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/gratified_ashram~fast-screenshot/run-sync": {
      "post": {
        "operationId": "run-sync-gratified_ashram-fast-screenshot",
        "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": "One or more page URLs to capture.",
            "items": {
              "type": "string"
            }
          },
          "sitemapUrls": {
            "title": "Sitemap URLs or site roots",
            "type": "array",
            "description": "Capture every page of a site: give sitemap.xml URLs (sitemap indexes and .gz are handled) or just a site root like https://example.com and the sitemap is discovered via robots.txt. Adds to URLs above.",
            "items": {
              "type": "string"
            }
          },
          "maxUrlsFromSitemap": {
            "title": "Max pages from sitemaps",
            "minimum": 1,
            "maximum": 5000,
            "type": "integer",
            "description": "Cost cap for sitemap expansion.",
            "default": 200
          },
          "format": {
            "title": "Output format",
            "enum": [
              "png",
              "jpeg",
              "webp",
              "pdf"
            ],
            "type": "string",
            "description": "PNG for quality, JPEG/WebP for smaller files, PDF for print-style output.",
            "default": "png"
          },
          "fullPage": {
            "title": "Full page",
            "type": "boolean",
            "description": "Capture the entire scrollable page, not just what fits above the fold.",
            "default": true
          },
          "maxPageHeight": {
            "title": "Maximum capture height (px)",
            "minimum": 0,
            "maximum": 100000,
            "type": "integer",
            "description": "Safety cap for extremely long pages, about 22 screens by default. Image encoding time grows with pixel count, so an unbounded capture of a very long article can take minutes. Set to 0 for no limit apart from the renderer's own: Chromium cannot produce a correct image taller than 16,384 device pixels (8,192 CSS px at scale 2), so captures stop there and the row says clipReason: renderer-limit. Output reports capturedHeight and clipped so you always know whether the image is the whole page.",
            "default": 20000
          },
          "viewportWidth": {
            "title": "Viewport width (px)",
            "minimum": 320,
            "maximum": 3840,
            "type": "integer",
            "description": "Browser window width. 1440 matches a typical desktop; use 390 for a phone-sized layout.",
            "default": 1440
          },
          "viewportHeight": {
            "title": "Viewport height (px)",
            "minimum": 240,
            "maximum": 2160,
            "type": "integer",
            "description": "Browser window height. Ignored when Full page is on, except to decide how much loads first.",
            "default": 900
          },
          "deviceScaleFactor": {
            "title": "Device scale factor",
            "minimum": 1,
            "maximum": 3,
            "type": "integer",
            "description": "Set to 2 for retina-resolution output.",
            "default": 1
          },
          "hideCookieBanners": {
            "title": "Hide cookie banners",
            "type": "boolean",
            "description": "Hides common consent notices so they do not cover the page. Banners are hidden, never accepted — no consent is given on your behalf.",
            "default": true
          },
          "freezeStickyElements": {
            "title": "Freeze sticky headers",
            "type": "boolean",
            "description": "Stops fixed navigation bars from being repeated down a full-page screenshot.",
            "default": true
          },
          "scrollToLoadLazyImages": {
            "title": "Scroll to load lazy images",
            "type": "boolean",
            "description": "Scrolls the page before capturing so lazy-loaded images are rendered.",
            "default": true
          },
          "compareWithPrevious": {
            "title": "Detect changes since last run",
            "type": "boolean",
            "description": "Compares each screenshot with the previous capture of the same URL (kept in a key-value store named fast-screenshot-history) and reports changed, changePercent and previousImageUrl. Schedule the run to monitor pages for visual changes. No extra charge.",
            "default": false
          },
          "compareText": {
            "title": "Report what text changed",
            "type": "boolean",
            "description": "Also diff the page's visible text against the previous capture and report addedText / removedText lines, textChanged and textChangePercent. Tells you what moved (a price, a headline, stock status) instead of only that pixels moved. Uses the same history store. No extra charge.",
            "default": false
          },
          "hideSelectors": {
            "title": "Extra CSS selectors to hide",
            "type": "array",
            "description": "Additional elements to remove before capture, e.g. chat widgets.",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "waitForSelector": {
            "title": "Wait for selector",
            "type": "string",
            "description": "Optional CSS selector to wait for before capturing."
          },
          "waitUntil": {
            "title": "Wait until",
            "enum": [
              "domcontentloaded",
              "load",
              "networkidle"
            ],
            "type": "string",
            "description": "How long to wait before capturing. Load event suits most sites; Network idle is safest for heavy single-page apps but slower.",
            "default": "load"
          },
          "delayMs": {
            "title": "Extra delay (ms)",
            "minimum": 0,
            "maximum": 15000,
            "type": "integer",
            "description": "Additional wait after the page settles, for animations.",
            "default": 0
          },
          "timeoutSecs": {
            "title": "Timeout per page (seconds)",
            "minimum": 5,
            "maximum": 180,
            "type": "integer",
            "description": "Hard limit for the whole page, not per step. The page fails fast instead of hanging, and failures are never charged. Very long pages (a full Wikipedia article) need 45s or more when Full page is on.",
            "default": 60
          },
          "blockResources": {
            "title": "Block trackers",
            "type": "boolean",
            "description": "Skips analytics and tracking scripts, plus video and audio, to speed up capture. Images and web fonts are always loaded so the screenshot matches the real page.",
            "default": true
          },
          "jpegQuality": {
            "title": "JPEG/WebP quality",
            "minimum": 10,
            "maximum": 100,
            "type": "integer",
            "description": "Compression quality from 10 to 100. Only applies to JPEG and WebP output. 85 is a good size-to-quality balance.",
            "default": 85
          },
          "colorScheme": {
            "title": "Color scheme",
            "enum": [
              "light",
              "dark"
            ],
            "type": "string",
            "description": "Renders the page as a visitor with a light or dark system theme would see it.",
            "default": "light"
          },
          "concurrency": {
            "title": "Parallel pages",
            "minimum": 1,
            "maximum": 10,
            "type": "integer",
            "description": "How many pages to capture at the same time. Higher is faster for long URL lists; lower is gentler on the target site.",
            "default": 4
          },
          "proxyConfiguration": {
            "title": "Proxy",
            "type": "object",
            "description": "Optional. Useful for geo-specific rendering."
          }
        }
      },
      "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
                  }
                }
              },
              "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}