{"openapi":"3.1.0","info":{"title":"API Change Feed","version":"0.2.0","description":"Breaking changes, deprecations and security fixes for 38 popular APIs and SDKs (LLM SDKs, Stripe, Next.js, React, Node, Python frameworks, cloud SDKs). Built for AI coding agents whose training data is out of date. Paid per call with x402 (USDC on Base); no account or API key.","contact":{"name":"API Change Feed","url":"https://changefeed.anthonyzilar.workers.dev/"},"x-guidance":"Call GET /v1/upgrade-check?package=<npm or pypi name>&from=<version your code targets> before writing code against a library you may know only from older training data. It returns every breaking change, deprecation and security fix between that version and the latest release, plus every major version crossed. Use GET /v1/sources (free) to see which packages are tracked, and GET /v1/preview (free) to check freshness. Paid routes answer HTTP 402 with x402 payment terms; any x402 client pays in USDC and retries automatically. Invalid input, unknown packages and sources without version data return 4xx and are never charged. Each record includes \"evidence\": the sentence that triggered its label. A same-API sandbox at /sandbox/v1 takes free test USDC (Base Sepolia) and serves data delayed 30 days, for integration testing. An MCP server with the same tools is at /mcp."},"servers":[{"url":"https://changefeed.anthonyzilar.workers.dev"}],"paths":{"/v1/sources":{"get":{"operationId":"listSources","summary":"List tracked APIs/SDKs and the package names to query them by (free)","security":[],"responses":{"200":{"description":"OK"}}}},"/v1/preview":{"get":{"operationId":"previewChanges","summary":"Latest five breaking/deprecation/security headlines (free)","security":[],"responses":{"200":{"description":"OK"}}}},"/v1/upgrade-check":{"get":{"operationId":"upgradeCheck","summary":"What changed since my version ($0.01)","description":"Breaking changes, deprecations, security fixes and major versions crossed between the version your code targets and the latest release of a package.","parameters":[{"name":"package","in":"query","required":true,"schema":{"type":"string"},"description":"Package name (npm/PyPI) or source id, e.g. next, openai, node"},{"name":"from","in":"query","required":true,"schema":{"type":"string"},"description":"Version your code targets, e.g. 14.2.0"}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"package":{"type":"string"},"from":{"type":"string"},"latest":{"type":"string"},"up_to_date":{"type":"boolean"},"breaking":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"source_id":{"type":"string"},"version":{"type":["string","null"]},"published_at":{"type":"string","format":"date-time"},"kinds":{"type":"array","items":{"type":"string","enum":["breaking","deprecation","security","release"]}},"title":{"type":"string"},"summary":{"type":"string"},"evidence":{"type":["string","null"],"description":"Sentence that triggered the label"},"url":{"type":"string","format":"uri"}}}},"major_versions_crossed":{"type":"array","items":{"type":"integer"}},"deprecations":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"source_id":{"type":"string"},"version":{"type":["string","null"]},"published_at":{"type":"string","format":"date-time"},"kinds":{"type":"array","items":{"type":"string","enum":["breaking","deprecation","security","release"]}},"title":{"type":"string"},"summary":{"type":"string"},"evidence":{"type":["string","null"],"description":"Sentence that triggered the label"},"url":{"type":"string","format":"uri"}}}},"security":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"source_id":{"type":"string"},"version":{"type":["string","null"]},"published_at":{"type":"string","format":"date-time"},"kinds":{"type":"array","items":{"type":"string","enum":["breaking","deprecation","security","release"]}},"title":{"type":"string"},"summary":{"type":"string"},"evidence":{"type":["string","null"],"description":"Sentence that triggered the label"},"url":{"type":"string","format":"uri"}}}},"coverage_complete":{"type":"boolean"},"coverage_note":{"type":"string"}}}}}},"400":{"description":"Invalid input (not charged)"},"402":{"description":"Payment Required: x402, $0.01 in USDC. Any x402 client pays and retries automatically."},"404":{"description":"Unknown package or source (not charged)"},"422":{"description":"Source has no version data (not charged)"}},"security":[],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.01"},"protocols":[{"x402":{}}]}}},"/v1/changes":{"get":{"operationId":"getChanges","summary":"Filter change records ($0.005)","description":"Normalized change records (breaking, deprecation, security, release) for one tracked API/SDK or all of them, filterable by date and kind.","parameters":[{"name":"source","in":"query","schema":{"type":"string"},"description":"Source id or package name"},{"name":"since","in":"query","schema":{"type":"string","format":"date"}},{"name":"kinds","in":"query","schema":{"type":"string"},"description":"Comma list of breaking,deprecation,security,release"},{"name":"limit","in":"query","schema":{"type":"integer","minimum":1,"maximum":100}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"count":{"type":"integer"},"changes":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"source_id":{"type":"string"},"version":{"type":["string","null"]},"published_at":{"type":"string","format":"date-time"},"kinds":{"type":"array","items":{"type":"string","enum":["breaking","deprecation","security","release"]}},"title":{"type":"string"},"summary":{"type":"string"},"evidence":{"type":["string","null"],"description":"Sentence that triggered the label"},"url":{"type":"string","format":"uri"}}}}}}}}},"400":{"description":"Invalid input (not charged)"},"402":{"description":"Payment Required: x402, $0.005 in USDC. Any x402 client pays and retries automatically."},"404":{"description":"Unknown package or source (not charged)"}},"security":[],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.005"},"protocols":[{"x402":{}}]}}},"/v1/digest":{"get":{"operationId":"digest","summary":"Cross-source digest ($0.02)","description":"Cross-ecosystem digest of breaking changes, deprecations and security fixes since a date, grouped by source.","parameters":[{"name":"since","in":"query","schema":{"type":"string","format":"date"}},{"name":"kinds","in":"query","schema":{"type":"string"}}],"responses":{"200":{"description":"OK"},"400":{"description":"Invalid input (not charged)"},"402":{"description":"Payment Required: x402, $0.02 in USDC. Any x402 client pays and retries automatically."},"404":{"description":"Unknown package or source (not charged)"}},"security":[],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.02"},"protocols":[{"x402":{}}]}}}}}