API Change Monitor
Last updated November 1, 2026
Watch the APIs you depend on and get only what changed since your last run: new changelog entries tagged as deprecations or breaking changes, sunset dates, status incidents, OpenAPI operations added, removed, or deprecated, and Sunset or Deprecation headers. 14 vendor presets or any URL.
Features
- One row per change. A source where nothing moved returns a free no change row.
- Deprecation, sunset, and breaking change wording flagged on every changelog entry.
- 14 vendor presets, or any changelog page, feed, Statuspage site, or OpenAPI JSON.
- OpenAPI operations added, removed, or deprecated, and Sunset or Deprecation headers.
- Pay per event: Change row at $0.0035.
- Pay per event: Source check at $0.003.
- Pay per event: Snapshot row at $0.001.
Input
vendorsarrayoptionalAPI vendors to watch, one per line. Each expands to the public sources read for it: changelog, deprecation page, status history, and OpenAPI document where one is published. Available: github, stripe, shopify, hubspot, openai, anthropic, google-ads, twilio, slack, notion, atlassian, cloudflare, vercel, plaid.
sourcesarrayoptionalAny other public URLs to watch, one per line: a changelog or release notes page, an RSS or Atom feed, a deprecation or sunset dates page, a Statuspage site or its history.rss feed, or an OpenAPI or Swagger JSON document. The kind is detected from what the URL returns.
endpoint_urlsarrayoptionalAPI endpoints to call without credentials, one per line. The response headers are read for Sunset (RFC 8594), Deprecation (RFC 9745), and Link relations deprecation, sunset, and successor-version. Only GET requests are sent.
watcharrayoptionalFor vendor presets, any of: changelog, deprecations, status, headers, openapi. Empty means changelog, deprecations, status, and headers. openapi reads the vendor's OpenAPI document (up to 14 MB) and reports operations added, removed, or deprecated. Without changelog, changelog sources return only deprecations and breaking changes. URLs you list in Source URLs are always read.
keywordsarrayoptionalReturn only change rows whose title, summary, categories, or operation contains one of these words. Every change still updates the saved state.
only_deprecations_and_breakingstringoptionaltrue to return only change rows tagged as a deprecation or breaking change, OpenAPI operations removed or deprecated, and header changes. Incidents and plain changelog entries are left out.
max_changes_per_sourcestringoptionalChange rows returned per source per run, 1 to 1000. The rest are counted in changes_found.
include_snapshotstringoptionaltrue to also return the current entries, incidents, or operations of a source on its first check, up to Max change rows per source. Each snapshot row is billed as a snapshot row.
state_keystringoptionalNames the saved state, so separate schedules keep separate baselines. Runs with the same state key and source compare against each other.
reset_statestringoptionaltrue to ignore the saved state and record a new baseline for every source.
max_charge_usdstringoptionalOptional. The run stops before it would charge more than this.
proxy_modestringoptionalHow sources are fetched.
Output schema
{
"row_type": "string",
"input_key": "string",
"vendor": "string",
"source_label": "string",
"source_url": "string",
"source_kind": "string",
"change_type": "string",
"title": "string",
"entry_url": "string",
"entry_date": "string",
"summary": "string",
"categories": "string",
"is_deprecation": "boolean",
"is_breaking": "boolean",
"sunset_date": "string",
"incident_status": "string",
"operation": "string",
"old_value": "string",
"new_value": "string",
"header_sunset": "string",
"header_deprecation": "string",
"header_link": "string",
"entries_tracked": "integer",
"changes_found": "integer",
"previous_check_at": "string",
"row_status": "string",
"error_reason": "string",
"billable_events_json": "string",
"checked_at": "string"
}Pricing
| Event | Free plan price |
|---|---|
| Change row | $0.0035 |
| Source check | $0.003 |
| Snapshot row | $0.001 |
| Actor Start | $0.001 |
Pay per event on the Apify platform. Paid Apify plans pay less per event. No subscription, no seat license.
On the Apify free plan the actor stops at $1.50 of charges a month, about 429 change rows. Any paid Apify plan removes the cap.
Limits
- A change is only seen if it is still on the source when the actor runs. A changelog that lists only its newest 10 entries can drop an entry between two widely spaced runs.
- Changelog pages drawn by scripts after the page loads give no entries; use the vendor's feed when it has one.
- Deprecation and breaking change tags come from the wording of the entry. An entry that announces a removal in other words is a plain changelog_entry.
- Entries are matched by title on pages and by feed ID on feeds. A page entry whose title is edited reads as a new entry.
- OpenAPI documents are read as JSON; a YAML document returns a source_error asking for the JSON version.