naftiko: 1.0.0-alpha2 info: label: Channel API — Calls description: 'Channel API — Calls. 5 operations. Lead operation: Create a call. Self-contained Naftiko capability covering one Front business surface.' tags: - Front - Calls created: '2026-05-19' modified: '2026-05-19' binds: - namespace: env keys: FRONT_API_KEY: FRONT_API_KEY capability: consumes: - type: http namespace: channel-calls baseUri: https://api2.frontapp.com description: Channel API — Calls business capability. Self-contained, no shared references. resources: - name: channels-channel_id-calls path: /channels/{channel_id}/calls operations: - name: createcall method: POST description: Create a call outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: channel_id in: path type: string description: The Channel ID. required: true - name: body in: body type: object description: Request body (JSON). required: false - name: channels-channel_id-calls-external_call_id path: /channels/{channel_id}/calls/{external_call_id} operations: - name: updatecall method: PATCH description: Update call status outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: channel_id in: path type: string description: The Channel ID. required: true - name: external_call_id in: path type: string description: The external call ID from the provider system (same as `external_call_id` on create). required: true - name: body in: body type: object description: Request body (JSON). required: false - name: channels-channel_id-calls-external_call_id-recording path: /channels/{channel_id}/calls/{external_call_id}/recording operations: - name: addcallrecording method: POST description: Add call recording outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: channel_id in: path type: string description: The Channel ID. required: true - name: external_call_id in: path type: string description: The external call ID from the provider system. required: true - name: body in: body type: object description: Request body (JSON). required: false - name: channels-channel_id-calls-external_call_id-summary path: /channels/{channel_id}/calls/{external_call_id}/summary operations: - name: addcallsummary method: POST description: Add call summary outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: channel_id in: path type: string description: The Channel ID. required: true - name: external_call_id in: path type: string description: The external call ID from the provider system. required: true - name: body in: body type: object description: Request body (JSON). required: false - name: channels-channel_id-calls-external_call_id-transcript path: /channels/{channel_id}/calls/{external_call_id}/transcript operations: - name: addcalltranscript method: POST description: Add call transcript outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: channel_id in: path type: string description: The Channel ID. required: true - name: external_call_id in: path type: string description: The external call ID from the provider system. required: true - name: body in: body type: object description: Request body (JSON). required: false authentication: type: bearer token: '{{env.FRONT_API_KEY}}' exposes: - type: rest namespace: channel-calls-rest port: 8080 description: REST adapter for Channel API — Calls. One Spectral-compliant resource per consumed operation, prefixed with /v1. resources: - path: /v1/channels/{channel-id}/calls name: channels-channel-id-calls description: REST surface for channels-channel_id-calls. operations: - method: POST name: createcall description: Create a call call: channel-calls.createcall with: channel_id: rest.channel_id body: rest.body outputParameters: - type: object mapping: $. - path: /v1/channels/{channel-id}/calls/{external-call-id} name: channels-channel-id-calls-external-call-id description: REST surface for channels-channel_id-calls-external_call_id. operations: - method: PATCH name: updatecall description: Update call status call: channel-calls.updatecall with: channel_id: rest.channel_id external_call_id: rest.external_call_id body: rest.body outputParameters: - type: object mapping: $. - path: /v1/channels/{channel-id}/calls/{external-call-id}/recording name: channels-channel-id-calls-external-call-id-recording description: REST surface for channels-channel_id-calls-external_call_id-recording. operations: - method: POST name: addcallrecording description: Add call recording call: channel-calls.addcallrecording with: channel_id: rest.channel_id external_call_id: rest.external_call_id body: rest.body outputParameters: - type: object mapping: $. - path: /v1/channels/{channel-id}/calls/{external-call-id}/summary name: channels-channel-id-calls-external-call-id-summary description: REST surface for channels-channel_id-calls-external_call_id-summary. operations: - method: POST name: addcallsummary description: Add call summary call: channel-calls.addcallsummary with: channel_id: rest.channel_id external_call_id: rest.external_call_id body: rest.body outputParameters: - type: object mapping: $. - path: /v1/channels/{channel-id}/calls/{external-call-id}/transcript name: channels-channel-id-calls-external-call-id-transcript description: REST surface for channels-channel_id-calls-external_call_id-transcript. operations: - method: POST name: addcalltranscript description: Add call transcript call: channel-calls.addcalltranscript with: channel_id: rest.channel_id external_call_id: rest.external_call_id body: rest.body outputParameters: - type: object mapping: $. - type: mcp namespace: channel-calls-mcp port: 9090 transport: http description: MCP adapter for Channel API — Calls. One tool per consumed operation, routed inline through this capability's consumes block. tools: - name: create-call description: Create a call hints: readOnly: false destructive: false idempotent: false call: channel-calls.createcall with: channel_id: tools.channel_id body: tools.body outputParameters: - type: object mapping: $. - name: update-call-status description: Update call status hints: readOnly: false destructive: false idempotent: true call: channel-calls.updatecall with: channel_id: tools.channel_id external_call_id: tools.external_call_id body: tools.body outputParameters: - type: object mapping: $. - name: add-call-recording description: Add call recording hints: readOnly: false destructive: false idempotent: false call: channel-calls.addcallrecording with: channel_id: tools.channel_id external_call_id: tools.external_call_id body: tools.body outputParameters: - type: object mapping: $. - name: add-call-summary description: Add call summary hints: readOnly: false destructive: false idempotent: false call: channel-calls.addcallsummary with: channel_id: tools.channel_id external_call_id: tools.external_call_id body: tools.body outputParameters: - type: object mapping: $. - name: add-call-transcript description: Add call transcript hints: readOnly: false destructive: false idempotent: false call: channel-calls.addcalltranscript with: channel_id: tools.channel_id external_call_id: tools.external_call_id body: tools.body outputParameters: - type: object mapping: $.