Skip to main content

Native Focus REST API

Overview​

Welcome, developer adventurer! Once you have enabled the Focus API in your account admin section, you’re ready to interact directly with the Focus REST API. These endpoints let you search, retrieve and sync data on people, subscribers, communications, groups and endpoints.


Authentication​

First things first, you’ll need to authenticate and acquire your Bearer token.

Request​

  • Type: POST
  • URL: {{baseUrl}}/authWithAPIKey
  • Content-Type: application/json
  • Body:
    {
    "apiKey": "YOUR-API-KEY-XYZ",
    "username": "yourUsername",
    "clientId": 0000000
    }

Replace "YOUR-API-KEY-XYZ", "yourUsername", and "clientId" with your actual values.

Example Response​

{
"token": "YOUR.BEARER.TOKEN",
"refreshToken": "YOUR.REFRESH.TOKEN"
}

Now, put that token in your pocket (well, Authorization header) you will need it for the rest of your method calls!


Retention Group – Get​

This endpoint lets you list retention groups.

  • Type: GET
  • URL: {{baseUrl}}/admin/retentionGroup
  • Headers:
    • Authorization: Bearer YOUR.BEARER.TOKEN
  • Body: Empty

Example Request​

curl -X GET "{{baseUrl}}/admin/retentionGroup" -H "Authorization: Bearer YOUR.BEARER.TOKEN"

Returns: List of retention groups and their properties.


Find endpoints (e.g., phones, emails) that belong to people in your organization.

  • Type: POST
  • URL: {{baseUrl}}/client/people/endpoint/search
  • Headers:
    • Authorization: Bearer YOUR.BEARER.TOKEN
  • Body Example:
    {
    "type": "phone"
    }
    You can add "endpointSearch": "447897897897" to search for a specific phone number.

Search for recordings by many different criteria (IDs, free text, date ranges, and more).

  • Type: POST
  • URL: {{baseUrl}}/client/recording.search
  • Headers:
    • Authorization: Bearer YOUR.BEARER.TOKEN
  • Body Example:
    {
    "recordingIds": { "include": [1] }
    }
    See comments in the body for all possible filters.

Example Response​

{
"recordings": [
{
"interactionId": 123,
"startDatetimeUTC": "2025-06-20T10:30:00Z",
"endpoints": [
{ "endpoint": { "endpoint": "447896423595", "type": "phone" } }
]
// ... More fields
}
],
"total": 1,
"page": 1,
"pageSize": 100
}

Find users in your account.

  • Type: POST
  • URL: {{baseUrl}}/client/user/search
  • Headers:
    • Authorization: Bearer YOUR.BEARER.TOKEN
  • Body Example:
    {
    "page": 1,
    "pageSize": 1000
    }

Example Response​

[
{
"id": 42,
"username": "alice@example.com",
"rolesAndRights": ["Admin"]
}
]

Get Comments​

If you want to fetch any comments for a specific communication:

  • Type: GET
  • URL: {{baseUrl}}/client/recording/comment?recordingId=123456
  • Headers:
    • Authorization: Bearer YOUR.BEARER.TOKEN
  • Query Params:
    • recordingId (required): The recording's ID.
    • bID, cIdf (optional): Additional filtering.
note

Comments may also have start and end offsets, tags, and more.


People Get​

This endpoint fetches information on a list of people.

  • Type: POST
  • URL: {{baseUrl}}/client/people.get
  • Headers:
    • Authorization: Bearer YOUR.BEARER.TOKEN
  • Body Example:
    [1, 2, 3]
    Replace with the IDs of the people you want info about.

Example Response​

[
{
"id": 1,
"fullName": "Jane Smith",
"personType": "staff"
// ... More fields
}
]