{"openapi":"3.1.0","info":{"title":"OCINT","description":"Real-time civic intelligence for Orange County, CA. Live crime, fire, traffic, weather, power outages, earthquakes, and 30+ public data sources on one dashboard.","version":"1.1.0"},"servers":[{"url":"https://ocint.app"}],"paths":{"/api/situations":{"get":{"summary":"List published situations","parameters":[{"name":"status","in":"query","schema":{"type":"string","example":"active,developing"}},{"name":"limit","in":"query","schema":{"type":"integer","default":50}},{"name":"format","in":"query","schema":{"type":"string","enum":["json","md"]}}],"responses":{"200":{"description":"Situation list with citation URLs"}}}},"/api/situations/{slug}":{"get":{"summary":"Get one situation (JSON includes citation block)","parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string"}},{"name":"format","in":"query","schema":{"type":"string","enum":["json","md"]}}],"responses":{"200":{"description":"citation + situation"},"404":{"description":"Not found"}}}},"/situation/{slug}.md":{"get":{"summary":"Markdown briefing for agents","parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"text/markdown"}}}},"/llms.txt":{"get":{"summary":"Agent start page","responses":{"200":{"description":"text/markdown"}}}},"/llms-full.txt":{"get":{"summary":"Full agent index","responses":{"200":{"description":"text/markdown"}}}},"/feed.xml":{"get":{"summary":"RSS of dispatch + situations","responses":{"200":{"description":"application/rss+xml"}}}},"/mcp/mcp":{"post":{"summary":"HTTP MCP (read-only; API key optional)","responses":{"200":{"description":"MCP JSON-RPC"}}}},"/api/v1/items":{"get":{"summary":"Raw feed items (API key required)","security":[{"apiKey":[]}],"responses":{"200":{"description":"Item list"},"401":{"description":"API key required"}}}},"/api/v1/search":{"get":{"summary":"Full-text item search (API key required)","security":[{"apiKey":[]}],"responses":{"200":{"description":"Search hits"}}}},"/api/v1/briefing":{"get":{"summary":"Daily dispatch (API key required)","security":[{"apiKey":[]}],"responses":{"200":{"description":"Narratives"}}}}},"components":{"securitySchemes":{"apiKey":{"type":"http","scheme":"bearer","bearerFormat":"ocint_","description":"Create at /account. Optional for MCP and public /api/situations."}}}}