---
title: "List calls"
method: GET
path: "/calls"
tags: ["Calls"]
---

# List calls

`GET /calls`

Returns a paginated list of calls. Supports filtering by date range, user, deal, and account. Use the expand query param to include related entities inline.

## Query parameters

- `page` integer — Page number (1-based)
- `size` integer — Number of items per page
- `expand` string — Comma-separated list of relations to expand. Allowed values: contacts, deal, account, users
- `from` string, date-time — Filter calls starting from this ISO 8601 date
- `to` string, date-time — Filter calls ending at this ISO 8601 date
- `user_id` integer — Filter by user ID
- `deal_id` integer — Filter by deal ID
- `account_id` integer — Filter by account ID

## Response `200`

Paginated list of calls

- CallExpandedListResponse
  - `data` CallExpanded[], required
    - `id` number, required — Call ID
    - `name` string, required — Call title
    - `date` string, nullable, required — Call date in ISO 8601 format
    - `duration` number, nullable, required — Call duration in seconds
    - `direction` string, nullable, required — Call direction: inbound or outbound
    - `language` string, nullable, required — Detected language code (ISO 639-1)
    - `status` string, required — Public status: processing, completed, failed
    - `createdOn` string, nullable, required — Creation timestamp in ISO 8601 format
    - `modifiedOn` string, nullable, required — Last modification timestamp in ISO 8601 format
    - `phoneProviderCallId` string, required — External identifier of the call from the phone provider (e.g. Aircall, Ringover, etc.).
    - `recordingRetentionStatus` 'available' | 'deleted', required — Retention status of the call recording: "available" if the recording is kept, "deleted" if it has been deleted for data retention reasons.
    - `transcriptRetentionStatus` 'available' | 'deleted', required — Retention status of the call transcript: "available" if the transcript is kept, "deleted" if it has been deleted for data retention reasons.
    - `contacts` ContactSummary[] — Expanded contact objects. Present when expand=contacts is set.
      - `id` number, required — Contact ID
      - `name` string, nullable, required — Contact name
      - `email` string, nullable, required — Contact email
      - `phoneNumber` string, nullable, required — Contact phone number
      - `jobTitle` string, nullable, required — Contact job title
    - `contactIds` number[] — Contact IDs. Present when contacts are not expanded.
    - `deal` object, nullable — Expanded deal object. Present when expand=deal is set.
      - `id` number, required — Deal ID
      - `name` string, required — Deal name
      - `status` string, nullable, required — Deal status
      - `stage` string, nullable, required — Deal stage
      - `amount` number, nullable, required — Deal amount in the deal currency
      - `currency` string, nullable, required — Deal currency code
      - `closeDate` string, nullable, required — Expected close date in ISO 8601 format
    - `dealId` number, nullable — Deal ID. Present when deal is not expanded.
    - `account` object, nullable — Expanded account object. Present when expand=account is set.
      - `id` number, required — Account ID
      - `name` string, required — Account name
    - `accountId` number, nullable — Account ID. Present when account is not expanded.
    - `users` UserSummary[] — Expanded user objects. Present when expand=users is set.
      - `id` number, required — User ID
      - `email` string, required — User email
      - `firstName` string, nullable, required — User first name
      - `lastName` string, nullable, required — User last name
    - `userIds` number[] — User IDs. Present when users are not expanded.
    - `crmActivity` CrmActivity, nullable, required — CRM activity record linked to this call. Null if the call has not been synced to a CRM.
      - `crmId` string, required — Identifier of the activity record in the external CRM
      - `crmOrigin` 'created_by_modjo' | 'found_in_crm' | 'provided_by_provider', required — How the activity was logged in the CRM: created_by_modjo, found_in_crm, or provided_by_provider
  - `pagination` object, required
    - `page` number, required — Current page number
    - `size` number, required — Items per page
    - `total` number, required — Total number of items

## Other responses

- `401` — Authentication failed. The API key is missing or invalid.
- `429` — Rate limit exceeded. Retry after the X-RateLimit-Reset interval.

---

[API](https://skmtc.dev/modjo/apis/modjo-public-api.md) · [All operations](https://skmtc.dev/modjo/apis/modjo-public-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/modjo/modjo-public-api/revisions/dcae8b3284e8/schema)
