{"openapi":"3.1.0","info":{"title":"Conversint Public API","description":"Public, read-only API for Conversint service discovery and AI agent integrations.","version":"1.0.0","contact":{"name":"Conversint","email":"hello@conversint.ai","url":"https://conversint.ai/developers"}},"servers":[{"url":"https://conversint.ai","description":"Production"}],"paths":{"/api/services":{"get":{"operationId":"listServices","summary":"List Conversint services","description":"Returns public Conversint service offerings for AI consulting, AEO/LLMO optimization, implementation, and fractional staffing.","parameters":[{"name":"category","in":"query","required":false,"schema":{"type":"string","enum":["educate","grow","optimize"]}},{"name":"includeDetails","in":"query","required":false,"schema":{"type":"boolean","default":false}}],"responses":{"200":{"description":"List of services","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceListResponse"}}}},"400":{"description":"Invalid query parameter","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}},"/api/services/{id}":{"get":{"operationId":"getService","summary":"Get a Conversint service","description":"Returns public details for a single Conversint service.","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","pattern":"^[1-9][0-9]*$"}}],"responses":{"200":{"description":"Service details","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceResponse"}}}},"404":{"description":"Service not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}},"/ask":{"get":{"operationId":"getAskMetadata","summary":"Get NLWeb-style ask endpoint metadata","description":"Returns metadata describing the Conversint natural-language ask endpoint.","responses":{"200":{"description":"Ask endpoint metadata"}}},"post":{"operationId":"askConversint","summary":"Ask a question about Conversint","description":"Accepts a natural-language question and returns a JSON answer with citations. Set prefer.streaming=true for SSE streaming.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"query":{"type":"string"},"question":{"type":"string"},"prefer":{"type":"object","properties":{"streaming":{"type":"boolean"}}}}}}}},"responses":{"200":{"description":"Answer response or SSE stream"},"400":{"description":"Invalid request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}},"/api/mcp":{"get":{"operationId":"getMcpMetadata","summary":"Get Conversint MCP endpoint metadata","responses":{"200":{"description":"MCP endpoint metadata and tool list"}}},"post":{"operationId":"callMcp","summary":"Call the Conversint MCP server","description":"JSON-RPC endpoint supporting initialize, tools/list, and tools/call for public Conversint service discovery tools.","responses":{"200":{"description":"JSON-RPC response"}}}}},"components":{"schemas":{"ServiceListResponse":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/Service"}},"count":{"type":"integer"},"documentation":{"type":"string","format":"uri"},"openapi":{"type":"string","format":"uri"}},"required":["data","count"]},"ServiceResponse":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/Service"},"documentation":{"type":"string","format":"uri"},"openapi":{"type":"string","format":"uri"}},"required":["data"]},"Service":{"type":"object","properties":{"id":{"type":"integer"},"title":{"type":"string"},"category":{"type":"string","enum":["educate","grow","optimize"]},"summary":{"type":"string"},"url":{"type":"string","format":"uri"},"description":{"type":"string"},"descriptionRight":{"type":"string"},"features":{"type":"array","items":{"type":"string"}},"process":{"type":"array","items":{"type":"object","properties":{"step":{"type":"string"},"title":{"type":"string"},"description":{"type":"string"}}}},"faqs":{"type":"array","items":{"type":"object","properties":{"question":{"type":"string"},"answer":{"type":"string"}}}},"approach":{"type":"string"}},"required":["id","title","category","summary","url"]},"ErrorResponse":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"resolution":{"type":"string"}},"required":["code","message"]},"documentation":{"type":"string","format":"uri"},"openapi":{"type":"string","format":"uri"}},"required":["error"]}}}}