Skip to main content

Declare the APIs your project uses. Get alerted before they break.

Project description

DeprecationWatch

Declare the APIs your project uses. Get alerted before they break.

Open-source API deprecation monitoring for developers who consume third-party APIs — not the teams that publish them.

Dependabot bumps package versions. It doesn't tell you that OpenAI is removing gpt-4-turbo in October or that Stripe deprecated an endpoint your checkout flow still calls. DeprecationWatch closes that gap.

License: MIT Python 3.11+ PyPI

Why this exists

  • Dependabot / Renovate — package versions, not API-level deprecations
  • Visualping — visual page diffs, not structured developer alerts
  • API management platforms — built for API producers, enterprise-priced
  • Optic — closest prior art; repository archived January 2026

DeprecationWatch monitors official changelogs, SDK releases, and HTTP Deprecation / Sunset headers — then alerts you at 90, 30, and 7 days before removal.

Dashboard

DeprecationWatch dashboard showing API providers and deprecation timeline

Local web UI — stat cards, provider health, urgency-sorted timeline:

pip install "deprecationwatch[dashboard]"
dep-watch dashboard
# → http://127.0.0.1:8080

Or from a clone:

git clone https://github.com/arunmm8335/DeprecationWatch && cd DeprecationWatch
pip install -e ".[dashboard]"
dep-watch dashboard

Toggle Show expired to include past removal dates:

DeprecationWatch dashboard with expired deprecations visible

Quick start

pip install deprecationwatch

# optional extras
pip install "deprecationwatch[alerts]"      # Slack / email
pip install "deprecationwatch[dashboard]"   # local web UI
pip install "deprecationwatch[all]"         # everything

dep-watch init          # creates depwatch.yml
dep-watch check         # scan live sources

Install from source (latest main):

pip install git+https://github.com/arunmm8335/DeprecationWatch.git

Example output

✓ Stripe - no deprecations found
⚠ OpenAI gpt-4-turbo - DEPRECATED | removal: 2026-10-23 | 116 days left
  → Guide: https://platform.openai.com/docs/deprecations
✓ GitHub - no deprecations found

Configuration

Copy depwatch.yml.example or run dep-watch init:

version: 1
project: my-app

apis:
  - name: OpenAI
    type: openai
    track:
      - gpt-4
      - gpt-4-turbo

  - name: Stripe
    type: stripe
    track:
      - checkout.sessions.create

  - name: Twilio
    type: generic_changelog
    changelog_url: https://www.twilio.com/en-us/changelog
    track_keywords:
      - SMS

alerts:
  slack_webhook: https://hooks.slack.com/services/XXX/YYY/ZZZ
  days_warning: [90, 30, 7]

Supported adapters

Type Source LLM needed
openai OpenAI deprecations page No
stripe Stripe changelog RSS Optional
github_rest GitHub changelog RSS Optional
generic_changelog Any changelog URL Yes (for diffs)
http_headers Live endpoint Deprecation / Sunset headers No

Add more providers — see CONTRIBUTING.md.

HTTP header probes

Many APIs send standard Deprecation and Sunset headers on live responses. Probe endpoints you call in production:

  - name: Example API
    type: http_headers
    track:
      - https://api.example.com/v1/users
    request_headers:
      Authorization: "Bearer ${YOUR_TOKEN}"

Daemon mode

Run checks on a schedule locally (cron alternative):

dep-watch watch --interval 24h
dep-watch watch --interval 30m --once   # single run

Pairs with alerts — get Slack/email when thresholds are crossed without setting up cron.

Alerts

Email and Slack via Apprise. Deduplicated — you won't get the same 30-day warning twice.

pip install "deprecationwatch[alerts]"

dep-watch check --alert-dry-run   # test without sending
dep-watch check                   # sends when thresholds hit
dep-watch check --no-alerts       # skip (for CI)

CI / GitHub Action

Fail the build when a tracked API is within 30 days of sunset:

# .github/workflows/dep-watch.yml
name: API Deprecation Check

on:
  schedule:
    - cron: "0 9 * * 1"
  pull_request:
  workflow_dispatch:

jobs:
  check:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - uses: arunmm8335/DeprecationWatch/action@v1
        with:
          config: depwatch.yml
          fail-on: breaking
          days-threshold: "30"

Or run locally in CI mode:

dep-watch check --fail-on breaking --days-threshold 30

Emits GitHub workflow annotations when running in Actions.

LLM classification

Unstructured changelogs use LiteLLM — bring your own model:

export DEPWATCH_LLM_MODEL=ollama/llama3              # free, local
export DEPWATCH_LLM_MODEL=anthropic/claude-haiku-4-5 # ~$0.001/run
export DEPWATCH_LLM_MODEL=none                         # skip LLM (OpenAI adapter still works)

What we can't detect (yet)

Be honest about limits — PRs welcome:

  • Providers that don't publish deprecations anywhere
  • Changes buried in blog posts with no changelog
  • Undocumented breaking changes with no headers
  • False positives from LLM classification on generic changelogs

We optimize for precision over recall. A missed deprecation is bad; a false alarm every week is worse.

Development

git clone https://github.com/arunmm8335/DeprecationWatch
cd DeprecationWatch
python3 -m venv .venv && source .venv/bin/activate
pip install -e ".[dev,alerts,dashboard]"

pytest
dep-watch check --config depwatch.yml.example --fail-on none

Project layout

dep-watch check      CLI — scan & alert
dep-watch watch      Daemon — scheduled checks
dep-watch dashboard  Local web UI
dep-watch report     JSON/table export
action/              GitHub Action composite
src/dep_watch/
  adapters/          One module per API provider
  alerts.py          Apprise + deduplication
  classifier.py      LiteLLM fallback

Roadmap

  • Config parser, SQLite storage, OpenAI adapter
  • Stripe / GitHub / generic changelog adapters
  • Apprise alerts with deduplication
  • GitHub Action, local dashboard, expired filter
  • HTTP Deprecation / Sunset header monitor
  • dep-watch watch daemon mode
  • PyPI packaging (pip install deprecationwatch) — see PUBLISHING.md
  • Community adapters (AWS, Azure, Razorpay, …)

Contributing

Contributions are welcome — especially new adapters. Read CONTRIBUTING.md for the adapter pattern and PR guidelines.

License

MIT — see LICENSE.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

deprecationwatch-0.1.0.tar.gz (24.0 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

deprecationwatch-0.1.0-py3-none-any.whl (31.6 kB view details)

Uploaded Python 3

File details

Details for the file deprecationwatch-0.1.0.tar.gz.

File metadata

  • Download URL: deprecationwatch-0.1.0.tar.gz
  • Upload date:
  • Size: 24.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.3

File hashes

Hashes for deprecationwatch-0.1.0.tar.gz
Algorithm Hash digest
SHA256 0535617b167265032127b6c7fa0e6adce318f3ecda514d6c934007831cef8abd
MD5 2082b974d5463a687d3ab9c978e96e01
BLAKE2b-256 65fcfa639c50ea056937f744e4d8471821e8658ef3e0d524e1b21276541717bb

See more details on using hashes here.

File details

Details for the file deprecationwatch-0.1.0-py3-none-any.whl.

File metadata

File hashes

Hashes for deprecationwatch-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 c051255cebac53d51afc677b60c5b81e5dbc33d4e82b908b2cef22a52fea7c90
MD5 16f90123e60c8f794f23cd0e613822af
BLAKE2b-256 ae529013c687565d4ad96c272cbaac3395db7a46e65f7e249dfdc43bf10ec124

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page