JSON API
Static, cacheable and predictable
Plain files on a CDN. Filter on the client, or let the MCP server do it.
curl -s https://adstackwatch.com/api/upcoming.json \
| jq '.changes[0]'Every record on this site is open JSON with a stable ID, dates and an official source URL. You don't need a key. It's built for scripts, dashboards and AI agents.
JSON API
Plain files on a CDN. Filter on the client, or let the MCP server do it.
curl -s https://adstackwatch.com/api/upcoming.json \
| jq '.changes[0]'OpenAPI
Typed schemas for changes, plans and price events: /openapi.json
curl -s https://adstackwatch.com/openapi.json \
| jq '.paths | keys'llms.txt
/llms.txt is the index. /llms-full.txt has every record as text.
Feeds
Structured data
Dataset, ItemList, TechArticle and WebPage JSON-LD.
Model Context Protocol
It's a single dependency-free Python file that reads the live JSON from this site. It works with Claude Desktop, Cursor and any MCP client.
curl -O https://adstackwatch.com/mcp/server.py
python3 server.py # stdio, Python 3.9+python3 server.py --http --port 8765
# POST JSON-RPC to http://127.0.0.1:8765/mcp{
"mcpServers": {
"adstack-watch": {
"command": "python3",
"args": ["/path/to/server.py"],
"env": { "ADSTACK_API_BASE": "https://adstackwatch.com" }
}
}
}| Tool | Arguments |
|---|---|
| search_changes | query, platform, category, since, until, upcoming_only, limit |
| get_upcoming_deprecations | days=90, platform, category, limit |
| get_change | id |
| list_platforms | — |
| get_tool_pricing | tool |
| get_price_history | tool, since, event |
| Resource | Path |
|---|---|
| Index | /api/index.json |
| All changes | /api/changes.json |
| Upcoming | /api/upcoming.json |
| Platforms | /api/platforms.json |
| Per platform | /api/changes/{platform}.json |
| One change | /api/change/{id}.json |
| Prices | /api/prices.json |
| Per tool | /api/prices/{tool_id}.json |
| Price history | /api/price-history.json |
| Source status | /api/sources.json |
| Digest | /api/newsletter/latest.json |
| OpenAPI 3.1 | /openapi.json |
| llms.txt | /llms.txt |
| llms-full.txt | /llms-full.txt |
| Atom / RSS | /feed.xml |
{
"id": "google-ads-0429d0dff8",
"platform": "google-ads",
"title": "Google Ads API v30 sunset (November 2028) (planned, tentative)",
"summary": "Google Ads API v30 is planned for release in October 2027; its list...",
"categories": [
"api_version_sunset"
],
"tags": [
"api-version",
"planned-version",
"tentative",
"v30"
],
"published_date": null,
"effective_date": "2028-11",
"effective_date_precision": "month",
"source_url": "https://developers.google.com/google-ads/api/docs/sunset-dates",
"source_name": "Google Ads API: Deprecation and sunset",
"fetched_at": "2026-10-17T03:44:00+00:00",
"api_version": "v30",
"version_status": "planned",
"release_date": "2027-10",
"tentative": true,
"optional_release": false,
"collector": "google-ads/sunset-dates",
"first_seen": "2026-10-17T01:05:46+00:00",
"changed_at": "2026-10-17T03:23:23+00:00",
"in_source": true,
"last_seen_in_source": "2026-10-17T03:44:00+00:00",
"upcoming": true,
"url": "https://adstackwatch.com/changes/google-ads-0429d0dff8/"
}
Please cite source_url when you relay a fact. The data is compiled from public, official sources and provided as-is. The compilation is licensed CC BY 4.0, and source text stays under its owners' terms. Planned Google Ads versions carry "tentative": true. Records no longer listed by their source keep their ID and carry "in_source": false.