List contacts

List or find the contacts of a list

Two modes.

Exact lookup (use it before an update or a delete): pass email OR linkedinUrl. The email is matched exactly but case-insensitively, the LinkedIn URL is compared as an exact string (a trailing slash or a missing www is a different URL). The search covers this list and the lists linked to it, returns up to 50 matches, ignores search, filters and pagination, and returns the full contact objects. The envelope then has page: 1, pageSize equal to the number of items (1 when empty) and no customVariables.

Paginated listing: without email and linkedinUrl, returns one page of the contacts stored in this list (not in linked lists), in creation order unless sortBy is set. Company rows without a contact (company-only lists) are included with rowKind: "company_only" and an id of the form co:<companyId> that the contact routes do not accept.

In paginated mode, when the list has column settings (every list created by this API or by the current app has them), each item only contains the fields of the columns visible in the list table of the app: a column hidden in the app disappears from the API response, labels is not returned and company carries no companyId. Use the exact lookup to get the full object.

Deep pages are expensive (the service sorts page x pageSize rows to serve one page): page through large lists with pageSize=100 and avoid restarting from page 1, or use the export.

get/lists/list/{listId}/rows

Request

  • Base URL: https://api.emelia.io
  • URL: https://api.emelia.io/lists/list/{listId}/rows
  • Auth: API key in header Authorization

Path parameters

listIdstring required

List id.

Query parameters

emailstring email

Exact lookup by email (case-insensitive). Mutually exclusive with linkedinUrl.

linkedinUrlstring

Exact lookup by LinkedIn profile URL (compared verbatim with the stored linkedinUrlProfile). Mutually exclusive with email.

pageinteger

Page number. Invalid or negative values fall back to 1.

pageSizeinteger

Page size, clamped between 1 and 100.

searchstring

Free-text search, 200 characters max. A full email address is matched exactly (case-insensitive). Otherwise every word must appear (case-insensitive substring) in one of firstName, lastName, fullName, email or linkedinUrlProfile; company-only rows are matched on the company name.

sortBy'firstName' | 'lastName' | 'fullName' | 'jobTitle' | 'email' | 'phone' | 'linkedinUrlProfile' | 'country' | 'city' | 'createdAt' | 'updatedAt'

Sort field. Text fields sort case- and accent-insensitively. Any other value is ignored (creation order).

sortDir'asc' | 'desc'

Sort direction, used with sortBy.

statusesstring

Comma-separated engagement statuses (as stored on the contacts, for example SENT, OPENED, MAIL_REPLIED, ACCEPTED). The token NO_ACTIVITY matches contacts without status. Up to 30 values. Company-only rows are excluded when this filter is set.

filtersstring

URL-encoded JSON array of column rules (up to 10), all combined with AND. See ListsFilterRule.

Response

Contacts of the list.

totalinteger required

Total matching rows (paginated mode) or number of matches (exact lookup).

pageinteger required
pageSizeinteger required

Changes

No recorded changes to this operation across all 1 revision of this API.