Skip to main content
GET
https://api.getdoppel.ai/api/v1
/
api
/
v1
/
interactions
List Interactions
curl --request GET \
  --url https://api.getdoppel.ai/api/v1/api/v1/interactions \
  --header 'Authorization: Bearer <token>'
{
  "success": true,
  "data": {
    "interactions": [
      {}
    ]
  },
  "meta": {}
}

List Interactions

Returns a paginated list of all interactions, including both voice calls and WhatsApp conversations. Use query parameters to filter, sort, and paginate results.

Request

GET https://api.getdoppel.ai/api/v1/interactions

Headers

HeaderRequiredDescription
AuthorizationYesBearer token with your API key

Query Parameters

ParameterTypeDefaultDescription
pageinteger1Page number (1-indexed)
limitinteger25Items per page (max: 500)
date_fromstring-Start date (ISO 8601)
date_tostring-End date (ISO 8601)
channelstring-Filter by channel: voice or whatsapp
typestring-Filter by interaction type (see below)
outcomestring-Filter by outcome (comma-separated for multiple, e.g., APPOINTMENT_BOOKED,APPOINTMENT_MODIFIED)
clinic_idstring-Filter by clinic UUID
searchstring-Search in phone numbers (partial match, e.g., 555 matches +1-555-123-4567)

Interaction Types

Voice Call Types

TypeDescription
INBOUNDIncoming calls from patients
FORM_OUTBOUNDOutbound calls triggered by form submissions
CAMPAIGN_OUTBOUNDOutbound calls from campaigns
CAMPAIGN_CALLBACKCallback calls from campaigns

WhatsApp Conversation Types

TypeDescription
INBOUNDIncoming WhatsApp messages
CAMPAIGN_OUTBOUNDOutbound campaign messages
APPOINTMENT_REMINDERAppointment reminder messages

Response

success
boolean
Whether the request was successful
data
object
meta
object
Pagination metadata

Interaction Object

Each interaction contains:
FieldTypeDescription
idstringUnique interaction ID
channelstringvoice or whatsapp
typestringInteraction type
directionstringinbound or outbound
phone_numberstringPatient phone number
clinic_idstringAssociated clinic UUID
started_atstringWhen the interaction started (ISO 8601)
ended_atstringWhen the interaction ended (ISO 8601)
duration_secondsintegerDuration in seconds (calls only)
outcomestringClassification outcome (UPPERCASE, e.g., APPOINTMENT_BOOKED)
transcriptarrayConversation transcript
summarystringAI-generated summary
recording_urlstringCall recording URL (calls only)

Examples

Basic Request

curl -X GET "https://api.getdoppel.ai/api/v1/interactions" \
  -H "Authorization: Bearer dpl_live_YOUR_API_KEY"

Response Example

{
  "success": true,
  "data": {
    "interactions": [
      {
        "id": "550e8400-e29b-41d4-a716-446655440000",
        "channel": "voice",
        "type": "INBOUND",
        "direction": "inbound",
        "phone_number": "+34612345678",
        "clinic_id": "clinic-uuid-here",
        "started_at": "2024-01-15T10:30:00.000Z",
        "ended_at": "2024-01-15T10:35:00.000Z",
        "duration_seconds": 300,
        "outcome": "APPOINTMENT_BOOKED",
        "summary": "Patient called to schedule a general checkup appointment...",
        "recording_url": "https://storage.example.com/recordings/abc123.mp3"
      },
      {
        "id": "660f9511-f30c-52e5-b827-557766551111",
        "channel": "whatsapp",
        "type": "APPOINTMENT_REMINDER",
        "direction": "outbound",
        "phone_number": "+34698765432",
        "clinic_id": "clinic-uuid-here",
        "started_at": "2024-01-15T09:00:00.000Z",
        "ended_at": "2024-01-15T09:05:00.000Z",
        "outcome": "APPOINTMENT_BOOKED",
        "transcript": [
          {
            "role": "assistant",
            "content": "Hi! This is a reminder for your appointment tomorrow at 10:00 AM."
          },
          {
            "role": "user",
            "content": "Thanks! I'll be there."
          }
        ],
        "summary": "Appointment reminder sent and confirmed by patient."
      }
    ]
  },
  "meta": {
    "page": 1,
    "limit": 25,
    "total": 150,
    "total_pages": 6,
    "has_more": true
  },
  "request_id": "req_abc123xyz",
  "timestamp": "2024-01-15T10:30:00.000Z"
}

Error Responses

Invalid Parameters

{
  "success": false,
  "error": {
    "code": "VALIDATION_ERROR",
    "message": "Invalid query parameters",
    "details": {
      "channel": "Must be 'voice' or 'whatsapp'"
    }
  },
  "request_id": "req_abc123xyz",
  "timestamp": "2024-01-15T10:30:00.000Z"
}

See Also

Filtering Interactions

Learn how to use advanced filtering to get exactly the data you need.