List Calls

Retrieve a paginated list of calls for your company. Calls are returned in reverse chronological order (most recent first), making it easy to fetch the latest call data.

Endpoint

GET /api/oauth/calls

Use Cases

  • Build custom dashboards showing recent calls
  • Export call data to external systems
  • Analyze call patterns and trends
  • Integrate call data with CRM or helpdesk systems
  • Monitor call volume and response times

Request Parameters

ParameterTypeRequiredDefaultValidationDescription
pageintegerNo0>= 0Zero-indexed page number for pagination
limitintegerNo201-100Number of calls to return per page

Understanding Pagination

Pages are zero-indexed (first page is page=0). The limit parameter accepts 1-100 calls per page (default: 20).

Request Example

GET /api/oauth/calls?page=0&limit=20 HTTP/1.1
Host: app.heyjodie.com
Authorization: Bearer YOUR_ACCESS_TOKEN

Response

Status Code: 200 OK

Returns an array of call objects, ordered by most recent first.

[
  {
    "id": "cal_abc123",
    "call_date": "2024-11-04T10:30:45Z",
    "phone_number_local": "07700900123",
    "phone_number_international": "+447700900123",
    "duration_seconds": 120,
    "status": "completed",
    "name": "John Doe",
    "message": "Customer requested callback",
    "data_collections": {
      "customer_name": {
        "label": "Customer Full Name",
        "value": "Jane Smith"
      },
      "email": {
        "label": "Email Address",
        "value": "[email protected]"
      }
    }
  }
]

Response Fields

FieldTypeNullableDescription
idstringNoUnique call identifier (prefixed with cal_)
call_datestringNoISO 8601 formatted timestamp in UTC
phone_number_localstringNoPhone number in national format (country-specific)
phone_number_internationalstringNoPhone number in E.164 format (international standard)
duration_secondsintegerNoTotal call duration in seconds
statusstringNoCurrent call status (see Call Status Values below)
namestringYesCaller’s name if available
messagestringYesCall message or notes captured during the call
data_collectionsobjectYesCustom data captured during the call

Call Status Values

StatusDescriptionMeaning
completedCall successfully completedThe call was answered and completed normally
missedCall was not answeredThe system was unable to answer the call
failedCall failed to connectTechnical failure prevented the call from connecting
busyRecipient line was busyThe call couldn’t be completed because the line was busy
no-answerCall rang but not answeredThe call rang but no one picked up within the timeout period
voicemailCall went to voicemailThe call was directed to a voicemail system

Understanding Data Collections

Data Collections are custom questions that Hey Jodie asks callers during the call. The responses are captured as key-value pairs with a label (the question) and value (the response). The fields vary based on your call flow configuration and may be null if no custom questions are configured.

Example Usage

# Get first page (calls 1-20)
curl "https://app.heyjodie.com/api/oauth/calls?page=0&limit=20" \
  -H "Authorization: Bearer YOUR_ACCESS_TOKEN"

# Get second page (calls 21-40)
curl "https://app.heyjodie.com/api/oauth/calls?page=1&limit=20" \
  -H "Authorization: Bearer YOUR_ACCESS_TOKEN"

Empty Response

If there are no calls for the requested page, you’ll receive an empty array:

[]

Status Code: 200 OK (empty results are not an error)

Error Responses

401 Unauthorized

The access token is missing, invalid, or expired.

{
  "message": "Unauthenticated."
}

403 Forbidden

You’re using an admin account, which cannot access OAuth endpoints.

{
  "message": "OAuth2 access is restricted to user accounts only."
}

422 Validation Error

Invalid parameter values (e.g., limit > 100).

{
  "message": "The given data was invalid.",
  "errors": {
    "limit": ["The limit must not be greater than 100."]
  }
}

Rate Limiting

This endpoint is subject to rate limiting (60 requests per minute). If you exceed the limit, you’ll receive a 429 Too Many Requests response.