Skip to main content
POST
Create a contact list
Creates a contact list owned by one team member and fills its dialing queue with the same contacts. Send the contacts in the request, or create an empty list and add them with Add a contact to a list. The owner, user_id, must be a member of your team: get member IDs from GET /v1/team. Only that member sees the list in the dashboard.

Limits

The request schema lists the length limit of every other field. The 2,000-contact limit applies to one request, not to the list: Add a contact to a list and Merge contact lists can grow a list past it. To load more than 2,000 contacts, create several lists and merge them into one.

Example

list.json:
Response (201), the saved list with each contact as stored:
Keep the list’s _id: every other contact-list operation takes it. The response is not wrapped in data.

Before you send

  • Use only the fields in the contact schema. An unknown field, such as phone instead of phone_numbers, fails the whole request with 400 (contacts.0.property phone should not exist).
  • Phone numbers are stored exactly as sent, without validation or reformatting. Send them in E.164 format, such as +14155552671.
  • Custom field labels are free text. To match the fields a CRM import creates, reuse an internal_name from List custom field mappings.

Retrying

Not idempotent: every call creates a new list. If a request times out, look for the list with GET /v1/contact-lists/csv?search=... before you retry, or you can end up with two lists with the same name.

Errors

Authorizations

x-api-key
string
header
required

Team-scoped API key generated in the Salesfinity dashboard under Settings → Connections → API & Webhooks. A missing or invalid key returns HTTP 403.

Body

application/json
name
string
required

Name of the list, 1 to 100 characters. Names need not be unique.

Required string length: 1 - 100
Example:

"Q2 Outbound Prospects"

user_id
string
required

ID of the team member who owns the list. Only that member sees it in the dashboard. A user who is not on your team fails with 400. Get member IDs from GET /v1/team.

Example:

"680edc0d1504192884a148e0"

contacts
object[]

Contacts to save, at most 2,000 per request. Omit it to create an empty list. POST /v1/contact-lists/{id} and POST /v1/contact-lists/{id}/merge can grow a list past 2,000.

Maximum array length: 2000

Response

Created. The body is the saved list, with every contact as stored.

A saved contact list as stored, returned by POST /v1/contact-lists.

_id
string

ID of the saved list. Pass it to every other contact-list operation.

Example:

"6650c1f2a4b8e93d2c1f0a11"

name
string
Example:

"Q2 Outbound Prospects"

team
string

ID of your team.

Example:

"64f1a2b3c4d5e6f7a8b9c0d1"

user
string

ID of the member who owns the list: the user_id you sent.

Example:

"680edc0d1504192884a148e0"

contacts
object[]

Every contact as stored, each with the _id Salesfinity gave it. Stored contacts also carry two internal counters, email_views and sequence_step, both 0 on a new contact.

createdAt
string<date-time>
updatedAt
string<date-time>
__v
integer

Internal document version. Ignore it.