{"openapi":"3.1.0","info":{"title":"NousTime public API","version":"2026-10-21.1","description":"各信源的公开资讯与快讯，按频道与主题汇成时间线；登录后可收藏、关注主题并生成个人报告。"},"paths":{"/api/v1/changes":{"get":{"summary":"Item changes in ledger order (at least once; apply by uid and revision)","parameters":[{"name":"starting_after","in":"query","required":false,"schema":{"default":"0","type":"string","pattern":"^(\\d{1,18}|latest)$"}},{"name":"per_page","in":"query","required":false,"schema":{"default":100,"type":"integer","minimum":1,"maximum":150}}],"responses":{"200":{"description":"a list of item_change"},"400":{"description":"error.list","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorList"}}}},"404":{"description":"error.list","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorList"}}}},"429":{"description":"error.list","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorList"}}}}}}},"/api/v1/channels":{"get":{"summary":"Listed channels","parameters":[],"responses":{"200":{"description":"a list of channel"},"400":{"description":"error.list","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorList"}}}},"404":{"description":"error.list","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorList"}}}},"429":{"description":"error.list","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorList"}}}}}}},"/api/v1/channels/{channel}":{"get":{"summary":"One channel with its topics","parameters":[{"name":"channel","in":"path","required":true,"schema":{"type":"string","pattern":"^[a-z][a-z0-9_]{0,31}$"}}],"responses":{"200":{"description":"one channel"},"400":{"description":"error.list","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorList"}}}},"404":{"description":"error.list","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorList"}}}},"429":{"description":"error.list","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorList"}}}}}}},"/api/v1/graph":{"get":{"summary":"Explore related news within a topic or keyword","parameters":[],"responses":{"200":{"description":"one graph"},"400":{"description":"error.list","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorList"}}}},"404":{"description":"error.list","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorList"}}}},"429":{"description":"error.list","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorList"}}}}}}},"/api/v1/graphs":{"get":{"summary":"Discover administrator-saved public graph scopes","parameters":[],"responses":{"200":{"description":"one graph_directory"},"400":{"description":"error.list","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorList"}}}},"404":{"description":"error.list","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorList"}}}},"429":{"description":"error.list","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorList"}}}}}}},"/api/v1/graphs/{uid}":{"get":{"summary":"Read a saved public graph entry","parameters":[],"responses":{"200":{"description":"one graph_definition"},"400":{"description":"error.list","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorList"}}}},"404":{"description":"error.list","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorList"}}}},"429":{"description":"error.list","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorList"}}}}}}},"/api/v1/items":{"get":{"summary":"Items, newest first or by relevance, filtered by channel, topic, day, range, window or search","parameters":[{"name":"channel","in":"query","required":false,"schema":{"type":"string","pattern":"^[a-z][a-z0-9_]{0,31}$"}},{"name":"topic","in":"query","required":false,"schema":{"type":"string","pattern":"^[a-z][a-z0-9-]{0,31}$"}},{"name":"day","in":"query","required":false,"schema":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"}},{"name":"from","in":"query","required":false,"schema":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"}},{"name":"until","in":"query","required":false,"schema":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"}},{"name":"window","in":"query","required":false,"schema":{"type":"string","enum":["24h","7d"]}},{"name":"q","in":"query","required":false,"schema":{"type":"string","maxLength":200}},{"name":"sort","in":"query","required":false,"schema":{"default":"time","type":"string","enum":["time","relevance"]}},{"name":"starting_after","in":"query","required":false,"schema":{"type":"string","maxLength":400}},{"name":"per_page","in":"query","required":false,"schema":{"default":20,"type":"integer","minimum":1,"maximum":150}}],"responses":{"200":{"description":"a list of item"},"400":{"description":"error.list","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorList"}}}},"404":{"description":"error.list","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorList"}}}},"429":{"description":"error.list","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorList"}}}}}}},"/api/v1/items/{uid}":{"get":{"summary":"One item; a withdrawn item carries a notice instead of its text","parameters":[{"name":"uid","in":"path","required":true,"schema":{"type":"string","pattern":"^[0-9a-f]{8}-[0-9a-f]{4}-8[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$"}}],"responses":{"200":{"description":"one item"},"400":{"description":"error.list","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorList"}}}},"404":{"description":"error.list","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorList"}}}},"429":{"description":"error.list","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorList"}}}}}}},"/api/v1/items/{uid}/graph":{"get":{"summary":"Read a bounded public news neighborhood","parameters":[],"responses":{"200":{"description":"one graph"},"400":{"description":"error.list","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorList"}}}},"404":{"description":"error.list","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorList"}}}},"429":{"description":"error.list","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorList"}}}}}}},"/api/v1/meta":{"get":{"summary":"API versions, error codes and entry families","parameters":[],"responses":{"200":{"description":"one api_meta"},"400":{"description":"error.list","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorList"}}}},"404":{"description":"error.list","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorList"}}}},"429":{"description":"error.list","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorList"}}}}}}},"/api/v1/openapi.json":{"get":{"summary":"This document","parameters":[],"responses":{"200":{"description":"the document itself"},"400":{"description":"error.list","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorList"}}}},"404":{"description":"error.list","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorList"}}}},"429":{"description":"error.list","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorList"}}}}}}},"/api/v1/site/stats":{"get":{"summary":"Public figures: sources and items","parameters":[],"responses":{"200":{"description":"one site_stats"},"400":{"description":"error.list","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorList"}}}},"404":{"description":"error.list","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorList"}}}},"429":{"description":"error.list","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorList"}}}}}}},"/api/v1/telemetry/web-vitals":{"post":{"summary":"Anonymous sampled browser performance","parameters":[],"responses":{"204":{"description":"the document itself"},"400":{"description":"error.list","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorList"}}}},"404":{"description":"error.list","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorList"}}}},"429":{"description":"error.list","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorList"}}}}}}},"/api/v1/timeline":{"get":{"summary":"The timeline, one card per item, with per-day counts","parameters":[{"name":"channel","in":"query","required":false,"schema":{"type":"string","pattern":"^[a-z][a-z0-9_]{0,31}$"}},{"name":"topic","in":"query","required":false,"schema":{"type":"string","pattern":"^[a-z][a-z0-9-]{0,31}$"}},{"name":"starting_after","in":"query","required":false,"schema":{"type":"string","maxLength":300}},{"name":"per_page","in":"query","required":false,"schema":{"default":20,"type":"integer","minimum":1,"maximum":40}}],"responses":{"200":{"description":"a list of timeline_card"},"400":{"description":"error.list","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorList"}}}},"404":{"description":"error.list","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorList"}}}},"429":{"description":"error.list","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorList"}}}}}}}},"components":{"parameters":{"ApiVersion":{"name":"x-nous-time-version","in":"header","required":false,"schema":{"type":"string","const":"2026-10-21.1"}}},"schemas":{"ErrorList":{"type":"object","required":["type","request_uid","errors"],"properties":{"type":{"const":"error.list"},"request_uid":{"type":"string"},"errors":{"type":"array","items":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"field":{"type":"string"}}}}}}}}}