Contact Lists
List contact lists
Authorization
ApiKeyAuth API key authentication using Bearer token. Format: sk_live_ followed by a secure random string.
In: header
Query Parameters
Maximum number of lists to return (1–100, default 20)
201 <= value <= 100Number of lists to skip for pagination (default 0)
00 <= valueResponse Body
application/json
application/json
application/json
curl -X GET "https://example.com/v1/contacts/lists"{ "items": [ { "id": "abc123", "name": "Engineering leads at Stripe", "filters": { "companyLinkedInUrls": [ "https://www.linkedin.com/company/stripe" ], "jobTitles": [ "Engineering Manager", "VP Engineering" ], "keywords": "Kubernetes", "countries": [ "US", "GB" ] }, "contactCount": 47, "createdAt": "2026-03-03T12:00:00Z", "updatedAt": "2026-03-03T12:00:00Z" } ], "total": 3, "limit": 20, "offset": 0, "hasMore": false}{ "error": { "type": "VALIDATION", "code": "VALIDATION_ERROR", "message": "validation failed for 'departments': invalid value: Engineering Ops", "errorCode": "string", "errorAction": "string", "details": {}, "requestId": "e69ed773-2674-4dca-be61-886d6698f360", "fields": [ { "field": "domain", "message": "'domain' must be a valid hostname (e.g., 'example.com') without protocol (https://) or path" } ], "debug": { "cause": "string" } }}{ "error": { "type": "VALIDATION", "code": "VALIDATION_ERROR", "message": "validation failed for 'departments': invalid value: Engineering Ops", "errorCode": "string", "errorAction": "string", "details": {}, "requestId": "e69ed773-2674-4dca-be61-886d6698f360", "fields": [ { "field": "domain", "message": "'domain' must be a valid hostname (e.g., 'example.com') without protocol (https://) or path" } ], "debug": { "cause": "string" } }}Create a contact list
Creates a named contact list by running a live LinkedIn Sales Navigator search for the given company and filters, then storing the results as a persistent snapshot.
The request is synchronous — it waits for the search to complete before returning. The response includes the list metadata with an accurate contactCount.
Requirements:
- A valid company LinkedIn URL is required
- At least one filter (
jobTitles,keywords, orcountries) must be provided - LinkedIn Sales Navigator must be connected on the API key owner's account
Notes:
- Up to ~125 contacts are captured (5 pages × 25 results per page)
- Contacts are stored as a point-in-time snapshot; the list is not automatically updated when profiles change
- The list and all its contacts are committed atomically — if the request fails, no partial data is stored
Authorization
ApiKeyAuth API key authentication using Bearer token. Format: sk_live_ followed by a secure random string.
In: header
Request Body
application/json
TypeScript Definitions
Use the request body type in TypeScript.
Display name for the contact list
length <= 200Search filters stored on a contact list
Response Body
application/json
application/json
application/json
application/json
application/json
application/json
curl -X POST "https://example.com/v1/contacts/lists" \ -H "Content-Type: application/json" \ -d '{ "name": "Engineering leads at Stripe", "filters": { "companyLinkedInUrls": [ "https://www.linkedin.com/company/stripe" ], "jobTitles": [ "Engineering Manager", "VP Engineering" ], "countries": [ "US", "GB" ] } }'{ "id": "abc123", "name": "Engineering leads at Stripe", "filters": { "companyLinkedInUrls": [ "https://www.linkedin.com/company/stripe" ], "jobTitles": [ "Engineering Manager", "VP Engineering" ], "countries": [ "US", "GB" ] }, "contactCount": 47, "createdAt": "2026-03-03T12:00:00Z", "updatedAt": "2026-03-03T12:00:00Z"}{ "error": "BAD_REQUEST", "message": "At least one filter (jobTitles, keywords, or countries) is required"}{ "error": { "type": "VALIDATION", "code": "VALIDATION_ERROR", "message": "validation failed for 'departments': invalid value: Engineering Ops", "errorCode": "string", "errorAction": "string", "details": {}, "requestId": "e69ed773-2674-4dca-be61-886d6698f360", "fields": [ { "field": "domain", "message": "'domain' must be a valid hostname (e.g., 'example.com') without protocol (https://) or path" } ], "debug": { "cause": "string" } }}{ "error": { "type": "VALIDATION", "code": "VALIDATION_ERROR", "message": "validation failed for 'departments': invalid value: Engineering Ops", "errorCode": "string", "errorAction": "string", "details": {}, "requestId": "e69ed773-2674-4dca-be61-886d6698f360", "fields": [ { "field": "domain", "message": "'domain' must be a valid hostname (e.g., 'example.com') without protocol (https://) or path" } ], "debug": { "cause": "string" } }}{ "error": { "type": "VALIDATION", "code": "VALIDATION_ERROR", "message": "validation failed for 'departments': invalid value: Engineering Ops", "errorCode": "string", "errorAction": "string", "details": {}, "requestId": "e69ed773-2674-4dca-be61-886d6698f360", "fields": [ { "field": "domain", "message": "'domain' must be a valid hostname (e.g., 'example.com') without protocol (https://) or path" } ], "debug": { "cause": "string" } }}{ "error": { "type": "VALIDATION", "code": "VALIDATION_ERROR", "message": "validation failed for 'departments': invalid value: Engineering Ops", "errorCode": "string", "errorAction": "string", "details": {}, "requestId": "e69ed773-2674-4dca-be61-886d6698f360", "fields": [ { "field": "domain", "message": "'domain' must be a valid hostname (e.g., 'example.com') without protocol (https://) or path" } ], "debug": { "cause": "string" } }}Get a contact list by ID
Authorization
ApiKeyAuth API key authentication using Bearer token. Format: sk_live_ followed by a secure random string.
In: header
Path Parameters
The unique identifier of the contact list
Response Body
application/json
application/json
application/json
application/json
curl -X GET "https://example.com/v1/contacts/lists/abc123"{ "id": "abc123", "name": "Engineering leads at Stripe", "filters": { "companyLinkedInUrls": [ "https://www.linkedin.com/company/stripe" ], "jobTitles": [ "Engineering Manager", "VP Engineering" ], "keywords": "Kubernetes", "countries": [ "US", "GB" ] }, "contactCount": 47, "createdAt": "2026-03-03T12:00:00Z", "updatedAt": "2026-03-03T12:00:00Z"}{ "error": { "type": "VALIDATION", "code": "VALIDATION_ERROR", "message": "validation failed for 'departments': invalid value: Engineering Ops", "errorCode": "string", "errorAction": "string", "details": {}, "requestId": "e69ed773-2674-4dca-be61-886d6698f360", "fields": [ { "field": "domain", "message": "'domain' must be a valid hostname (e.g., 'example.com') without protocol (https://) or path" } ], "debug": { "cause": "string" } }}{ "error": { "type": "VALIDATION", "code": "VALIDATION_ERROR", "message": "validation failed for 'departments': invalid value: Engineering Ops", "errorCode": "string", "errorAction": "string", "details": {}, "requestId": "e69ed773-2674-4dca-be61-886d6698f360", "fields": [ { "field": "domain", "message": "'domain' must be a valid hostname (e.g., 'example.com') without protocol (https://) or path" } ], "debug": { "cause": "string" } }}{ "error": { "type": "VALIDATION", "code": "VALIDATION_ERROR", "message": "validation failed for 'departments': invalid value: Engineering Ops", "errorCode": "string", "errorAction": "string", "details": {}, "requestId": "e69ed773-2674-4dca-be61-886d6698f360", "fields": [ { "field": "domain", "message": "'domain' must be a valid hostname (e.g., 'example.com') without protocol (https://) or path" } ], "debug": { "cause": "string" } }}Delete a contact list and all its stored contacts
Permanently deletes the contact list and all its stored contact snapshots.
Authorization
ApiKeyAuth API key authentication using Bearer token. Format: sk_live_ followed by a secure random string.
In: header
Path Parameters
The unique identifier of the contact list
Response Body
application/json
application/json
application/json
curl -X DELETE "https://example.com/v1/contacts/lists/abc123"{ "error": { "type": "VALIDATION", "code": "VALIDATION_ERROR", "message": "validation failed for 'departments': invalid value: Engineering Ops", "errorCode": "string", "errorAction": "string", "details": {}, "requestId": "e69ed773-2674-4dca-be61-886d6698f360", "fields": [ { "field": "domain", "message": "'domain' must be a valid hostname (e.g., 'example.com') without protocol (https://) or path" } ], "debug": { "cause": "string" } }}{ "error": { "type": "VALIDATION", "code": "VALIDATION_ERROR", "message": "validation failed for 'departments': invalid value: Engineering Ops", "errorCode": "string", "errorAction": "string", "details": {}, "requestId": "e69ed773-2674-4dca-be61-886d6698f360", "fields": [ { "field": "domain", "message": "'domain' must be a valid hostname (e.g., 'example.com') without protocol (https://) or path" } ], "debug": { "cause": "string" } }}{ "error": { "type": "VALIDATION", "code": "VALIDATION_ERROR", "message": "validation failed for 'departments': invalid value: Engineering Ops", "errorCode": "string", "errorAction": "string", "details": {}, "requestId": "e69ed773-2674-4dca-be61-886d6698f360", "fields": [ { "field": "domain", "message": "'domain' must be a valid hostname (e.g., 'example.com') without protocol (https://) or path" } ], "debug": { "cause": "string" } }}Rename a contact list
Authorization
ApiKeyAuth API key authentication using Bearer token. Format: sk_live_ followed by a secure random string.
In: header
Path Parameters
The unique identifier of the contact list
Request Body
application/json
TypeScript Definitions
Use the request body type in TypeScript.
New display name for the contact list
length <= 200Response Body
application/json
application/json
application/json
application/json
application/json
curl -X PUT "https://example.com/v1/contacts/lists/abc123" \ -H "Content-Type: application/json" \ -d '{ "name": "Senior engineers at Stripe" }'{ "id": "abc123", "name": "Engineering leads at Stripe", "filters": { "companyLinkedInUrls": [ "https://www.linkedin.com/company/stripe" ], "jobTitles": [ "Engineering Manager", "VP Engineering" ], "keywords": "Kubernetes", "countries": [ "US", "GB" ] }, "contactCount": 47, "createdAt": "2026-03-03T12:00:00Z", "updatedAt": "2026-03-03T12:00:00Z"}{ "error": { "type": "VALIDATION", "code": "VALIDATION_ERROR", "message": "validation failed for 'departments': invalid value: Engineering Ops", "errorCode": "string", "errorAction": "string", "details": {}, "requestId": "e69ed773-2674-4dca-be61-886d6698f360", "fields": [ { "field": "domain", "message": "'domain' must be a valid hostname (e.g., 'example.com') without protocol (https://) or path" } ], "debug": { "cause": "string" } }}{ "error": { "type": "VALIDATION", "code": "VALIDATION_ERROR", "message": "validation failed for 'departments': invalid value: Engineering Ops", "errorCode": "string", "errorAction": "string", "details": {}, "requestId": "e69ed773-2674-4dca-be61-886d6698f360", "fields": [ { "field": "domain", "message": "'domain' must be a valid hostname (e.g., 'example.com') without protocol (https://) or path" } ], "debug": { "cause": "string" } }}{ "error": { "type": "VALIDATION", "code": "VALIDATION_ERROR", "message": "validation failed for 'departments': invalid value: Engineering Ops", "errorCode": "string", "errorAction": "string", "details": {}, "requestId": "e69ed773-2674-4dca-be61-886d6698f360", "fields": [ { "field": "domain", "message": "'domain' must be a valid hostname (e.g., 'example.com') without protocol (https://) or path" } ], "debug": { "cause": "string" } }}{ "error": { "type": "VALIDATION", "code": "VALIDATION_ERROR", "message": "validation failed for 'departments': invalid value: Engineering Ops", "errorCode": "string", "errorAction": "string", "details": {}, "requestId": "e69ed773-2674-4dca-be61-886d6698f360", "fields": [ { "field": "domain", "message": "'domain' must be a valid hostname (e.g., 'example.com') without protocol (https://) or path" } ], "debug": { "cause": "string" } }}Get contacts in a contact list
Returns the stored contact snapshot for the given list, paginated. Reads directly from the database — no Sales Navigator API call is made, so this is always fast and does not consume credits.
Contacts are returned in the order they were stored at list creation time.
Authorization
ApiKeyAuth API key authentication using Bearer token. Format: sk_live_ followed by a secure random string.
In: header
Path Parameters
The unique identifier of the contact list
Query Parameters
Maximum number of contacts to return (1–100, default 25)
251 <= value <= 100Number of contacts to skip for pagination (default 0)
00 <= valueResponse Body
application/json
application/json
application/json
application/json
curl -X GET "https://example.com/v1/contacts/lists/abc123/contacts"{ "items": [ { "id": "item_001", "listId": "abc123", "baseContactId": "bc_001", "firstName": "John", "lastName": "Doe", "fullName": "John Doe", "role": "Engineering Manager", "companyName": "Stripe", "location": "San Francisco, California", "seniority": [ "MANAGER" ], "linkedInSalesNavigatorProfileUrl": "https://www.linkedin.com/sales/lead/ACwAAABOW1g", "createdAt": "2026-03-03T12:00:00Z" } ], "total": 47, "limit": 25, "offset": 0, "hasMore": true}{ "error": { "type": "VALIDATION", "code": "VALIDATION_ERROR", "message": "validation failed for 'departments': invalid value: Engineering Ops", "errorCode": "string", "errorAction": "string", "details": {}, "requestId": "e69ed773-2674-4dca-be61-886d6698f360", "fields": [ { "field": "domain", "message": "'domain' must be a valid hostname (e.g., 'example.com') without protocol (https://) or path" } ], "debug": { "cause": "string" } }}{ "error": { "type": "VALIDATION", "code": "VALIDATION_ERROR", "message": "validation failed for 'departments': invalid value: Engineering Ops", "errorCode": "string", "errorAction": "string", "details": {}, "requestId": "e69ed773-2674-4dca-be61-886d6698f360", "fields": [ { "field": "domain", "message": "'domain' must be a valid hostname (e.g., 'example.com') without protocol (https://) or path" } ], "debug": { "cause": "string" } }}{ "error": { "type": "VALIDATION", "code": "VALIDATION_ERROR", "message": "validation failed for 'departments': invalid value: Engineering Ops", "errorCode": "string", "errorAction": "string", "details": {}, "requestId": "e69ed773-2674-4dca-be61-886d6698f360", "fields": [ { "field": "domain", "message": "'domain' must be a valid hostname (e.g., 'example.com') without protocol (https://) or path" } ], "debug": { "cause": "string" } }}