Website Change Monitor
Pricing
Pay per usage
Website Change Monitor
Monitor websites for content changes. Full page, CSS selector, or text pattern matching. Diff summaries and alerts.
Website Change Monitor
Pricing
Pay per usage
Monitor websites for content changes. Full page, CSS selector, or text pattern matching. Diff summaries and alerts.
You can access the Website Change Monitor programmatically from your own applications by using the Apify API. You can also choose the language preference from below. To use the Apify API, you’ll need an Apify account and your API token, found in Integrations settings in Apify Console.
{ "openapi": "3.0.1", "info": { "version": "1.0", "x-build-id": "7qlfX8m7aebbwDFdH" }, "servers": [ { "url": "https://api.apify.com/v2" } ], "paths": { "/acts/optimus-fulcria~website-change-monitor/run-sync-get-dataset-items": { "post": { "operationId": "run-sync-get-dataset-items-optimus-fulcria-website-change-monitor", "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/optimus-fulcria~website-change-monitor/runs": { "post": { "operationId": "runs-sync-optimus-fulcria-website-change-monitor", "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/optimus-fulcria~website-change-monitor/run-sync": { "post": { "operationId": "run-sync-optimus-fulcria-website-change-monitor", "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 Monitor", "type": "array", "description": "List of URLs to check for changes. Can be strings or objects with 'url' key.", "items": { "type": "string" } }, "checkMode": { "title": "Check Mode", "enum": [ "full_page", "selector", "text_pattern" ], "type": "string", "description": "How to check for changes: full_page (entire visible text), selector (specific CSS selectors), or text_pattern (regex pattern matching).", "default": "full_page" }, "selectors": { "title": "CSS Selectors", "type": "array", "description": "CSS selectors to monitor (only used when checkMode is 'selector'). Example: '.price', '#main-content', 'h1'", "default": [], "items": { "type": "string" } }, "textPattern": { "title": "Text Pattern (Regex)", "type": "string", "description": "Regular expression to search for (only used when checkMode is 'text_pattern'). Example: 'Price: \\$[\\d,.]+'", "default": "" }, "ignoreWhitespace": { "title": "Ignore Whitespace Changes", "type": "boolean", "description": "Normalize whitespace before comparison to avoid false positives from formatting changes.", "default": true }, "ignoreCase": { "title": "Ignore Case Changes", "type": "boolean", "description": "Case-insensitive comparison.", "default": false }, "ignoreNumbers": { "title": "Ignore Number Changes", "type": "boolean", "description": "Strip all numbers before comparison (useful for ignoring timestamps, counters, etc.).", "default": false }, "screenshot": { "title": "Take Screenshot on Change", "type": "boolean", "description": "Capture a full-page screenshot when a change is detected.", "default": false }, "waitForSelector": { "title": "Wait For Selector", "type": "string", "description": "Wait for this CSS selector to appear before extracting content. Useful for JavaScript-rendered pages.", "default": "" }, "waitForTimeout": { "title": "Wait Timeout (ms)", "minimum": 0, "maximum": 30000, "type": "integer", "description": "Additional wait time in milliseconds after page load. Useful for lazy-loaded content.", "default": 0 }, "maxConcurrency": { "title": "Max Concurrency", "minimum": 1, "maximum": 20, "type": "integer", "description": "Maximum number of pages to check simultaneously.", "default": 5 }, "navigationTimeout": { "title": "Navigation Timeout (ms)", "minimum": 5000, "maximum": 120000, "type": "integer", "description": "Maximum time to wait for page navigation.", "default": 30000 }, "proxyConfiguration": { "title": "Proxy Configuration", "type": "object", "description": "Proxy settings for accessing websites." } } }, "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 } } } } } } } } }}OpenAPI is a standard for designing and describing RESTful APIs, allowing developers to define API structure, endpoints, and data formats in a machine-readable way. It simplifies API development, integration, and documentation.
OpenAPI is effective when used with AI agents and GPTs by standardizing how these systems interact with various APIs, for reliable integrations and efficient communication.
By defining machine-readable API specifications, OpenAPI allows AI models like GPTs to understand and use varied data sources, improving accuracy. This accelerates development, reduces errors, and provides context-aware responses, making OpenAPI a core component for AI applications.
You can download the OpenAPI definitions for Website Change Monitor from the options below:
If you’d like to learn more about how OpenAPI powers GPTs, read our blog post.
You can also check out our other API clients: