{
  "openapi":"3.1.0",
  "info":{"title":"Machine Observer API","version":"0.3.3","description":"Read-only, CORS-open intelligence API for machine-native economies. Unknown values remain null; claims carry provenance."},
  "servers":[{"url":"https://machineobserver.com"}],
  "paths":{
    "/api/v1/manifest":{"get":{"summary":"Discover Machine Observer interfaces","responses":{"200":{"description":"Service manifest"}}}},
    "/api/v1/briefing":{"get":{"summary":"Compact agent briefing","responses":{"200":{"description":"Index state, claims and signals"}}}},
    "/api/v1/meta":{"get":{"summary":"Full static meta-index snapshot","responses":{"200":{"description":"Sectors, sources, observations, claims and protocols"}}}},
    "/api/v1/live":{"get":{"summary":"Collect configured public core sources now","responses":{"200":{"description":"Fresh aggregate observations"},"503":{"description":"All collectors failed"}}}},
    "/api/v1/supply":{"get":{"summary":"Collect live model/tool supply signals from OpenRouter and the official MCP Registry","responses":{"200":{"description":"Fresh supply metrics"},"503":{"description":"All supply collectors failed"}}}},
    "/api/v1/developer":{"get":{"summary":"Collect public npm/PyPI download activity for selected machine-economy SDKs and frameworks","responses":{"200":{"description":"Registry download activity. Not unique users or deployments."},"503":{"description":"All developer-signal collectors failed"}}}},
    "/api/v1/changes":{"get":{"summary":"Compare latest two stored snapshots","responses":{"200":{"description":"Numeric changes or baseline status"}}}},
    "/api/v1/history":{"get":{"summary":"Read stored snapshots","parameters":[{"name":"limit","in":"query","schema":{"type":"integer","minimum":1,"maximum":100,"default":30}}],"responses":{"200":{"description":"Historical observations"}}}},
    "/api/v1/claims":{"get":{"summary":"Read atomic claims","parameters":[{"name":"id","in":"query","schema":{"type":"string"}},{"name":"sector","in":"query","schema":{"type":"string"}}],"responses":{"200":{"description":"Claims with source references"}}}},
    "/api/v1/sources":{"get":{"summary":"Read source registry and confidence scores","responses":{"200":{"description":"Sources"}}}},
    "/api/v1/indexes":{"get":{"summary":"Read sector/index/source graph","responses":{"200":{"description":"Index graph"}}}},
    "/api/v1/protocols":{"get":{"summary":"Read machine-commerce protocol stack","responses":{"200":{"description":"Protocols grouped by layer"}}}},
    "/api/v1/stories":{"get":{"summary":"Read research stories with underlying claims","parameters":[{"name":"slug","in":"query","schema":{"type":"string"}}],"responses":{"200":{"description":"Research stories"}}}},
    "/api/v1/news":{"get":{"summary":"Read sourced external news entries","responses":{"200":{"description":"News items"}}}},
    "/api/v1/search":{"get":{"summary":"Search Machine Observer knowledge objects","parameters":[{"name":"q","in":"query","required":true,"schema":{"type":"string","minLength":2}}],"responses":{"200":{"description":"Search results"},"400":{"description":"Invalid query"}}}},
    "/api/v1/health":{"get":{"summary":"Health check","responses":{"200":{"description":"Healthy"}}}},
    "/briefing.md":{"get":{"summary":"Token-efficient Markdown briefing","responses":{"200":{"description":"Markdown briefing","content":{"text/markdown":{}}}}}},
    "/feed.json":{"get":{"summary":"JSON Feed 1.1 of research and sourced news","responses":{"200":{"description":"JSON Feed"}}}}
  },
  "x-mcp":{"url":"https://machineobserver.com/mcp","transport":"streamable-http","tools":["machine_observer_briefing","machine_observer_claim","machine_observer_search","machine_observer_live"]}
}
