Driftwatch

Know when an API you depend on breaks your code.

Driftwatch monitors the third-party APIs your product depends on and alerts you to the changes that break your code.

Latest changes
Breaking Vercel,

Response field v0 removed

Reads of this field return undefined, and the failure surfaces wherever that value is used rather than at the call.

4 places: Drive.v0, NamedSandbox.v0, Session.v0, Snapshot.v0

Code that breaks

// response.v0 is now undefined
const v0 = response.v0;

Stay ahead of the APIs you depend on

Know what changed, what it breaks, and how to fix it.

Continuous API monitoring

Stripe, OpenAI, GitHub, Cloudflare and more. When a provider changes its API, you know about it.

The code that breaks

Every alert shows the code that fails, so your team knows where to look.

switch (payment.status) {
  case "succeeded": …
  case "failed": …
  // "requires_review"
  // has no branch
}

Fixes as pull requests

The GitHub App opens a pull request with the fix, ready for your review.

Read from your side

Changes are judged by their effect on your code, not on the provider’s.

Consistent and transparent

Every change is classified by published rules, so the same change always gets the same verdict.

Wherever you read

Follow every API, or only the ones you use, by RSS or JSON feed.

Other tools check your API. Driftwatch checks theirs.

Some changes a provider considers safe are exactly the ones that break the code calling it. Driftwatch catches them.

What their changelog says

A response field becomes optional

Safe for them: every response they send is still valid.

What your code sees

A null dereference waiting to happen

Code that reads the field without a check throws on every response that leaves it out.

const { city } = customer.address;
// TypeError: Cannot destructure property 'city'
// of 'customer.address' as it is undefined.

From an API change to a pull request

A real Plaid change, end to end.

  1. The API changes

    Plaid renames a field in its API.

    plaid/plaid-openapi, 2020-09-14.yml
    ProtectEventSendRequest:
      properties:
    -   protect_session_id:+   device_session_id:      type: string
  2. Driftwatch flags it

    You get an alert with what breaks and the code that fails.

    driftwatch.et/changes
    Breakingprotect_session_id is no longer acceptedCode that sends it to POST /protect/event/send.
  3. A pull request fixes it

    The GitHub App opens a pull request with the fix, ready for review.

    Rename protect_session_id to device_session_id
    -  protect_session_id: sessionId,+  device_session_id: sessionId,
    An example pull request, from a test repository.

Fix the break before your users find it.

Join early access to the GitHub App, and get a pull request when an API change breaks your code.