{"openapi":"3.1.0","info":{"title":"CzechAI Public Agent Gateway","version":"0.1.0","description":"Read-only discovery and inquiry-preview API for public CzechAI information. It does not submit inquiries, send messages, perform AML screening, take payments, place orders, access private data, or claim any search-ranking effect.","contact":{"url":"https://czechai.io/"},"license":{"name":"Proprietary","url":"https://czechai.io/"}},"jsonSchemaDialect":"https://json-schema.org/draft/2020-12/schema","servers":[{"url":"https://agent.czechai.io","description":"Planned production endpoint; deployment must be verified before this description is changed to live."}],"tags":[{"name":"Discovery","description":"Machine-readable discovery and deterministic public search."},{"name":"Content","description":"Claim-reviewed public service and content records."},{"name":"Inquiry preview","description":"Validation-only preview with no submission or retention."},{"name":"Operations","description":"Process health without private dependency details."}],"paths":{"/healthz":{"get":{"operationId":"getHealth","summary":"Check process health","tags":["Operations"],"responses":{"200":{"description":"The process has loaded a valid dataset.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Health"}}}},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/.well-known/capabilities.json":{"get":{"operationId":"getCapabilities","summary":"List implemented and explicitly unavailable capabilities","description":"CzechAI-specific discovery document. It is not presented as an industry standard, MCP server, A2A Agent Card, or WebMCP declaration.","tags":["Discovery"],"responses":{"200":{"description":"Current gateway boundaries.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Capabilities"}}}},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/v1/search":{"get":{"operationId":"searchPublicInformation","summary":"Search the curated public snapshot","description":"Deterministic local text search. It does not call private systems or an LLM.","tags":["Discovery"],"parameters":[{"name":"q","in":"query","required":true,"description":"Search query, 2-160 characters.","schema":{"type":"string","minLength":2,"maxLength":160},"example":"AI automatizace pro firmy"},{"name":"type","in":"query","required":false,"description":"Repeat to include more than one result type.","schema":{"type":"array","items":{"enum":["service","content","product"]}},"style":"form","explode":true},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","minimum":1,"maximum":20,"default":10}}],"responses":{"200":{"description":"Ranked matches from the local public snapshot.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SearchResponse"}}}},"400":{"$ref":"#/components/responses/BadRequest"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/v1/services":{"get":{"operationId":"listServices","summary":"List public CzechAI service guides","tags":["Content"],"responses":{"200":{"description":"Claim-safe public service descriptions with canonical URLs.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServicesResponse"}}}},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/v1/content":{"get":{"operationId":"listContent","summary":"List public content records","tags":["Content"],"parameters":[{"name":"offset","in":"query","schema":{"type":"integer","minimum":0,"default":0}},{"name":"limit","in":"query","schema":{"type":"integer","minimum":1,"maximum":50,"default":20}}],"responses":{"200":{"description":"A page of public content metadata.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ContentListResponse"}}}},"400":{"$ref":"#/components/responses/BadRequest"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/v1/content/{id}":{"get":{"operationId":"getContent","summary":"Get one public content record","tags":["Content"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","pattern":"^[a-z0-9-]{2,80}$"}}],"responses":{"200":{"description":"Public content and its canonical source.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ContentItem"}}}},"404":{"$ref":"#/components/responses/NotFound"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/v1/inquiries/preview":{"post":{"operationId":"previewInquiry","summary":"Validate and preview an inquiry without submitting it","description":"No data is stored or sent. There is deliberately no execute or submit endpoint in this release.","tags":["Inquiry preview"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/InquiryInput"},"example":{"name":"Jan Novak","email":"jan@example.cz","organization":"Example s.r.o.","message":"Chceme prověřit možnosti bezpečné automatizace interního procesu."}}}},"responses":{"200":{"description":"Sanitised preview; submitted is always false.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InquiryPreview"}}}},"400":{"$ref":"#/components/responses/BadRequest"},"413":{"$ref":"#/components/responses/PayloadTooLarge"},"415":{"$ref":"#/components/responses/UnsupportedMediaType"},"429":{"$ref":"#/components/responses/RateLimited"}}}}},"components":{"schemas":{"Health":{"type":"object","additionalProperties":false,"required":["status","data_version"],"properties":{"status":{"const":"ok"},"data_version":{"type":"string","format":"date-time"}}},"PublicRecord":{"type":"object","required":["id","title","description","canonical_url","updated"],"properties":{"id":{"type":"string"},"title":{"type":"string"},"description":{"type":"string"},"canonical_url":{"type":"string","format":"uri","pattern":"^https://"},"updated":{"type":"string","format":"date"}}},"SearchResult":{"unevaluatedProperties":false,"allOf":[{"$ref":"#/components/schemas/PublicRecord"},{"type":"object","required":["type","score"],"properties":{"type":{"enum":["service","content","product"]},"score":{"type":"integer","minimum":1}}}]},"SearchResponse":{"type":"object","required":["query","count","results","source","data_version"],"properties":{"query":{"type":"string"},"count":{"type":"integer","minimum":0},"results":{"type":"array","items":{"$ref":"#/components/schemas/SearchResult"}},"source":{"const":"curated_public_snapshot"},"data_version":{"type":"string","format":"date-time"}}},"ServicesResponse":{"type":"object","required":["count","services","data_version"],"properties":{"count":{"type":"integer"},"services":{"type":"array","items":{"$ref":"#/components/schemas/PublicRecord"}},"data_version":{"type":"string","format":"date-time"}}},"ContentItem":{"unevaluatedProperties":false,"allOf":[{"$ref":"#/components/schemas/PublicRecord"},{"type":"object","required":["excerpt"],"properties":{"excerpt":{"type":"string","maxLength":12000},"data_version":{"type":"string","format":"date-time"}}}]},"ContentListResponse":{"type":"object","required":["count","offset","limit","items","data_version"],"properties":{"count":{"type":"integer"},"offset":{"type":"integer"},"limit":{"type":"integer"},"items":{"type":"array","items":{"$ref":"#/components/schemas/PublicRecord"}},"data_version":{"type":"string","format":"date-time"}}},"InquiryInput":{"type":"object","additionalProperties":false,"required":["name","email","message"],"properties":{"name":{"type":"string","minLength":2,"maxLength":100},"email":{"type":"string","format":"email","maxLength":254},"organization":{"type":"string","minLength":2,"maxLength":160},"message":{"type":"string","minLength":10,"maxLength":3000}}},"InquiryPreview":{"type":"object","additionalProperties":false,"required":["preview_id","normalized","side_effects_performed","retained","submitted","confirmation_required","submission_available","notice"],"properties":{"preview_id":{"type":"string","pattern":"^preview_[a-f0-9]{20}$"},"normalized":{"type":"object","additionalProperties":false,"required":["name","email_masked","organization","message_preview","message_characters"],"properties":{"name":{"type":"string"},"email_masked":{"type":"string"},"organization":{"type":["string","null"]},"message_preview":{"type":"string","maxLength":240},"message_characters":{"type":"integer","minimum":10,"maximum":3000}}},"side_effects_performed":{"type":"array","maxItems":0},"retained":{"const":false},"submitted":{"const":false},"confirmation_required":{"const":true},"submission_available":{"const":false},"notice":{"type":"string"}}},"Capabilities":{"type":"object","description":"CzechAI-specific capability metadata; not a cross-vendor protocol declaration.","additionalProperties":true},"Error":{"type":"object","required":["error","request_id"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"details":{"type":"object"}}},"request_id":{"type":"string","format":"uuid"}}}},"responses":{"BadRequest":{"description":"Invalid input.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"NotFound":{"description":"Resource not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"PayloadTooLarge":{"description":"Request body exceeds 16 KiB.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"UnsupportedMediaType":{"description":"Content-Type is not application/json.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"RateLimited":{"description":"Rate limit exceeded.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"security":[],"x-czechai-boundaries":{"data_classification":"public","side_effecting_operations":0,"stores_personal_data":false,"excluded":["AML","payments","email sending","orders","private endpoints","credentials","account mutation"],"ranking_effect_claimed":false}}