{"openapi":"3.1.0","info":{"title":"Protection Atlas ZA Evidence API","version":"1.0.0","description":"Public published-fact reads; admin review gate; source ingestion; client bearer tokens"},"servers":[{"url":"/"}],"paths":{"/api/v1/health":{"get":{"summary":"Service and database status"}},"/api/v1/facts":{"get":{"summary":"Approved evidence facts; optional q parameter","security":[{},{"ApiKey":[]}]}},"/api/v1/sources":{"get":{"summary":"Published official source registry"}},"/api/v1/auth/login":{"post":{"summary":"Admin login; HttpOnly cookie"}},"/api/v1/admin/sources":{"get":{"summary":"Source administration","security":[{"AdminCookie":[]}]},"post":{"summary":"Register a public HTTPS source","security":[{"AdminCookie":[]}]}},"/api/v1/admin/rules":{"post":{"summary":"Create deterministic extraction rule","security":[{"AdminCookie":[]}]}},"/api/v1/admin/sources/{id}/ingest":{"post":{"summary":"Fetch source and generate candidates","security":[{"AdminCookie":[]}]}},"/api/v1/admin/facts/{id}/review":{"post":{"summary":"Explicit publish/reject","security":[{"AdminCookie":[]}]}},"/api/v1/admin/clients":{"post":{"summary":"Issue scoped read-only API key","security":[{"AdminCookie":[]}]}},"/api/v1/chat":{"post":{"summary":"Admin chat grounded in published evidence","security":[{"AdminCookie":[]}]}}},"components":{"securitySchemes":{"AdminCookie":{"type":"apiKey","in":"cookie","name":"pa_session"},"ApiKey":{"type":"http","scheme":"bearer"}}}}