The APIs you depend on will change.

Driftwatch watches the API specs you rely on, saves a copy when they change, and labels every change as breaking, warning, or info. You find out before something breaks in production.

payments-gateway / openapi.json3 min ago
breakingrequired property currency added to POST /charges
breakingendpoint removed: GET /refunds/{id}
warningenum value deprecated in payment_method.type
diffed by oasdiff · snapshot #41 → #42

Snapshot. Diff. Classify.

Third-party APIs change without telling you. Driftwatch keeps a history of every spec you watch and turns each change into a labeled changelog you can actually act on.

01

Point it at a spec

Paste any OpenAPI 3.0 / 3.1 spec URL, JSON or YAML. Driftwatch checks that it is actually a valid spec, names the watch from the spec title, and saves the first snapshot right away.

02

It checks on a schedule

A worker re-fetches each spec on the schedule you pick and hashes the response. A new snapshot is only stored when the content actually changed, so there are no duplicates and no noise.

03

Every change gets a label

The new and old snapshots are diffed with oasdiff, and every change is labeled breaking, warning, or info. A notification shows up the next time you open the dashboard.

Built for people who depend on someone else's API.

Integration engineers

You build on other people's APIs

Payments, identity, shipping, AI. Your features sit on top of specs you don't control, and when a provider removes an endpoint or makes a field required, your code is what breaks. Driftwatch tells you before your users do.

Platform & SRE teams

You own uptime you didn't write

When a third-party API changes, it looks like a 3am incident with no deploy to blame. A labeled change feed turns “why is checkout failing?” into a notification that names the exact change.

Agencies & indie builders

You maintain many integrations at once

Ten client projects, thirty third-party APIs, and no time to re-read changelogs. One watch list covers all of them and only pings you when something actually moved.

Everything you need to trust the watch.

paths./charges.post:
− required: [amount]
+ required: [amount, currency]

Diff engine

Semantic, not textual

Diffs are built on oasdiff, so every change comes with a severity, path, and plain description. Reordered keys and formatting noise never trigger an alert.

Finance & Payments · 3 watches
payments-gateway · ledger · payouts
Identity & Security · 1 watch

Organize

A dashboard grouped by category

File each watch under a category — Finance & Payments, AI & ML, Identity & Security — and the dashboard groups them into sections, so a long list stays scannable.

2 breaking in payments-gateway
→ composing alert…
✓ notification sent

Alerts

Notifications that name the change

Each detected change set becomes one notification in your in-app feed, with breaking counts up front, an unread badge on the bell, and a link straight to the full diff.

payments-gateway · every 6hnext in 00:09
identity · dailynext in 04:12:09

Cadence

You set the rhythm

Check each spec hourly, every 6 or 12 hours, or daily. Pause a watch while you migrate and resume later with the full history still there.

200 OK · spec valid
checked 3 min ago
404 · URL dead
last success Jun 09, 14:02

Health

Honest error states

Dead URL? Response stopped being a spec? The watch shows the exact reason and when it last worked, instead of pretending everything is fine.

✕ 10.0.4.8 · private range, blocked
… response 412 KB · within cap
✓ OpenAPI 3.1 valid · saved

Safety

Hardened fetcher

Fetches block internal IP ranges, cap response size, and time out fast. Every spec is validated as OpenAPI 3.0 / 3.1 before anything gets saved.