Skip to content

Call Logs API

Record retrieval and management of call history.

Endpoints

Call Log—Update API

Update extra field values for specific call log entries.

Endpoint: POST /log/update

Authentication: Required (auth_token)

Parameters

NameTypeRequiredDescription
auth_tokenstringYesAuthentication token
call_log_idstringYesID of the call log to update
extra_field_01stringNoCustom extra field 01 value
extra_field_02stringNoCustom extra field 02 value

Request Example

POST https://api.convoso.com/v1/log/update
Content-Type: application/x-www-form-urlencoded

auth_token=abc123&call_log_id=789&extra_field_01=note_data&extra_field_02=custom_value

Response Example

json
{
  "success": true,
  "id": "789",
  "lead_id": "12345",
  "list_id": "333",
  "campaign_id": "111",
  "user": "Jane Smith",
  "user_id": "12345",
  "phone_number": "5551234567",
  "status": "COMPLETED",
  "call_length": 300,
  "call_date": "2026-03-03 14:30:00",
  "recording": [
    {
      "src": "https://convoso.com/recording/rec123",
      "type": "mp3",
      "recording_id": "rec123",
      "filename": "call_123.mp3",
      "public_url": "https://convoso.com/public/rec123"
    }
  ]
}

Response Fields

FieldTypeDescription
successbooleanSuccess status of update
idstringCall log ID
lead_idstringAssociated lead ID
list_idstringAssociated list ID
campaign_idstringAssociated campaign ID
userstringAgent name
user_idstringAgent user ID
phone_numberstringPhone number that was called
statusstringCall status code
call_lengthintegerCall duration in seconds
call_datestringDate and time of call
recordingarrayArray of recording objects

Extra Fields

Custom extra fields are user-defined fields. The number and purpose depend on your account configuration.


Call Log—Retrieve/Search API

Retrieves call log records with extensive filtering options.

Endpoint: POST /log/retrieve

Authentication: Required (auth_token)

Parameters

NameTypeRequiredDescription
auth_tokenstringYesAuthentication token
idstringNoSpecific call log ID
lead_idstringNoFilter by lead ID
campaign_idstringNoFilter by campaign ID
queue_idstringNoFilter by queue ID
list_idstringNoFilter by list ID
user_idstringNoFilter by agent user ID
statusstringNoFilter by call status
phone_numberstringNoFilter by phone number called
number_dialedstringNoFilter by number dialed
first_namestringNoFilter by lead first name
last_namestringNoFilter by lead last name
start_timestringNoStart time in YYYY-MM-DD HH:MM:SS format
end_timestringNoEnd time in YYYY-MM-DD HH:MM:SS format
limitintegerNoResults per page (default 10, range 1-500)
offsetintegerNoPagination offset (default 0, max 40000). For larger datasets, use start_time/end_time filters
call_typestringNoFilter by call type (OUTBOUND, INBOUND, MANUAL, 3WAY)
orderstringNoSort order: asc or desc
called_countintegerNoFilter by number of times called
include_recordingsintegerNoInclude recordings: 0 or 1

Request Examples

POST https://api.convoso.com/v1/log/retrieve
Content-Type: application/x-www-form-urlencoded

auth_token=abc123&lead_id=12345
POST https://api.convoso.com/v1/log/retrieve
Content-Type: application/x-www-form-urlencoded

auth_token=abc123&campaign_id=111&start_time=2026-03-01%2008:00:00&end_time=2026-03-03%2017:00:00&limit=100
POST https://api.convoso.com/v1/log/retrieve
Content-Type: application/x-www-form-urlencoded

auth_token=abc123&user_id=12345&status=COMPLETED&include_recordings=1

Response Example

json
{
  "offset": 0,
  "limit": 10,
  "total_found": 150,
  "results": [
    {
      "id": "789",
      "lead_id": "12345",
      "list_id": "333",
      "campaign_id": "111",
      "user_id": "22222",
      "phone_number": "5551234567",
      "status": "COMPLETED",
      "call_length": 300,
      "call_date": "2026-03-03 14:30:00",
      "number_dialed": "18001234567",
      "call_type": "outbound",
      "recording": [
        {
          "src": "https://convoso.com/recording/rec123",
          "type": "mp3",
          "recording_id": "rec123",
          "filename": "call_123.mp3",
          "public_url": "https://convoso.com/public/rec123"
        }
      ]
    },
    {
      "id": "790",
      "lead_id": "12346",
      "list_id": "333",
      "campaign_id": "111",
      "user_id": "22222",
      "phone_number": "5551234568",
      "status": "NO_ANSWER",
      "call_length": 0,
      "call_date": "2026-03-03 14:35:00",
      "number_dialed": "18001234568",
      "call_type": "outbound",
      "recording": []
    }
  ]
}

Response Fields

Root Level:

FieldTypeDescription
offsetintegerPagination offset used in request
limitintegerResults per page
total_foundintegerTotal matching records available
resultsarrayArray of call log objects

Call Log Object:

FieldTypeDescription
idstringUnique call log ID
lead_idstringAssociated lead ID
list_idstringAssociated list ID
campaign_idstringAssociated campaign ID
user_idstringAgent user ID
phone_numberstringContact phone number
statusstringCall status code
call_lengthintegerDuration in seconds
call_datestringCall timestamp
number_dialedstringThe number dialed out to
call_typestringType (inbound/outbound)
recordingarrayRecording objects if available

Recording Object:

FieldTypeDescription
srcstringInternal recording source URL
typestringRecording format (mp3, wav, etc.)
recording_idstringUnique recording ID
filenamestringOriginal filename
public_urlstringPublicly accessible URL for recording

Common Status Codes

StatusDescription
COMPLETEDCall completed successfully
NO_ANSWERContact didn't answer
BUSYNumber was busy
INVALIDInvalid phone number
DISCONNECTEDCall disconnected abnormally
FAILEDCall failed to connect
ANSWERING_MACHINEVoicemail/answering machine reached
CALL_BLOCKEDCall blocked by system
WRONG_PARTYWrong party reached

Filtering Examples

Single lead all calls:

POST https://api.convoso.com/v1/log/retrieve
Content-Type: application/x-www-form-urlencoded

auth_token=abc123&lead_id=12345

Campaign calls with date range:

POST https://api.convoso.com/v1/log/retrieve
Content-Type: application/x-www-form-urlencoded

auth_token=abc123&campaign_id=111&start_time=2026-03-01%2008:00:00&end_time=2026-03-03%2017:00:00

Specific agent with recordings:

POST https://api.convoso.com/v1/log/retrieve
Content-Type: application/x-www-form-urlencoded

auth_token=abc123&user_id=12345&include_recordings=1&limit=50

Completed calls only:

POST https://api.convoso.com/v1/log/retrieve
Content-Type: application/x-www-form-urlencoded

auth_token=abc123&status=COMPLETED&limit=100

Calls with pagination:

POST https://api.convoso.com/v1/log/retrieve
Content-Type: application/x-www-form-urlencoded

auth_token=abc123&campaign_id=111&limit=50&offset=0
POST https://api.convoso.com/v1/log/retrieve
Content-Type: application/x-www-form-urlencoded

auth_token=abc123&campaign_id=111&limit=50&offset=50

URL Encoding

Special characters in parameters should be URL-encoded:

  • Space → %20
  • Colon → %3A
  • Slash → %2F

Sorting

Use the order parameter to control sort direction:

  • order=asc - Ascending (earliest first)
  • order=desc - Descending (latest first)

Recording Access

If include_recordings=1:

  • Recording URLs are included in response
  • Use public_url for external sharing
  • Recording format specified in type field

Use Cases

  1. Call History: Look up all calls for a specific lead
  2. Agent Auditing: Review calls made by specific agent
  3. Compliance: Extract calls from date range for regulatory review
  4. Quality Assurance: Pull calls for QA review with recordings
  5. Performance Analysis: Analyze call metrics by status
  6. Customer Service: Retrieve call history for customer inquiry

Pagination Strategy

For large result sets:

1. Get total_found from first request
2. Calculate pages: pages = ceil(total_found / limit)
3. Loop through pages incrementing offset by limit

Example in Python:

python
offset = 0
limit = 100
has_more = True

while has_more:
    params = {
        'auth_token': token,
        'campaign_id': '111',
        'offset': offset,
        'limit': limit
    }
    response = requests.get(url, params=params).json()

    # Process response['results']

    offset += limit
    has_more = offset < response['total_found']

Notes

  • Call length is in seconds (divide by 60 for minutes)
  • Call date includes timezone info in response
  • Recordings may be deleted after retention period
  • Status codes vary by configuration
  • Large date ranges may take longer to process
  • Maximum limit per query is 500 (use offset/start_time/end_time for pagination)

Error Handling

Call Log Retrieve/Search Error Codes

Error CodeDescription
6026Invalid campaign ID
6041Invalid queue ID
6042Invalid list ID
6006Invalid user ID
6031Invalid date format
6050Invalid status

Call Log Update Error Codes

Error CodeDescription
6060Invalid call_log_id
6061Call log not found
6062Extra field validation error

General Error Responses

IssueResponse
Invalid auth_token{"success": false, "error": "Invalid authentication token"}
Invalid date format{"success": false, "error": "Invalid date format"}
Limit too high{"success": false, "error": "Limit cannot exceed 500"}
Call log not found{"success": true, "results": []}
Invalid date range{"success": false, "error": "Invalid date range"}

Last Updated: 2026-03-03

Community project — not affiliated with or endorsed by Convoso.