{
  "openapi": "3.0.1",
  "info": {
    "title": "Complete Page Capture - Screenshot & PDF",
    "description": "Capture complete full-page screenshots or PDFs of any URL list. Scrolls lazy content, waits for images and fonts, removes fixed headers and consent overlays, emulates real devices, and reports blocks and truncation instead of returning a broken image.",
    "version": "1.0",
    "x-build-id": "ugu5kWKeaoli71PqF"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/nimbryxo-studio~full-page-website-screenshot-and-pdf-capture/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-nimbryxo-studio-full-page-website-screenshot-and-pdf-capture",
        "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/nimbryxo-studio~full-page-website-screenshot-and-pdf-capture/runs": {
      "post": {
        "operationId": "runs-sync-nimbryxo-studio-full-page-website-screenshot-and-pdf-capture",
        "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/nimbryxo-studio~full-page-website-screenshot-and-pdf-capture/run-sync": {
      "post": {
        "operationId": "run-sync-nimbryxo-studio-full-page-website-screenshot-and-pdf-capture",
        "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": "URLs to capture",
            "type": "array",
            "description": "Web pages to capture. Each item can be a URL object or a plain URL string. Bare domains such as example.com are accepted and use https.",
            "items": {
              "type": "object",
              "required": [
                "url"
              ],
              "properties": {
                "url": {
                  "type": "string",
                  "title": "URL of a web page",
                  "format": "uri"
                }
              }
            }
          },
          "format": {
            "title": "Output format",
            "enum": [
              "png",
              "jpeg",
              "webp",
              "pdf"
            ],
            "type": "string",
            "description": "PNG is lossless, JPEG and WebP are smaller, PDF produces a printable document. WebP conversion uses Pillow after the browser capture.",
            "default": "png"
          },
          "quality": {
            "title": "Image quality",
            "minimum": 1,
            "maximum": 100,
            "type": "integer",
            "description": "Quality for JPEG and WebP output (1-100). Ignored for PNG and PDF.",
            "default": 85
          },
          "fullPage": {
            "title": "Capture the whole page",
            "type": "boolean",
            "description": "Capture the full scrollable page. Turn off to capture only the visible viewport. A selector overrides this option.",
            "default": true
          },
          "selector": {
            "title": "Capture one element",
            "type": "string",
            "description": "Optional CSS selector. When set, captures only that element and ignores fullPage. Example: main, #pricing, article."
          },
          "device": {
            "title": "Device",
            "enum": [
              "custom",
              "desktop",
              "desktop_hd",
              "laptop",
              "tablet",
              "ipad",
              "iphone_15",
              "iphone_se",
              "pixel_8",
              "galaxy_s23"
            ],
            "type": "string",
            "description": "Device preset. Custom uses the viewport width, height and scale factor below. Presets emulate a real mobile or desktop browser.",
            "default": "custom"
          },
          "viewportWidth": {
            "title": "Viewport width",
            "minimum": 100,
            "maximum": 3840,
            "type": "integer",
            "description": "Browser viewport width in pixels when Device is Custom.",
            "default": 1280
          },
          "viewportHeight": {
            "title": "Viewport height",
            "minimum": 100,
            "maximum": 4320,
            "type": "integer",
            "description": "Browser viewport height in pixels when Device is Custom.",
            "default": 1080
          },
          "deviceScaleFactor": {
            "title": "Device scale factor",
            "minimum": 1,
            "maximum": 3,
            "type": "integer",
            "description": "Pixel density for Device=Custom: 1 is standard, 2 is retina, 3 is high-DPI mobile. Device presets use their own scale factor.",
            "default": 1
          },
          "colorScheme": {
            "title": "Color scheme",
            "enum": [
              "no-preference",
              "light",
              "dark"
            ],
            "type": "string",
            "description": "Request the site's light or dark theme through prefers-color-scheme where the site supports it.",
            "default": "no-preference"
          },
          "locale": {
            "title": "Browser language",
            "enum": [
              "en-US",
              "en-GB",
              "de-DE",
              "fr-FR",
              "es-ES",
              "it-IT",
              "pt-BR",
              "nl-NL",
              "pl-PL",
              "ru-RU",
              "tr-TR",
              "ar-SA",
              "hi-IN",
              "ja-JP",
              "zh-CN",
              "ko-KR"
            ],
            "type": "string",
            "description": "Locale used for navigator.language and localized pages.",
            "default": "en-US"
          },
          "waitUntil": {
            "title": "Wait until",
            "enum": [
              "load",
              "domcontentloaded",
              "networkidle",
              "commit"
            ],
            "type": "string",
            "description": "Navigation readiness. DOM content loaded is the fastest reliable default; network idle can stall on analytics-heavy sites.",
            "default": "load"
          },
          "waitForSelector": {
            "title": "Wait for element",
            "type": "string",
            "description": "Optional CSS selector to wait for before capture. Useful for single-page apps. Fails the URL if the element never becomes visible."
          },
          "waitForImages": {
            "title": "Wait for images",
            "type": "boolean",
            "description": "Wait up to 5 seconds for images to finish loading after scrolling. Incomplete images are reported in warnings.",
            "default": true
          },
          "waitForFonts": {
            "title": "Wait for fonts",
            "type": "boolean",
            "description": "Wait up to 5 seconds for web fonts to finish loading.",
            "default": true
          },
          "delay": {
            "title": "Extra delay after load",
            "minimum": 0,
            "maximum": 600000,
            "type": "integer",
            "description": "Additional milliseconds to wait after navigation before scrolling or capturing.",
            "default": 0
          },
          "scrollToBottom": {
            "title": "Scroll to load lazy content",
            "type": "boolean",
            "description": "Scroll through the page in steps to trigger lazy images, infinite-scroll widgets and content-visibility sections before capture.",
            "default": true
          },
          "maxScrollSteps": {
            "title": "Maximum scroll steps",
            "minimum": 1,
            "maximum": 1000,
            "type": "integer",
            "description": "Stop after this many scroll steps. Prevents infinite-scroll pages from running forever. A cap hit sets truncated=true in the record.",
            "default": 400
          },
          "scrollStepPx": {
            "title": "Scroll step",
            "minimum": 100,
            "maximum": 2000,
            "type": "integer",
            "description": "Pixels to scroll per step. Smaller steps trigger more IntersectionObserver content but take longer.",
            "default": 250
          },
          "delayAfterScrolling": {
            "title": "Delay after scrolling",
            "minimum": 0,
            "maximum": 600000,
            "type": "integer",
            "description": "Milliseconds to wait after scrolling and before capture. Only used when scrolling is enabled.",
            "default": 1000
          },
          "waitUntilNetworkIdleAfterScroll": {
            "title": "Wait for network idle after scrolling",
            "type": "boolean",
            "description": "After scrolling, wait until the network is idle before capture. Uses the timeout below.",
            "default": false
          },
          "waitUntilNetworkIdleAfterScrollTimeout": {
            "title": "Network idle timeout",
            "minimum": 1000,
            "maximum": 120000,
            "type": "integer",
            "description": "Maximum milliseconds to wait for network idle after scrolling.",
            "default": 15000
          },
          "hideFixedElements": {
            "title": "Hide fixed headers and overlays",
            "type": "boolean",
            "description": "Hide real fixed headers, full-screen overlays and chat widgets before capture. Sticky content blocks are left in place. Default off because resetting to the top already prevents repeated headers on most pages.",
            "default": false
          },
          "cookieBannerAction": {
            "title": "Consent banners",
            "enum": [
              "hide",
              "accept",
              "off"
            ],
            "type": "string",
            "description": "Hide common cookie and consent overlays, click Accept first, or leave them untouched.",
            "default": "hide"
          },
          "selectorsToHide": {
            "title": "Additional CSS selectors to hide",
            "type": "string",
            "description": "Comma or newline separated CSS selectors for extra elements to hide before capture. Example: .newsletter-popup, #chat-widget"
          },
          "pdfPageSize": {
            "title": "PDF page size",
            "enum": [
              "web",
              "a4",
              "letter",
              "legal",
              "a3",
              "a5",
              "tabloid"
            ],
            "type": "string",
            "description": "Paper size for PDF output. Web page width preserves the previous 1280 px wide / Letter-height behavior.",
            "default": "web"
          },
          "pdfLandscape": {
            "title": "Landscape PDF",
            "type": "boolean",
            "description": "Use landscape orientation for PDF pages.",
            "default": false
          },
          "pdfPrintBackground": {
            "title": "Print backgrounds",
            "type": "boolean",
            "description": "Include CSS backgrounds, colors and images in the PDF.",
            "default": true
          },
          "pdfFitOnePage": {
            "title": "Fit the whole page on one PDF page",
            "type": "boolean",
            "description": "Create one tall PDF page instead of paginated paper. Overrides the paper height but keeps the selected margins.",
            "default": false
          },
          "pdfMargin": {
            "title": "PDF margin",
            "enum": [
              "none",
              "narrow",
              "normal",
              "wide"
            ],
            "type": "string",
            "description": "Page margins for PDF output.",
            "default": "none"
          },
          "maxConcurrency": {
            "title": "Concurrent URLs",
            "minimum": 1,
            "maximum": 5,
            "type": "integer",
            "description": "How many URLs to capture in parallel. Keep at 1 for long pages at 2048 MB; higher values need more memory.",
            "default": 1
          },
          "maxRetries": {
            "title": "Retries per URL",
            "minimum": 0,
            "maximum": 5,
            "type": "integer",
            "description": "Retry transient navigation failures and block pages. Retries use the AUTO datacenter proxy when no user proxy is configured.",
            "default": 1
          },
          "navigationTimeoutSecs": {
            "title": "Navigation timeout",
            "minimum": 5,
            "maximum": 300,
            "type": "integer",
            "description": "Maximum seconds to wait for navigation and selector readiness per URL.",
            "default": 60
          },
          "maxPageHeight": {
            "title": "Maximum page height",
            "minimum": 0,
            "maximum": 200000,
            "type": "integer",
            "description": "Clip full-page images at this CSS height. 0 means unlimited. PDFs keep their full document height and ignore this limit. Truncation is reported in the record.",
            "default": 0
          },
          "proxyConfiguration": {
            "title": "Proxy configuration",
            "type": "object",
            "description": "Optional proxy override. The actor starts direct and uses an Apify AUTO datacenter proxy only after a real block when this is empty. Residential is never selected automatically."
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}