Skip to main content
GET
/
calls
List Calls
curl --request GET \
  --url https://api.example.com/calls
{
  "calls": [
    {
      "id": "<string>",
      "created_time": "<string>",
      "timestamp": 123,
      "assistant_id": "<string>",
      "from": "<string>",
      "to": "<string>",
      "status": "<string>",
      "duration": 123,
      "recording": "<string>",
      "transcript": "<string>",
      "success": true,
      "summary": "<string>",
      "output": {},
      "data": {
        "params": {}
      }
    }
  ],
  "401 Unauthorized": {},
  "403 Forbidden": {},
  "500 Internal Server Error": {}
}

Overview

This endpoint retrieves a list of calls associated with the authenticated user’s assistants. You can filter calls by date range, status, and playbook.

Authentication

This endpoint requires authentication using a Bearer token in the Authorization header.
Authorization: Bearer YOUR_API_TOKEN

Query Parameters

startDate
string
Start date for filtering calls. Format: YYYY-MM-DD or YYYY-MM-DD HH:mm:ssIf not provided, it will be calculated based on daysFromNow parameter.
endDate
string
End date for filtering calls. Format: YYYY-MM-DD or YYYY-MM-DD HH:mm:ssIf not provided, it will default to the current date/time.
daysFromNow
number
default:"15"
Number of days to look back from today. Only used if startDate and endDate are not provided.
  • Minimum: 1
  • Maximum: 90
  • Default: 15
status
string
Filter calls by status. Valid values:
  • open - Call is in progress or pending
  • closed - Call has been completed successfully
  • rong-phone-forno-answer - Wrong phone number or no answer
  • wmat - Waiting for manual action
  • failed - Call failed
  • recall-scheduled - A recall has been scheduled
  • voicemail - Call went to voicemail
playbook_id
string
Filter calls by a specific playbook (assistant) ID. Must be a valid UUID.

Response

calls
array
Array of call objects, ordered by created_time descending (most recent first).

Example Requests

Get calls from the last 30 days

GET https://api.meetzy.io/calls?daysFromNow=30

Get calls within a specific date range

GET https://api.meetzy.io/calls?startDate=2024-01-01&endDate=2024-01-31

Get only closed calls

GET https://api.meetzy.io/calls?status=closed

Get calls for a specific playbook

GET https://api.meetzy.io/calls?playbook_id=550e8400-e29b-41d4-a716-446655440000

Combine filters

GET https://api.meetzy.io/calls?daysFromNow=7&status=closed&playbook_id=550e8400-e29b-41d4-a716-446655440000

Example Response

[
  {
    "id": "123e4567-e89b-12d3-a456-426614174000",
    "created_time": "2024-11-12 10:30:00",
    "timestamp": 1731407400000,
    "assistant_id": "550e8400-e29b-41d4-a716-446655440000",
    "from": "+34612345678",
    "to": "+34987654321",
    "status": "closed",
    "duration": 180,
    "recording": "https://recordings.meetzy.io/call-123.mp3",
    "transcript": "<b>[Agent]</b> Hello, this is Sarah from Meetzy...<br><br><b>[Customer]</b> Hi Sarah...",
    "success": true,
    "summary": "Customer was interested in the premium plan...",
    "output": {
      "appointment_scheduled": true,
      "date": "2024-11-15",
      "time": "14:00"
    },
    "data": {
      "params": {
        "campaign_id": "summer-2024",
        "lead_source": "website"
      }
    }
  }
]

Error Responses

401 Unauthorized
object
Authentication failed or token is invalid
{
  "error": "Unauthorized"
}
403 Forbidden
object
User does not have permission to access this resource
"Unauthorized"
500 Internal Server Error
object
An error occurred on the server
"Internal Server Error"

Notes

  • All dates are handled in Europe/Madrid timezone and converted to UTC in the response
  • The from field is automatically sanitized to remove invalid entries like “phoneNumber.phoneNumber”
  • Transcripts are formatted with HTML tags for better readability in UI applications
  • The endpoint automatically filters calls to only show those belonging to assistants owned by the authenticated user
  • Maximum date range when using daysFromNow is 90 days