---
title: "Get paginated list of customers"
method: GET
path: "/v2/customers"
tags: ["Customers"]
---

# Get paginated list of customers

`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`

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

## Query parameters

- `page` number
- `perPage` number
- `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
- `customFieldKeys` string
- `search` string: Search query for filtering customers by customer ID, client customer ID, name, phone, email, ZIP code, MBI, or policy enrollment code.
- `searchFields` string: 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.
- `includeTestNumbers` union: Include test phone numbers in results
  - boolean
  - string
- `sourceIds` string: Filter customers by source IDs (comma-separated)
- `tagIds` string: Filter customers by known tag IDs (comma-separated, OR logic)
- `campaignIds` string: 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.
- `campaignStatuses` string: 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
- `campaignFailureReason` 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.
- `pulseNodeId` string: Filter customers by their current Pulse node ID
- `policyStatuses` 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
- `coverageState` 'no_active' | 'no_active_or_pending': Exclude customers with active coverage, or with active/pending coverage
- `assignedToMemberIds` string: Filter customers by assigned member IDs (comma-separated, OR logic). Use 'unassigned' to filter customers with no assignee.
- `customerStatuses` string: 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.
- `startDate` union: Inclusive start bound per dateField: YYYY-MM-DD at UTC midnight or an exact ISO timestamp. Policy DATE values represent UTC midnight.
  - string, date-time: YYYY-MM-DDTHH:mm:ss.sssZ
  - string, date-time
- `endDate` string: End bound per dateField. YYYY-MM-DD includes that UTC calendar day; a full ISO timestamp is exact and exclusive.
- `lastCallStartDate` union: Inclusive call start bound: YYYY-MM-DD at UTC midnight or an exact ISO timestamp.
  - string, date-time: YYYY-MM-DDTHH:mm:ss.sssZ
  - string, date-time
- `lastCallEndDate` string: Call end bound. YYYY-MM-DD includes that UTC calendar day; a full ISO timestamp is exact and exclusive.
- `lastCallDispositions` string: 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.
- `negatedFilters` string: 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.
- `contactPermissions` string: 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.
- `totalCalls` string: 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.
- `states` string: Filter customers by US state (comma-separated, OR logic)
- `counties` string: Filter customers by county (comma-separated, OR logic)
- `policyTypes` 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, 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').
- `subsidyValue` number: Subsidy amount to compare against (dollars). For 'between', this is the lower bound.
- `subsidyValueTo` number: Upper bound for the 'between' subsidy comparison.
- `customFieldFilters` 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.
- `sortCustomFieldKey` string: When set, sort by this custom field's value (key from GET /v2/custom-fields) using sortDirection, overriding sortBy.

## Response `200`

GET /v2/customers Positive response

- GetV2CustomersPositiveResponse
  - `itemsTotal` number, required
  - `currentPage` number, required
  - `nextPage` number, nullable, required
  - `prevPage` number, nullable, required
  - `items` object[], required: List of customers
    - `id` string, uuid, required
    - `createdAt` string, date-time, nullable, required: Customer creation time. ISO 8601 timestamp
    - `createdBy` string, uuid, nullable, required
    - `updatedAt` string, date-time, nullable, required: Customer last update time. ISO 8601 timestamp
    - `updatedBy` string, uuid, nullable, required
    - `clientId` string, uuid, required
    - `clientCustomerId` string, nullable, required
    - `status` 'Lead' | 'Active' | 'Inactive' | 'null', nullable, required
    - `qualificationStatus` 'Qualified' | 'Disqualified' | 'Pending Review' | 'Needs Information' | 'In Progress' | 'null', nullable, required
    - `intent` 'High' | 'Medium' | 'Low' | 'Unknown' | 'null', nullable, required
    - `isDecisionMaker` boolean, nullable, required
    - `disqualificationReason` string, nullable, required
    - `productInterest` string, nullable, required
    - `productFamily` string, nullable, required
    - `salutation` string, nullable, required
    - `suffix` string, nullable, required
    - `firstName` string, nullable, required
    - `middleName` string, nullable, required
    - `lastName` string, nullable, required
    - `preferredName` string, nullable, required
    - `callerId` string, required
    - `isPhonePrimary` boolean, required
    - `lineType` 'landline' | 'mobile' | 'fixedVoip' | 'nonFixedVoip' | 'personal' | 'tollFree' | 'premium' | 'sharedCost' | 'uan' | 'voicemail' | 'pager' | 'unknown' | 'null', nullable, required
    - `email` string, nullable, required
    - `dateOfBirth` string, date, nullable, required: Customer date of birth. Canonical format: YYYY-MM-DD
    - `language` string, nullable, required
    - `ethnicity` string, nullable, required
    - `gender` 'Male' | 'Female' | 'Non-Binary' | 'Other' | 'Prefer Not to Say' | 'null', nullable, required
    - `maritalStatus` 'Single' | 'Married' | 'Divorced' | 'Widowed' | 'Separated' | 'Domestic Partnership' | 'null', nullable, required
    - `heightInches` integer, nullable, required
    - `weightPounds` integer, nullable, required
    - `smokerStatus` boolean, nullable, required
    - `postalCode` string, nullable, required
    - `timezone` string, nullable, required
    - `state` string, nullable, required
    - `city` string, nullable, required
    - `county` string, nullable, required
    - `countyFips` string, nullable, required
    - `address` string, nullable, required
    - `address2` string, nullable, required
    - `mbiNumber` string, nullable, required
    - `medicareCard` boolean, nullable, required
    - `medicarePartADate` string, date, nullable, required: Medicare Part A effective date. Canonical format: YYYY-MM-DD
    - `medicarePartBDate` string, date, nullable, required: Medicare Part B effective date. Canonical format: YYYY-MM-DD
    - `medicaid` boolean, nullable, required
    - `medicaidNumber` string, nullable, required
    - `socialSecurityDisability` boolean, nullable, required
    - `veteran` boolean, nullable, required
    - `vaNumber` string, nullable, required
    - `healthSherpaCustomerId` string, nullable, required
    - `householdIncome` integer, nullable, required
    - `annualIncome` integer, nullable, required
    - `filingStatus` string, nullable, required
    - `dependentCount` integer, nullable, required
    - `subsidyAmount` integer, nullable, required
    - `subsidyEligible` boolean, nullable, required
    - `existingCoverage` 'None' | 'Medicare Advantage' | 'Original Medicare' | 'Medicaid' | 'Employer' | 'Marketplace/ACA' | 'Other' | 'null', nullable, required
    - `existingCoveragePlanName` string, nullable, required
    - `existingCoverageCarrier` string, nullable, required
    - `desiredCoverageStartDate` string, date, nullable, required: Desired coverage start date. Canonical format: YYYY-MM-DD
    - `currentSourceId` string, uuid, nullable, required
    - `originalSourceId` string, uuid, nullable, required
    - `agentName` string, nullable, required
    - `agentNpn` integer, nullable, required
    - `memberId` string, uuid, nullable, required
    - `carrierName` string, nullable, required
    - `planName` string, nullable, required
    - `planCode` string, nullable, required
    - `enrollmentDate` string, date, nullable, required: Customer enrollment date. Canonical format: YYYY-MM-DD
    - `effectiveDate` string, date, nullable, required: Customer coverage effective date. Canonical format: YYYY-MM-DD
    - `carrierAssignedCustomerId` string, nullable, required
    - `suppressed` boolean, required
    - `doNotCall` boolean, nullable, required
    - `doNotSMS` boolean, nullable, required
    - `doNotEmail` boolean, nullable, required
    - `doNotMail` boolean, nullable, required
    - `lastContactedAt` string, date-time, nullable, required: Customer last contact time. ISO 8601 timestamp
    - `convertedAt` string, date-time, nullable, required: Customer conversion time. ISO 8601 timestamp
    - `testCustomer` boolean, required
    - `ssnLast4` string, nullable, required
    - `carrierSmsConsent` object
      - `blocked` boolean, required
      - `recordedAt` string, date-time, nullable, required: Carrier SMS consent record time. ISO 8601 timestamp
      - `source` string, nullable, required
      - `matchedKeyword` string, nullable, required
    - `phoneNumberCustomerCount` number: Customers on this phone number, this one included. Call and SMS opt-outs apply to all of them.
    - `phonePrimaryCustomerId` string, uuid, nullable: The primary customer on this phone number. Texts with the number live on their conversation.
    - `totalCalls` number: Total number of calls made to this customer
    - `lastCallDate` string, date-time, nullable: Most recent call time. ISO 8601 timestamp
    - `lastCallDisposition` string, nullable: Disposition of the most recent call
    - `campaigns` object[], required: Campaigns this customer is enrolled in
      - `customerCampaignId` string, required
      - `campaignId` string, required
      - `campaignName` string, required
      - `campaignStatus` string, required
      - `campaignLifecycleStatus` string, required
      - `campaignIsReceptionist` boolean, required
      - `isActive` boolean, required
      - `attempts` number
      - `pulseNodeId` string, nullable
      - `pulseNodeType` string, nullable
      - `pulseStatus` string, nullable
      - `pulseLastTransitionAt` string, date-time, nullable: Campaign workflow last transition time. ISO 8601 timestamp
      - `pulseWaitNodeId` string, nullable: Wait step the customer entered on their latest Pulse transition (Live View counts them there; pulseNodeId is the step that runs after it). Detail endpoint only.
      - `statusReason` object, nullable: Client-safe explanation of why the customer was failed/skipped
        - `code` string, required
        - `category` string, required
        - `label` string, required
        - `description` string, required
    - `source` object, nullable: Source information for this customer
      - `id` string, required
      - `name` string, required
      - `sourceId` string, required
    - `customFields` object[], required: Structured custom fields with definitions and values
      - `fieldKey` string: Generated identifier for the field
      - `fieldLabel` string: Display name shown to users
      - `fieldDescription` string: Description of the field's purpose
      - `fieldType` 'text' | 'number' | 'boolean' | 'date' | 'select' | 'multi_select': Type of data this field stores
      - `isRequired` boolean, nullable: Whether this field must have a value
      - `options` string[], nullable: Available options for select/multi-select fields
      - `validationRules` union: Validation rules for the custom field
        - string
        - number
        - boolean
        - object
        - unknown[]
          - unknown
      - `id` string, uuid
      - `fieldDefinitionId` string, uuid: Custom field definition ID
      - `value` union: The actual value for this record (type determined by fieldType). Dates are represented as ISO 8601 strings.
        - string
        - number
        - boolean
        - string[]
        - unknown
    - `policies` object[], required: List of policies associated with the customer
      - `id` string, uuid, required
      - `createdAt` string, date-time, nullable, required: Policy creation time. ISO 8601 timestamp
      - `createdBy` string, uuid, nullable, required
      - `updatedAt` string, date-time, nullable, required: Policy last update time. ISO 8601 timestamp
      - `updatedBy` string, uuid, nullable, required
      - `customerId` string, uuid, required
      - `policyType` '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', required
      - `policySubType` string, nullable, required
      - `policyNumber` string, nullable, required
      - `applicationId` string, nullable, required
      - `carrierId` string, uuid, nullable, required
      - `carrierName` string, nullable, required
      - `planName` string, nullable, required
      - `planCode` string, nullable, required
      - `carrierAssignedPolicyId` string, nullable, required
      - `healthSherpaPolicyId` string, nullable, required
      - `sunFireEnrollmentCode` string, nullable, required
      - `connectureConfirmationNumber` string, nullable, required
      - `hiosId` string, nullable, required
      - `metalLevel` 'Catastrophic' | 'Bronze' | 'Expanded Bronze' | 'Silver' | 'Gold' | 'Platinum' | 'null', nullable, required
      - `status` 'Active' | 'Placed' | 'Pending' | 'Pending Effectuation' | 'Pending Followup' | 'Suspended' | 'Cancelled' | 'Terminated' | 'Future Cancel' | 'Deceased' | 'Not Approved' | 'null', nullable, required
      - `applicationApprovalDate` string, date, nullable, required: Application approval date. Canonical format: YYYY-MM-DD
      - `effectiveDate` string, date, nullable, required: Policy effective date. Canonical format: YYYY-MM-DD
      - `terminationDate` string, date, nullable, required: Policy termination date. Canonical format: YYYY-MM-DD
      - `renewalDate` string, date, nullable, required: Policy renewal date. Canonical format: YYYY-MM-DD
      - `enrollmentDate` string, date, nullable, required: Policy enrollment date. Canonical format: YYYY-MM-DD
      - `cancelledDate` string, date, nullable, required: Policy cancellation date. Canonical format: YYYY-MM-DD
      - `declineReason` string, nullable, required
      - `declineReasonDescription` string, nullable, required
      - `cancellationReason` string, nullable, required
      - `cancellationReasonDescription` string, nullable, required
      - `electionPeriod` 'IEP' | 'AEP' | 'OEP' | 'SEP' | 'ICEP' | 'MA-OEP' | 'null', nullable, required
      - `gracePeriodStartDate` string, date, nullable, required: Grace period start date. Canonical format: YYYY-MM-DD
      - `paidThroughDate` string, date, nullable, required: Coverage paid-through date. Canonical format: YYYY-MM-DD
      - `ffmApplicationId` string, nullable, required
      - `ffmSubscriberId` string, nullable, required
      - `aorAgentId` string, uuid, nullable, required
      - `aorFirstName` string, nullable, required
      - `aorLastName` string, nullable, required
      - `aorNpn` string, nullable, required
      - `writingAgentNpn` string, nullable, required
      - `writingAgentName` string, nullable, required
      - `sepType` string, nullable, required
      - `sepCode` string, nullable, required
      - `sepStartDate` string, date, nullable, required: SEP start date. Canonical format: YYYY-MM-DD
      - `sepEndDate` string, date, nullable, required: SEP end date. Canonical format: YYYY-MM-DD
      - `sepDocumentationReceived` boolean, nullable, required
      - `sepDocumentationDate` string, date, nullable, required: SEP documentation date. Canonical format: YYYY-MM-DD
      - `sepNotes` string, nullable, required
      - `monthlyPremium` string, nullable, required
      - `deductible` string, nullable, required
      - `outOfPocketMax` string, nullable, required
      - `subsidyAmount` string, nullable, required
      - `usingSubsidy` boolean, nullable, required
      - `premiumMode` 'Monthly' | 'Quarterly' | 'Semi-Annual' | 'Annual' | 'null', nullable, required
      - `paymentMode` 'ACH' | 'Credit/ debit card' | 'Direct bill' | 'null', nullable, required
      - `paymentMethod` 'Credit Card' | 'Debit Card' | 'Check' | 'ACH / Bank Draft' | 'Money Order' | 'Cash' | 'Other' | 'null', nullable, required
      - `grossPremium` string, nullable, required
      - `netPremium` string, nullable, required
      - `initialCommission` string, nullable, required
      - `renewalCommission` string, nullable, required
      - `spifAmount` string, nullable, required
      - `policyLives` integer, nullable, required
      - `wasAgent` boolean, nullable, required
      - `writtenAs` 'New Business' | 'Like Plan Change' | 'Unlike Plan Change' | 'Reinstatement' | 'Rewrite' | 'null', nullable, required
      - `isReplacing` string, nullable, required
      - `isRewrite` boolean, nullable, required
      - `hospitalNetwork` string, nullable, required
      - `pcpNetwork` string, nullable, required
      - `ssbciVerificationRequired` boolean, nullable, required
      - `dailyBenefit` string, nullable, required
      - `eliminationPeriod` integer, nullable, required
      - `benefitPeriod` integer, nullable, required
      - `hasCola` boolean, nullable, required
      - `deathBenefit` string, nullable, required
      - `term` integer, nullable, required
      - `maturityDate` string, date, nullable, required: Policy maturity date. Canonical format: YYYY-MM-DD
      - `riders` string, nullable, required
      - `coverageLevel` 'Immediate' | 'Graded/ROP' | 'Modified Level' | 'Standard Level' | 'Preferred Level' | 'null', nullable, required
      - `draftDay` integer, nullable, required
      - `exchangeStatus` 'FFM' | 'SBM' | 'SBM FP' | 'OFF EXCHANGE' | 'PRIVATE EXCHANGE' | 'UNKNOWN' | 'null', nullable, required
      - `billingMethod` string, nullable, required
      - `benefitReminder` string, date, nullable, required: Benefit reminder date. Canonical format: YYYY-MM-DD
      - `surveyCompleted` boolean, nullable, required
      - `reasonForPurchase` string, nullable, required
      - `policyNotes` string, nullable, required
      - `customFields` object[]: Structured custom fields with definitions and values. Populated on customer detail and policy detail responses; absent elsewhere.
        - `fieldKey` string: Generated identifier for the field
        - `fieldLabel` string: Display name shown to users
        - `fieldDescription` string: Description of the field's purpose
        - `fieldType` 'text' | 'number' | 'boolean' | 'date' | 'select' | 'multi_select': Type of data this field stores
        - `isRequired` boolean, nullable: Whether this field must have a value
        - `options` string[], nullable: Available options for select/multi-select fields
        - `validationRules` union: Validation rules for the custom field
          - string
          - number
          - boolean
          - object
          - unknown[]
            - unknown
        - `id` string, uuid
        - `fieldDefinitionId` string, uuid: Custom field definition ID
        - `value` union: The actual value for this record (type determined by fieldType). Dates are represented as ISO 8601 strings.
          - string
          - number
          - boolean
          - string[]
          - unknown
    - `planCrosswalk` object, nullable: Latest completed plan crosswalk containing this customer
      - `cohort` object, required
        - `id` string, uuid, required
        - `name` string, required
        - `fromYear` integer, required
        - `toYear` integer, required
        - `completedAt` string, date-time, nullable, required
        - `governmentCrosswalkLoaded` boolean, required
      - `items` object[], required
        - `id` string, uuid, required
        - `customerId` string, uuid, required
        - `fromPlanId` string, nullable, required
        - `toPlanId` string, nullable, required
        - `outcome` 'renewed' | 'consolidated' | 'split' | 'service_area_reduction' | 'terminated' | 'not_found' | 'skipped', required
        - `primaryBucket` 'plan_terminated' | 'service_area_reduction' | 'plan_not_found' | 'plan_split' | 'plan_consolidated' | 'benefit_loss' | 'premium_increase' | 'moop_increase' | 'deductible_increase' | 'star_rating_decrease' | 'no_material_change' | 'null', nullable, required
        - `impacts` string[], required
        - `skipReason` 'no_plan_code' | 'unparseable_plan_code' | 'plan_not_found' | 'county_unresolved' | 'county_outside_plan_area' | 'plan_name_unmatched' | 'plan_name_ambiguous' | 'null', nullable, required
        - `planCodeOnFile` string, nullable, required
        - `fromPlanName` string, nullable, required
        - `carrier` string, nullable, required
        - `toPlanName` string, nullable, required
        - `county` string, nullable, required
        - `changeSummary` string, nullable, required
        - `changes` object, nullable, required
          - `monthlyPremium` object, required
            - `from` number, nullable, required
            - `to` number, nullable, required
          - `maxOutOfPocket` object, required
            - `from` number, nullable, required
            - `to` number, nullable, required
          - `healthDeductible` object, required
            - `from` number, nullable, required
            - `to` number, nullable, required
          - `drugDeductible` object, required
            - `from` number, nullable, required
            - `to` number, nullable, required
          - `starRating` object, required
            - `from` number, nullable, required
            - `to` number, nullable, required
          - `benefitsLost` string[], required
          - `benefitsGained` string[], required
          - `successorPlanIds` string[], required
        - `recommendations` object[], required
          - `planId` string, required
          - `planName` string, nullable, required
          - `differences` string[], required
    - `displayPolicyId` string, uuid, nullable, required
    - `prescriptions` object[], required: List of prescription names associated with the customer
      - `id` string, uuid, required
      - `createdAt` string, date-time, nullable, required: Prescription creation time. ISO 8601 timestamp
      - `updatedAt` string, date-time, nullable, required: Prescription last update time. ISO 8601 timestamp
      - `customerId` string, uuid, required
      - `name` string, nullable, required
      - `dosage` string, nullable, required
      - `frequency` string, nullable, required
      - `route` 'Oral' | 'Topical' | 'Injection' | 'Inhalation' | 'Sublingual' | 'Rectal' | 'Intravenous' | 'null', nullable, required
      - `status` 'Active' | 'Expired' | 'Discontinued' | 'null', nullable, required
      - `connectureDrugId` string, nullable, required
      - `connectureDosageId` string, nullable, required
      - `connecturePackageId` string, nullable, required
      - `ndc` string, nullable, required
      - `dosageName` string, nullable, required
      - `drugTypeId` integer, nullable, required
      - `userQuantity` number, nullable, required
      - `metricQuantity` number, nullable, required
      - `daysSupply` integer, nullable, required
      - `packageDescription` string, nullable, required
      - `packageSize` number, nullable, required
      - `packageQuantity` number, nullable, required
    - `providers` object[], required: List of providers associated with the customer
      - `id` string, uuid, required
      - `createdAt` string, date-time, nullable, required: Provider creation time. ISO 8601 timestamp
      - `updatedAt` string, date-time, nullable, required: Provider last update time. ISO 8601 timestamp
      - `customerId` string, uuid, required
      - `providerType` 'Primary Care' | 'Specialist' | 'Hospital' | 'Pharmacy', required
      - `specialty` string, nullable, required
      - `providerName` string, nullable, required
      - `practiceName` string, nullable, required
      - `npi` string, nullable, required
      - `phone` string, nullable, required
      - `fax` string, nullable, required
      - `email` string, nullable, required
      - `address` string, nullable, required
      - `address2` string, nullable, required
      - `city` string, nullable, required
      - `state` string, nullable, required
      - `postalCode` string, nullable, required
      - `isPrimaryProvider` boolean, nullable, required
      - `isActive` boolean, nullable, required
      - `notes` string, nullable, required
      - `connectureProviderId` string, nullable, required
      - `connectureAddressId` string, nullable, required
      - `isIndividual` boolean, nullable, required
    - `scopeOfAppointments` object[], required: List of scope of appointments associated with the customer
      - `id` string, uuid, required
      - `createdAt` string, date-time, nullable, required: Scope of appointment creation time. ISO 8601 timestamp
      - `updatedAt` string, date-time, nullable, required: Scope of appointment last update time. ISO 8601 timestamp
      - `customerId` string, uuid, required
      - `productsDiscussed` string, nullable, required
      - `planTypes` string, nullable, required
      - `agentName` string, nullable, required
      - `agentNpn` string, nullable, required
      - `consentGiven` boolean, nullable, required
      - `consentDate` string, date-time, nullable, required: Scope of appointment consent time. ISO 8601 timestamp
      - `status` 'Pending' | 'Completed' | 'Expired' | 'Cancelled' | 'null', nullable, required
      - `expirationDate` string, date, nullable, required: Scope of appointment expiration date. Canonical format: YYYY-MM-DD
      - `isValid` boolean, nullable, required
      - `documentUrl` string, nullable, required
      - `notes` string, nullable, required
    - `dependents` object[], required: List of dependents associated with the customer
      - `id` string, uuid, required
      - `createdAt` string, date-time, nullable, required: Dependent creation time. ISO 8601 timestamp
      - `updatedAt` string, date-time, nullable, required: Dependent last update time. ISO 8601 timestamp
      - `customerId` string, uuid, required
      - `firstName` string, nullable, required
      - `lastName` string, nullable, required
      - `middleName` string, nullable, required
      - `dateOfBirth` string, date, nullable, required: Dependent date of birth. Canonical format: YYYY-MM-DD
      - `gender` 'Male' | 'Female' | 'Non-Binary' | 'Other' | 'Prefer Not to Say' | 'null', nullable, required
      - `annualIncome` integer, nullable, required
      - `relationshipType` 'Spouse' | 'Child' | 'Parent' | 'Sibling' | 'Other' | 'null', nullable, required
      - `phone` string, nullable, required
      - `email` string, nullable, required
      - `isCovered` boolean, nullable, required
      - `coverageStartDate` string, date, nullable, required: Dependent coverage start date. Canonical format: YYYY-MM-DD
      - `coverageEndDate` string, date, nullable, required: Dependent coverage end date. Canonical format: YYYY-MM-DD
      - `isActive` boolean, nullable, required
      - `notes` string, nullable, required
    - `assignedMember` object, nullable: The team member assigned to this customer
      - `id` string, required
      - `name` string, nullable, required
      - `email` string, required
      - `image` string, nullable, required
    - `tags` object[], required: Tags assigned to this customer
      - `id` string, uuid, required
      - `name` string, required
      - `color` string, nullable: Color picked for the tag; null means automatic

## Other responses

- `400`: GET /v2/customers Negative response 400
- `401`: GET /v2/customers Negative response 401
- `403`: GET /v2/customers Negative response 403
- `404`: GET /v2/customers Negative response 404
- `409`: GET /v2/customers Negative response 409
- `422`: GET /v2/customers Negative response 422
- `429`: GET /v2/customers Negative response 429
- `500`: GET /v2/customers Negative response 500
- `502`: GET /v2/customers Negative response 502
- `503`: GET /v2/customers Negative response 503

---

[API](https://skmtc.dev/carecycle/apis/carecycle-public-api.md) - [All operations](https://skmtc.dev/carecycle/apis/carecycle-public-api/llms.txt) - [OpenAPI document](https://skmtc.dev/carecycle/apis/carecycle-public-api/revisions/db390c743c36?raw)
