naftiko: 1.0.0-alpha2 info: label: Reference Chat API description: Reference OpenAPI definition describing the typical shape of a chat platform API. Captures the vocabulary used for conversations, messages, and participants and serves as a profiling baseline for cataloguing concrete chat platform APIs. tags: - Chat - API created: '2026-05-06' modified: '2026-05-06' capability: consumes: - type: http namespace: chat baseUri: https://api.example.com/v1/chat description: Reference Chat API HTTP API. authentication: type: bearer token: '{{CHAT_TOKEN}}' resources: - name: conversations path: /conversations operations: - name: listconversations method: GET description: List conversations inputParameters: - name: cursor in: query type: string - name: limit in: query type: integer outputRawFormat: json outputParameters: - name: result type: object value: $. - name: createconversation method: POST description: Create a conversation outputRawFormat: json outputParameters: - name: result type: object value: $. - name: conversations-conversationid path: /conversations/{conversationId} operations: - name: getconversation method: GET description: Get a conversation outputRawFormat: json outputParameters: - name: result type: object value: $. - name: conversations-conversationid-messages path: /conversations/{conversationId}/messages operations: - name: listmessages method: GET description: List messages in a conversation inputParameters: - name: cursor in: query type: string - name: limit in: query type: integer outputRawFormat: json outputParameters: - name: result type: object value: $. - name: sendmessage method: POST description: Send a message outputRawFormat: json outputParameters: - name: result type: object value: $. - name: conversations-conversationid-participants path: /conversations/{conversationId}/participants operations: - name: listparticipants method: GET description: List participants outputRawFormat: json outputParameters: - name: result type: object value: $. - name: addparticipant method: POST description: Add a participant outputRawFormat: json outputParameters: - name: result type: object value: $. exposes: - type: rest port: 8080 namespace: chat-rest description: REST adapter for Reference Chat API. resources: - path: /conversations name: listconversations operations: - method: GET name: listconversations description: List conversations call: chat.listconversations outputParameters: - type: object mapping: $. - path: /conversations name: createconversation operations: - method: POST name: createconversation description: Create a conversation call: chat.createconversation outputParameters: - type: object mapping: $. - path: /conversations/{conversationId} name: getconversation operations: - method: GET name: getconversation description: Get a conversation call: chat.getconversation outputParameters: - type: object mapping: $. - path: /conversations/{conversationId}/messages name: listmessages operations: - method: GET name: listmessages description: List messages in a conversation call: chat.listmessages outputParameters: - type: object mapping: $. - path: /conversations/{conversationId}/messages name: sendmessage operations: - method: POST name: sendmessage description: Send a message call: chat.sendmessage outputParameters: - type: object mapping: $. - path: /conversations/{conversationId}/participants name: listparticipants operations: - method: GET name: listparticipants description: List participants call: chat.listparticipants outputParameters: - type: object mapping: $. - path: /conversations/{conversationId}/participants name: addparticipant operations: - method: POST name: addparticipant description: Add a participant call: chat.addparticipant outputParameters: - type: object mapping: $. - type: mcp port: 9090 namespace: chat-mcp transport: http description: MCP adapter for Reference Chat API for AI agent use. tools: - name: listconversations description: List conversations hints: readOnly: true destructive: false idempotent: true call: chat.listconversations with: cursor: tools.cursor limit: tools.limit inputParameters: - name: cursor type: string description: cursor - name: limit type: integer description: limit outputParameters: - type: object mapping: $. - name: createconversation description: Create a conversation hints: readOnly: false destructive: false idempotent: false call: chat.createconversation outputParameters: - type: object mapping: $. - name: getconversation description: Get a conversation hints: readOnly: true destructive: false idempotent: true call: chat.getconversation outputParameters: - type: object mapping: $. - name: listmessages description: List messages in a conversation hints: readOnly: true destructive: false idempotent: true call: chat.listmessages with: cursor: tools.cursor limit: tools.limit inputParameters: - name: cursor type: string description: cursor - name: limit type: integer description: limit outputParameters: - type: object mapping: $. - name: sendmessage description: Send a message hints: readOnly: false destructive: false idempotent: false call: chat.sendmessage outputParameters: - type: object mapping: $. - name: listparticipants description: List participants hints: readOnly: true destructive: false idempotent: true call: chat.listparticipants outputParameters: - type: object mapping: $. - name: addparticipant description: Add a participant hints: readOnly: false destructive: false idempotent: false call: chat.addparticipant outputParameters: - type: object mapping: $. binds: - namespace: env keys: CHAT_TOKEN: CHAT_TOKEN