PulseAPI is a backend-first API observability system that continuously monitors APIs, stores historical performance data, computes reliability metrics, and visualizes trends through dashboards.
- Overview
- Motivation
- Architecture
- Features
- Dashboards Preview
- Running PulseAPI Locally
- Screenshots & Demos
- Documentation
- Future Improvements
PulseAPI helps answer critical operational questions:
- Are my APIs up or down?
- Are they getting slower over time?
- How reliable are they historically?
- When did errors or latency spikes occur?
Unlike simple API callers, PulseAPI is designed as a long-running monitoring system with background jobs, persistent storage, analytics, and multiple visualization layers.
Most beginner projects:
- Call an API once
- Display the response
- Stop there
PulseAPI focuses on observability and systems thinking by introducing:
- Background schedulers
- Persistent databases
- Time-series analytics
- Multiple frontend consumers
This makes it closer to real internal engineering tools used in production environments.
Scheduler (APScheduler) โ API Health Checks (httpx) โ PostgreSQL (Time-Series Logs) โ Analytics Engine (FastAPI) โ Dashboards (Streamlit / React)
- FastAPI Backend
- API registry
- Analytics endpoints
- Alerting logic
- Background Scheduler
- Periodic API health checks
- Latency & error detection
- PostgreSQL
- Persistent time-series storage
- Streamlit Dashboard
- Internal monitoring interface
- React Dashboard
- Experimental modern UI layer
- Periodic API health checks
- Latency measurement
- Error detection (timeouts, DNS failures, HTTP errors)
- Uptime percentage
- Average latency
- P95 / P99 latency
- Error rate
- Total number of checks
- Last checked timestamp
- Streamlit
- Internal monitoring dashboard
- Status views (UP / DEGRADED / DOWN)
- Latency charts and tables
- React
- Read-only analytics dashboard
- Metrics cards
- Latency trend visualization
- Health status indicator
- High latency alerts
- Downtime alerts
- Cooldown logic to prevent alert spam
The Streamlit dashboard provides a real-time operational view of API health, latency trends, and failure states.
The React dashboard is an experimental visualization layer built on top of the same backend APIs.
It does not introduce new business logic.
PulseAPI is designed to run locally, mirroring real production architecture.
- Python 3.10+
- PostgreSQL
- Node.js (for React dashboard)
- Virtual environment or Anaconda (recommended)
git clone https://github.com/<your-username>/PulseAPI.git
cd PulseAPIpip install -r requirements.txtcp .env.example .envuvicorn app.main:app --reload- Backend:
http://127.0.0.1:8000/ - Swagger UI:
http://127.0.0.1:8000/docs
streamlit run dashboard/app.pycd react-dashboard
npm install
npm run devhttp://localhost:5173Additional screenshots and demos are available in the ๐ screenshots/ directory, including:
- Swagger API documentation
- PostgreSQL tables
- Streamlit latency table view
- API dropdown selection
- Terminal monitoring output
Detailed documentation is available in the ๐ docs/ directory:
- architecture.md โ System design and data flow
- phases.md โ Phase-wise development roadmap
- metrics.md โ Monitoring metrics explained
- alerts.md โ Alerting logic and cooldown strategy
- Per-API configurable thresholds
- Email / Slack alert integrations
- Cloud deployment
- Advanced anomaly detection


