One free endpoint returns the entire site's data as JSON — current status, latency, 90 days of history, recent incidents, and reliability rankings for all monitored LLM providers. No signup, no API key, no rate limits.
https://llmstatus.net/api/status
There's also an RSS feed of incidents at
https://llmstatus.net/api/rss
for feed readers.
openai, anthropic, gemini, groq, mistral, xai, cohere, perplexity, together, deepseek, bedrock, azure-openai). Each value contains:
openai.operational, degraded, outage, unknown.{t, s, l} (timestamp, status, latency) — short keys to keep the payload small.{date, checks, operational, avgLatency}. Daily uptime % = operational / checks * 100./:providerId/incidents/:id.degraded or outage.null if ongoing.null if ongoing.outage-class.degraded-class.providers[id].status — repeated here for convenience.fetch('https://llmstatus.net/api/status')
.then(r => r.json())
.then(data => {
console.log('OpenAI status:', data.providers.openai.status);
console.log('Latency:', data.providers.openai.latency, 'ms');
const down = Object.values(data.providers).filter(p => p.status !== 'operational');
console.log(down.length, 'providers not operational');
});
import requests
data = requests.get('https://llmstatus.net/api/status').json()
print('OpenAI status:', data['providers']['openai']['status'])
print('Latency:', data['providers']['openai']['latency'], 'ms')
down = [p for p in data['providers'].values() if p['status'] != 'operational']
print(len(down), 'providers not operational')
Access-Control-Allow-Origin: *) so you can call it directly from a browser.Cache-Control: no-store.data.providers.openai is the recommended approach.