careCycle
Customers

Get paginated list of customers

Get paginated list of customers with filtering and search

GET
/v2/customers

Authorization

x-api-key
x-api-key<token>

API key required for authentication.

Keys begin with 'cc_' prefix. Get your API key from the Developer Dashboard.

In: header

Query Parameters

number

GET /v2/customers Parameter

Default1Range1 <= value
number

GET /v2/customers Parameter

Default50Range1 <= value <= 100
string

Field to sort by

Default"createdAt"Value in"createdAt" | "firstName" | "lastName" | "callerId" | "dateOfBirth" | "lastContactedAt" | "enrollmentDate" | "effectiveDate"
string

Sort direction

Default"desc"Value in"asc" | "desc"
string

Search query for filtering customers by customer ID, client customer ID, name, phone, email, or location.

boolean | string

Include test phone numbers in results

string

Filter customers by source IDs (comma-separated)

string

Filter customers by campaign IDs (comma-separated, OR logic)

string

How campaignIds is matched. 'include' (default): customers enrolled in any of the campaigns, in any status. 'exclude': customers who have NEVER been enrolled in any of the campaigns (no customerCampaign row for them, in any status) - use to target the book that has not yet touched a campaign.

Default"include"Value in"include" | "exclude"
string

Filter customers by customerCampaign status (comma-separated, OR logic - matches if customer has any of these statuses in any campaign)

string

Filter campaign customers by whether they have prior attempts

Value in"no_attempts" | "has_attempts"
string

Filter customers by their customerCampaign canonical failure reason code (comma-separated, OR logic). Use with campaignIds to drill into a single campaign's exit reason.

string

Filter customers by their current Pulse node ID

string

Filter customers by policy status (comma-separated, OR logic). Valid values: Active, Placed, Pending, Pending Effectuation, Pending Followup, Suspended, Cancelled, Terminated, Future Cancel, Deceased, Not Approved

string

Filter customers by assigned member IDs (comma-separated, OR logic). Use 'unassigned' to filter customers with no assignee.

string

Filter customers by customer status (comma-separated, OR logic). Valid values: Lead, Active, Inactive

string

Which date the startDate/endDate range filters on: customer creation, or a policy date (effective, enrollment, paid-through, grace-period-start). For a policy date, a customer matches if ANY of their policies falls in the range - e.g. paidThroughDate with endDate=today finds lapsed policies.

Default"createdAt"Value in"createdAt" | "effectiveDate" | "enrollmentDate" | "paidThroughDate" | "gracePeriodStartDate"
string

Filter customers from this date, per dateField. Format: YYYY-MM-DD

Match^\d{4}-\d{2}-\d{2}(T\d{2}:\d{2}:\d{2}(\.\d+)?)?Z?$Formatdate
string

Filter customers up to this date, per dateField. Format: YYYY-MM-DD

Match^\d{4}-\d{2}-\d{2}(T\d{2}:\d{2}:\d{2}(\.\d+)?)?Z?$Formatdate
string

Filter customers by last call date from this date. Format: YYYY-MM-DD

Match^\d{4}-\d{2}-\d{2}(T\d{2}:\d{2}:\d{2}(\.\d+)?)?Z?$Formatdate
string

Filter customers by last call date up to this date. Format: YYYY-MM-DD

Match^\d{4}-\d{2}-\d{2}(T\d{2}:\d{2}:\d{2}(\.\d+)?)?Z?$Formatdate
string

Filter customers by US state (comma-separated, OR logic)

string

Filter customers by county (comma-separated, OR logic)

string

Filter customers who have a policy of any of these types (comma-separated, OR logic). Valid values: MA, MAPD, PDP, MS, ACA, LTC, Individual Health, FE, Annuity, Life, Dental, Vision, Hospital Indemnity, Cancer, Accident, Group, Home Health Care

string

Filter customers whose 65th birthday falls within the next 3/6/12 months (Medicare aging-in)

Value in"3_months" | "6_months" | "1_year"
string

Comparison for the policy subsidy amount filter. Requires subsidyValue (and subsidyValueTo when 'between').

Value in"eq" | "neq" | "gt" | "gte" | "lt" | "lte" | "between"
number

Subsidy amount to compare against (dollars). For 'between', this is the lower bound.

number

Upper bound for the 'between' subsidy comparison.

string

Filter customers by custom field values (ANDed). JSON array of { key, operator, value? }. Operators: eq, neq, gt, gte, lt, lte, is_empty, is_not_empty.

string

When set, sort by this custom field's value (key from GET /v2/custom-fields) using sortDirection, overriding sortBy.

Response Body

application/json

application/json

application/json

application/json

application/json

application/json

application/json

application/json

curl -X GET "https://api.carecycle.ai/v2/customers"
{
  "itemsTotal": 0,
  "currentPage": 0,
  "nextPage": 0,
  "prevPage": 0,
  "items": [
    {
      "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
      "createdAt": "2019-08-24T14:15:22Z",
      "createdBy": "25a02396-1048-48f9-bf93-102d2fb7895e",
      "updatedAt": "2019-08-24T14:15:22Z",
      "updatedBy": "b0efe45f-0520-4e21-90f0-7e35f137732e",
      "clientId": "5e505642-9024-474d-9434-e5a44f505cc5",
      "clientCustomerId": "string",
      "status": "Lead",
      "qualificationStatus": "Qualified",
      "intent": "High",
      "isDecisionMaker": true,
      "disqualificationReason": "string",
      "productInterest": "string",
      "productFamily": "string",
      "salutation": "string",
      "suffix": "string",
      "firstName": "string",
      "middleName": "string",
      "lastName": "string",
      "preferredName": "string",
      "callerId": "string",
      "lineType": "landline",
      "email": "string",
      "dateOfBirth": "2019-08-24",
      "language": "string",
      "ethnicity": "string",
      "gender": "Male",
      "maritalStatus": "Single",
      "postalCode": "string",
      "timezone": "string",
      "state": "string",
      "city": "string",
      "county": "string",
      "address": "string",
      "address2": "string",
      "mbiNumber": "string",
      "medicareCard": true,
      "medicarePartADate": "2019-08-24",
      "medicarePartBDate": "2019-08-24",
      "medicaid": true,
      "medicaidNumber": "string",
      "socialSecurityDisability": true,
      "veteran": true,
      "vaNumber": "string",
      "healthSherpaCustomerId": "string",
      "householdIncome": -2147483648,
      "annualIncome": -2147483648,
      "filingStatus": "string",
      "dependentCount": -2147483648,
      "subsidyAmount": -2147483648,
      "subsidyEligible": true,
      "existingCoverage": "None",
      "existingCoveragePlanName": "string",
      "existingCoverageCarrier": "string",
      "desiredCoverageStartDate": "2019-08-24",
      "currentSourceId": "92ff85a4-bd9b-47e4-9ade-cbb65530f3f4",
      "originalSourceId": "a3edc39e-7854-4380-8541-1f199004a6a0",
      "agentName": "string",
      "agentNpn": -2147483648,
      "memberId": "92983ab9-49c8-444b-85ae-6e40402cf72e",
      "carrierName": "string",
      "planName": "string",
      "planCode": "string",
      "enrollmentDate": "2019-08-24",
      "effectiveDate": "2019-08-24",
      "carrierAssignedCustomerId": "string",
      "doNotCall": true,
      "doNotSMS": true,
      "doNotEmail": true,
      "doNotMail": true,
      "lastContactedAt": "2019-08-24T14:15:22Z",
      "convertedAt": "2019-08-24T14:15:22Z",
      "testCustomer": true,
      "carrierSmsConsent": {
        "blocked": true,
        "recordedAt": "2019-08-24T14:15:22Z",
        "source": "string",
        "matchedKeyword": "string"
      },
      "totalCalls": 0,
      "lastCallDate": "2019-08-24T14:15:22Z",
      "lastCallDisposition": "string",
      "campaigns": [],
      "source": {
        "id": "string",
        "name": "string",
        "sourceId": "string"
      },
      "customFields": [],
      "policies": [],
      "prescriptions": [],
      "providers": [],
      "scopeOfAppointments": [],
      "dependents": [],
      "assignedMember": {
        "id": "string",
        "name": "string",
        "email": "string",
        "image": "string"
      }
    }
  ]
}
{
  "message": "string",
  "code": "string"
}
{
  "message": "string",
  "code": "string"
}
{
  "message": "string",
  "code": "string"
}
{
  "message": "string",
  "code": "string"
}
{
  "message": "string",
  "code": "VALIDATION_ERROR",
  "errors": [
    {
      "path": [
        "string"
      ],
      "message": "string",
      "expected": "string",
      "received": "string",
      "code": "string"
    }
  ],
  "failedRecords": [
    {
      "index": 0,
      "phoneNumber": "string",
      "firstName": "string",
      "lastName": "string",
      "externalId": "string"
    }
  ]
}
{
  "message": "string",
  "code": "string",
  "retryAfter": 0
}
{
  "message": "string",
  "code": "string"
}