Website Changes Detector avatar
Website Changes Detector

Pricing

Pay per usage

Go to Store
Website Changes Detector

Website Changes Detector

Developed by

Tri⟁angle

Tri⟁angle

Maintained by Apify

This actor uses Apify’s Website Content Crawler to track website changes by comparing new and previous crawl results, highlighting only relevant updates to save time and resources.

0.0 (0)

Pricing

Pay per usage

0

Total users

3

Monthly users

3

Runs succeeded

83%

Last modified

5 days ago

You can access the Website Changes Detector 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": "0.0",
"x-build-id": "uJcPTJxIobuOXXUm5"
},
"servers": [
{
"url": "https://api.apify.com/v2"
}
],
"paths": {
"/acts/tri_angle~website-changes-detector/run-sync-get-dataset-items": {
"post": {
"operationId": "run-sync-get-dataset-items-tri_angle-website-changes-detector",
"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/tri_angle~website-changes-detector/runs": {
"post": {
"operationId": "runs-sync-tri_angle-website-changes-detector",
"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/tri_angle~website-changes-detector/run-sync": {
"post": {
"operationId": "run-sync-tri_angle-website-changes-detector",
"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": [
"websiteContentDatasetMaxCount"
],
"properties": {
"wccInput": {
"title": "Website Content Crawler Input",
"type": "object",
"description": "All input properties for the Website Content Crawler should be here. See docs here: https://apify.com/apify/website-content-crawler#input"
},
"wccMemory": {
"title": "Memory",
"enum": [
"32768",
"16384",
"8192",
"4096",
"2048",
"1024",
"512"
],
"type": "string",
"description": "Amount of memory (RAM) allocated for the Website Content Crawler run in megabytes.",
"default": "4096"
},
"wccTimeout": {
"title": "Timeout",
"minimum": 2,
"type": "integer",
"description": "Timeout for the Website Content Crawler Actor run in seconds. Zero value means there is no timeout, and the Actor runs until completion, or maybe infinitely. Default is 360,000 seconds (100 hours).",
"default": 360000
},
"websiteContentDatasetNamePrefix": {
"title": "WCC Dataset Prefix",
"type": "string",
"description": "Prefix for naming the Website Content Crawler datasets (e.g., 'projectX-prod'). If empty, default prefix ('wcc-changes-detector') will be used."
},
"includePreviousRunUrls": {
"title": "Include URLs From Previous Website Content Crawler Run",
"type": "boolean",
"description": "If checked, all URLs successfully crawled in the most recent (previous) dataset (with the same prefix) will be added to the start URLs for the new WCC crawl, alongside any URLs provided in the 'Website Content Crawler Input'. This effectively re-crawls pages found last time.",
"default": false
},
"filterKeywords": {
"title": "Filter by Keywords",
"type": "array",
"description": "Only include pages whose text content contains at least one of these keywords. Leave empty to disable keyword filtering.",
"default": [],
"items": {
"type": "string"
}
},
"skipCrawl": {
"title": "Skip Crawling",
"type": "boolean",
"description": "If checked, do not run a new WCC crawl. Compare the two most recent existing datasets with the specified prefix.",
"default": false
},
"websiteContentDatasetMaxCount": {
"title": "Max WCC Datasets to Keep",
"minimum": 2,
"maximum": 1000,
"type": "integer",
"description": "Maximum number of historical WCC datasets with this prefix to retain. Older ones will be deleted. Minimum is 2. Maximum is 1000.",
"default": 5
},
"returnChangeTypes": {
"title": "Change Item Types to Return (NEW, UPDATED, REMOVED, SAME)",
"type": "array",
"description": "Select the types of changes to return. If none are selected, 'NEW' and 'UPDATED' will be returned.",
"items": {
"type": "string",
"enum": [
"NEW",
"REMOVED",
"UPDATED",
"SAME"
]
},
"default": [
"NEW",
"UPDATED"
]
}
}
},
"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
}
}
}
}
}
}
}
}
}
}

Website Changes Detector OpenAPI definition

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 Changes Detector 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: