Show HN: Driftwatch – breaking-change alerts for the third-party APIs you call Driftwatch launched in early access as a monitoring service that alerts developers when third-party APIs from providers including Stripe, OpenAI, GitHub and Cloudflare change in ways that break their code, and its GitHub App opens a pull request with the fix ready for review. The service classifies each change by published rules so the same change always gets the same verdict, and it flags changes providers label safe that still break callers, such as a Plaid field rename from protect_session_id to device_session_id. Driftwatch says it judges changes by their effect on the user's code rather than the provider's, and offers RSS or JSON feeds for every API or only the ones a team uses. Continuous API monitoring Stripe, OpenAI, GitHub, Cloudflare and more. When a provider changes its API, you know about it. Driftwatch monitors the third-party APIs your product depends on and alerts you to the changes that break your code. No error is raised. The value is ignored and your results change silently, which is the hardest class of break to notice. Code that breaks await client.post "/v2/sandboxes/sessions/{sessionId}/cmd", { // cmdId is now ignored, not rejected cmdId: value, } ; APIs Driftwatch watches Know what changed, what it breaks, and how to fix it. 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 } The GitHub App opens a pull request with the fix, ready for your review. Changes are judged by their effect on your code, not on the provider’s. Every change is classified by published rules, so the same change always gets the same verdict. Follow every API, or only the ones you use, by RSS or JSON feed. Some changes a provider considers safe are exactly the ones that break the code calling it. Driftwatch catches them. What their changelog says Safe for them: every response they send is still valid. What your code sees 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. A real Plaid change, end to end. Plaid renames a field in its API. ProtectEventSendRequest: properties: - protect session id:+ device session id: type: string You get an alert with what breaks and the code that fails. The GitHub App opens a pull request with the fix, ready for review. - protect session id: sessionId,+ device session id: sessionId, Join early access to the GitHub App, and get a pull request when an API change breaks your code.