# ChangeWatch (`zixby/changewatch`) Actor

Semantic change detection for webpages and text. Compare two versions, ignore cosmetic noise, and return a structured JSON report of meaningful changes such as pricing, availability, deadlines, requirements, policies, specifications, and status.

- **URL**: https://apify.com/zixby/changewatch.md
- **Developed by:** [Zac Blank](https://apify.com/zixby) (community)
- **Categories:**
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 1 bookmarks
- **User rating**: No ratings yet

## Pricing

$30.00 / 1,000 semantic comparisons

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.

Learn more: https://docs.apify.com/actors/running/actors-in-store.md#pay-per-event

## What's an Apify Actor?

Actors are web data automations that power AI and operations. They run on the Apify platform to scrape websites, process data, connect APIs, and automate workflows.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.
Actors are written with capital "A".

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.
The best way to integrate Actors is as follows.

- **AI agents and MCP clients** — the [Apify MCP server](https://docs.apify.com/integrations/mcp.md) at `https://mcp.apify.com` (remote, streamable HTTP, OAuth on first use).
- **Agentic workflows and local Actor development** — [Agent Skills](https://apify.com/.well-known/agent-skills/index.json) with the [Apify CLI](https://docs.apify.com/cli/docs.md): `npm install -g apify-cli`, then `apify login`.
- **JavaScript/TypeScript projects** — the official [JS/TS client](https://docs.apify.com/api/client/js/docs.md): `npm install apify-client`.
- **Python projects** — the official [Python client](https://docs.apify.com/api/client/python/docs.md): `pip install apify-client`.
- **Any other language** — the [REST API](https://docs.apify.com/api/v2.md).

For usage examples, see the [API](#api) section below.

For more details, see Apify documentation as [Markdown index](https://docs.apify.com/llms.txt) and [Markdown full-text](https://docs.apify.com/llms-full.txt).

# README

## ChangeWatch — Semantic Change Detector

ChangeWatch compares two versions of webpage or text content and tells you **what actually changed in meaning**.

Instead of returning a noisy line-by-line diff, ChangeWatch uses AI to identify changes that could affect a decision, workflow, customer, business, or software agent.

It returns a clean structured JSON report that can be used directly in automations, monitoring workflows, AI agents, data pipelines, and other applications.

### What ChangeWatch detects

ChangeWatch is designed to identify meaningful changes such as:

- Prices, fees, and costs
- Availability and inventory
- Dates, deadlines, and schedules
- Requirements and eligibility rules
- Policies and obligations
- Product or service specifications
- Quantities, limits, and thresholds
- Status changes
- Important added or removed statements

It attempts to ignore changes that do not materially affect meaning, including formatting, whitespace, navigation changes, tracking IDs, boilerplate, and reordered content.

### How to use it

Provide an **older version** and a **newer version**.

Each version can be supplied as either:

- Pasted text
- A public webpage URL

You can also provide optional guidance in the **What changes matter?** field to focus the comparison on something specific, such as pricing, inventory, deadlines, policy language, or technical specifications.

ChangeWatch will return fields including:

- `changed`
- `importance`
- `summary`
- `changes`
- `recommended_action`
- `confidence`

Each individual change can include the previous value, new value, importance, change type, and an explanation of why it matters.

### Example

Older version:

> Pro plan costs $19 per month and includes 10 projects.

Newer version:

> Pro plan costs $29 per month and includes unlimited projects.

ChangeWatch can identify both the price increase and the change from a 10-project limit to unlimited projects instead of simply reporting that the sentences are different.

### Built for automation

ChangeWatch produces structured JSON, making it useful for:

- AI agents
- Competitive monitoring
- Pricing intelligence
- Compliance monitoring
- Product monitoring
- Procurement workflows
- Policy tracking
- Automated alerts
- Research pipelines

If the two normalized inputs are identical, ChangeWatch skips the AI analysis and immediately returns that no meaningful change occurred.

### Important limitation

ChangeWatch currently compares **two versions supplied by the caller**. It does not yet maintain historical webpage snapshots itself.

For recurring monitoring, your workflow should save the previous version or snapshot and provide it again with the newest version on the next run.

### Output

One successful comparison produces one dataset item containing the semantic change report and metadata about the comparison.

# Actor input Schema

## `previousText` (type: `string`):

Paste the older version here, or leave blank and use Older URL.

## `previousUrl` (type: `string`):

URL containing the older version. Use only if Older text is blank.

## `currentText` (type: `string`):

Paste the newer version here, or leave blank and use Newer URL.

## `currentUrl` (type: `string`):

URL containing the newer version. Use only if Newer text is blank.

## `focus` (type: `string`):

Optional guidance such as pricing, inventory, policy language, deadlines, or product specifications.

## Actor input object example

```json
{
  "previousText": "ChangeWatch health check.",
  "currentText": "ChangeWatch health check.",
  "focus": "Identify changes that would matter to a person or software agent relying on this content."
}
```

# Actor output Schema

## `results` (type: `string`):

No description

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {};

// Run the Actor and wait for it to finish
const run = await client.actor("zixby/changewatch").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = {}

# Run the Actor and wait for it to finish
run = client.actor("zixby/changewatch").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print(f"💾 Check your data here: https://console.apify.com/storage/datasets/{run.default_dataset_id}")
for item in client.dataset(run.default_dataset_id).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{}' |
apify call zixby/changewatch --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,zixby/changewatch"
        }
    }
}

```

The hosted server signs you in with OAuth on first connect, so no API token belongs in this config. Clients without OAuth support can send an `Authorization: Bearer <APIFY_API_TOKEN>` header instead, using a token from API & Integrations in Apify Console (https://console.apify.com/settings/integrations).

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/Cl0yfMVhA0cVV6qL4/builds/FZ2EE2cKb1ImJ0wsH/openapi.json
