Every Dependency You Don't Control, Finally Watched

Your trusted layer for catching undocumented API changes and healing your app before anyone notices.

Your app
External API
98%
Auto-healed
Dependencies watched
12+4
Drift incidents caught
37+12%
The problem

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.

Payment gateway

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."

− error.error_code
+ error.message
Internal microservice

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.

− stock_qty
+ available_units
AI agent / MCP tool

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.

− deal_value: 4500
+ deal_value: 450000
Pipeline

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.

GET /users 200 · 42ms
GET /orders/101 200 · 38ms
GET /users drift detected

Learn

From the first few calls, Undrift builds a behavioral baseline: field names, types, value ranges, error shapes. No docs involved.

field
type
range
name
str
—
total_amount
float
5–5000

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.

Heal or flag

Confident, safe changes auto-heal. Anything uncertain is flagged — never a silent guess.

Auto-healedNeeds review
Stage 06 — Validate
100%

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
The hard case

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.

baseline total_amount ≈ 45.50
live total_amount = 4550
→ flagged: magnitude 100x outside range, confidence too low to auto-fix
Live dashboard

Not a demo. This is what you'd actually see.

Every dependency, every drift event, every decision — in one dashboard, updated in real time.

Dependencies watched
12+4
Auto-healed today
7
Needs review
2
Avg. detection time
<50ms
DependencyTypeStatusDetailLast event
GET /usersREST APIHealthyMatched baseline2m ago
GET /orders/:idREST APIAuto-healedname → display_name, auto-mapped14m ago
WEBHOOK payment_eventsWebhookNeeds reviewamount → amount_cents, confidence 0.341m ago
GET /invoicesREST APICriticalUnreachable — timed out1h ago
Drift events caught, last 7 days

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
app.py
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 fix
Safety first

Undrift 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.

High confidence

Auto-healed, transparently

An unambiguous change — like a clean field rename — gets patched in-process. Your app keeps running. Nothing to do.

Low confidence

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.

Who it's for

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.