📘 LeadsPlease® Data API Manual

v1.3.4 · live document — updates here automatically when the source is edited

Leadsplease API Manual

Leadsplease API Manual ver. 1.3.4

Leadsplease API Manual

Authentication

Get Count

Get List

Create Lists Aggregation

TEST

Base URL: https://api-test.leadsplease.com/api/v1

Swagger UI: https://api-test.leadsplease.com/swagger-ui/index.html

LIVE

Base URL: https://api.leadsplease.com/api/v1

Swagger UI:  https://api.leadsplease.com/swagger-ui/index.html

For full request/response schemas and interactive testing, refer to the Swagger UI links above. 

Authentication

To get an authentication token, you need to call the Authentication API endpoint and pass your username and password in the request body.

A sample body:

{

    "username":"john@gmail.com",

    "password":"password123"

}

A sample response:

{

    "accessToken": "eyJhbGciOiJIUzUxMiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiJ0b21kYWJyQGdtYWlsLmNvbSIsImlzcyI6ImxlYWRzcGxlYXNlIiwiaWF0IjoxNzMzNDE1OTEwLCJleHAiOjE3MzM0MTcxMTB9.RJWgUjgIej86dTALtcVX_Q4XCYCstwTKPPrtAY41hoGufwTRQp-HnhU3vsKnV6RuMDPIyR-b9rpUCTl8qG79Lw"

}

If an endpoint requires authentication, a token should be included in the Authorization request header as a Bearer token. The token is valid for 20 minutes.

A sample header:

Header name: Authorization

Header value: Bearer eyJhbGciOiJIUzUxMiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiJ0b21kYWJyQGdtYWlsLmNvbSIsImlzcyI6ImxlYWRzcGxlYXNlIiwiaWF0IjoxNzMzNDE1OTEwLCJleHAiOjE3MzM0MTcxMTB9.RJWgUjgIej86dTALtcVX_Q4XCYCstwTKPPrtAY41hoGufwTRQp-HnhU3vsKnV6RuMDPIyR-b9rpUCTl8qG79Lw

The following APIs require authentication:

  1. Criteria API
  2. Count API
  3. List API
  4. Lists Aggregation API

Get Count

Getting a Count includes the following steps:

  1. Get supported demographics (optional)

Currently, the Consumer Dataset is described by 30+ demographics. Each demographic has a unique name and a set of values.

  1. Create Criteria

Creating Criteria is a prerequisite for getting a Count and a List. Criteria may include demographics, geographies, or both.

Criteria has the following attributes:

A geography is described by:

        A Criteria might include zero, one or more geographies.

A demographic is described by a name and an array of codes that represent selected values.

E.g. name = charityDonor, values = aw (Animal Welfare), ac (Arts or cultural)

Example 1 - Consumer sample demographic and geographic criteria:

{

  "listType": "consumer",

  "geoCriteriaType": "manual",

  "affiliateCode": "lp",

  "contactDataPoints": ["direct_mail"],

  "geos": [

    {

      "name": "85255",

      "type": "zip"

    },

    {

      "name": "86001",

      "type": "zip"

    }

  ],

  "demographics": [

    {

      "name": "charityDonor",

      "codes": [

        "aw", "cc"

      ]

    },

    {

      "name": "current_home_value",

      "codes": [

        "Q", "R", "S"

      ]

    },

    {

      "name": "personbirthmonthonly",

      "codes": [

        "12"

      ]

    }

  ]

}

Example 2 - radial search:

 

{

  "listType": "consumer",

  "geoCriteriaType": "radial",

  "affiliateCode": "lp",

  "contactDataPoints": ["direct_mail"],

  "geoRadius": {

    "address": {

      "desc": "Metropolitan Opera House, 40 Lincoln Center Plaza, New York, NY 10023, USA",

      "location": {

        "x": -73.9849449,

        "y": 40.77315530000001

      }

    },

    "radiusInMiles": 25.5

  },

  "demographics": [

    {

      "name": "occupationgroup",

      "codes": [

        "A",

        "B",

        "C"

      ]

    }

  ]

}

When a Criteria has been successfully created, a user gets their unique ID in a response.

Example 3 -  Business sample demographic and geographic criteria:

{

  "listType": "business",

  "geoCriteriaType": "manual",

  "affiliateCode": "lp",

  "contactDataPoints": ["direct_mail"],

  "geos": [

    {

      "name": "85255",

      "type": "zip"

    },

    {

      "name": "86001",

      "type": "zip"

    }

  ],

  "demographics": [

    {

      "name": "employee_code",

      "codes": [

        "A","B"

      ]

    },

    {

      "name": "sic",

      "codes": [

        "5812008","5812011"

      ]

    }    

  ]

}

Example 4 -  Newmover sample demographic and geographic criteria:

{

  "listType": "newmover",

  "geoCriteriaType": "manual",

  "affiliateCode": "lp",

  "contactDataPoints": ["direct_mail"],

  "geos": [

    {

      "name": "85255",

      "type": "zip"

    },

    {

      "name": "86001",

      "type": "zip"

    }

  ],

  "demographics": [

    {

      "name": "gender",

      "codes": [

        "M"

      ]

    },

    {

      "name": "LOADED_DATE",

      "codes": [

        "1",

        "2"

      ]

    }

  ]

}

Example 5 -  New homeowner search criteria when a list should include direct mail, emails and phones.

{

  "listType": "newhomeowner",

  "geoCriteriaType": "manual",

  "affiliateCode": "lp",

  "contactDataPoints": ["direct_mail", "email", "phone"],

  "geos": [

    {

      "name": "85255",

      "type": "zip"

    },

    {

      "name": "86001",

      "type": "zip"

    }

  ],

  "demographics": [

    {

      "name": "gender",

      "codes": [

        "M"

      ]

    },

    {

      "name": "LOADED_DATE",

      "codes": [

        "1",

        "2"

      ]

    }

  ]

}

Example 6 - polygon search:

{

  "listType": "consumer",

  "geoCriteriaType": "polygon",

  "affiliateCode": "lp",

  "contactDataPoints": [

    "direct_mail"

  ],

  "geoPolygon": {

    "name": "Tomek Polygon 1",

    "vertices": [

      {

        "lat": -74.0042577,

        "lng": 40.7372398

      },

      {

        "lat": -74.0016828,

        "lng": 40.7211092

      },

      {

        "lat": -73.9814267,

        "lng": 40.7228005

      },

      {

        "lat": -73.9814267,

        "lng": 40.7371097

      },

      {

        "lat": -74.0042577,

        "lng": 40.7372398

      }

    ]

  },

  "demographics": []

}

  1. Get Count

        Get a Count for a given Criteria.

        Note: Count requests are limited to 10 requests per minute.

Get List

Getting a List includes the following steps:

  1. Create Criteria

This is an optional step. The same criteria that were created for the Get Count request can be used.

  1. Get Count 

Get a Count for given criteria to know the maximum number of available leads.

  1. Get List

  1. Create List

                

Call the Create List endpoint to trigger List creation. The response will include a URL to an endpoint that allows you to check the list creation status.

                                        

  1. Check List Status

When List creation is triggered, the status is Pending. Once the CSV file is generated, the status changes to Completed and the response also includes a URL to download the file.                 

  1. Get a File

Use the URL returned by the Check List Status endpoint to download the CSV file.

Create Lists Aggregation

The Lists Aggregation API allows you to group lists together, making it possible to download many List files as a single file.

  1. Create List Aggregation

A List Aggregation can be identified by its ID and name. It enables you to download a file that merges multiple list files.

Once a List Aggregation is created, you receive a URL to check the status of the aggregated list generation. Once the file is generated, the response will also include a URL to download it.

  1. Download a file

        Download a CSV file that merges multiple List files.

  1. Remove List from Aggregation

Remove a List from a given Aggregation. If a List Aggregation file was previously generated, it will be regenerated.

  1. Add List to Aggregation

Add a List to a given Aggregation. If a List Aggregation file was generated earlier, it will be regenerated.

Get All Demographics

To get all demographics for a given dataset call the following URL (GET):

<Base URL>/demographic-categories?type=<Dataset>&affiliateCode=<AffiliateCode>

Where ListType is one of consumer, business, newhomeowner, newmover.

E.g. https://api-test.leadsplease.com/api/v1/demographic-categories?type=newmover&affiliateCode=lp

Get all SIC codes with description

To get a list of all SIC codes and their descriptions call the following URL (GET):

<Base URL>/sic-codes

Find SIC code by Keyword

To find a SIC code(s) by a description call the following URL (GET):

<Base URL>/api/v1/sic-codes/search?description=<Description>

Where description is a keyword or a part of a keyword.

E.g. https://api-test.leadsplease.com/api/v1/sic-codes/search?description=Restaurant

Subscription

Subscriptions allow you to periodically receive fresh New Homeowner and New Mover leads.

Each subscription run delivers only newly loaded records that have not yet been included in previous runs, and creates a new order. A daily check verifies whether new data has been loaded since the last subscription run.

A subscription uses the search criteria defined when it was created. The generated CSV file is delivered via the configured delivery channels. Currently, only EMAIL is supported.

Create Subscription

To create a Subscription call the following URL (POST):

<Base URL>/subscriptions

The userId is the user identifier that you received from the LeadsPlease technical team.

The successful response includes a subscriptionId.

Example 7. Create a new subscription.

{

  "name": "Newmovers Spring 2026",

  "searchCriteriaId": "a9bae6d8-17bb-11f1-8fa0-0afff3a94407",

  "userId": 123,

  "deliveryChannels": [

    "EMAIL"

  ],

  "metadata": {

    "costCenterId": "C1"

  }

}

Get Subscriptions

To list a Subscription call the following URL (GET):

<Base URL>/subscriptions

To get a Subscription by its ID call the following URL (GET):

<Base URL>/subscriptions/{subscriptionId}

Delete Subscription

To delete a Subscription by its ID call the following URL (DELETE):

<Base URL>/subscriptions/{subscriptionId}