Every Dependency You Don't Control, Finally Watched
Your trusted layer for catching undocumented API changes and healing your app before anyone notices.
This already happened to you.
You just didn't know it yet.
Nobody announces when an API changes. No changelog, no email, no Slack message — just silently different data flowing through your system.
Error format changes overnight
A provider quietly renames error.error_code to error.message. Your checkout flow stops recognizing declines — customers just see "something went wrong."
One rename, three teams broken
The inventory team renames stock_qty to available_units in a routine cleanup. Fulfillment starts showing "0 in stock" for products sitting on the shelf.
An agent acts on bad data, silently
A CRM vendor changes deal_value from dollars to cents in a minor version bump. Your sales agent keeps running — drafting renewal emails 100x too large.
One Continuous Loop,
Running in Production
Six stages, every real call your app makes — from the first request to a validated fix.
Observe
Undrift wraps your HTTP client in one line. Every real request and response is captured, in-process — no proxy, no network hop.
Learn
From the first few calls, Undrift builds a behavioral baseline: field names, types, value ranges, error shapes. No docs involved.
Detect
Structural, semantic, and availability drift — compared against the baseline on every call.
Explain
A plain-English summary of what changed and how confident Undrift is.
Confident, safe changes auto-heal. Anything uncertain is flagged — never a silent guess.
of applied fixes re-checked before the incident is marked resolved.
Not just a diff tool.
Most tools only catch what a JSON diff can see: fields that appear or disappear. Undrift tracks the shape of normal for every field — so it catches the changes that stay technically valid, but mean something different.
- Field renames
- Type changes
- New error shapes
- Pagination changes
- Rate limiting
- Full outages
Same field. Same type. Different meaning.
total_amount silently changes from dollars to cents. It's still a number. A structural diff sees nothing wrong — Undrift flags it instantly, because the value is far outside what it learned as normal.
Not a demo. This is what you'd actually see.
Every dependency, every drift event, every decision — in one dashboard, updated in real time.
| Dependency | Type | Status | Detail | Last event |
|---|---|---|---|---|
| GET /users | REST API | Healthy | Matched baseline | 2m ago |
| GET /orders/:id | REST API | Auto-healed | name → display_name, auto-mapped | 14m ago |
| WEBHOOK payment_events | Webhook | Needs review | amount → amount_cents, confidence 0.3 | 41m ago |
| GET /invoices | REST API | Critical | Unreachable — timed out | 1h ago |
One line. No new infrastructure.
Undrift runs in your app's own process. No proxy to deploy, no network hop, no architecture change — just wrap the client you're already using.
- Drop-in wrapper around your existing HTTP client
- Works for outgoing API calls and incoming webhooks
- Near-zero overhead — nothing calls out on the hot path
from undrift import UndriftSession
session = UndriftSession()
# exactly like requests — nothing else changes
resp = session.get("https://api.vendor.com/users")
data = UndriftSession.undrift_json(resp)
# ↑ healed automatically if it was safe to fixUndrift never guesses.
Auto-fixing the wrong thing is worse than not fixing it at all. Every decision is confidence-scored, and nothing gets applied unless it's both safe and certain.
Auto-healed, transparently
An unambiguous change — like a clean field rename — gets patched in-process. Your app keeps running. Nothing to do.
Flagged, with full evidence
A type change, a suspicious value, a new error shape — Undrift explains exactly what it saw and suggests a fix. A human decides.
Built for teams who can't
afford to find out last
Three kinds of teams feel this pain first — and get the most out of catching it early.
Platform teams
Mid-size companies running 20+ third-party integrations — fintech, e-commerce, martech stacks that break quietly for days before anyone files a ticket.
- 20+ integrations watched at once
- Fewer silent production incidents
AI agent builders
Teams shipping agents that call dozens of tool APIs autonomously. A silent field change can make an agent act on wrong data with no human watching.
- Guards every tool call an agent makes
- Catches bad data before it's acted on
API-first companies
Teams who want to offer their own downstream customers a stability guarantee — know the moment something changes, before a customer does.
- A stability story you can sell
- Minutes of lead time, not days
Most tools tell you your server is down.
Undrift tells you your dependencies are lying to you.
No docs, no changelog, no vendor announcement. Caught purely from behavior — and fixed before your users notice.