{
  "openapi": "3.0.1",
  "info": {
    "title": "Website Screenshot - Full Page and Lazy Content",
    "description": "Screenshot any public web page as PNG, JPEG or WebP. Loads lazy content before capturing, hides cookie banners and floating bars, lets you choose full page, first screen or an exact height, and never charges for a failed capture.",
    "version": "0.2",
    "x-build-id": "nY895ke54ngDIUn0t"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/jake_codes~website-screenshot/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-jake_codes-website-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/jake_codes~website-screenshot/runs": {
      "post": {
        "operationId": "runs-sync-jake_codes-website-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/jake_codes~website-screenshot/run-sync": {
      "post": {
        "operationId": "run-sync-jake_codes-website-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",
        "required": [
          "urls"
        ],
        "properties": {
          "urls": {
            "title": "Page URLs",
            "type": "array",
            "description": "One or more public web pages (up to 1,000 per run). 'example.com' works too.",
            "items": {
              "type": "string"
            }
          },
          "mode": {
            "title": "What to capture",
            "enum": [
              "fullPage",
              "viewport",
              "fixedHeight"
            ],
            "type": "string",
            "description": "Full page scrolls the page first so lazy-loaded images appear.",
            "default": "fullPage"
          },
          "height": {
            "title": "Height (px) for 'Exact height'",
            "minimum": 100,
            "maximum": 100000,
            "type": "integer",
            "description": "Used only with 'Exact height from the top'.",
            "default": 2000
          },
          "width": {
            "title": "Browser width (px)",
            "minimum": 320,
            "maximum": 3840,
            "type": "integer",
            "description": "Use 390 for a phone-width layout.",
            "default": 1280
          },
          "viewportHeight": {
            "title": "Browser height (px)",
            "minimum": 200,
            "maximum": 4000,
            "type": "integer",
            "description": "Height of the first screen.",
            "default": 800
          },
          "format": {
            "title": "Image format",
            "enum": [
              "png",
              "jpeg",
              "webp"
            ],
            "type": "string",
            "description": "JPEG and WebP are much smaller. Very tall pages fall back to PNG when the format cannot hold them.",
            "default": "png"
          },
          "quality": {
            "title": "JPEG / WebP quality",
            "minimum": 1,
            "maximum": 100,
            "type": "integer",
            "description": "Ignored for PNG.",
            "default": 80
          },
          "scale": {
            "title": "Pixel density",
            "minimum": 1,
            "maximum": 2,
            "type": "integer",
            "description": "2 gives a sharper, 'retina' image at twice the pixel size.",
            "default": 1
          },
          "maxHeight": {
            "title": "Maximum height (px)",
            "minimum": 1000,
            "maximum": 30000,
            "type": "integer",
            "description": "Taller pages are cut here and flagged as truncated.",
            "default": 30000
          },
          "loadLazyContent": {
            "title": "Load lazy content first",
            "type": "boolean",
            "description": "Scroll through the page once, wait for images, then return to the top before capturing.",
            "default": true
          },
          "delayMs": {
            "title": "Extra wait before capture (ms)",
            "minimum": 0,
            "maximum": 10000,
            "type": "integer",
            "description": "For pages that animate in after loading.",
            "default": 0
          },
          "darkMode": {
            "title": "Dark mode",
            "type": "boolean",
            "description": "Ask the page for its dark colour scheme.",
            "default": false
          },
          "waitUntil": {
            "title": "Consider the page loaded when",
            "enum": [
              "load",
              "domcontentloaded",
              "networkidle"
            ],
            "type": "string",
            "description": "If the page never gets there, it is captured anyway with a warning.",
            "default": "load"
          },
          "navigationTimeoutSecs": {
            "title": "Page load time limit (s)",
            "minimum": 5,
            "maximum": 60,
            "type": "integer",
            "description": "A page that has started rendering is still captured when this runs out.",
            "default": 30
          },
          "scrollBudgetSecs": {
            "title": "Scrolling time limit (s)",
            "minimum": 1,
            "maximum": 30,
            "type": "integer",
            "description": "Upper bound for the lazy-content scroll, so endless pages cannot stall a run.",
            "default": 12
          },
          "concurrency": {
            "title": "Pages in parallel",
            "minimum": 1,
            "maximum": 3,
            "type": "integer",
            "description": "Pages captured at the same time (1-3). More than 1 can cause timeouts on long pages at the default 2 GB memory.",
            "default": 1
          },
          "captureErrorPages": {
            "title": "Also capture error pages (HTTP 4xx/5xx)",
            "type": "boolean",
            "description": "Off: an error page counts as a failed capture (and is never charged under pay-per-event pricing).",
            "default": false
          },
          "ignoreHttpsErrors": {
            "title": "Ignore HTTPS certificate errors",
            "type": "boolean",
            "description": "For sites with expired or self-signed certificates.",
            "default": false
          },
          "hideCookieBanners": {
            "title": "Hide cookie banners",
            "type": "boolean",
            "description": "Hides banners from common consent tools and banners that name themselves 'cookie-banner/consent/notice'. Nothing is clicked or accepted. Can hide real content that uses the same names.",
            "default": false
          },
          "fixedElements": {
            "title": "Floating bars and widgets",
            "enum": [
              "keep",
              "smart",
              "hide"
            ],
            "type": "string",
            "description": "Floating elements are always shown in the first screen only, where a visitor sees them. The hiding options remove them entirely.",
            "default": "keep"
          },
          "hideSelectors": {
            "title": "Also hide these elements (CSS selectors)",
            "type": "array",
            "description": "Optional, e.g. #newsletter-popup",
            "items": {
              "type": "string"
            }
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}