Customers

Get paginated list of customers

List your customers. You can filter and search, and results come back one page at a time.

get/v2/customers

Request

  • Base URL
    https://api.carecycle.ai
  • URL
    https://api.carecycle.ai/v2/customers
  • Auth
    API key in header x-api-key

Query parameters

pagenumber

GET /v2/customers Parameter

perPagenumber

GET /v2/customers Parameter

sortBy'createdAt' | 'firstName' | 'lastName' | 'callerId' | 'dateOfBirth' | 'lastContactedAt' | 'enrollmentDate' | 'effectiveDate' | 'location' | 'sourceName' | 'tags' | 'activeCampaigns' | 'activePolicies' | 'totalCalls' | 'clientCustomerId' | 'planName' | 'carrierName' | 'policyStatus' | 'assignedTo'

Field to sort by

sortDirection'asc' | 'desc'

Sort direction

customFieldKeysstring

GET /v2/customers Parameter

searchstring

Search query for filtering customers by customer ID, client customer ID, name, phone, email, ZIP code, MBI, or policy enrollment code.

searchFieldsstring

Comma-separated list of columns whose displayed text the search also matches: location, source, tags, campaigns, planName, carrierName, policyStatus, or customField:<key> for a text, select, or multi-select custom field. Location matches a full state name; the others need a search of 3+ characters. Unknown entries are ignored.

boolean
OR
string
sourceIdsstring

Filter customers by source IDs (comma-separated)

tagIdsstring

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

campaignIdsstring

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

campaignIdMatchMode'include' | 'exclude'

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.

campaignStatusesstring

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

campaignAttemptState'no_attempts' | 'has_attempts'

Filter campaign customers by whether they have prior attempts

campaignFailureReasonstring

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.

pulseNodeIdstring

Filter customers by their current Pulse node ID

policyStatusesstring

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

coverageState'no_active' | 'no_active_or_pending'

Exclude customers with active coverage, or with active/pending coverage

assignedToMemberIdsstring

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

customerStatusesstring

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

dateField'createdAt' | 'effectiveDate' | 'enrollmentDate' | 'paidThroughDate' | 'gracePeriodStartDate' | 'cancelledDate'

Which date the startDate/endDate range filters on: customer creation, or a policy date. Policy-derived conditions in the request must all match the same policy.

string date-time

YYYY-MM-DDTHH:mm:ss.sssZ

OR
string date-time
endDatestring

End bound per dateField. YYYY-MM-DD includes that UTC calendar day; a full ISO timestamp is exact and exclusive.

string date-time

YYYY-MM-DDTHH:mm:ss.sssZ

OR
string date-time
lastCallEndDatestring

Call end bound. YYYY-MM-DD includes that UTC calendar day; a full ISO timestamp is exact and exclusive.

lastCallDispositionsstring

Filter customers by the disposition of their most recent call (comma-separated, OR logic). Calls with system error dispositions are ignored, matching the list's Last Contact column.

negatedFiltersstring

List filters to invert, comma-separated (campaignStatuses, lastCallDispositions). campaignStatuses: customers with NO enrollment in those statuses (scoped to campaignIds in include mode, so campaignIds=X&campaignStatuses=completed&negatedFilters=campaignStatuses is "in campaign X and not completed there"). lastCallDispositions: customers whose last call has none of them, including customers never called.

contactPermissionsstring

Contact permission conditions, comma-separated and ANDed (can_call, do_not_call, can_text, do_not_text). A suppressed customer counts as both do_not_call and do_not_text, matching the list's icons.

totalCallsstring

Compare the customer's call count, counted like the list's Total Calls column: operator:count (eq, neq, gt, gte, lt, lte), or between:min:max (inclusive). Example: gte:2.

statesstring

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

countiesstring

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

policyTypesstring

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, Critical Illness, Accident, Group, Home Health Care, International Travel

turning65Window'3_months' | '6_months' | '1_year'

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

subsidyOperator'eq' | 'neq' | 'gt' | 'gte' | 'lt' | 'lte' | 'between'

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

subsidyValuenumber

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

subsidyValueTonumber

Upper bound for the 'between' subsidy comparison.

customFieldFiltersstring

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.

sortCustomFieldKeystring

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

Response

GET /v2/customers Positive response

itemsTotalnumber required
currentPagenumber required
nextPagenumber nullable required
prevPagenumber nullable required

Changes

No recorded changes to this operation across all 2 revisions of this API.