{
  "openapi": "3.0.1",
  "info": {
    "title": "Web Content Scraper",
    "description": "Scrape web pages effortlessly with undetected browser technology. Extract HTML, markdown, JavaScript results, and cookies from any URL. Features configurable timeouts, proxy support, and retry logic — ideal for content aggregation, data extraction, and automated workflows without detection.",
    "version": "0.0",
    "x-build-id": "gSbSy5sFcPwrq3YMU"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/stealth_mode~web-content-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-stealth_mode-web-content-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/stealth_mode~web-content-scraper/runs": {
      "post": {
        "operationId": "runs-sync-stealth_mode-web-content-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/stealth_mode~web-content-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-stealth_mode-web-content-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 of the web pages to scrape",
            "type": "array",
            "description": "Add the URLs of the web pages you want to scrape. You can paste URLs one by one, or use the Bulk edit section to add a prepared list.",
            "items": {
              "type": "string"
            }
          },
          "wait_element": {
            "title": "Wait for an element before running JS (Timeout in 5s)",
            "type": "boolean",
            "description": "Wait until the element matching the selector below is displayed before running the JS script. Requires 'Element selector'.",
            "default": false
          },
          "element_selector": {
            "title": "Element selector",
            "type": "string",
            "description": "CSS selector of the element to wait for: an id (#main-content) or a class (.article-body). Required when 'Wait for an element' is enabled."
          },
          "init_js_script": {
            "title": "Init JS script (run before navigating to URL)",
            "type": "string",
            "description": "JS script that runs before the browser navigates to the URL, and before any of the page's own scripts. Useful for overriding browser properties, injecting helpers, or setting up hooks. It does not have access to the page DOM yet, and its return value is not collected. To run code after the page has loaded and get a result, use 'JS script you want to run' instead."
          },
          "js_script": {
            "title": "JS script you want to run",
            "type": "string",
            "description": "Add the JS script you want to run and get the result."
          },
          "js_timeout": {
            "title": "Timeout on JS script run",
            "type": "integer",
            "description": "Timeout on JS script run, in seconds."
          },
          "cookies": {
            "title": "Cookies",
            "type": "array",
            "description": "Cookies to set before loading the page. A list of cookie objects with fields: name, value, domain, path, expires (null for a session cookie). Example: [{\"name\": \"cna\", \"value\": \"abc123\", \"domain\": \".example.com\", \"path\": \"/\", \"expires\": null}]"
          },
          "get_js_result": {
            "title": "Get JS result",
            "type": "boolean",
            "description": "Return the result of the JS script in the output.",
            "default": true
          },
          "get_html": {
            "title": "Get HTML",
            "type": "boolean",
            "description": "Return the page HTML after it has loaded.",
            "default": true
          },
          "get_content": {
            "title": "Get content",
            "type": "boolean",
            "description": "Return the main content extracted from the page (text/markdown), without navigation, ads and other boilerplate.",
            "default": false
          },
          "get_cookies": {
            "title": "Get cookies",
            "type": "boolean",
            "description": "Return the cookies of the page after it has loaded.",
            "default": false
          },
          "max_retries_per_url": {
            "title": "Limit the number of retries for each URL",
            "type": "integer",
            "description": "Limit the number of retries for each URL if an error occurs during the data scraping process."
          },
          "ignore_url_failures": {
            "title": "Continue running even if some URLs fail to be scraped",
            "type": "boolean",
            "description": "If true, the scraper will continue running even if some URLs fail to be scraped."
          },
          "proxy": {
            "title": "Proxy configuration",
            "type": "object",
            "description": "Select proxies to be used by your scraper."
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}