{"openapi":"3.1.0","info":{"title":"Oncast stories","version":"1.0.0","summary":"Verified stories from Oncast. Cite each story URL and its sources.","description":"Read-only. A story is included only when a fact-check reached TRUE, FALSE, or MISLEADING and an original source link is known. Does not start a broadcast."},"servers":[{"url":"https://oncast.fm"}],"paths":{"/api/v1/channels":{"get":{"summary":"List channels","responses":{"200":{"description":"Channels"}}}},"/api/v1/stories":{"get":{"summary":"Latest verified stories","parameters":[{"name":"channel","in":"query","schema":{"type":"string"}},{"name":"topic","in":"query","schema":{"type":"string"},"description":"Show name"},{"name":"q","in":"query","schema":{"type":"string"}},{"name":"limit","in":"query","schema":{"type":"integer","minimum":1,"maximum":50}},{"name":"before","in":"query","schema":{"type":"string"},"description":"Story id or ISO time. Returns older stories."}],"responses":{"200":{"description":"Story cards. Each includes sources and an oncast.fm url. Transcript is on the single-story route."}}}},"/api/v1/stories/{id}":{"get":{"summary":"One verified story","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Story","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Story"}}}},"404":{"description":"Not a verified story"}}}}},"components":{"schemas":{"Story":{"type":"object","required":["id","title","summary","publishedAt","verification","sources","url","listenUrl","attribution"],"properties":{"id":{"type":"string"},"title":{"type":"string"},"summary":{"type":"string"},"publishedAt":{"type":"string","format":"date-time"},"url":{"type":"string","description":"Canonical oncast.fm story URL. Cite this."},"listenUrl":{"type":"string"},"sources":{"type":"array","items":{"type":"object","required":["url","name","verdict"]}},"verification":{"type":"object"},"hostsSaid":{"type":"array","items":{"type":"object"}},"attribution":{"type":"object"}}}}}}