{"openapi":"3.1.0","info":{"title":"Upstream","version":"0.1.0","contact":{"email":"toolweather.app@proton.me"},"description":"Live status and breaking-change feed for ~40 AI and developer APIs. Free tier: 500 calls/day per free key (POST /v1/keys), 50/day anonymous, 1 free webhook watch. Over the free tier: x402 pay-per-call on eip155:8453.","x-guidance":"Before calling an AI or developer API (OpenAI, Anthropic, Gemini, GitHub, Stripe...), GET /status/{provider} to see if it is up; GET /model/{id} to check if a model is deprecated or retired and its replacement; GET /changes?since=ISO for what changed. The /x402/* paths are the same data and always paid per call; the plain paths are free within the daily quota and switch to x402 when it is used up."},"servers":[{"url":"https://upstream.toolweather.workers.dev"}],"components":{"securitySchemes":{"apiKey":{"type":"apiKey","in":"header","name":"X-API-Key"}}},"paths":{"/providers":{"get":{"operationId":"listProviders","summary":"List tracked providers and current state (free)","security":[],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object"}}}}}}},"/status/{provider}":{"get":{"operationId":"getStatus","summary":"Status - is this AI/dev API provider up right now (incidents, affected components)","tags":["Status"],"parameters":[{"name":"provider","in":"path","required":true,"description":"provider id from GET /providers, e.g. openai, anthropic, github, stripe","schema":{"type":"string"}}],"security":[{"apiKey":[]},{}],"x-price-over-free-tier":{"price":{"mode":"fixed","currency":"USD","amount":"0.003000"},"protocols":[{"x402":{}}]},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object"}}}},"402":{"description":"Payment Required (x402 v2, see PAYMENT-REQUIRED header)"}}}},"/changes":{"get":{"operationId":"getChanges","summary":"Changes - feed of outages, deprecations, model retirements and pricing-page edits","tags":["Changes"],"parameters":[{"name":"since","in":"query","required":false,"schema":{"type":"string"}},{"name":"provider","in":"query","required":false,"schema":{"type":"string"}},{"name":"kind","in":"query","required":false,"schema":{"type":"string"}},{"name":"limit","in":"query","required":false,"schema":{"type":"string"}}],"security":[{"apiKey":[]},{}],"x-price-over-free-tier":{"price":{"mode":"fixed","currency":"USD","amount":"0.010000"},"protocols":[{"x402":{}}]},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object"}}}},"402":{"description":"Payment Required (x402 v2, see PAYMENT-REQUIRED header)"}}}},"/model/{id}":{"get":{"operationId":"getModel","summary":"Model - is this model active, deprecated or retired; shutdown date and replacement","tags":["Models"],"parameters":[{"name":"id","in":"path","required":true,"description":"model id, e.g. gpt-4o-2024-08-06, claude-3-opus-20240229, gemini-2.0-flash","schema":{"type":"string"}}],"security":[{"apiKey":[]},{}],"x-price-over-free-tier":{"price":{"mode":"fixed","currency":"USD","amount":"0.003000"},"protocols":[{"x402":{}}]},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object"}}}},"402":{"description":"Payment Required (x402 v2, see PAYMENT-REQUIRED header)"}}}},"/x402/status/{provider}":{"get":{"operationId":"paid_getStatus","summary":"Status - is this AI/dev API provider up right now (incidents, affected components)","tags":["Status"],"parameters":[{"name":"provider","in":"path","required":true,"description":"provider id from GET /providers, e.g. openai, anthropic, github, stripe","schema":{"type":"string"}}],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.003000"},"protocols":[{"x402":{}}]},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object"}}}},"402":{"description":"Payment Required (x402 v2, see PAYMENT-REQUIRED header)"}}}},"/x402/changes":{"get":{"operationId":"paid_getChanges","summary":"Changes - feed of outages, deprecations, model retirements and pricing-page edits","tags":["Changes"],"parameters":[{"name":"since","in":"query","required":false,"schema":{"type":"string"}},{"name":"provider","in":"query","required":false,"schema":{"type":"string"}},{"name":"kind","in":"query","required":false,"schema":{"type":"string"}},{"name":"limit","in":"query","required":false,"schema":{"type":"string"}}],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.010000"},"protocols":[{"x402":{}}]},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object"}}}},"402":{"description":"Payment Required (x402 v2, see PAYMENT-REQUIRED header)"}}}},"/x402/model/{id}":{"get":{"operationId":"paid_getModel","summary":"Model - is this model active, deprecated or retired; shutdown date and replacement","tags":["Models"],"parameters":[{"name":"id","in":"path","required":true,"description":"model id, e.g. gpt-4o-2024-08-06, claude-3-opus-20240229, gemini-2.0-flash","schema":{"type":"string"}}],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.003000"},"protocols":[{"x402":{}}]},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object"}}}},"402":{"description":"Payment Required (x402 v2, see PAYMENT-REQUIRED header)"}}}},"/v1/keys":{"post":{"operationId":"createKey","summary":"Get a free API key instantly","security":[],"responses":{"201":{"description":"key"}}}},"/v1/watches":{"post":{"operationId":"createWatch","summary":"Create change-alert webhook (1 free per key, each extra $0.05 / 30 days)","security":[{"apiKey":[]}],"x-price-over-free-tier":{"price":{"mode":"fixed","currency":"USD","amount":"0.050000"},"protocols":[{"x402":{}}]},"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"provider":{"type":"string"},"url":{"type":"string"}},"required":["provider","url"]}}}},"responses":{"201":{"description":"created"},"402":{"description":"Payment Required (x402 v2, see PAYMENT-REQUIRED header)"}}},"get":{"operationId":"listWatches","summary":"List your watches","security":[{"apiKey":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object"}}}}}}},"/mcp":{"post":{"operationId":"mcp","summary":"MCP endpoint (JSON-RPC, streamable HTTP)","security":[],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object"}}}}}}}}}