{
  "openapi": "3.0.1",
  "info": {
    "title": "Website Screenshot API: Full Page, Mobile, Element & PDF",
    "description": "Capture full-page website screenshots and PDFs of any URL at desktop, tablet and phone sizes, from Console or the API. Cookie banners hidden, ads blocked, lazy content loaded. From $2.50 per 1,000; failed and blocked pages are free.",
    "version": "0.1",
    "x-build-id": "lAtAMc6EdtVjc0Mn8"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/subtleasianmerch~website-screenshot-api/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-subtleasianmerch-website-screenshot-api",
        "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/subtleasianmerch~website-screenshot-api/runs": {
      "post": {
        "operationId": "runs-sync-subtleasianmerch-website-screenshot-api",
        "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/subtleasianmerch~website-screenshot-api/run-sync": {
      "post": {
        "operationId": "run-sync-subtleasianmerch-website-screenshot-api",
        "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": "Web pages",
            "minItems": 1,
            "maxItems": 10000,
            "type": "array",
            "description": "One URL per line. https:// is added when missing.",
            "items": {
              "type": "string"
            }
          },
          "devices": {
            "title": "Device sizes",
            "type": "array",
            "description": "One screenshot per page for each size you pick. Desktop is 1920×1080, laptop 1366×768, tablet an iPad Pro 11, mobile an iPhone 17 and Android a Pixel 9. Custom uses the width and height below.",
            "items": {
              "type": "string",
              "enum": [
                "desktop",
                "laptop",
                "tablet",
                "mobile",
                "android",
                "custom"
              ],
              "enumTitles": [
                "Desktop (1920×1080)",
                "Laptop (1366×768)",
                "Tablet (iPad Pro 11)",
                "Mobile (iPhone 17)",
                "Android (Pixel 9)",
                "Custom size"
              ]
            },
            "default": [
              "desktop"
            ]
          },
          "fullPage": {
            "title": "Full page",
            "type": "boolean",
            "description": "Capture the whole page from top to bottom. Turn off for just the visible screen.",
            "default": true
          },
          "format": {
            "title": "Output format",
            "enum": [
              "png",
              "jpeg",
              "pdf"
            ],
            "type": "string",
            "description": "PNG is sharpest, JPEG is smaller, PDF gives a document of the whole page.",
            "default": "png"
          },
          "selector": {
            "title": "Only this element (CSS selector)",
            "type": "string",
            "description": "Capture a single element instead of the page, for example #pricing or .hero. Leave empty for the whole page."
          },
          "jpegQuality": {
            "title": "JPEG quality",
            "minimum": 1,
            "maximum": 100,
            "type": "integer",
            "description": "1 to 100. Used only for JPEG.",
            "default": 80
          },
          "pixelRatio": {
            "title": "Pixel density",
            "enum": [
              "auto",
              "1",
              "2",
              "3"
            ],
            "type": "string",
            "description": "Automatic uses each device's own density: 1× on desktop, about 3× on phones (sharp but large files). Pick 1× for small files on any device, or 2× for sharp desktop (retina) images.",
            "default": "auto"
          },
          "colorScheme": {
            "title": "Colour scheme",
            "enum": [
              "light",
              "dark"
            ],
            "type": "string",
            "description": "Dark asks the page for its dark mode, on sites that have one.",
            "default": "light"
          },
          "hideCookieBanners": {
            "title": "Hide cookie banners",
            "type": "boolean",
            "description": "Hides common cookie-consent banners and unlocks scrolling they block. Nothing is clicked or accepted.",
            "default": true
          },
          "blockAds": {
            "title": "Block ads and trackers",
            "type": "boolean",
            "description": "Blocks requests to common ad, analytics and tracking services, for clean screenshots without ad slots or ad pop-ups. Turn off to see pages exactly as visitors do, ads included.",
            "default": true
          },
          "hideSelectors": {
            "title": "Also hide these elements",
            "type": "array",
            "description": "CSS selectors to hide before capture, such as chat widgets or pop-ups: #intercom-container, .newsletter-popup.",
            "items": {
              "type": "string"
            }
          },
          "scrollToLoad": {
            "title": "Scroll to load lazy content",
            "type": "boolean",
            "description": "Scrolls through the page first so lazy-loaded images and sections appear in full-page captures.",
            "default": true
          },
          "waitUntil": {
            "title": "Wait until",
            "enum": [
              "load",
              "domcontentloaded",
              "networkidle"
            ],
            "type": "string",
            "description": "When the page counts as loaded. \"Network quiet\" waits longer and suits pages that load data after opening.",
            "default": "load"
          },
          "waitForSelector": {
            "title": "Wait for element (CSS selector)",
            "type": "string",
            "description": "Wait until this element is visible before capturing, up to 15 seconds."
          },
          "delayMs": {
            "title": "Extra delay",
            "minimum": 0,
            "maximum": 60000,
            "type": "integer",
            "description": "Wait this long after loading, for animations or slow widgets.",
            "default": 0
          },
          "maxHeight": {
            "title": "Maximum page height",
            "minimum": 500,
            "maximum": 30000,
            "type": "integer",
            "description": "Full-page captures stop at this height, so endless pages don't produce enormous images. The output says when a page was cut.",
            "default": 15000
          },
          "viewportWidth": {
            "title": "Custom width",
            "minimum": 200,
            "maximum": 3840,
            "type": "integer",
            "description": "Used only with the Custom size device.",
            "default": 1440
          },
          "viewportHeight": {
            "title": "Custom height",
            "minimum": 200,
            "maximum": 4000,
            "type": "integer",
            "description": "Used only with the Custom size device.",
            "default": 900
          },
          "pdfPaper": {
            "title": "PDF paper size",
            "enum": [
              "A4",
              "Letter",
              "Legal",
              "A3"
            ],
            "type": "string",
            "description": "Used only for PDF output.",
            "default": "A4"
          },
          "captureErrorPages": {
            "title": "Capture error pages",
            "type": "boolean",
            "description": "By default, pages answering with an error (404, 500 and so on) are reported as failed and not charged. Turn on to capture and pay for them anyway.",
            "default": false
          },
          "navigationTimeoutSecs": {
            "title": "Page load timeout",
            "minimum": 5,
            "maximum": 180,
            "type": "integer",
            "description": "How long to wait for a page to start loading before retrying.",
            "default": 45
          },
          "maxRetries": {
            "title": "Retries",
            "minimum": 0,
            "maximum": 5,
            "type": "integer",
            "description": "Extra attempts for pages that time out, are busy (429/5xx) or show a bot check. Each retry uses a new proxy session when a proxy is set.",
            "default": 2
          },
          "maxConcurrency": {
            "title": "Pages at once",
            "minimum": 0,
            "maximum": 20,
            "type": "integer",
            "description": "0 picks the number from the run's memory: one page per GB, which was the cheapest setting measured on Apify.",
            "default": 0
          },
          "proxyConfiguration": {
            "title": "Proxy",
            "type": "object",
            "description": "Usually not needed. Use it for sites that block cloud servers. Apify's datacenter proxy (leave groups empty) and your own proxy URLs work. Residential, Unblocker and Google SERP proxies are not supported, because their traffic costs more than a screenshot.",
            "default": {
              "useApifyProxy": false
            }
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}