{"openapi":"3.1.0","info":{"title":"dailyai.report API","version":"0.0.1","description":"Read-only JSON APIs for the daily AI news feed. Cron and internal routes use separate authentication."},"servers":[{"url":"https://dailyai.report/api","description":"Production"}],"paths":{"/":{"get":{"summary":"dailyai.report API catalog","description":"JSON index of public dailyai.report endpoints, docs, OpenAPI, and llms.txt.","responses":{"200":{"description":"API catalog","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiEnvelope"}}}}}}},"/feed":{"get":{"summary":"Latest feed","description":"Returns the latest full feed, optionally filtered by tag.","parameters":[{"name":"tag","in":"query","schema":{"type":"string","enum":["model","research","industry","tools","policy","agents","vision","safety","hardware","audio"]}}],"responses":{"200":{"description":"Feed payload","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiEnvelope"}}}},"404":{"description":"Feed not available","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"500":{"description":"Server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}}},"/feed/{date}":{"get":{"summary":"Feed for date","parameters":[{"name":"date","in":"path","required":true,"schema":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"}}],"responses":{"200":{"description":"Feed for the given UTC date key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiEnvelope"}}}},"404":{"description":"No feed for this date","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}}},"/health":{"get":{"summary":"Health check","responses":{"200":{"description":"Service is up","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"service":{"type":"string"}}}}}}}}},"/feedback":{"post":{"summary":"Submit feedback","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["type","message"],"properties":{"type":{"type":"string","enum":["bug","suggestion","general"]},"message":{"type":"string","minLength":5,"maxLength":2000},"email":{"type":"string"},"card_id":{"type":"string"},"page_url":{"type":"string"}}}}}},"responses":{"200":{"description":"Feedback stored"},"400":{"description":"Invalid body","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"503":{"description":"Feedback not configured","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}}}},"components":{"schemas":{"ApiEnvelope":{"type":"object","description":"Standard API wrapper used by this project. Errors also include code, message, and resolution.","properties":{"data":{"nullable":true},"error":{"type":["string","null"]},"code":{"type":["string","null"]},"message":{"type":["string","null"]},"resolution":{"type":["string","null"]},"meta":{"type":"object","additionalProperties":true}}},"ApiError":{"type":"object","required":["data","error","code","message","resolution","meta"],"description":"JSON error envelope for agents: machine code, message, and a resolution hint.","properties":{"data":{"nullable":true},"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"resolution":{"type":"string"},"meta":{"type":"object","additionalProperties":true}}}}}}