{"openapi":"3.1.0","info":{"title":"ZICMA AI","description":"\nOne API for Zora chat, submission checks, document analysis, GIS, review briefs and reports.\n\n**Start here:** expand Health → GET /v1/health → Try it out → Execute.\nHTTP 200 alone does not prove readiness: inspect `ok`, `db`, `llm` and `embed`.\nCloud health checks credentials/catalog access; `inferenceVerified: false` means this\nhealth request did not run paid inference, not that a previous inference failed.\n\n**Access:** the deployed API accepts only approved application-server/operator IPs.\nAuthorize accepts a **ZiCMA platform bearer token**, never an OpenRouter API key.\nAdmin routes verify the token's role against the platform backend. Setting\n`X-Zicma-App: admin` does not grant admin access. Anonymous demos should use a unique\n`X-Zicma-Session` and reuse it to retrieve their own jobs and chat history.\nWhen email verification is enabled, anonymous chat/history requires requesting and\nconfirming a four-digit email code via `/v1/chat/verification/*` first. The same\nsession must be used throughout; verified platform users bypass the email step.\n\n**Processing:** local mode runs chat/embeddings locally. Cloud mode sends relevant\nprompts, excerpts and embedding input through OpenRouter to the configured provider.\nUse synthetic or approved data. Executing POST requests can incur model costs,\ncreate persisted jobs/history or change settings; documentation does not sandbox them.\n\n**Streaming:** chat and report responses use `text/event-stream` (AI SDK UI message\nstream v1). Swagger displays raw events; use the Zora frontend for the interactive UI\nor `curl -N` for debugging. An HTTP 200 stream can still contain an error event.\n\n**Jobs:** document/review submissions return HTTP 202 with `jobId` and `statusUrl`.\nPoll the status URL with the same identity. Request IDs are returned in `X-Request-Id`;\nretain response-body IDs as well when reporting a failure.\n","version":"0.1.0"},"paths":{"/v1/chat/verification":{"get":{"summary":"Verification Status","operationId":"verification_status_v1_chat_verification_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}},"tags":["Chat & history"],"security":[{},{"PlatformToken":[]}],"parameters":[{"name":"X-Zicma-App","in":"header","required":false,"schema":{"type":"string","enum":["public","portal","admin"],"default":"public"},"description":"Calling application; does not grant permissions."},{"name":"X-Zicma-Session","in":"header","required":false,"schema":{"type":"string"},"description":"Unique anonymous session identifier. Reuse for history/jobs; do not share."}]}},"/v1/chat/verification/request":{"post":{"summary":"Request Code","operationId":"request_code_v1_chat_verification_request_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/EmailBody"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"tags":["Chat & history"],"security":[{},{"PlatformToken":[]}],"parameters":[{"name":"X-Zicma-App","in":"header","required":false,"schema":{"type":"string","enum":["public","portal","admin"],"default":"public"},"description":"Calling application; does not grant permissions."},{"name":"X-Zicma-Session","in":"header","required":false,"schema":{"type":"string"},"description":"Unique anonymous session identifier. Reuse for history/jobs; do not share."}]}},"/v1/chat/verification/confirm":{"post":{"summary":"Confirm Code","operationId":"confirm_code_v1_chat_verification_confirm_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CodeBody"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"tags":["Chat & history"],"security":[{},{"PlatformToken":[]}],"parameters":[{"name":"X-Zicma-App","in":"header","required":false,"schema":{"type":"string","enum":["public","portal","admin"],"default":"public"},"description":"Calling application; does not grant permissions."},{"name":"X-Zicma-Session","in":"header","required":false,"schema":{"type":"string"},"description":"Unique anonymous session identifier. Reuse for history/jobs; do not share."}]}},"/v1/chat":{"post":{"summary":"Chat Endpoint","operationId":"chat_endpoint_v1_chat_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ChatBody"}}},"required":true},"responses":{"200":{"description":"AI SDK UI message stream v1. Inspect error and finish events.","content":{"text/event-stream":{"schema":{"type":"string"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"tags":["Chat & history"],"security":[{},{"PlatformToken":[]}],"parameters":[{"name":"X-Zicma-App","in":"header","required":false,"schema":{"type":"string","enum":["public","portal","admin"],"default":"public"},"description":"Calling application; does not grant permissions."},{"name":"X-Zicma-Session","in":"header","required":false,"schema":{"type":"string"},"description":"Unique anonymous session identifier. Reuse for history/jobs; do not share."}]}},"/v1/chat/threads":{"get":{"summary":"Threads List","operationId":"threads_list_v1_chat_threads_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}},"tags":["Chat & history"],"security":[{},{"PlatformToken":[]}],"parameters":[{"name":"X-Zicma-App","in":"header","required":false,"schema":{"type":"string","enum":["public","portal","admin"],"default":"public"},"description":"Calling application; does not grant permissions."},{"name":"X-Zicma-Session","in":"header","required":false,"schema":{"type":"string"},"description":"Unique anonymous session identifier. Reuse for history/jobs; do not share."}]}},"/v1/chat/threads/{thread_id}":{"get":{"summary":"Thread Get","operationId":"thread_get_v1_chat_threads__thread_id__get","parameters":[{"name":"thread_id","in":"path","required":true,"schema":{"type":"string","title":"Thread Id"}},{"name":"X-Zicma-App","in":"header","required":false,"schema":{"type":"string","enum":["public","portal","admin"],"default":"public"},"description":"Calling application; does not grant permissions."},{"name":"X-Zicma-Session","in":"header","required":false,"schema":{"type":"string"},"description":"Unique anonymous session identifier. Reuse for history/jobs; do not share."}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"tags":["Chat & history"],"security":[{},{"PlatformToken":[]}]}},"/v1/chat/threads/{thread_id}/delete":{"post":{"summary":"Thread Delete","description":"POST, not DELETE: the app proxies allow GET and POST only.","operationId":"thread_delete_v1_chat_threads__thread_id__delete_post","parameters":[{"name":"thread_id","in":"path","required":true,"schema":{"type":"string","title":"Thread Id"}},{"name":"X-Zicma-App","in":"header","required":false,"schema":{"type":"string","enum":["public","portal","admin"],"default":"public"},"description":"Calling application; does not grant permissions."},{"name":"X-Zicma-Session","in":"header","required":false,"schema":{"type":"string"},"description":"Unique anonymous session identifier. Reuse for history/jobs; do not share."}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"tags":["Chat & history"],"security":[{},{"PlatformToken":[]}]}},"/v1/validate/step":{"post":{"summary":"Validate Step","operationId":"validate_step_v1_validate_step_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/StepBody"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"tags":["Submission checks"],"security":[{},{"PlatformToken":[]}],"parameters":[{"name":"X-Zicma-App","in":"header","required":false,"schema":{"type":"string","enum":["public","portal","admin"],"default":"public"},"description":"Calling application; does not grant permissions."},{"name":"X-Zicma-Session","in":"header","required":false,"schema":{"type":"string"},"description":"Unique anonymous session identifier. Reuse for history/jobs; do not share."}]}},"/v1/validate/documents":{"post":{"summary":"Validate Documents Job","operationId":"validate_documents_job_v1_validate_documents_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DocumentsBody"}}},"required":true},"responses":{"202":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"tags":["Submission checks"],"security":[{},{"PlatformToken":[]}],"parameters":[{"name":"X-Zicma-App","in":"header","required":false,"schema":{"type":"string","enum":["public","portal","admin"],"default":"public"},"description":"Calling application; does not grant permissions."},{"name":"X-Zicma-Session","in":"header","required":false,"schema":{"type":"string"},"description":"Unique anonymous session identifier. Reuse for history/jobs; do not share."}]}},"/v1/gis/analyze":{"post":{"summary":"Gis Analyze","operationId":"gis_analyze_v1_gis_analyze_post","requestBody":{"content":{"multipart/form-data":{"schema":{"$ref":"#/components/schemas/Body_gis_analyze_v1_gis_analyze_post"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"tags":["Boundaries"],"security":[{},{"PlatformToken":[]}],"parameters":[{"name":"X-Zicma-App","in":"header","required":false,"schema":{"type":"string","enum":["public","portal","admin"],"default":"public"},"description":"Calling application; does not grant permissions."},{"name":"X-Zicma-Session","in":"header","required":false,"schema":{"type":"string"},"description":"Unique anonymous session identifier. Reuse for history/jobs; do not share."}]}},"/v1/review/brief":{"post":{"summary":"Create Brief","operationId":"create_brief_v1_review_brief_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/BriefBody"}}},"required":true},"responses":{"202":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"403":{"description":"ZiCMA admin only."}},"tags":["Admin review"],"security":[{"PlatformToken":[]}],"description":"Requires a backend-verified ZiCMA admin role.\n\n","parameters":[{"name":"X-Zicma-App","in":"header","required":false,"schema":{"type":"string","enum":["public","portal","admin"],"default":"public"},"description":"Calling application; does not grant permissions."},{"name":"X-Zicma-Session","in":"header","required":false,"schema":{"type":"string"},"description":"Unique anonymous session identifier. Reuse for history/jobs; do not share."}]}},"/v1/review/brief/cache":{"post":{"summary":"Cached Brief","description":"Requires a backend-verified ZiCMA admin role.\n\nCompare the supplied current input; this lookup never fetches or assumes fresh backend data.","operationId":"cached_brief_v1_review_brief_cache_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/BriefBody"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"403":{"description":"ZiCMA admin only."}},"tags":["Admin review"],"security":[{"PlatformToken":[]}],"parameters":[{"name":"X-Zicma-App","in":"header","required":false,"schema":{"type":"string","enum":["public","portal","admin"],"default":"public"},"description":"Calling application; does not grant permissions."},{"name":"X-Zicma-Session","in":"header","required":false,"schema":{"type":"string"},"description":"Unique anonymous session identifier. Reuse for history/jobs; do not share."}]}},"/v1/review/brief/{project_id}":{"get":{"summary":"Get Brief","operationId":"get_brief_v1_review_brief__project_id__get","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"string","title":"Project Id"}},{"name":"stage","in":"query","required":false,"schema":{"enum":["pin","pdd"],"type":"string","default":"pdd","title":"Stage"}},{"name":"X-Zicma-App","in":"header","required":false,"schema":{"type":"string","enum":["public","portal","admin"],"default":"public"},"description":"Calling application; does not grant permissions."},{"name":"X-Zicma-Session","in":"header","required":false,"schema":{"type":"string"},"description":"Unique anonymous session identifier. Reuse for history/jobs; do not share."}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"403":{"description":"ZiCMA admin only."}},"tags":["Admin review"],"security":[{"PlatformToken":[]}],"description":"Requires a backend-verified ZiCMA admin role.\n\n"}},"/v1/report/assist":{"post":{"summary":"Report Assist","operationId":"report_assist_v1_report_assist_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ReportBody"}}},"required":true},"responses":{"200":{"description":"AI SDK UI message stream v1. Inspect error and finish events.","content":{"text/event-stream":{"schema":{"type":"string"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"tags":["Reports"],"security":[{},{"PlatformToken":[]}],"parameters":[{"name":"X-Zicma-App","in":"header","required":false,"schema":{"type":"string","enum":["public","portal","admin"],"default":"public"},"description":"Calling application; does not grant permissions."},{"name":"X-Zicma-Session","in":"header","required":false,"schema":{"type":"string"},"description":"Unique anonymous session identifier. Reuse for history/jobs; do not share."}]}},"/v1/health":{"get":{"summary":"Health","operationId":"health_v1_health_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}},"tags":["Health"],"security":[{},{"PlatformToken":[]}],"parameters":[{"name":"X-Zicma-App","in":"header","required":false,"schema":{"type":"string","enum":["public","portal","admin"],"default":"public"},"description":"Calling application; does not grant permissions."},{"name":"X-Zicma-Session","in":"header","required":false,"schema":{"type":"string"},"description":"Unique anonymous session identifier. Reuse for history/jobs; do not share."}]}},"/v1/jobs/{job_id}":{"get":{"summary":"Job","operationId":"job_v1_jobs__job_id__get","parameters":[{"name":"job_id","in":"path","required":true,"schema":{"type":"string","title":"Job Id"}},{"name":"X-Zicma-App","in":"header","required":false,"schema":{"type":"string","enum":["public","portal","admin"],"default":"public"},"description":"Calling application; does not grant permissions."},{"name":"X-Zicma-Session","in":"header","required":false,"schema":{"type":"string"},"description":"Unique anonymous session identifier. Reuse for history/jobs; do not share."}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"tags":["Jobs"],"security":[{},{"PlatformToken":[]}]}},"/v1/feedback":{"post":{"summary":"Feedback","operationId":"feedback_v1_feedback_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/FeedbackBody"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"tags":["Feedback"],"security":[{},{"PlatformToken":[]}],"parameters":[{"name":"X-Zicma-App","in":"header","required":false,"schema":{"type":"string","enum":["public","portal","admin"],"default":"public"},"description":"Calling application; does not grant permissions."},{"name":"X-Zicma-Session","in":"header","required":false,"schema":{"type":"string"},"description":"Unique anonymous session identifier. Reuse for history/jobs; do not share."}]}},"/v1/feedback/answer":{"post":{"summary":"Feedback Answer","description":"Thumbs up/down on a chat answer. Keyed on (request id, session): a changed mind overwrites. No answer text is stored.","operationId":"feedback_answer_v1_feedback_answer_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AnswerFeedbackBody"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"tags":["Feedback"],"security":[{},{"PlatformToken":[]}],"parameters":[{"name":"X-Zicma-App","in":"header","required":false,"schema":{"type":"string","enum":["public","portal","admin"],"default":"public"},"description":"Calling application; does not grant permissions."},{"name":"X-Zicma-Session","in":"header","required":false,"schema":{"type":"string"},"description":"Unique anonymous session identifier. Reuse for history/jobs; do not share."}]}},"/v1/feedback/stats":{"get":{"summary":"Feedback Stats","operationId":"feedback_stats_v1_feedback_stats_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"403":{"description":"ZiCMA admin only."}},"tags":["Feedback"],"security":[{"PlatformToken":[]}],"description":"Requires a backend-verified ZiCMA admin role.\n\n","parameters":[{"name":"X-Zicma-App","in":"header","required":false,"schema":{"type":"string","enum":["public","portal","admin"],"default":"public"},"description":"Calling application; does not grant permissions."},{"name":"X-Zicma-Session","in":"header","required":false,"schema":{"type":"string"},"description":"Unique anonymous session identifier. Reuse for history/jobs; do not share."}]}},"/v1/escalate":{"post":{"summary":"Escalate","operationId":"escalate_v1_escalate_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/EscalateBody"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"tags":["Feedback"],"security":[{},{"PlatformToken":[]}],"parameters":[{"name":"X-Zicma-App","in":"header","required":false,"schema":{"type":"string","enum":["public","portal","admin"],"default":"public"},"description":"Calling application; does not grant permissions."},{"name":"X-Zicma-Session","in":"header","required":false,"schema":{"type":"string"},"description":"Unique anonymous session identifier. Reuse for history/jobs; do not share."}]}},"/v1/ops/settings":{"get":{"summary":"Ops Settings","operationId":"ops_settings_v1_ops_settings_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"403":{"description":"ZiCMA admin only."}},"tags":["Operations"],"security":[{"PlatformToken":[]}],"description":"Requires a backend-verified ZiCMA admin role.\n\n","parameters":[{"name":"X-Zicma-App","in":"header","required":false,"schema":{"type":"string","enum":["public","portal","admin"],"default":"public"},"description":"Calling application; does not grant permissions."},{"name":"X-Zicma-Session","in":"header","required":false,"schema":{"type":"string"},"description":"Unique anonymous session identifier. Reuse for history/jobs; do not share."}]},"post":{"summary":"Ops Settings Update","description":"Requires a backend-verified ZiCMA admin role.\n\nThe kill switch. Takes effect within 5 s (app/ops.py cache); audited as ops:enabled:<true|false>.","operationId":"ops_settings_update_v1_ops_settings_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/OpsSettingsBody"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"403":{"description":"ZiCMA admin only."}},"tags":["Operations"],"security":[{"PlatformToken":[]}],"parameters":[{"name":"X-Zicma-App","in":"header","required":false,"schema":{"type":"string","enum":["public","portal","admin"],"default":"public"},"description":"Calling application; does not grant permissions."},{"name":"X-Zicma-Session","in":"header","required":false,"schema":{"type":"string"},"description":"Unique anonymous session identifier. Reuse for history/jobs; do not share."}]}},"/v1/ruleset":{"get":{"summary":"Ruleset","operationId":"ruleset_v1_ruleset_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"403":{"description":"ZiCMA admin only."}},"tags":["Operations"],"security":[{"PlatformToken":[]}],"description":"Requires a backend-verified ZiCMA admin role.\n\n","parameters":[{"name":"X-Zicma-App","in":"header","required":false,"schema":{"type":"string","enum":["public","portal","admin"],"default":"public"},"description":"Calling application; does not grant permissions."},{"name":"X-Zicma-Session","in":"header","required":false,"schema":{"type":"string"},"description":"Unique anonymous session identifier. Reuse for history/jobs; do not share."}]}},"/v1/audit/recent":{"get":{"summary":"Audit Recent","operationId":"audit_recent_v1_audit_recent_get","parameters":[{"name":"limit","in":"query","required":false,"schema":{"type":"integer","default":20,"title":"Limit"}},{"name":"X-Zicma-App","in":"header","required":false,"schema":{"type":"string","enum":["public","portal","admin"],"default":"public"},"description":"Calling application; does not grant permissions."},{"name":"X-Zicma-Session","in":"header","required":false,"schema":{"type":"string"},"description":"Unique anonymous session identifier. Reuse for history/jobs; do not share."}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"403":{"description":"ZiCMA admin only."}},"tags":["Operations"],"security":[{"PlatformToken":[]}],"description":"Requires a backend-verified ZiCMA admin role.\n\n"}},"/v1/metrics":{"get":{"summary":"Metrics","description":"Requires a backend-verified ZiCMA admin role.\n\nOperations view: volume, speed and token use per use case, plus quality signals. Numbers only, no content.","operationId":"metrics_v1_metrics_get","parameters":[{"name":"days","in":"query","required":false,"schema":{"type":"integer","default":7,"title":"Days"}},{"name":"X-Zicma-App","in":"header","required":false,"schema":{"type":"string","enum":["public","portal","admin"],"default":"public"},"description":"Calling application; does not grant permissions."},{"name":"X-Zicma-Session","in":"header","required":false,"schema":{"type":"string"},"description":"Unique anonymous session identifier. Reuse for history/jobs; do not share."}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"403":{"description":"ZiCMA admin only."}},"tags":["Operations"],"security":[{"PlatformToken":[]}]}},"/v1/ingest/cms":{"post":{"summary":"Ingest Cms","operationId":"ingest_cms_v1_ingest_cms_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"403":{"description":"ZiCMA admin only."}},"tags":["Knowledge ingestion"],"security":[{"PlatformToken":[]}],"description":"Requires a backend-verified ZiCMA admin role.\n\n","parameters":[{"name":"X-Zicma-App","in":"header","required":false,"schema":{"type":"string","enum":["public","portal","admin"],"default":"public"},"description":"Calling application; does not grant permissions."},{"name":"X-Zicma-Session","in":"header","required":false,"schema":{"type":"string"},"description":"Unique anonymous session identifier. Reuse for history/jobs; do not share."}]}}},"components":{"schemas":{"AnswerFeedbackBody":{"properties":{"requestId":{"type":"string","maxLength":64,"title":"Requestid"},"decision":{"type":"string","enum":["up","down"],"title":"Decision"},"reason":{"anyOf":[{"type":"string","maxLength":500},{"type":"null"}],"title":"Reason"}},"type":"object","required":["requestId","decision"],"title":"AnswerFeedbackBody"},"Body_gis_analyze_v1_gis_analyze_post":{"properties":{"file":{"anyOf":[{"type":"string","contentMediaType":"application/octet-stream"},{"type":"null"}],"title":"File"},"url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Url"},"declaredAreaHa":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Declaredareaha"},"sector":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Sector"},"projectId":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Projectid"},"explain":{"type":"boolean","title":"Explain","default":true}},"type":"object","title":"Body_gis_analyze_v1_gis_analyze_post"},"BriefBody":{"properties":{"projectId":{"type":"string","maxLength":200,"minLength":1,"title":"Projectid"},"projectName":{"anyOf":[{"type":"string","maxLength":500},{"type":"null"}],"title":"Projectname"},"stage":{"type":"string","enum":["pin","pdd"],"title":"Stage","default":"pdd"},"pin":{"additionalProperties":true,"type":"object","title":"Pin"},"pdd":{"additionalProperties":true,"type":"object","title":"Pdd"},"readDocuments":{"type":"boolean","title":"Readdocuments","default":true},"judge":{"type":"boolean","title":"Judge","default":true}},"type":"object","required":["projectId"],"title":"BriefBody"},"ChatBody":{"properties":{"id":{"anyOf":[{"type":"string","maxLength":100},{"type":"null"}],"title":"Id"},"messages":{"items":{"additionalProperties":true,"type":"object"},"type":"array","title":"Messages"},"context":{"$ref":"#/components/schemas/ChatContext"},"trigger":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Trigger"},"messageId":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Messageid"}},"type":"object","title":"ChatBody"},"ChatContext":{"properties":{"app":{"type":"string","title":"App","default":"public"},"area":{"type":"string","title":"Area","default":"other"},"path":{"type":"string","title":"Path","default":""},"entity":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Entity"},"form":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Form"},"sessionId":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Sessionid"},"locale":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Locale"}},"type":"object","title":"ChatContext"},"CodeBody":{"properties":{"code":{"type":"string","maxLength":4,"minLength":4,"pattern":"^[0-9]{4}$","title":"Code"}},"type":"object","required":["code"],"title":"CodeBody"},"DocumentsBody":{"properties":{"projectId":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Projectid"},"stage":{"type":"string","enum":["pin","pdd"],"title":"Stage","default":"pin"},"values":{"additionalProperties":true,"type":"object","title":"Values"},"documents":{"items":{"additionalProperties":true,"type":"object"},"type":"array","maxItems":50,"title":"Documents"},"judge":{"type":"boolean","title":"Judge","default":true}},"type":"object","title":"DocumentsBody"},"EmailBody":{"properties":{"email":{"type":"string","maxLength":254,"minLength":3,"title":"Email"}},"type":"object","required":["email"],"title":"EmailBody"},"EscalateBody":{"properties":{"message":{"type":"string","maxLength":4000,"minLength":1,"title":"Message"},"context":{"additionalProperties":true,"type":"object","title":"Context"}},"type":"object","required":["message"],"title":"EscalateBody"},"FeedbackBody":{"properties":{"findingId":{"type":"string","maxLength":200,"title":"Findingid"},"ruleId":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Ruleid"},"rulesetVersion":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Rulesetversion"},"decision":{"type":"string","enum":["agree","dismiss","edit"],"title":"Decision"},"reason":{"anyOf":[{"type":"string","maxLength":500},{"type":"null"}],"title":"Reason"},"context":{"additionalProperties":true,"type":"object","title":"Context"}},"type":"object","required":["findingId","decision"],"title":"FeedbackBody"},"HTTPValidationError":{"properties":{"detail":{"items":{"$ref":"#/components/schemas/ValidationError"},"type":"array","title":"Detail"}},"type":"object","title":"HTTPValidationError"},"OpsSettingsBody":{"properties":{"enabled":{"type":"boolean","title":"Enabled"}},"type":"object","required":["enabled"],"title":"OpsSettingsBody"},"ReportBody":{"properties":{"reportType":{"type":"string","enum":["RMR","SDR"],"title":"Reporttype","default":"RMR"},"projectId":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Projectid"},"projectName":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Projectname"},"period":{"anyOf":[{"type":"string","pattern":"^[1-9][0-9]{3}$"},{"type":"null"}],"title":"Period"},"values":{"additionalProperties":{"type":"string"},"type":"object","maxProperties":32,"title":"Values"},"attachments":{"items":{"type":"string"},"type":"array","maxItems":100,"title":"Attachments"}},"type":"object","title":"ReportBody"},"StepBody":{"properties":{"projectId":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Projectid"},"stage":{"type":"string","enum":["pin","pdd"],"title":"Stage","default":"pin"},"step":{"type":"string","enum":["basic-information","category","information","details","project-details","documents"],"title":"Step"},"values":{"additionalProperties":true,"type":"object","title":"Values"},"documents":{"items":{"additionalProperties":true,"type":"object"},"type":"array","maxItems":50,"title":"Documents"},"signals":{"additionalProperties":true,"type":"object","title":"Signals"},"explain":{"type":"boolean","title":"Explain","default":true}},"type":"object","required":["step"],"title":"StepBody"},"ValidationError":{"properties":{"loc":{"items":{"anyOf":[{"type":"string"},{"type":"integer"}]},"type":"array","title":"Location"},"msg":{"type":"string","title":"Message"},"type":{"type":"string","title":"Error Type"},"input":{"title":"Input"},"ctx":{"type":"object","title":"Context"}},"type":"object","required":["loc","msg","type"],"title":"ValidationError"}},"securitySchemes":{"PlatformToken":{"type":"http","scheme":"bearer","bearerFormat":"JWT","description":"ZiCMA platform token. Never enter an OpenRouter key."}}}}