swagger: '2.0'
info:
title: Emarsys Core API - Contact lists endpoint batch
description: In this batch you may find endpoints related to contact lists.
version: v2
host: api.emarsys.net
basePath: /api
schemes:
- https
paths:
/v2/contactlist:
post:
summary: Create a Contact List
description: |
Creates or updates a contact list with the provided parameters.
operationId: createContactList
produces:
- application/json
consumes:
- application/json
parameters:
- in: body
name: body
schema:
type: object
properties:
key_id:
description: 'Identifies the contact by their `id`, `uid`, or the name/integer id of a custom field, such as `email`.'
default: 3
oneOf:
- type: string
- type: integer
name:
type: string
description: The unique name of the contact list.
description:
type: string
description: Additional information about the contact list.
external_ids:
description: |-
List of contact identifiers to be inserted.
**Format:**
| Value | Type | Example |
| --- | --- | --- |
| Simple | string or integer | [
"thor@example.com",
"odin@example.com",
"loki@example.com"
] |
| Multichoice | array | [
[1,2,3],
[2,3],
[1,4]
] |
oneOf:
- type: integer
- type: string
- type: array
required:
- key_id
- name
- external_ids
x-examples:
- key_id: '3'
name: asgard_protectors
description: those who fight for Asgard
external_ids:
- thor@example.com
- odin@example.com
- loki@example.com
schemes:
- https
responses:
'200':
description: ''
schema:
type: object
description: 'See the example or [Response Codes](docs/response-codes/error-codes.md) for details.'
additionalProperties: false
properties:
replyCode:
type: integer
description: 'The Emarsys [response code](docs/response-codes/error-codes.md).'
format: int32
replyText:
type: string
description: 'The summary of the [response](docs/response-codes/error-codes.md).'
data:
type: object
description: The requested data.
properties:
id:
type: integer
description: The contact list identifier.
errors:
type: object
description: |-
Details any contacts not added to the list, expressed as an array that contains the error code and reason.
**Note:** The `errors` property is not included if the contact list is empty. If the contact list contains contacts, but no error occurred, the `errors` property is an empty array.
examples:
example-1:
replyCode: -2147483648
replyText: string
data:
id: 0
errors: {}
'400':
description: ''
schema:
$ref: '#/definitions/default-response'
security:
- X-WSSE: []
get:
summary: List Contact Lists
description: Returns a list of the available contact lists.
operationId: listContactLists
produces:
- application/json
schemes:
- https
responses:
'200':
description: ''
schema:
type: object
description: 'See the example or [Response Codes](docs/response-codes/error-codes.md) for details.'
additionalProperties: false
properties:
replyCode:
type: integer
description: 'The Emarsys [response code](docs/response-codes/error-codes.md).'
format: int32
replyText:
type: string
description: 'The summary of the [response](docs/response-codes/error-codes.md).'
data:
type: array
items:
type: object
properties:
id:
type: string
description: Contact list identifier
name:
type: string
description: Contact list name
created:
type: string
description: The date of creation.
type:
type: integer
description: 'Note: This is a standard response, reserved for future use.'
default: 0
'400':
description: ''
schema:
$ref: '#/definitions/default-response'
security:
- X-WSSE: []
'/v2/contactlist/{listId}/rename':
post:
summary: Rename a Contact List
description: Renames an existing contact list.
operationId: renameContactList
produces:
- application/json
consumes:
- application/json
parameters:
- name: listId
in: path
description: The contact list identifier.
required: true
type: integer
- in: body
name: body
schema:
type: object
properties:
name:
type: string
description: The new unique name of the contact list.
required:
- name
x-examples:
- name: blade
schemes:
- https
responses:
'200':
description: ''
schema:
type: object
description: 'See the example or [Response Codes](docs/response-codes/error-codes.md) for details.'
additionalProperties: false
properties:
replyCode:
type: integer
description: 'The Emarsys [response code](docs/response-codes/error-codes.md).'
format: int32
replyText:
type: string
description: 'The summary of the [response](docs/response-codes/error-codes.md).'
data:
type: object
description: The requested data.
properties:
id:
type: integer
description: The contact list identifier.
name:
type: string
description: The new name of the contact list.
'400':
description: ''
schema:
$ref: '#/definitions/default-response'
'404':
description: ''
schema:
$ref: '#/definitions/default-response'
security:
- X-WSSE: []
'/v2/contactlist/{listId}/replace':
post:
summary: Replace a Contact List
description: Overwrites an existing contact list.
operationId: replaceContactList
produces:
- application/json
consumes:
- application/json
parameters:
- name: listId
in: path
description: The contact list identifier.
required: true
type: integer
- in: body
name: body
schema:
type: object
properties:
key_id:
description: 'Identifies the contact by their `id`, `uid`, or the name/integer id of a custom field, such as `email`.'
default: 3
oneOf:
- type: string
- type: integer
external_ids:
description: |-
List of contact identifiers to be included.
**Format:**
| Value | Type | Example |
| --- | --- | --- |
| Simple | string or integer | [
"thor@example.com",
"odin@example.com",
"loki@example.com"
] |
| Multichoice | array | [
[1,2,3],
[2,3],
[1,4]
] |
oneOf:
- type: integer
- type: string
- type: array
required:
- key_id
- external_ids
x-examples:
- key_id: '3'
external_ids:
- natasha.romanoff@example.com
- loki@example.com
schemes:
- https
responses:
'200':
description: ''
schema:
type: object
description: 'See the example or [Response Codes](docs/response-codes/error-codes.md) for details.'
additionalProperties: false
properties:
replyCode:
type: integer
description: 'The Emarsys [response code](docs/response-codes/error-codes.md).'
replyText:
type: string
description: 'The summary of the [response](docs/response-codes/error-codes.md).'
data:
type: object
description: The requested data.
properties:
inserted_contacts:
type: integer
description: The number of contacts successfully added to the list.
errors:
type: object
description: 'Details any contacts not added to the list, expressed as an array that contains the error code and reason.'
properties:
loki@example.com:
type: object
properties:
'2008':
type: string
'400':
description: ''
schema:
$ref: '#/definitions/default-response'
security:
- X-WSSE: []
'/v2/contactlist/{listId}/deletelist':
post:
summary: Delete a Contact List
description: |-
Deletes a contact list.
**Note:** Contacts in the list are not affected.
**Warning:** If a contact list is used in a combined segment, you cannot delete it (error ``400``, reply ``3008``).
operationId: deleteContactList
produces:
- application/json
parameters:
- name: listId
in: path
description: The contact list identifier.
required: true
type: integer
schemes:
- https
responses:
'200':
description: ''
schema:
$ref: '#/definitions/default-response'
'400':
description: ''
schema:
$ref: '#/definitions/default-response'
'404':
description: ''
schema:
$ref: '#/definitions/default-response'
security:
- X-WSSE: []
'/v2/contactlist/{listId}/add':
post:
summary: Add Contacts to a Contact List
description: Adds new contacts to an existing contact list.
operationId: addContactsToContactList
produces:
- application/json
consumes:
- application/json
parameters:
- name: listId
in: path
description: The contact list identifier.
required: true
type: integer
- in: body
name: body
schema:
type: object
properties:
key_id:
description: 'Identifies the contact by their `id`, `uid`, or the name/integer id of a custom field, such as `email`.'
default: 3
oneOf:
- type: string
- type: integer
external_ids:
description: |-
List of contact identifiers to be inserted.
**Format:**
| Value | Type | Example |
| --- | --- | --- |
| Simple | string or integer | [
"thor@example.com",
"odin@example.com",
"loki@example.com"
] |
| Multichoice | array | [
[1,2,3],
[2,3],
[1,4]
] |
oneOf:
- type: integer
- type: string
- type: array
required:
- key_id
- external_ids
x-examples:
- key_id: '3'
external_ids:
- thor@example.com
- odin@example.com
- loki@example.com
schemes:
- https
responses:
'200':
description: ''
schema:
type: object
description: 'See the example or [Response Codes](docs/response-codes/error-codes.md) for details.'
additionalProperties: false
properties:
replyCode:
type: integer
description: 'The Emarsys [response code](docs/response-codes/error-codes.md).'
format: int32
replyText:
type: string
description: 'The summary of the [response](docs/response-codes/error-codes.md).'
data:
type: object
description: The requested data.
properties:
inserted_contacts:
type: integer
description: The number of contacts successfully added to the list.
errors:
type: object
description: 'Details any contacts not added to the list, expressed as an array that contains the error code and reason.'
'400':
description: ''
schema:
$ref: '#/definitions/default-response'
security:
- X-WSSE: []
'/v2/contactlist/{listId}/count':
get:
summary: Count Contacts in a Contact List
description: Returns the number of contacts in a contact list.
operationId: countContactsInContactLict
produces:
- application/json
parameters:
- name: listId
in: path
description: The contact list identifier.
required: true
type: integer
schemes:
- https
responses:
'200':
description: ''
schema:
type: object
description: 'See the example or [Response Codes](docs/response-codes/error-codes.md) for details.'
additionalProperties: false
properties:
replyCode:
type: integer
description: 'The Emarsys [response code](docs/response-codes/error-codes.md).'
replyText:
type: string
description: 'The summary of the [response](docs/response-codes/error-codes.md).'
data:
type: integer
description: The number of contacts in the contact list.
'404':
description: ''
schema:
$ref: '#/definitions/default-response'
security:
- X-WSSE: []
'/v2/contactlist/{listId}/contacts':
get:
summary: List Contacts in a Contact List
description: |-
> #### Important!
>
> Please note that this endpoint is now deprecated. It will be decommisioned in December 2024.
>
> We recommend using the [Fetch contacts in a contact list](https://dev.emarsys.com/docs/core-api-reference/20nck8oujcus8-fetch-contacts-in-a-contact-list) endpoint instead.
Returns a list of contacts and their identifiers (`id`) in a contact list.
**Example**
https://api.emarsys.net/api/v2/contactlist/123456789/contacts/?limit=100000&offset=0
operationId: listContactsInContactList
produces:
- application/json
parameters:
- name: listId
in: path
description: The contact list identifier.
required: true
type: integer
- $ref: '#/parameters/trait:offset:offset'
- $ref: '#/parameters/trait:limit1M:limit'
schemes:
- https
responses:
'200':
description: ''
schema:
type: object
description: 'See the example or [Response Codes](docs/response-codes/error-codes.md) for details.'
additionalProperties: false
properties:
replyCode:
type: integer
description: 'The Emarsys [response code](docs/response-codes/error-codes.md).'
replyText:
type: string
description: 'The summary of the [response](docs/response-codes/error-codes.md).'
data:
type: array
description: The list of contact identifiers (`id`) in the contact list.
items:
type: string
'400':
description: ''
schema:
$ref: '#/definitions/default-response'
deprecated: true
security:
- X-WSSE: []
'/v2/contactlist/{contactlistId}/contactIds':
get:
summary: Fetch Contacts in a Contact List
description: |-
Returns a list of contact identifiers (`contactIds`) from the contact list.
**Example**
https://api.emarsys.net/api/v2/contactlist/123456789/contactIds?$skiptoken=330&$top=10000
operationId: fetchContactsInContactList
produces:
- application/json
parameters:
- name: listId
in: path
description: The contact list identifier.
required: true
type: integer
- name: $top
in: query
description: Number of contact ids to be batched together in the response.
required: false
type: integer
default: 10000
maximum: 100000
minimum: 1
- name: $skiptoken
in: query
description: A token which specifies the position of the page to be fetched.
required: false
type: integer
default: 0
schemes:
- https
responses:
'200':
description: ''
schema:
type: object
description: 'See the example or [Response Codes](docs/response-codes/error-codes.md) for details.'
additionalProperties: false
properties:
value:
type: array
description: List of contact ids.
x-examples:
- - 1
- 2
- 3
next:
type: string
description: 'Path that can be used to obtain the next result chunk. In case `next` is null in the response, then this was the last chunk, no further chunks can be obtained.'
x-examples:
- /contactlist/330/contactIds?$skiptoken=750&$top=1000
'404':
description: ''
schema:
$ref: '#/definitions/default-response'
security:
- X-WSSE: []
'/v2/contactlist/{listId}/contacts/data':
get:
summary: Get Contact Data in a Contact List
description: |-
> #### Important!
>
> Please note that this endpoint is now deprecated. It will be decommisioned in December 2024.
>
> As a replacement, we recommend using the [Fetch contacts in a contact list](https://dev.emarsys.com/docs/core-api-reference/20nck8oujcus8-fetch-contacts-in-a-contact-list) endpoint first and then the [Get contact data](https://dev.emarsys.com/docs/core-api-reference/blzojxt3ga5be-get-contact-data) endpoint.
Returns the data of the specified contacts in a contact list.
operationId: getContactDataInContactList
produces:
- application/json
parameters:
- name: listId
in: path
description: The contact list identifier.
required: true
type: integer
- name: fields
in: query
description: |-
Specifies the fields by identifier or name to include in the returned result.
Multiple fields must be separated by a comma. For example `1,2,3` or `email,first_name`.
required: true
type: string
- name: limit
in: query
description: Specifies the maximum number of records to return.
type: integer
default: 1000
maximum: 1000000
minimum: 1
- $ref: '#/parameters/trait:offset:offset'
schemes:
- https
responses:
'200':
description: ''
schema:
type: object
description: 'See the example or [Response Codes](docs/response-codes/error-codes.md) for details.'
additionalProperties: false
properties:
replyCode:
type: integer
description: 'The Emarsys [response code](docs/response-codes/error-codes.md).'
replyText:
type: string
description: 'The summary of the [response](docs/response-codes/error-codes.md).'
data:
type: object
description: The requested data.
patternProperties:
'^[0-9]+':
type: object
description: The contact identifier (`id`).
properties:
fields:
type: object
properties:
id:
type: string
description: The contact identifier (`id`).
uid:
type: string
description: The contact identifier (`uid`).
patternProperties:
'^[0-8]':
description: The requested field and its value.
oneOf:
- type: string
- type: integer
- type: array
'400':
description: ''
schema:
$ref: '#/definitions/default-response'
'404':
description: ''
schema:
$ref: '#/definitions/default-response'
deprecated: true
security:
- X-WSSE: []
'/v2/contactlist/{listId}/delete':
post:
summary: Remove Contacts from a Contact List
description: |-
Removes contacts from an existing contact list.
**Note:** At most 10,000 contacts can be deleted by each request.
operationId: removeContactsFromContactList
produces:
- application/json
consumes:
- application/json
parameters:
- name: listId
in: path
description: The contact list identifier.
required: true
type: integer
- in: body
name: body
schema:
type: object
properties:
key_id:
description: 'Identifies the contact by their `id`, `uid`, or the name/integer id of a custom field, such as `email`.'
default: 3
oneOf:
- type: string
- type: integer
external_ids:
description: |-
List of contact identifiers to be inserted.
**Format:**
| Value | Type | Example |
| --- | --- | --- |
| Simple | string or integer | [
"thor@example.com",
"odin@example.com",
"loki@example.com"
] |
| Multichoice | array | [
[1,2,3],
[2,3],
[1,4]
] |
oneOf:
- type: integer
- type: string
- type: array
required:
- key_id
- external_ids
schemes:
- https
responses:
'200':
description: ''
schema:
type: object
description: 'See the example or [Response Codes](docs/response-codes/error-codes.md) for details.'
additionalProperties: false
properties:
replyCode:
type: integer
description: 'The Emarsys [response code](docs/response-codes/error-codes.md).'
replyText:
type: string
description: 'The summary of the [response](docs/response-codes/error-codes.md).'
data:
type: object
description: The requested data.
properties:
deleted_contacts:
type: integer
description: The number of contacts successfully removed from the list.
errors:
type: object
description: 'Details any contacts not removed from the list, expressed as an array that contains the error code and reason.'
'400':
description: ''
schema:
$ref: '#/definitions/default-response'
security:
- X-WSSE: []
definitions:
default-response:
type: object
title: Default Response
description: |-
See the following documents for details on the error codes:
- [HTTP 200 errors](docs/response-codes/http-200-responses.md)
- [HTTP 400 errors](docs/response-codes/http-400-errors.md)
- [HTTP 401-429 errors](docs/response-codes/http-401-429-errors.md)
- [HTTP 500 errors](docs/response-codes/http-500-errors.md)
properties:
replyCode:
type: integer
description: 'The Emarsys response code. Successful requests return *0*; otherwise, see [errors](docs/response-codes/http-400-errors.md).'
default: 0
replyText:
type: string
description: Additional information on the status of the request.
data:
description: 'Contains the requested data, if applicable.'
oneOf:
- type: string
- type: integer
- x-nullable: true
- type: object
properties:
'':
type: object
x-examples:
- replyCode: 0
replyText: OK
data: {}
parameters:
'trait:filter:filter':
name: filter
in: query
type: string
'trait:limit10K:limit':
name: limit
in: query
description: Specifies the maximum number of records to return.
type: integer
default: 10000
maximum: 10000
minimum: 1
'trait:offset:offset':
name: offset
in: query
description: Specifies an offset for pagination. The offset of the first record is *0*.
type: integer
default: 0
'trait:limit1M:limit':
name: limit
in: query
description: Specifies the maximum number of records to return.
type: integer
default: 1000000
maximum: 1000000
minimum: 1
'trait:interval:start_date':
name: start_date
in: query
description: |-
Returns results from the specified date.
**Accepted formats:** YYYY-MM-DD HH:MM:SS, YYYY-MM-DD HH:MM, YYYY-MM-DD
type: string
'trait:interval:end_date':
name: end_date
in: query
description: |-
Returns results until the specified date.
**Accepted formats:** YYYY-MM-DD HH:MM:SS, YYYY-MM-DD HH:MM, YYYY-MM-DD
type: string
'trait:excludeEmptyResults:excludeempty':
name: excludeempty
in: query
description: |-
If `true`, contacts with a null or empty value in the specified field are not returned.
**Note:** Any value except for `true` is interpreted as false.
type: boolean
'trait:limit10M:limit':
name: limit
in: query
description: Specifies the maximum number of records to return.
type: integer
default: 10000000
maximum: 10000000
minimum: 1
'trait:limit1MRequired:limit':
name: limit
in: query
description: Specifies the maximum number of records to return.
required: true
type: integer
default: 1000000
maximum: 1000000
minimum: 1
'trait:limit1K:limit':
name: limit
in: query
description: Specifies the maximum number of records to return.
type: integer
default: 1000
maximum: 1000
minimum: 1
securityDefinitions:
X-WSSE:
type: apiKey
name: X-WSSE
in: header
security:
- X-WSSE: []