{"openapi":"3.1.0","info":{"title":"Sunsets API","version":"1.0.0","description":"Model retirements, API sunsets and end-of-life dates in data and AI, from each vendor's own deprecation and lifecycle pages, with replacements, sources and a change log. Free to read; cite Sunsets (sunsets.fru.dev).","contact":{"email":"fru.dev3@gmail.com"}},"servers":[{"url":"https://sunsets.fru.dev"}],"paths":{"/api/sunsets":{"get":{"summary":"Retirements, soonest first (upcoming by default)","parameters":[{"name":"vendor","in":"query","schema":{"type":"string"}},{"name":"kind","in":"query","schema":{"type":"string","enum":["model","api","product","service","runtime"]}},{"name":"platform","in":"query","schema":{"type":"string"},"description":"openai, claude, gemini-api, vertex, bedrock, azure-openai, aws, or an endoflife.date product"},{"name":"status","in":"query","schema":{"type":"string","enum":["upcoming","retired","all"],"default":"upcoming"}},{"name":"within","in":"query","schema":{"type":"integer","minimum":1,"maximum":3650},"description":"Only retirements in the next N days"},{"name":"limit","in":"query","schema":{"type":"integer","minimum":1,"maximum":200,"default":200}},{"name":"offset","in":"query","schema":{"type":"integer","minimum":0,"default":0}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object"}}}}}}},"/api/sunsets/{slug}":{"get":{"summary":"One retirement with its change history","parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string"},"description":"Item slug"}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object"}}}},"404":{"description":"Unknown item"}}}},"/api/vendors":{"get":{"summary":"Vendors with counts, next date and calendar feed","responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object"}}}}}}},"/api/vendors/{slug}":{"get":{"summary":"One vendor, its retirements and changes","parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string"},"description":"Vendor slug (companies.fru.dev registry slug)"}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object"}}}},"404":{"description":"Unknown vendor"}}}},"/api/changes":{"get":{"summary":"The append-only change log, newest first","parameters":[{"name":"since","in":"query","schema":{"type":"string","format":"date"}},{"name":"limit","in":"query","schema":{"type":"integer","minimum":1,"maximum":200,"default":200}},{"name":"offset","in":"query","schema":{"type":"integer","minimum":0,"default":0}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object"}}}}}}},"/api/sources":{"get":{"summary":"Every page Sunsets reads, newest first (the source list grows each run)","parameters":[{"name":"since","in":"query","schema":{"type":"string","format":"date"}},{"name":"limit","in":"query","schema":{"type":"integer","minimum":1,"maximum":200,"default":200}},{"name":"offset","in":"query","schema":{"type":"integer","minimum":0,"default":0}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object"}}}}}}},"/api/companies":{"get":{"summary":"Vendors for the companies.fru.dev registry sync: slug, name, domain, site URL and dated items","parameters":[{"name":"since","in":"query","schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object"}}}}}}},"/api/search":{"get":{"summary":"Search items, vendors and pages","parameters":[{"name":"q","in":"query","required":true,"schema":{"type":"string"}},{"name":"limit","in":"query","schema":{"type":"integer","minimum":1,"maximum":20}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object"}}}}}}},"/calendar.ics":{"get":{"summary":"iCalendar feed of every upcoming retirement","responses":{"200":{"description":"OK","content":{"text/calendar":{}}}}}},"/vendors/{slug}.ics":{"get":{"summary":"iCalendar feed of one vendor's upcoming retirements","parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string"},"description":"Vendor slug"}],"responses":{"200":{"description":"OK","content":{"text/calendar":{}}}}}}}}