{"openapi":"3.1.0","info":{"title":"Newsletters API","version":"1.0.0","description":"Data, AI and tech newsletters (author, platform, free or paid, measured cadence) and their latest issues, read weekly from each newsletter’s own feed or archive. Issue titles, dates and links only; every issue links to the original. Free to read; cite Newsletters (newsletters.fru.dev).","contact":{"email":"fru.dev3@gmail.com"}},"servers":[{"url":"https://newsletters.fru.dev"}],"paths":{"/api/issues":{"get":{"summary":"Issues, newest first","parameters":[{"name":"since","in":"query","schema":{"type":"string","format":"date"}},{"name":"newsletter","in":"query","schema":{"type":"string"}},{"name":"topic","in":"query","schema":{"type":"string","enum":["ai","research","data","engineering","chips","business","product","policy"]}},{"name":"limit","in":"query","schema":{"type":"integer","minimum":1,"maximum":200,"default":50}},{"name":"offset","in":"query","schema":{"type":"integer","minimum":0,"default":0}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object"}}}}}}},"/api/newsletters":{"get":{"summary":"Every tracked newsletter","parameters":[{"name":"limit","in":"query","schema":{"type":"integer","minimum":1,"maximum":200,"default":50}},{"name":"offset","in":"query","schema":{"type":"integer","minimum":0,"default":0}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object"}}}}}}},"/api/newsletters/{slug}":{"get":{"summary":"One newsletter, its latest issues and its change history","parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object"}}}},"404":{"description":"Unknown newsletter"}}}},"/api/companies":{"get":{"summary":"Company publishers (companies.fru.dev slug, domain, page here) with their newsletters and dated issues","description":"For the companies.fru.dev nightly sync. `since` limits the dated items to issues on or after that date; every company publisher is always listed; independent writers are not companies and are left out.","parameters":[{"name":"since","in":"query","schema":{"type":"string","format":"date"}},{"name":"limit","in":"query","schema":{"type":"integer","minimum":1,"maximum":200,"default":50}},{"name":"offset","in":"query","schema":{"type":"integer","minimum":0,"default":0}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object"}}}}}}},"/api/changes":{"get":{"summary":"The append-only change log","parameters":[{"name":"since","in":"query","schema":{"type":"string"}},{"name":"limit","in":"query","schema":{"type":"integer","minimum":1,"maximum":200}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object"}}}}}}},"/api/search":{"get":{"summary":"Search newsletters, recent issues 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"}}}}}}}}}