When your app breaks, the first question is always: is it us, or is it them?
If you depend on GitHub, AWS, Discord, Stripe, Cloudflare, or any major third-party service, you've probably wasted hours debugging your own code only to find out the service was down the whole time.
There's a free API for this. Let me show you how to use it.
Meet DownStatus
DownStatus is a free, public JSON API that gives you real-time status for 90+ popular services — no API key required.
curl https://isitdownstatus.com/api/status/github
Response:
{
"service": "github",
"status": "operational",
"updated_at": "2026-05-11T08:00:00Z"
}
That's it. No signup, no tokens, no rate limit headers to parse.
Practical use cases
1. Show a banner when a dependency is down
async function checkGitHubStatus() {
const res = await fetch('https://isitdownstatus.com/api/status/github');
const data = await res.json();
if (data.status !== 'operational') {
showBanner(`GitHub is currently ${data.status}. Some features may be unavailable.`);
}
}
2. Skip CI/CD steps when upstream is down
#!/bin/bash
STATUS=$(curl -s https://isitdownstatus.com/api/status/github | jq -r '.status')
if [ "$STATUS" != "operational" ]; then
echo "GitHub is $STATUS — skipping deployment"
exit 0
fi
# continue with deployment...
3. Alert your team proactively (Node.js + Slack)
const SERVICES = ['aws', 'github', 'stripe', 'cloudflare'];
async function checkAll() {
for (const service of SERVICES) {
const res = await fetch(`https://isitdownstatus.com/api/status/${service}`);
const { status } = await res.json();
if (status !== 'operational') {
await notifySlack(`⚠️ ${service} is ${status}`);
}
}
}
// Run every 5 minutes
setInterval(checkAll, 5 * 60 * 1000);
4. Python health check script
import requests
SERVICES = ['aws', 'discord', 'github', 'stripe']
def check_dependencies():
issues = []
for service in SERVICES:
r = requests.get(f'https://isitdownstatus.com/api/status/{service}')
data = r.json()
if data['status'] != 'operational':
issues.append(f"{service}: {data['status']}")
return issues
if __name__ == '__main__':
problems = check_dependencies()
if problems:
print("Upstream issues detected:")
for p in problems:
print(f" - {p}")
else:
print("All services operational ✓")
Services covered
90+ services including:
- Cloud: AWS, Google Cloud, Azure, Cloudflare, Vercel, Netlify, DigitalOcean
- Dev tools: GitHub, GitLab, npm, Docker Hub, Sentry
- Payments: Stripe, PayPal, Braintree
- Comms: Discord, Slack, Twilio, SendGrid
- Data: Airtable, Notion, MongoDB Atlas, Supabase
Why I built this
Debugging "is it us or them?" is a universal dev experience. Every monitoring tool I found either required signup, had rate limits, or cost money. DownStatus is just a clean, free JSON endpoint — nothing more.
Check out isitdownstatus.com and let me know if you find it useful. PRs for adding more services are welcome!
What services do you depend on most? Drop them in the comments and I'll make sure they're covered.
United States
NORTH AMERICA
Related News
What Does "Building in Public" Actually Mean in 2026?
19h ago
The Agentic Headless Backend: What Vibe Coders Still Need After the UI Is Done
19h ago
Why I’m Still Learning to Code Even With AI
21h ago
I gave Claude a persistent memory for $0/month using Cloudflare
1d ago
NYT: 'Meta's Embrace of AI Is Making Its Employees Miserable'
1d ago