freshworks · Capability

Freshworks Freshcaller API

The Freshcaller API provides access to cloud-based phone system functionality for contact center operations. It allows developers to export call data, call recordings, user information, and agent team details stored in the Freshcaller system. The API supports integration of voice and telephony workflows into broader business applications, enabling organizations to automate call center reporting, synchronize agent data, and build custom dashboards around their phone operations.

Run with Naftiko FreshworksAPI

What You Can Do

GET
Listcalls — List all calls
/calls
GET
Getcall — View a call
/calls/{call_id}
GET
Getcallrecording — Get call recording
/calls/{call_id}/recording
GET
Listusers — List all users
/users
POST
Createuser — Create a user
/users
GET
Getuser — View a user
/users/{user_id}
PUT
Updateuser — Update a user
/users/{user_id}
GET
Listuserstatuses — List all user statuses
/user_statuses
GET
Listteams — List all teams
/teams
POST
Createteam — Create a team
/teams
GET
Getteam — View a team
/teams/{team_id}
PUT
Updateteam — Update a team
/teams/{team_id}
GET
Listcallmetrics — List call metrics
/call_metrics

MCP Tools

listcalls

List all calls

read-only idempotent
getcall

View a call

read-only idempotent
getcallrecording

Get call recording

read-only idempotent
listusers

List all users

read-only idempotent
createuser

Create a user

getuser

View a user

read-only idempotent
updateuser

Update a user

idempotent
listuserstatuses

List all user statuses

read-only idempotent
listteams

List all teams

read-only idempotent
createteam

Create a team

getteam

View a team

read-only idempotent
updateteam

Update a team

idempotent
listcallmetrics

List call metrics

read-only idempotent

Capability Spec

freshworks-capability.yaml Raw ↑
naftiko: 1.0.0-alpha2
info:
  label: Freshworks Freshcaller API
  description: The Freshcaller API provides access to cloud-based phone system functionality for contact center operations.
    It allows developers to export call data, call recordings, user information, and agent team details stored in the Freshcaller
    system. The API supports integration of voice and telephony workflows into broader business applications, enabling organizations
    to automate call center reporting, synchronize agent data, and build custom dashboards around their phone operations.
  tags:
  - Freshworks
  - API
  created: '2026-05-06'
  modified: '2026-05-06'
capability:
  consumes:
  - type: http
    namespace: freshworks
    baseUri: https://yourdomain.freshcaller.com/api/v1
    description: Freshworks Freshcaller API HTTP API.
    authentication:
      type: apikey
      in: header
      name: X-Api-Auth
      value: '{{FRESHWORKS_TOKEN}}'
    resources:
    - name: calls
      path: /calls
      operations:
      - name: listcalls
        method: GET
        description: List all calls
        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.
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - 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: $.
    - name: users
      path: /users
      operations:
      - name: listusers
        method: GET
        description: List all users
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
      - name: createuser
        method: POST
        description: Create a user
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: users-user-id
      path: /users/{user_id}
      operations:
      - name: getuser
        method: GET
        description: View a user
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
      - name: updateuser
        method: PUT
        description: Update a user
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: user-statuses
      path: /user_statuses
      operations:
      - name: listuserstatuses
        method: GET
        description: List all user statuses
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: teams
      path: /teams
      operations:
      - name: listteams
        method: GET
        description: List all teams
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
      - name: createteam
        method: POST
        description: Create a team
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: teams-team-id
      path: /teams/{team_id}
      operations:
      - name: getteam
        method: GET
        description: View a team
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
      - name: updateteam
        method: PUT
        description: Update a team
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: call-metrics
      path: /call_metrics
      operations:
      - name: listcallmetrics
        method: GET
        description: List call metrics
        inputParameters:
        - name: by_time[from]
          in: query
          type: string
          description: Start of the time range (ISO 8601).
        - name: by_time[to]
          in: query
          type: string
          description: End of the time range (ISO 8601).
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
  exposes:
  - type: rest
    port: 8080
    namespace: freshworks-rest
    description: REST adapter for Freshworks Freshcaller API.
    resources:
    - path: /calls
      name: listcalls
      operations:
      - method: GET
        name: listcalls
        description: List all calls
        call: freshworks.listcalls
        outputParameters:
        - type: object
          mapping: $.
    - path: /calls/{call_id}
      name: getcall
      operations:
      - method: GET
        name: getcall
        description: View a call
        call: freshworks.getcall
        outputParameters:
        - type: object
          mapping: $.
    - path: /calls/{call_id}/recording
      name: getcallrecording
      operations:
      - method: GET
        name: getcallrecording
        description: Get call recording
        call: freshworks.getcallrecording
        outputParameters:
        - type: object
          mapping: $.
    - path: /users
      name: listusers
      operations:
      - method: GET
        name: listusers
        description: List all users
        call: freshworks.listusers
        outputParameters:
        - type: object
          mapping: $.
    - path: /users
      name: createuser
      operations:
      - method: POST
        name: createuser
        description: Create a user
        call: freshworks.createuser
        outputParameters:
        - type: object
          mapping: $.
    - path: /users/{user_id}
      name: getuser
      operations:
      - method: GET
        name: getuser
        description: View a user
        call: freshworks.getuser
        outputParameters:
        - type: object
          mapping: $.
    - path: /users/{user_id}
      name: updateuser
      operations:
      - method: PUT
        name: updateuser
        description: Update a user
        call: freshworks.updateuser
        outputParameters:
        - type: object
          mapping: $.
    - path: /user_statuses
      name: listuserstatuses
      operations:
      - method: GET
        name: listuserstatuses
        description: List all user statuses
        call: freshworks.listuserstatuses
        outputParameters:
        - type: object
          mapping: $.
    - path: /teams
      name: listteams
      operations:
      - method: GET
        name: listteams
        description: List all teams
        call: freshworks.listteams
        outputParameters:
        - type: object
          mapping: $.
    - path: /teams
      name: createteam
      operations:
      - method: POST
        name: createteam
        description: Create a team
        call: freshworks.createteam
        outputParameters:
        - type: object
          mapping: $.
    - path: /teams/{team_id}
      name: getteam
      operations:
      - method: GET
        name: getteam
        description: View a team
        call: freshworks.getteam
        outputParameters:
        - type: object
          mapping: $.
    - path: /teams/{team_id}
      name: updateteam
      operations:
      - method: PUT
        name: updateteam
        description: Update a team
        call: freshworks.updateteam
        outputParameters:
        - type: object
          mapping: $.
    - path: /call_metrics
      name: listcallmetrics
      operations:
      - method: GET
        name: listcallmetrics
        description: List call metrics
        call: freshworks.listcallmetrics
        outputParameters:
        - type: object
          mapping: $.
  - type: mcp
    port: 9090
    namespace: freshworks-mcp
    transport: http
    description: MCP adapter for Freshworks Freshcaller API for AI agent use.
    tools:
    - name: listcalls
      description: List all calls
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: freshworks.listcalls
      with:
        by_time[from]: tools.by_time[from]
        by_time[to]: tools.by_time[to]
        has_ancestry: tools.has_ancestry
      inputParameters:
      - name: by_time[from]
        type: string
        description: Filter calls from this timestamp (ISO 8601).
      - name: by_time[to]
        type: string
        description: Filter calls up to this timestamp (ISO 8601).
      - name: has_ancestry
        type: boolean
        description: Filter calls that have parent-child relationships.
      outputParameters:
      - type: object
        mapping: $.
    - name: getcall
      description: View a call
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: freshworks.getcall
      outputParameters:
      - type: object
        mapping: $.
    - name: getcallrecording
      description: Get call recording
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: freshworks.getcallrecording
      outputParameters:
      - type: object
        mapping: $.
    - name: listusers
      description: List all users
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: freshworks.listusers
      outputParameters:
      - type: object
        mapping: $.
    - name: createuser
      description: Create a user
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: freshworks.createuser
      outputParameters:
      - type: object
        mapping: $.
    - name: getuser
      description: View a user
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: freshworks.getuser
      outputParameters:
      - type: object
        mapping: $.
    - name: updateuser
      description: Update a user
      hints:
        readOnly: false
        destructive: false
        idempotent: true
      call: freshworks.updateuser
      outputParameters:
      - type: object
        mapping: $.
    - name: listuserstatuses
      description: List all user statuses
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: freshworks.listuserstatuses
      outputParameters:
      - type: object
        mapping: $.
    - name: listteams
      description: List all teams
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: freshworks.listteams
      outputParameters:
      - type: object
        mapping: $.
    - name: createteam
      description: Create a team
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: freshworks.createteam
      outputParameters:
      - type: object
        mapping: $.
    - name: getteam
      description: View a team
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: freshworks.getteam
      outputParameters:
      - type: object
        mapping: $.
    - name: updateteam
      description: Update a team
      hints:
        readOnly: false
        destructive: false
        idempotent: true
      call: freshworks.updateteam
      outputParameters:
      - type: object
        mapping: $.
    - name: listcallmetrics
      description: List call metrics
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: freshworks.listcallmetrics
      with:
        by_time[from]: tools.by_time[from]
        by_time[to]: tools.by_time[to]
      inputParameters:
      - name: by_time[from]
        type: string
        description: Start of the time range (ISO 8601).
      - name: by_time[to]
        type: string
        description: End of the time range (ISO 8601).
      outputParameters:
      - type: object
        mapping: $.
binds:
- namespace: env
  keys:
    FRESHWORKS_TOKEN: FRESHWORKS_TOKEN