naftiko: 1.0.0-alpha2 info: label: Freshworks Freshcaller API — Calls description: 'Freshworks Freshcaller API — Calls. 3 operations. Lead operation: List all calls. Self-contained Naftiko capability covering one Freshworks business surface.' tags: - Freshworks - Calls created: '2026-05-19' modified: '2026-05-19' binds: - namespace: env keys: FRESHWORKS_API_KEY: FRESHWORKS_API_KEY capability: consumes: - type: http namespace: freshcaller-calls baseUri: https://{domain}.freshcaller.com/api/v1 description: Freshworks Freshcaller API — Calls business capability. Self-contained, no shared references. resources: - name: calls path: /calls operations: - name: listcalls method: GET description: List all calls outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: by_time[from] in: query type: string description: Filter calls from this timestamp (ISO 8601). - name: by_time[to] in: query type: string description: Filter calls up to this timestamp (ISO 8601). - name: has_ancestry in: query type: boolean description: Filter calls that have parent-child relationships. - name: calls-call_id path: /calls/{call_id} operations: - name: getcall method: GET description: View a call outputRawFormat: json outputParameters: - name: result type: object value: $. - name: calls-call_id-recording path: /calls/{call_id}/recording operations: - name: getcallrecording method: GET description: Get call recording outputRawFormat: json outputParameters: - name: result type: object value: $. authentication: type: apikey key: X-Api-Auth value: '{{env.FRESHWORKS_API_KEY}}' placement: header exposes: - type: rest namespace: freshcaller-calls-rest port: 8080 description: REST adapter for Freshworks Freshcaller API — Calls. One Spectral-compliant resource per consumed operation, prefixed with /v1. resources: - path: /v1/calls name: calls description: REST surface for calls. operations: - method: GET name: listcalls description: List all calls call: freshcaller-calls.listcalls with: by_time[from]: rest.by_time[from] by_time[to]: rest.by_time[to] has_ancestry: rest.has_ancestry outputParameters: - type: object mapping: $. - path: /v1/calls/{call-id} name: calls-call-id description: REST surface for calls-call_id. operations: - method: GET name: getcall description: View a call call: freshcaller-calls.getcall outputParameters: - type: object mapping: $. - path: /v1/calls/{call-id}/recording name: calls-call-id-recording description: REST surface for calls-call_id-recording. operations: - method: GET name: getcallrecording description: Get call recording call: freshcaller-calls.getcallrecording outputParameters: - type: object mapping: $. - type: mcp namespace: freshcaller-calls-mcp port: 9090 transport: http description: MCP adapter for Freshworks Freshcaller API — Calls. One tool per consumed operation, routed inline through this capability's consumes block. tools: - name: list-all-calls description: List all calls hints: readOnly: true destructive: false idempotent: true call: freshcaller-calls.listcalls with: by_time[from]: tools.by_time[from] by_time[to]: tools.by_time[to] has_ancestry: tools.has_ancestry outputParameters: - type: object mapping: $. - name: view-call description: View a call hints: readOnly: true destructive: false idempotent: true call: freshcaller-calls.getcall outputParameters: - type: object mapping: $. - name: get-call-recording description: Get call recording hints: readOnly: true destructive: false idempotent: true call: freshcaller-calls.getcallrecording outputParameters: - type: object mapping: $.