New guide: Your Salesforce Org Is Missing Critical Data , Download free
Developers

API Documentation

Call Insights REST API , programmatic access to call logs, summaries and call quality data.

Overview

The Call Insights REST API provides programmatic access to call logs, call summaries, and call quality data for use in your applications and tools. This API allows you to search and retrieve call records with advanced filtering capabilities.

Base URL

Call Insights data is available under the following base URL. The REST API is served over HTTPS; unencrypted HTTP is not supported.

https://your-domain.com/api/v1/call-logs

Authentication

To authenticate requests to the Call Insights API, use the X-RP-API-Key header with your API key. API keys are mapped to specific tenants in the system configuration.

Example Request

curl -X POST https://your-domain.com/api/v1/call-logs/search \
  -H "X-RP-API-Key: your_api_key_here" \
  -H "Content-Type: application/json" \
  -d '{
    "data": {
      "from": "2024-01-01T00:00:00Z",
      "to": "2024-01-31T23:59:59Z",
      "limit": 25,
      "offset": 0
    }
  }'

Search Endpoint

The search endpoint provides advanced filtering capabilities for call logs with support for multiple search criteria, date ranges, and pagination.

POST /call-logs/search

Request Body

{
  "keywords": ["string"],
  "agents": ["string"],
  "teams": ["string"],
  "contacts": ["string"],
  "bookmarks": ["string"],
  "call_directions": ["inbound", "outbound"],
  "call_statuses": ["completed", "failed", "busy"],
  "call_outcomes": ["success", "failure"],
  "call_durations": [
    {
      "from": 0,
      "to": 300
    }
  ],
  "activity_type": "string",
  "from": "2024-01-01T00:00:00Z",
  "to": "2024-01-31T23:59:59Z",
  "limit": 25,
  "offset": 0
}

Parameters

ParameterTypeRequiredDescriptionExample
keywordsstring[]NoSearch keywords to match against call data, transcriptions, and notes. Supports partial matching and case-insensitive search.["support", "issue", "problem"]
agentsstring[]NoFilter by agent names. Exact match required. Can be full names or partial names.["John Doe", "Jane Smith"]
teamsstring[]NoFilter by team names. Exact match required. Used for organizational grouping.["Sales", "Support", "Billing"]
contactsstring[]NoFilter by contact phone numbers. Supports various formats: +1234567890, 123-456-7890, (123) 456-7890.["+1234567890", "+1987654321"]
bookmarksstring[]NoFilter by bookmark tags. Used for categorizing and organizing calls.["important", "follow-up", "escalated"]
call_directionsstring[]NoFilter by call direction. Valid values: "inbound" (calls received), "outbound" (calls made).["inbound", "outbound"]
call_statusesstring[]NoFilter by call status. Valid values: "completed", "failed", "busy", "no-answer", "cancelled".["completed", "failed"]
call_outcomesstring[]NoFilter by call outcome. Valid values: "success", "failure", "partial", "abandoned".["success", "failure"]
call_durationsobject[]NoFilter by call duration range in seconds. Each object contains "from" and "to" properties.[{"from": 60, "to": 600}]
activity_typestringNoFilter by activity type. Valid values: "call", "voicemail", "sms", "email"."call"
fromdatetimeNoStart date and time for search range. ISO 8601 format: YYYY-MM-DDTHH:MM:SSZ."2024-01-01T00:00:00Z"
todatetimeNoEnd date and time for search range. ISO 8601 format: YYYY-MM-DDTHH:MM:SSZ."2024-01-31T23:59:59Z"
limitintegerNoNumber of results to return per page. Range: 1-100. Default: 25.50
offsetintegerNoNumber of results to skip for pagination. Used with limit for pagination. Default: 0.25

Response

{
   "data": [
     {
       "agentName": "string",
       "agentReference": "string",
       "agentPhoneNumber": "string",
       "contactName": "string",
       "contactReference": "string",
       "contactPhoneNumber": "string",
       "startTime": "2025-08-25T07:02:39.287Z",
       "duration": 0,
       "direction": "string",
       "outcome": "string",
       "status": "string",
       "sentiment": "string",
       "summary": "string",
       "topics": ["string"],
       "callTaskRemoteId": "string",
       "remoteId": "string",
       "teamName": "string",
       "accountName": "string",
       "accountReference": "string",
       "accountPhoneNumber": "string",
       "note": {
         "title": "string",
         "text": "string"
       },
       "callMedium": "string",
       "callWasForwarded": true,
       "callWasDiverted": true,
       "callInitiatorUserName": "string",
       "campaignName": "string",
       "callTargetType": "User",
       "conferenceCallStatus": "None",
       "isConferenceCall": true,
       "callRecordWrapUpStatus": "string",
       "activityType": "string",
       "smsContent": {
         "message": "string",
         "templateTitle": "string"
       },
       "emailContent": {
         "subject": "string",
         "recipients": ["string"],
         "recipientsCc": ["string"],
         "recipientsBcc": ["string"]
       },
       "bookmarks": [
         {
           "name": "string",
           "startTime": "2025-08-25T07:02:39.287Z",
           "relativeStartTime": 0,
           "description": "string",
           "bookmarkReference": "string",
           "bookmarkActionReference": "string",
           "transcriptionSegments": [
             {
               "description": "string",
               "relativeStartTime": "string",
               "relativeEndTime": "string",
               "speaker": "string",
               "role": "NotSet"
             }
           ],
           "type": "Automated"
         }
       ],
       "conferenceCallEvents": [
         {
           "statusCallbackEvent": "string",
           "timestamp": "string"
         }
       ],
       "callEvents": [
         {
           "startTime": "string",
           "type": "string"
         }
       ],
       "coachingTips": [
         {
           "selectedText": "string",
           "tipsNote": ["string"],
           "startTime": "2025-08-25T07:02:39.287Z",
           "type": "Default"
         }
       ],
       "calleeDetails": {
         "calleeType": "Account",
         "reference": "string",
         "name": "string",
         "phoneNumber": "string"
       },
       "callRecordID": "string"
     }
   ],
   "pagination": {
     "total": 0,
     "count": 0,
     "offset": 0,
     "limit": 0
   }
 }

Response Parameters

ParameterTypeDescriptionExample
agentNamestringName of the agent who handled the call"John Doe"
agentReferencestringUnique reference identifier for the agent"agent_123"
agentPhoneNumberstringPhone number of the agent"+1234567890"
contactNamestringName of the contact/customer"Jane Smith"
contactReferencestringUnique reference identifier for the contact"contact_456"
contactPhoneNumberstringPhone number of the contact/customer"+1987654321"
startTimedatetimeTimestamp when the call started (ISO 8601 format)"2025-08-25T07:02:39.287Z"
durationintegerCall duration in seconds180
directionstringCall direction: "inbound" or "outbound""inbound"
outcomestringCall outcome: "success", "failure", "partial", "abandoned""success"
statusstringCall status: "completed", "failed", "busy", "no-answer", "cancelled""completed"
sentimentstringSentiment analysis of the call: "positive", "negative", "neutral""positive"
summarystringAI-generated summary of the call content"Customer called about billing issue..."
topicsstring[]Array of topics discussed during the call["billing", "support"]
callTaskRemoteIdstringRemote task ID associated with the call"task_789"
remoteIdstringRemote system identifier for the call"remote_123"
teamNamestringName of the team the agent belongs to"Sales Team"
accountNamestringName of the account associated with the call"Acme Corp"
accountReferencestringUnique reference identifier for the account"account_101"
accountPhoneNumberstringPhone number of the account"+1555123456"
noteobjectNote object with title and text fields{"title": "Follow-up", "text": "Call customer back"}
callMediumstringMedium used for the call: "phone", "web", "mobile""phone"
callWasForwardedbooleanWhether the call was forwarded to another agenttrue
callWasDivertedbooleanWhether the call was diverted to another numberfalse
callInitiatorUserNamestringUsername of the person who initiated the call"john.doe"
campaignNamestringName of the campaign associated with the call"Q4 Sales Campaign"
callTargetTypestringType of call target: "User", "Account", "Contact""User"
conferenceCallStatusstringStatus of conference call: "None", "Active", "Ended""None"
isConferenceCallbooleanWhether this is a conference callfalse
callRecordWrapUpStatusstringWrap-up status of the call record"completed"
activityTypestringType of activity: "call", "voicemail", "sms", "email""call"
callRecordIDstringUnique identifier for the call record"call_123456789"

Pagination Object

ParameterTypeDescription
countintegerNumber of records returned in current response
offsetintegerNumber of records skipped for pagination
limitintegerMaximum number of records requested
totalintegerTotal number of records matching the search criteria

Complex Objects

Note Object

ParameterTypeDescription
titlestringTitle of the note
textstringContent of the note

Bookmark Object

ParameterTypeDescription
namestringName of the bookmark
startTimedatetimeTimestamp when bookmark was created
relativeStartTimeintegerStart time relative to call beginning (seconds)
descriptionstringDescription of the bookmark
bookmarkReferencestringUnique reference for the bookmark
typestringType of bookmark: "Automated", "Manual"

Coaching Tip Object

ParameterTypeDescription
selectedTextstringText that was selected for coaching
tipsNotestring[]Array of coaching tips
startTimedatetimeTimestamp when tip was generated
typestringType of coaching tip: "Default", "Custom"

Callee Details Object

ParameterTypeDescription
calleeTypestringType of callee: "Account", "Contact", "User"
referencestringReference identifier for the callee
namestringName of the callee
phoneNumberstringPhone number of the callee

Examples

Basic Search

Search for calls within a date range:

curl -X POST https://your-domain.com/api/v1/call-logs/search \
  -H "X-RP-API-Key: your_api_key" \
  -H "Content-Type: application/json" \
  -d '{
    "from": "2024-01-01T00:00:00Z",
    "to": "2024-01-31T23:59:59Z",
    "limit": 10
  }'

Advanced Search

Search with multiple filters:

curl -X POST https://your-domain.com/api/v1/call-logs/search \
  -H "X-RP-API-Key: your_api_key" \
  -H "Content-Type: application/json" \
  -d '{
    "agents": ["John Doe", "Jane Smith"],
    "call_directions": ["inbound"],
    "call_statuses": ["completed"],
    "call_durations": [
      {
        "from": 60,
        "to": 600
      }
    ],
    "from": "2024-01-01T00:00:00Z",
    "to": "2024-01-31T23:59:59Z",
    "limit": 25
  }'

Keyword Search

Search for calls containing specific keywords:

curl -X POST https://your-domain.com/api/v1/call-logs/search \
  -H "X-RP-API-Key: your_api_key" \
  -H "Content-Type: application/json" \
  -d '{
    "keywords": ["support", "issue", "problem"],
    "from": "2024-01-01T00:00:00Z",
    "to": "2024-01-31T23:59:59Z",
    "limit": 50
  }'

Error Codes

HTTP StatusError CodeDescription
400INVALID_INPUTInvalid request parameters or malformed JSON
401UNAUTHORIZEDMissing or invalid API key
404NOT_FOUNDResource not found
429RATE_LIMIT_EXCEEDEDRate limit exceeded
500INTERNAL_ERRORInternal server error

Error Response Example

{
  "error": {
    "title": "Invalid Input",
    "details": "Invalid date format for 'from' parameter",
    "error_code": "INVALID_INPUT"
  }
}