careCycle
Leads

Upload lead records

Add new leads to careCycle. To track which source each lead came from, create the source in careCycle first, then pass sourceId and optional leadCost with each record.

Response: For each successfully uploaded record, results contains the full customer record (same shape as the customer.created/customer.updated webhook). Lead upload does not handle policies, so no policies are returned; use /v2/sync/aca or /v2/sync/medicare for policies.

POST
/v2/leads/upload

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

Request Body

application/json

POST /v2/leads/upload Request body

TypeScript Definitions

Use the request body type in TypeScript.

array<object>

Array of lead records to upload (1-200)

Items1 <= items <= 200
string

Customer phone number (required). Accepts: +1XXXXXXXXXX, XXXXXXXXXX, (XXX) XXX-XXXX

string | null

Customer first name

Lengthlength <= 255
string | null

Customer last name

Lengthlength <= 255
string | null
Lengthlength <= 255
string | null

Customer postal code. Required if timezone is not provided (for TCPA compliance).

string | null

Customer timezone. Required if postalCode is not provided (for TCPA compliance). Accepts IANA format (America/New_York) or abbreviations (EST, CST, MST, PST).

string | null
Lengthlength <= 50
string | null
Lengthlength <= 255
string | null
Lengthlength <= 255
string | null
Lengthlength <= 255
string | null
Lengthlength <= 255
string | null

Customer date of birth. Format: MM-DD-YYYY, MM/DD/YYYY, or YYYY-MM-DD

string | null
Lengthlength <= 50
string | null
Value in"Male" | "Female" | "Non-Binary" | "Other" | "Prefer Not to Say" | null
string | null
Value in"Single" | "Married" | "Divorced" | "Widowed" | "Separated" | "Domestic Partnership" | null
string | null
Lengthlength <= 50
integer | null
Range-2147483648 <= value <= 2147483647
integer | null
Range-2147483648 <= value <= 2147483647
boolean | null
boolean | null
string | null
Lengthlength <= 255
boolean | null
string | null
Lengthlength <= 255
boolean | null
integer | null
Range-2147483648 <= value <= 2147483647
integer | null
Range-2147483648 <= value <= 2147483647
boolean | null
string | null

Carrier-assigned customer ID

Lengthlength <= 255
string | null

Health Sherpa customer ID

Lengthlength <= 255
string | null

Medicare Beneficiary Identifier

Lengthlength <= 255
boolean | null
boolean | null
boolean | null
boolean | null
string | null

Your external system identifier for this customer

Lengthlength <= 255
string | null

Public source identifier configured in careCycle. The source must exist before leads are uploaded. You may also pass the source UUID.

Lengthlength <= 255
number | null

Optional per-lead cost for dynamic CPL source billing. If omitted, the source default lead cost is used.

Range0 <= value
array<object>

Custom field values (max 50) Your Custom Field keys can be found here in your settings

Itemsitems <= 50
string

Custom field key (e.g., 'lead_source', 'utm_campaign')

Length1 <= length <= 100
string | number | boolean | array<string> | null

Value for the custom field

Response Body

application/json

application/json

application/json

application/json

application/json

application/json

application/json

application/json

application/json

application/json

application/json

curl -X POST "https://api.carecycle.ai/v2/leads/upload" \  -H "Content-Type: application/json" \  -d '{    "records": [      {        "phoneNumber": "string"      }    ]  }'
{
  "succeeded": 0,
  "failed": 0,
  "results": [
    {
      "id": "string",
      "createdAt": "2019-08-24T14:15:22Z",
      "updatedAt": "2019-08-24T14:15:22Z",
      "deletedAt": "2019-08-24T14:15:22Z",
      "externalId": "string",
      "status": "string",
      "firstName": "string",
      "middleName": "string",
      "lastName": "string",
      "salutation": "string",
      "suffix": "string",
      "preferredName": "string",
      "phoneNumber": "string",
      "isPhonePrimary": true,
      "lineType": "string",
      "email": "string",
      "dateOfBirth": "2019-08-24",
      "language": "string",
      "ethnicity": "string",
      "gender": "string",
      "maritalStatus": "string",
      "address": "string",
      "address2": "string",
      "city": "string",
      "county": "string",
      "state": "string",
      "postalCode": "string",
      "timezone": "string",
      "mbiNumber": "string",
      "medicareCard": true,
      "medicarePartADate": "2019-08-24",
      "medicarePartBDate": "2019-08-24",
      "hasMedicaid": true,
      "medicaidNumber": "string",
      "socialSecurityDisability": true,
      "heightInches": 0,
      "weightPounds": 0,
      "smokerStatus": true,
      "veteran": true,
      "vaNumber": "string",
      "householdIncome": 0,
      "annualIncome": 0,
      "filingStatus": "string",
      "dependentCount": 0,
      "subsidyEligible": true,
      "subsidyAmount": 0,
      "carrierAssignedCustomerId": "string",
      "agentName": "string",
      "agentNpn": 0,
      "assignedUser": {
        "id": "string",
        "name": "string",
        "email": "string",
        "npn": "string",
        "role": "string",
        "licensedStates": [
          "string"
        ]
      },
      "doNotCall": true,
      "doNotSMS": true,
      "doNotEmail": true,
      "doNotMail": true,
      "testCustomer": true
    }
  ],
  "errors": [
    {
      "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
      "externalId": "string",
      "error": "string"
    }
  ]
}
{
  "message": "string",
  "code": "string",
  "details": {
    "property1": null,
    "property2": null
  }
}
{
  "message": "string",
  "code": "string"
}
{
  "message": "string",
  "code": "string"
}
{
  "message": "string",
  "code": "string"
}
{
  "message": "string",
  "code": "string",
  "details": {
    "property1": null,
    "property2": null
  }
}
{
  "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"
}
{
  "message": "string",
  "code": "string"
}
{
  "message": "string",
  "code": "string"
}