Skip to content
This repository was archived by the owner on Feb 13, 2026. It is now read-only.

pageprincess/api-watch

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

10 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

APIWatch ๐Ÿ•

Monitor API breaking changes and get alerted before your app breaks

License: MIT TypeScript SvelteKit

APIWatch is an open-source API monitoring service that automatically detects breaking changes in OpenAPI/Swagger specifications and alerts you before your integration breaks.

๐ŸŽฏ Problem It Solves

APIs change constantly. When a provider removes a required parameter or deprecates an endpoint, your app breaks. APIWatch:

  • Detects breaking changes in OpenAPI/Swagger specs automatically
  • Alerts you instantly via Email or Slack
  • Tracks version history so you can see what changed
  • Monitors hourly without manual intervention

โœจ Features

Breaking Change Detection

Severity What We Catch
Critical Removed endpoints, deleted HTTP methods, removed required parameters
Major Removed response codes, removed required properties in schemas
Minor Non-required property changes, description updates

Pre-Built Templates

Get started in seconds with 10+ popular API templates:

  • ๐Ÿ’ณ Stripe - Payments
  • ๐Ÿ™ GitHub - Development
  • ๐Ÿ’ผ Slack - Communication
  • ๐Ÿค– OpenAI - AI/ML
  • ๐Ÿ“ž Twilio - Communication
  • ๐Ÿ“ง SendGrid - Email
  • ๐Ÿ›๏ธ Shopify - E-commerce
  • ๐ŸŽฎ Discord - Communication
  • ๐Ÿ“ Notion - Productivity
  • ๐Ÿ“Š Linear - Productivity

๐Ÿš€ Quick Start

Option 1: Deploy to Cloudflare (Recommended)

# Clone the repository
git clone https://github.com/pageprincess/api-watch.git
cd api-watch/api-watch-worker

# Install dependencies
npm install

# Create D1 database and KV namespace
npx wrangler d1 create api-watch-db
npx wrangler kv namespace create API_WATCH_CACHE

# Update wrangler.toml with your IDs
# Then deploy
npx wrangler pages deploy .svelte-kit/output --project-name=api-watch

See DEPLOY.md for detailed deployment instructions.

Option 2: Use as a Library

import { detectBreakingChanges, fetchSpec } from 'api-watcher';

// Monitor any OpenAPI spec
const oldSpec = await fetchSpec('https://api.example.com/openapi.json');
const newSpec = await fetchSpec('https://api.example.com/openapi.json');

const changes = detectBreakingChanges(oldSpec, newSpec);
if (changes.critical.length > 0) {
  console.alert('Critical breaking changes detected!');
}

๐Ÿ“Š How It Works

โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”     โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”     โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚  Cron Trigger   โ”‚โ”€โ”€โ”€โ”€โ–ถโ”‚  Spec Fetcher   โ”‚โ”€โ”€โ”€โ”€โ–ถโ”‚  Breaking Change โ”‚
โ”‚  (Every Hour)   โ”‚     โ”‚  (OpenAPI/Swagger)   โ”‚  Detector     โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜     โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜     โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
                                                          โ”‚
                                                          โ–ผ
โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”     โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”     โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚   Alert Service โ”‚โ—€โ”€โ”€โ”€โ”€โ”‚  Database       โ”‚โ—€โ”€โ”€โ”€โ”€โ”‚   Severity      โ”‚
โ”‚ (Email/Slack)   โ”‚     โ”‚  (D1 + KV)      โ”‚     โ”‚   Classifier    โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜     โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜     โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜

๐Ÿ›  Tech Stack

  • Runtime: Cloudflare Workers (Edge computing)
  • Framework: SvelteKit
  • Language: TypeScript
  • Database: Cloudflare D1 (SQLite)
  • Cache: Cloudflare KV
  • Alerts: Resend (Email), Slack Webhooks

๐Ÿ“ Project Structure

api-watch-worker/
โ”œโ”€โ”€ src/
โ”‚   โ”œโ”€โ”€ lib/
โ”‚   โ”‚   โ”œโ”€โ”€ spec-fetcher.ts      # Fetch OpenAPI specs
โ”‚   โ”‚   โ”œโ”€โ”€ breaking-detector.ts  # Detect breaking changes
โ”‚   โ”‚   โ”œโ”€โ”€ database.ts           # D1/KV operations
โ”‚   โ”‚   โ””โ”€โ”€ alert-service.ts      # Email/Slack alerts
โ”‚   โ”œโ”€โ”€ routes/
โ”‚   โ”‚   โ”œโ”€โ”€ api/check/+server.ts  # Cron endpoint
โ”‚   โ”‚   โ”œโ”€โ”€ api/monitored/+server.ts  # Manage APIs
โ”‚   โ”‚   โ””โ”€โ”€ api/templates/+server.ts   # API templates
โ”‚   โ””โ”€โ”€ routes/
โ”‚       โ””โ”€โ”€ +page.svelte         # Landing page
โ”œโ”€โ”€ schema.sql                   # Database schema
โ””โ”€โ”€ wrangler.toml                # Cloudflare config

๐Ÿงช Development

# Install dependencies
npm install

# Run development server
npm run dev

# Run tests (when available)
npm test

# Type checking
npm run check

๐Ÿค Contributing

We welcome contributions! Please see our Contributing Guidelines for details.

Areas where we'd love help:

  • Add more API templates
  • Improve breaking change detection accuracy
  • Add more alert channels (Discord, Teams, etc.)
  • UI/UX improvements for the landing page

๐Ÿ“ License

MIT License - see LICENSE for details.

๐Ÿ”— Links

๐ŸŒŸ Star History

Star History Chart


Built with โค๏ธ by Auto Company - A fully autonomous AI company experiment

About

Monitor API breaking changes and get alerted before your app breaks. Open-source tool for OpenAPI/Swagger spec monitoring with email & Slack alerts.

Topics

Resources

License

Code of conduct

Contributing

Stars

Watchers

Forks

Packages

 
 
 

Contributors