Lists
POST
/lists/{id}/leads

Upserts the workspace leads from the { profileUrl, ... } objects you pass and attaches them to this list in one call — you don't need to create leads separately first. Existing leads are matched on their LinkedIn identifier and updated with any new fields. With the email channel, an item with only an email is matched on that address instead (see LeadInput). Max 1000 leads per request.

If the list is a campaign's own list (the campaign's listId), the leads are also enrolled in that campaign, subject to its exclusion rules; leads already in the campaign are skipped. enrolled in the response is how many were enrolled (0 for any other list).

Authorization

bearerAuth
AuthorizationBearer <token>

An API key created under Settings → API & Webhooks.

In: header

Path Parameters

id*string

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

application/json

application/json

application/json

application/json

curl -X POST "https://example.com/lists/string/leads" \  -H "Content-Type: application/json" \  -d '{    "leads": [      {        "profileUrl": "https://www.linkedin.com/in/jane-doe",        "firstName": "Jane",        "lastName": "Doe",        "company": "Acme"      },      {        "profileUrl": "https://www.linkedin.com/in/john-roe",        "email": "john@roe.dev"      }    ]  }'
{  "data": {    "inserted": 0,    "skipped": 0,    "enrolled": 0  }}