Developer docsPublic APINo auth required

Agent-readable changelog intelligence.

Version Watch exposes official release notes, changelogs, docs updates, and GitHub releases through JSON and Markdown routes that developers can use in agents, internal tools, Slack, Discord, CI, and automation workflows.

Base URLhttps://versionwatch.dev

GET /api/v1/updates?severity=high&limit=1

{
  "id": "openclaw-2026-04-25-openclaw-2026-4-24",
  "vendor": "OpenClaw",
  "vendor_slug": "openclaw",
  "title": "openclaw 2026.4.24",
  "published_at": "2026-04-25T19:39:08.000Z",
  "severity": "high",
  "signal_score": 58,
  "audience": ["backend", "ai"],
  "tags": ["api", "agents", "developer-workflow"],
  "summary": "One-sentence explanation of what changed.",
  "why_it_matters": "Clear operational impact for affected teams.",
  "recommended_action": "Review affected integration paths before upgrading.",
  "source_url": "https://...",
  "github_url": "https://...",
  "version_watch_url": "https://versionwatch.dev/events/..."
}

Overview

What the API lets developers build

The API is a read-only change intelligence layer backed by Convex snapshots. It does not replace vendor sources or scrape them on every request. It gives tools and agents a consistent way to discover what changed, who is affected, how urgent it is, what action should happen next, and whether the feed is currently healthy.

Monitor release notes in one place

Pull recent changelog, docs, blog, RSS, and GitHub release changes from one normalized public layer.

Rank what deserves attention

Use severity, signal score, audience, and stack tags to route only the updates that matter.

Power internal developer tools

Create dashboards, release checks, upgrade reports, weekly digests, and vendor-specific watch views.

Give agents reliable context

Let coding and ops agents fetch source-linked change intelligence before suggesting migrations or upgrades.

Freshness contract

Version Watch reads from Convex snapshots. It does not scrape vendors on each API request. When freshness matters, check /api/v1/status before treating results as operationally complete.

A 15-minute Convex scheduler fetches only sources that are due based on freshness tier, backoff, and source health. Paused and unsupported sources remain visible as coverage states, but they do not create active freshness debt.

healthy

The Convex-backed snapshot was refreshed within the expected window and active sources are clean.

degraded

The snapshot is recent, but one or more active sources failed, are stale, or refreshed partially.

stale

No acceptable refresh has completed inside the freshness window, so consumers should warn users.

Machine-readable surfaces

JSON API

Live

Best for apps, bots, dashboards, data pipelines, and scheduled workers.

Markdown feeds

Live

Best for agents, LLM context windows, team digests, and plain text automation.

agents.md and llms.txt

Live

Best for agent discovery and crawler-friendly resource mapping.

OpenAPI schema

Live

Best for OpenAPI-aware agents, custom tools, SDK generators, and contract tests.

Freshness status

Live

Best for checking whether the Convex-backed snapshot and individual vendor coverage are healthy, degraded, or stale before acting.

Version Watch skill

Live

Best for teaching agents when to use the API, how to filter, and how to cite sources.

RSS and generic webhooks

Next

Would support feed readers, automation tools, and push-based team notifications.

MCP server

Later

Useful after the public API proves the core data model and filters are valuable.

Endpoints

Public routes for JSON, Markdown, and agent discovery

Use JSON for applications and scheduled jobs. Use Markdown routes when an agent, LLM workflow, or human-readable digest needs plain text context.

GET/api/v1/updates

List updates

Latest platform changes with severity, audience, tags, source URLs, and recommended actions.

GET/api/v1/updates/[id]

Read one update

Fetch a single structured update by its public event slug.

GET/api/v1/vendors

List vendors

Tracked platforms and their official source surfaces.

GET/api/v1/status

Read API freshness

Current ingestion health, latest refresh time, source counts, and degraded or stale status.

GET/api/v1/status/vendors

Read vendor freshness

Per-vendor lifecycle, freshness tier, next due time, backoff, and queued refresh state.

GET/api/v1/status/vendors/[slug]

Read one vendor freshness

Freshness status for one tracked vendor slug.

GET/api/v1/taxonomy

Read filter taxonomy

Valid severities, audiences, tags, source types, and vendor slugs for agent filters.

GET/api/v1/openapi.json

OpenAPI contract

Machine-readable API contract for agents, custom tools, SDK generators, and test harnesses.

GET/api/v1/feed.json

JSON feed

A compact feed for agents, scheduled jobs, and integration workers.

GET/api/v1/feed.md

Markdown feed

Markdown update digest for tools that prefer plain text context.

GET/feed.md

Short Markdown route

Human and agent friendly Markdown feed at the site root.

GET/agents.md

Agent guide

Recommended access points and use cases for AI agents.

GET/llms.txt

LLM resource file

Plain text map of public resources for LLM and crawler discovery.

GET/skills/version-watch/SKILL.md

Agent skill

Portable Markdown operating procedure for agents using the Version Watch API.

Filters

Ask for the changes your stack actually cares about

Filters can be combined on /api/v1/updates and /feed.md. This is the piece that makes agents, bots, dashboards, release gates, and notifications useful instead of noisy.

Filtered request

curl "https://versionwatch.dev/api/v1/updates?vendor=vercel&severity=high&audience=frontend&tag=deployment&limit=10"
since2026-04-24T00:00:00Z

Returns updates published at or after an ISO 8601 timestamp.

vendorvercel

Matches the vendor slug.

severityhigh

Maps to importance bands: critical, high, medium, or low.

audiencebackend

Matches whoShouldCare values such as frontend, backend, infra, AI, or product.

tagauth

Matches categories or affected stack tags.

limit25

Defaults to 25 and clamps at 100.

cursoreyJ2IjoyLCJw...

Uses the opaque sort-key next_cursor value to fetch the next page without offset drift.

Response shape

Stable snake_case fields for tools and agents

The important field is recommended_action. Agents should use it as an action hint, check status_url when freshness matters, then link back to the official source when details matter.

idvendorvendor_slugtitlepublished_atseveritysignal_scoreaudiencetagssummarywhy_it_mattersrecommended_actionsource_urlgithub_urlversion_watch_url
schema_versiongenerated_atstatus_urlcounttotal_countnext_cursorfiltersupdates
error.codeerror.message
invalid_filter

A query parameter is malformed, unsupported, or outside the allowed values.

invalid_cursor

The cursor was not returned by Version Watch or no longer matches the v1 cursor format.

not_found

The requested update id does not exist in the public snapshot.

Public update object

{
  "id": "openclaw-2026-04-25-openclaw-2026-4-24",
  "vendor": "OpenClaw",
  "vendor_slug": "openclaw",
  "title": "openclaw 2026.4.24",
  "published_at": "2026-04-25T19:39:08.000Z",
  "severity": "high",
  "signal_score": 58,
  "audience": ["backend", "ai"],
  "tags": ["api", "agents", "developer-workflow"],
  "summary": "One-sentence explanation of what changed.",
  "why_it_matters": "Clear operational impact for affected teams.",
  "recommended_action": "Review affected integration paths before upgrading.",
  "source_url": "https://...",
  "github_url": "https://...",
  "version_watch_url": "https://versionwatch.dev/events/..."
}

Agent skill

Give agents an operating procedure, not just endpoints

The skill explains when to use Version Watch, how to discover valid vendors and tags, how to filter updates, how to follow pagination, how to de-duplicate results, and how to cite official sources.

Version Watch skill

curl "https://versionwatch.dev/skills/version-watch/SKILL.md"

Freshness status

curl "https://versionwatch.dev/api/v1/status"

Integrations

Connect it anywhere that can make an HTTP request

Because the API is public HTTP, any platform that can make a GET request can consume it. Native watchlists and push notifications come later; today, developers can poll filtered routes from scheduled workers, automation tools, bots, internal apps, and agent runtimes.

Chat and community

Post high-signal updates into Discord, Slack, Microsoft Teams, Telegram, or community channels.

Agents and IDEs

Give Cursor, Codex-style agents, Claude workflows, custom copilots, and internal agents current platform context.

Automation platforms

Use Pipedream, Make, n8n, Vercel Cron, Cloudflare Workers, or scheduled jobs to poll and route updates.

CI/CD and release gates

Check relevant vendor updates before deploys so teams can catch breaking, auth, API, SDK, and infra changes.

Issue trackers

Create Linear, Jira, GitHub Issue, or Asana tasks when a critical vendor update needs review.

Incident and ops tools

Route security, infra, and platform-risk updates into PagerDuty, Datadog, Sentry, or runbook workflows.

Knowledge bases

Generate Notion, Confluence, docs portal, or weekly engineering digest entries with official source links.

Data and analytics

Load normalized update records into Postgres, BigQuery, Snowflake, Airtable, or internal dashboards.

Latest updates

curl "https://versionwatch.dev/api/v1/updates?limit=5"

Discord webhook worker

const updates = await fetch(
  "https://versionwatch.dev/api/v1/updates?severity=high&limit=10"
).then((response) => response.json());

for (const update of updates.updates) {
  await fetch(process.env.DISCORD_WEBHOOK_URL, {
    method: "POST",
    headers: { "Content-Type": "application/json" },
    body: JSON.stringify({
      content:
        "**" + update.vendor + ": " + update.title + "**\n" +
        update.summary + "\n" +
        "Action: " + update.recommended_action + "\n" +
        update.version_watch_url,
    }),
  });
}

Slack incoming webhook

const updates = await fetch(
  "https://versionwatch.dev/api/v1/updates?vendor=stripe&severity=high&limit=5"
).then((response) => response.json());

await fetch(process.env.SLACK_WEBHOOK_URL, {
  method: "POST",
  headers: { "Content-Type": "application/json" },
  body: JSON.stringify({
    text: updates.updates
      .map((update) =>
        "*" + update.vendor + ": " + update.title + "*\n" +
        update.recommended_action + "\n" +
        update.version_watch_url
      )
      .join("\n\n"),
  }),
});
Recommended polling pattern

Poll every 15 to 60 minutes, store the last update id or timestamp, then post only new matching records. Start with high or critical severity and add vendor, audience, or tag filters before widening the feed.

Check /api/v1/status before high-confidence agent reports or release gates. Treat degraded or stale status as a signal to mention possible incomplete coverage.

For vendor-specific workflows, call /api/v1/status/vendors/[slug] to see freshness tier, next due time, backoff state, and whether a background refresh is queued.

Follow next_cursor as an opaque value when a response contains more matching records. Do not decode it, and do not build offset assumptions around it.

For Discord and Slack, format the message around vendor, title, summary, recommended action, and the Version Watch URL.

For broader integrations, store update ids after delivery and route by vendor, severity, audience, or tag.

Platform coverage

Use one API across the platforms your stack depends on

Version Watch currently exposes 45 vendor records. The public vendor route lists source names, source URLs, and source types; use /api/v1/status for freshness and coverage health before relying on operational completeness.

What is next

The API and Markdown feeds are live. Filtered notifications are the next layer.

The next product step is watchlists and generic webhook delivery, then email, RSS, community relevance signals, and MCP once the public API proves useful.

Read agents.md