List calls
Changed onReturns a paginated list of calls. Supports filtering by IDs, minimum duration, title, recording retention status, call date (from, to), creation timestamp (created_from, created_to), user, deal, and account. Use expand to include related entities or call sub-resources inline. Expanded CRM filling answers include all pushed answers for each call.
Request
- Base URLhttps://api.modjo.ai/v2
- URLhttps://api.modjo.ai/v2/calls
- AuthHTTP bearer
Query parameters
Page number (1-based)
Number of items per page
Comma-separated list of relations or call sub-resources to expand. Allowed values: contacts, deal, account, users, libraries, transcript, tags, topics, summaries, notes, next-steps, crm-answers, crm-filling-answers, ai-scoring
Comma-separated list of numeric call IDs
Minimum call duration in seconds (inclusive)
Filter by call title (case-insensitive substring match)
Filter by recording retention status: available or deleted
Filter calls starting from this ISO 8601 date
Filter calls ending at this ISO 8601 date
Filter calls created on or after this ISO 8601 timestamp
Filter calls created on or before this ISO 8601 timestamp
Filter by user ID
Filter by deal ID
Filter by account ID
Response
Paginated list of calls
Example response
{
"data": [
{
"id": 1,
"name": "Demo call with Acme Corp",
"date": "2024-06-15T14:30:00.000Z",
"duration": 1800,
"direction": "outbound",
"language": "en",
"status": "completed",
"createdOn": "2024-06-15T14:30:00.000Z",
"modifiedOn": "2024-06-15T15:00:00.000Z",
"phoneProviderCallId": "aircall-1234567890",
"recordingRetentionStatus": "available",
"transcriptRetentionStatus": "available",
"contacts": [
{
"id": 10,
"name": "John Smith",
"email": "john@prospect.com",
"phoneNumber": "+33612345678",
"jobTitle": "VP of Sales"
}
],
"deal": {
"id": 100,
"name": "Acme Corp - Enterprise Plan",
"status": "open",
"stage": "Negotiation",
"amount": 50000,
"currency": "EUR",
"closeDate": "2024-09-30"
},
"dealId": 100,
"account": {
"id": 200,
"name": "Acme Corp"
},
"accountId": 200,
"users": [
{
"id": 42,
"email": "jane.doe@company.com",
"firstName": "Jane",
"lastName": "Doe"
}
],
"libraries": [
{
"id": 12,
"name": "Best of calls"
}
],
"crmActivity": {
"crmId": "00T1234567ABC",
"crmOrigin": "created_by_modjo"
},
"transcript": [
{
"endTime": 12.5,
"content": "Hi, thanks for joining the call today.",
"speaker": {
"id": 1,
"name": "Jane Doe",
"type": "user"
}
}
],
"tags": [
{
"id": 1,
"name": "Competitor mention",
"color": "#FF5733"
}
],
"topics": [
{
"id": 1,
"name": "Pricing discussion",
"slug": "pricing-discussion",
"color": "#4287f5",
"saidBy": "user",
"startTime": 45.5,
"endTime": 52.2
}
],
"summaries": [
{
"uuid": "c3d4e5f6-a7b8-9012-cdef-123456789012",
"templateUuid": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"templateTitle": "Meeting Summary",
"templateLength": "detailed",
"answer": "The team discussed Q3 targets and agreed to increase outbound outreach by 20%.",
"language": "en-US",
"createdOn": "2024-06-15T14:30:00.000Z",
"modifiedOn": "2024-06-15T15:00:00.000Z"
}
],
"notes": [
{
"id": 1,
"title": "Follow-up notes",
"date": "2024-06-15T14:30:00.000Z",
"status": "PUBLISHED",
"type": "USER"
}
],
"nextSteps": [
{
"title": "Schedule follow-up meeting",
"description": "Set up a 30-minute follow-up call with the prospect to review the proposal by end of week."
}
],
"crmFillingAnswers": [
{
"uuid": "b2c3d4e5-f6a7-8901-bcde-f12345678901",
"callId": 12345,
"crmFillingFieldUuid": "f1e2d3c4-b5a6-7890-abcd-ef1234567890",
"value": "Follow up next Tuesday",
"crmId": "006xx000001abc",
"createdOn": "2024-06-15T14:30:00.000Z",
"modifiedOn": "2024-06-15T15:00:00.000Z"
}
]
}
],
"pagination": {
"page": 1,
"size": 25,
"total": 100
}
}Changes
- breaking
the
/response's property type changed from no type toobjectfor status - info
added the optional property
//to the response with the status - info
added the optional property
//to the response with the status - info
added the optional property
//to the response with the status - info
added the optional property
//to the response with the status - info
added the optional property
//to the response with the status - info
added the optional property
//to the response with the status - info
added the optional property
//to the response with the status - info
added the optional property
//to the response with the status - info
added the optional property
//to the response with the status - info
added the optional property
//to the response with the status - info
added the optional property
//to the response with the status - info
added the optional property
//to the response with the status - info
added the optional property
//to the response with the status - info
added the optional property
//to the response with the status - info
added the optional property
//to the response with the status - info
added the optional property
//to the response with the status - info
added the optional property
//to the response with the status - info
removed
subschema #2from the/response propertyallOflist for the response status - info
added the required property
//to the response with the status - info
added the required property
//to the response with the status - info
added the required property
//to the response with the status - info
added the required property
//to the response with the status - info
added the required property
//to the response with the status - info
added the required property
//to the response with the status - info
added the required property
//to the response with the status - info
added the required property
//to the response with the status - info
added the required property
//to the response with the status - info
added the required property
//to the response with the status - info
added the required property
//to the response with the status - info
added the required property
//to the response with the status - info
added the required property
//to the response with the status
- breaking
- breaking
the
/response's property type changed fromobjectto no type for status - breaking
removed the required property
//from the response with the status - breaking
removed the required property
//from the response with the status - breaking
removed the required property
//from the response with the status - breaking
removed the required property
//from the response with the status - breaking
removed the required property
//from the response with the status - breaking
removed the required property
//from the response with the status - breaking
removed the required property
//from the response with the status - breaking
removed the required property
//from the response with the status - breaking
removed the required property
//from the response with the status - breaking
removed the required property
//from the response with the status - breaking
removed the required property
//from the response with the status - breaking
removed the required property
//from the response with the status - breaking
removed the required property
//from the response with the status - warning
removed the optional property
//from the response with the status - warning
removed the optional property
//from the response with the status - warning
removed the optional property
//from the response with the status - warning
removed the optional property
//from the response with the status - warning
removed the optional property
//from the response with the status - warning
removed the optional property
//from the response with the status - warning
removed the optional property
//from the response with the status - warning
removed the optional property
//from the response with the status - info
added the new optional
queryrequest parametercreated_from - info
added the new optional
queryrequest parametercreated_to - info
added the new optional
queryrequest parameterids - info
added the new optional
queryrequest parametermin_duration - info
added the new optional
queryrequest parameterrecording_retention_status - info
added the new optional
queryrequest parametertitle - info
added
subschema #2to the/response propertyallOflist for the response status
- breaking