openapi: 3.2.0
info:
title: Cvent REST APIs — Event Cloud Contacts API
description: "Event Cloud scope of the Cvent REST APIs. This document is a TAG-SCOPED SUBSET of the OpenAPI specification Cvent publishes at https://github.com/cvent/rest-sdks/blob/main/cvent-public-spec/openapi.yaml (the source of truth for Cvent's official TypeScript/.NET/Java SDKs). Venue-sourcing, RFP, housing-supplier and travel-supplier tags were removed because they belong to Cvent Hospitality Cloud; every path, operation, parameter, schema and security requirement below is verbatim from Cvent's published spec.\n\n# Introduction\nThe Cvent API Platform is built around REST. We aim to provide intuitive endpoints that can be easily\ndiscovered to help leverage the Cvent platform for your event needs. The RESTful APIs outlined here\nuse JSON-encoded request and response format, along with HTTP codes, to convey processing status of\nrequests received. The Cvent resources are protected using OAuth2.\n\n# Getting Started\n\nIf you're new to the Cvent API Platform, start by reading our\n[Developer Quickstart](https://developers.cvent.com/docs/rest-api/tutorials/developer-quickstart) guide. This will\ngive you an overview of how to authenticate and make requests using our APIs.\n\n## Authentication\n\nThe Cvent REST API uses [OAuth2](https://oauth.net/2/) to authorize requests to the platform. The client\ncredentials authorization flow is supported.\n\n<a name=\"oauth2-auth-code-planner-admin\"></a>\n\nAuthorization code flow is only supported for planner users with the administrator role in Cvent. Developer users\ncannot use authorization code flow.\n\n<!-- ReDoc-Inject: <security-definitions> -->\n\nHere's an example of using client credential flow to authorize. You'll supply your application's id and secret to\nmake a [Token](#operation/oauth2Token) request.\n\n```bash\ncurl --location --request POST '{hostName}/{version}/oauth2/token' \\\n--header 'Content-Type: application/x-www-form-urlencoded' \\\n--header 'Authorization: Basic {api_credentials}' \\\n--data-urlencode 'grant_type=client_credentials' \\\n--data-urlencode 'client_id={client_id}'\n```\n\n| Key | Description | Value |\n| :---------------- | :--------------------------------------------------- | :----------------------------------------------------------------------------------------------------------- |\n| {hostName} | https://api-platform.cvent.com | Location if your account is in the North American datacenter. |\n| | https://api-platform-eur.cvent.com | Location if your account is in the European data center. |\n| {version} | ea | The version of the API you're using. Only `ea` is currently supported. |\n| {api_credentials} | {client_id}:{client_secret} in base64 encoded format | Supply your client id & client credentials in a base 64 encoded format. |\n| {client_id} | Retrieved from your application | Your application's client id. |\n| {client_secret} | Retrieved from your application | Your application's client secret. |\n\nOn a successful call, you'll receive the following response:\n\n```json\n{\n \"access_token\": \"{accessToken}\",\n \"expires_in\": 3600,\n \"token_type\": \"Bearer\"\n}\n```\n\nThis bearer token is valid for 3600 seconds (60 minutes) and must be used in subsequent calls.\n\n## Endpoints\n\nEndpoints start with `hostName` and `version`.\n\nThe `hostname` will depend on the region that your Cvent account is hosted in. Please see the table\nbelow to identify which hostname you should be using.\n\n| Region |\tHostname |\n|:--------------|:-----------------------------------|\n| North America\t| https://api-platform.cvent.com |\n| Europe | https://api-platform-eur.cvent.com |\n\nThe current `version` of the Cvent API is `ea`.\n\n## Rate Limits\n\nCvent APIs enforce rate limits to ensure platform stability. Your limits depend on your tier: Free,\nStandard, or Premium.\n\n<br />\n\n### Usage Tiers\n\n| Tier | Daily Calls | Calls per Second | Max Burst |\n| -------- | ----------- | ---------------- | --------- |\n| Free | 1,000 | 2 | 1 |\n| Standard | 15,000 | 10 | 10 |\n| Premium | 500,000 | 25 | 25 |\n\n- **Daily calls** define how many requests you can make in a 24-hour period. Quota\n resets at 12 midnight (+0 GMT).\n- **Calls per second** define how many requests you can make in a 1-second window.\n- **Max Burst** defines how many requests you can make at once.\n\nIf you are unsure what usage tier applies to your account, you can check via\n[Get Current Usage Tier](#operation/getUsageTier).\n\nPlease note that these limits may change as the Cvent API Platform evolves.\n\n<br />\n\n### Handling Rate Limits\n\nSometimes, you may exceed your rate limits. When this happens, the API will return a `429 Too Many Requests`. See\n[handling rate limits](https://developers.cvent.com/docs/rest-api/guides/handling-rate-limits) for best practices on how to handle this.\n\n## Pagination\n\nSome APIs use pagination to manage records. Each page of records has a token associated to identify it.\n\nIf an API uses pagination, you’ll find up to three tokens in the response:\n- **currentToken**: Describes the token of the current page.\n- **nextToken**: Provides a token for the next page of records, if one exists.\n- **previousToken**: Provides a token for the previous page of records, if one exists. Not all APIs will return\n this token.\n\nYou specify which page of records to view via the `token` parameter in your API call. To navigate through pages,\ntake the `nextToken` or `previousToken` value and pass it to your next call’s `token` parameter to get the\nrespective page of records. For example, if you made this request:\n\n```bash\ncurl -X GET {hostname}/{version}/contacts?limit=100 \\\n-H 'Accept: application/json' \\\n-H 'Authorization: Bearer {accessToken}'\n```\n\nThe response contains a paging array where you'll find the token information.\n\n```json\n{\n \"paging\": {\n \"currentToken\": \"90c5f062-76ad-4ea4-aa53-00eb698d9262\",\n \"nextToken\": \"3b2359a7-4583-40ed-8afd-67e5f15373d3\",\n \"limit\": 100,\n \"totalCount\": 102,\n \"_links\": {...}\n },\n \"data\": [...]\n}\n```\n\nTake the `nextToken` and use it in the `token` parameter on your subsequent call.\n\n```bash\ncurl -X GET {hostname}/{version}/contacts?limit=100&token=3b2359a7-4583-40ed-8afd-67e5f15373d3 \\\n-H 'Accept: application/json' \\\n-H 'Authorization: Bearer {accessToken}'\n```\n\nWhen the response doesn’t contain a `nextToken` field, you’ve reached the last page. Occasionally, you might\nencounter an empty page at the end of results. This typically happens when the results were evenly divisible.\nEnsure your client code handles the possibility of receiving an empty data array when using the `nextToken`.\n\n## Filtering\n\nUse filters to narrow down results. The filter follows the pattern\n`filter='field' comparisonType 'value'`. The value can be enclosed with single\nquotes (') or double quotes (\").\n\n```bash\nGET {hostName}/{version}/contacts?filter=lastName eq 'Smith'\n````\n\nTo correctly pass a single quote in the filter's value, use double quotes around\nthe string.\n\n```bash\nGET {hostName}/{version}/contacts?filter=lastName eq \"O'Keenan\"\n```\n\nTo correctly pass a double quote in the filter's value, use double quotes around\nthe string and add an escape character `\\` to each quote that is part of the\nstring.\n\n```bash\nGET {hostName}/{version}/events?filter=eventName eq \"\\\"Yearly\\\" Conference\"\n```\n\n## Versioning\n\nChange is inevitable in API development. Planning for it is crucial. We track\nboth backward-compatible and backward-incompatible changes.\n\n<br />\n\n### Backward Compatible Changes\n\nBackward compatible changes will be made often and are intended to avoid\nany adverse impact on our customers. It is highly advisable that when reading\nJSON payloads from Cvent, you are able to handle \"unknown\" attributes that\ncan be added over time. We consider the following changes backward-compatible:\n\n- Adding new resources\n- Adding new optional request parameters to existing operations\n- Adding new attributes to requests or responses\n- Changing the length or format (not type) of resource identifiers. For example, an ID can change from\n \"1234/1234\" to \"1234::1234\".\n- Increasing the length of string fields\n\n<br />\n\n### Backward Incompatible Changes\n\nBackward-incompatible changes are made infrequently, however, they can be\ndisruptive to consumers. Due to this, our APIs are versioned to avoid\ndisruptions to customers. We leverage a URI-based versioning scheme,\nwhich means that a version value is included in the Cvent API URL.\nWhen breaking changes occur, a new version of the API is made available\nwhile the existing version is deprecated but remains available for a\nlimited period of time. We consider the following backward-incompatible changes:\n\n- Adding a new required parameter (query string param or payload attribute)\n- Deleting API resources\n- Deleting any attribute from API responses\n- Changing the data type on any parameter or attribute\n\n## Standards\nAs you begin working with our APIs, it's essential to be aware of standards around\ncountry codes, time formats, and other important details that ensure smooth integration.\nLearn more about our [API Standards](https://developers.cvent.com/docs/rest-api/reference/api-standards)\n"
contact:
name: Cvent Development Platform
url: https://developers.cvent.com/
version: ea
servers:
- url: https://api-platform.cvent.com/ea
- url: https://api-platform-eur.cvent.com/ea
tags:
- name: Contacts
description: A contact is a record in your account’s address book that represents an individual. The data stored within these records includes personal information, group memberships, and historical data on event attendance. Contact APIs will allow you to get contact information, track updates to contact information, and create contacts.
paths:
/contact-groups:
post:
security:
- OAuth2.clientCredentials:
- event/contact-groups:write
- OAuth2.authorizationCode:
- event/contact-groups:write
summary: Create Contact Group
description: Create a contact group
operationId: createContactGroup
tags:
- Contacts
requestBody:
description: Contact Group to be created
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/contact-group'
responses:
'201':
description: Successfully created a contact group.
headers: {}
content:
application/json:
schema:
$ref: '#/components/schemas/contact-group'
'400':
$ref: '#/components/responses/BadRequest1'
'401':
$ref: '#/components/responses/Unauthorized1'
'403':
$ref: '#/components/responses/Forbidden1'
'429':
$ref: '#/components/responses/TooManyRequests1'
deprecated: false
externalDocs:
description: More about OAuth2 authorization code support for administrators
url: '#oauth2-auth-code-planner-admin'
get:
security:
- OAuth2.clientCredentials:
- event/contact-groups:read
- OAuth2.authorizationCode:
- event/contact-groups:read
summary: List Contact Groups
description: Gets a paginated list of contact groups
operationId: listContactGroups
tags:
- Contacts
parameters:
- $ref: '#/components/parameters/after'
- $ref: '#/components/parameters/before'
- $ref: '#/components/parameters/limit'
- $ref: '#/components/parameters/token'
- name: filter
in: query
required: false
description: 'Use filter query parameters to limit results
to data that matches your criteria. See
[Filters](https://developers.cvent.com/docs/rest-api/reference/filters) for details.
Supported fields and operators are listed below:
| Field | Operators | Notes |
|------------------|-------------------------------------|-------|
| name | `eq`, `ne`, `sw`, `contains` | |
| type | `eq` | Not supported with before or after parameters |
The following logical operators are supported for combining filters:
* and
'
schema:
type: string
example: name eq 'groupName' and type eq 'STANDARD'
responses:
'200':
description: Successfully retrieved a paginated list of Contact Groups.
headers: {}
content:
application/json:
schema:
$ref: '#/components/schemas/contact-group-paginated-response'
'400':
$ref: '#/components/responses/BadRequest1'
'401':
$ref: '#/components/responses/Unauthorized1'
'403':
$ref: '#/components/responses/Forbidden1'
'429':
$ref: '#/components/responses/TooManyRequests1'
deprecated: false
externalDocs:
description: More about OAuth2 authorization code support for administrators
url: '#oauth2-auth-code-planner-admin'
/contact-groups/{id}:
parameters:
- $ref: '#/components/parameters/contactGroupId'
get:
security:
- OAuth2.clientCredentials:
- event/contact-groups:read
- OAuth2.authorizationCode:
- event/contact-groups:read
summary: Get Contact Group
description: Get a single contact group
operationId: getContactGroupById
tags:
- Contacts
responses:
'200':
description: Successfully retrieved a Contact Group object.
headers: {}
content:
application/json:
schema:
$ref: '#/components/schemas/contact-group'
'401':
$ref: '#/components/responses/Unauthorized1'
'403':
$ref: '#/components/responses/Forbidden1'
'404':
$ref: '#/components/responses/NotFound1'
'429':
$ref: '#/components/responses/TooManyRequests1'
deprecated: false
externalDocs:
description: More about OAuth2 authorization code support for administrators
url: '#oauth2-auth-code-planner-admin'
put:
security:
- OAuth2.clientCredentials:
- event/contact-groups:write
- OAuth2.authorizationCode:
- event/contact-groups:write
summary: Update Contact Group
description: Update a contact group
operationId: updateContactGroup
tags:
- Contacts
requestBody:
description: Contact Group to be updated
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/contact-group'
responses:
'200':
description: Successfully updated a contact group.
headers: {}
content:
application/json:
schema:
$ref: '#/components/schemas/contact-group'
'400':
$ref: '#/components/responses/BadRequest1'
'401':
$ref: '#/components/responses/Unauthorized1'
'403':
$ref: '#/components/responses/Forbidden1'
'404':
$ref: '#/components/responses/NotFound1'
'429':
$ref: '#/components/responses/TooManyRequests1'
deprecated: false
externalDocs:
description: More about OAuth2 authorization code support for administrators
url: '#oauth2-auth-code-planner-admin'
delete:
security:
- OAuth2.clientCredentials:
- event/contact-groups:write
- OAuth2.authorizationCode:
- event/contact-groups:write
summary: Delete Contact Group
description: Delete a contact group
operationId: deleteContactGroup
tags:
- Contacts
responses:
'204':
description: Successfully deleted a contact group.
headers: {}
'401':
$ref: '#/components/responses/Unauthorized1'
'403':
$ref: '#/components/responses/Forbidden1'
'404':
$ref: '#/components/responses/NotFound1'
'429':
$ref: '#/components/responses/TooManyRequests1'
deprecated: false
externalDocs:
description: More about OAuth2 authorization code support for administrators
url: '#oauth2-auth-code-planner-admin'
/contact-groups/{id}/contacts:
parameters:
- $ref: '#/components/parameters/contactGroupId'
get:
summary: Get Ids in Contact Group
description: Get all contact ids in a single contact group
operationId: getContactIdsByContactGroup
security:
- OAuth2.clientCredentials:
- event/contact-groups:read
- OAuth2.authorizationCode:
- event/contact-groups:read
tags:
- Contacts
parameters:
- $ref: '#/components/parameters/limit'
- $ref: '#/components/parameters/token'
responses:
'200':
description: Successfully retrieved Contact ids.
headers: {}
content:
application/json:
schema:
$ref: '#/components/schemas/contact-id-paginated-response'
'400':
$ref: '#/components/responses/BadRequest1'
'401':
$ref: '#/components/responses/Unauthorized1'
'403':
$ref: '#/components/responses/Forbidden1'
'404':
$ref: '#/components/responses/NotFound1'
'429':
$ref: '#/components/responses/TooManyRequests1'
deprecated: false
externalDocs:
description: More about OAuth2 authorization code support for administrators
url: '#oauth2-auth-code-planner-admin'
/contact-groups/{id}/contacts/{contactId}:
parameters:
- $ref: '#/components/parameters/contactGroupId'
- $ref: '#/components/parameters/contactId'
put:
summary: Add Contact To Group
description: Adds a single Contact to a single Contact Group
operationId: addContactToContactGroup
security:
- OAuth2.clientCredentials:
- event/contact-groups:write
- OAuth2.authorizationCode:
- event/contact-groups:write
tags:
- Contacts
responses:
'204':
description: Successfully added Contact to Contact Group
headers: {}
'401':
$ref: '#/components/responses/Unauthorized1'
'403':
$ref: '#/components/responses/Forbidden1'
'404':
$ref: '#/components/responses/NotFound1'
'429':
$ref: '#/components/responses/TooManyRequests1'
deprecated: false
externalDocs:
description: More about OAuth2 authorization code support for administrators
url: '#oauth2-auth-code-planner-admin'
delete:
summary: Remove Contact From Group
description: Removes a single Contact from a single Contact Group
operationId: removeContactFromContactGroup
security:
- OAuth2.clientCredentials:
- event/contact-groups:write
- OAuth2.authorizationCode:
- event/contact-groups:write
tags:
- Contacts
responses:
'204':
description: Successfully removed a Contact from a Contact Group
headers: {}
'401':
$ref: '#/components/responses/Unauthorized1'
'403':
$ref: '#/components/responses/Forbidden1'
'404':
$ref: '#/components/responses/NotFound1'
'429':
$ref: '#/components/responses/TooManyRequests1'
deprecated: false
externalDocs:
description: More about OAuth2 authorization code support for administrators
url: '#oauth2-auth-code-planner-admin'
/contact-types:
get:
security:
- OAuth2.clientCredentials:
- event/contact-types:read
- OAuth2.authorizationCode:
- event/contact-types:read
summary: List Contact Types
description: Gets a paginated list of contact types.
operationId: listContactTypes
tags:
- Contacts
parameters:
- $ref: '#/components/parameters/limit'
- $ref: '#/components/parameters/token'
- name: filter
in: query
required: false
description: 'Use filter query parameters to limit results
to data that matches your criteria. See
[Filters](https://developers.cvent.com/docs/rest-api/reference/filters) for details.
Supported fields and operators are listed below:
| Field | Operators |
|------------------|-------------------------------------|
| name | `eq`, `ne`, `sw`, `contains` |
No logical operators are supported on this endpoint, only one filter
can be passed in each request.
'
schema:
type: string
example: name eq 'groupType'
responses:
'200':
description: Successfully retrieved a paginated list of contact types.
headers: {}
content:
application/json:
schema:
$ref: '#/components/schemas/contact-type-paginated-response'
'400':
$ref: '#/components/responses/BadRequest1'
'401':
$ref: '#/components/responses/Unauthorized1'
'403':
$ref: '#/components/responses/Forbidden1'
'429':
$ref: '#/components/responses/TooManyRequests1'
deprecated: false
externalDocs:
description: More about OAuth2 authorization code support for administrators
url: '#oauth2-auth-code-planner-admin'
/contacts:
get:
security:
- OAuth2.clientCredentials:
- event/contacts:read
- OAuth2.authorizationCode:
- event/contacts:read
summary: List Contacts
description: 'Gets a paginated list of Contacts.
For information on reading secure contact fields, see the description of
<a href="#operation/getContactById">GET Contact</a>.
'
operationId: listContacts
parameters:
- $ref: '#/components/parameters/after'
- $ref: '#/components/parameters/before'
- $ref: '#/components/parameters/limit'
- $ref: '#/components/parameters/token'
- name: filter
in: query
required: false
description: 'Use filter query parameters to limit results
to data that matches your criteria. See
[Filters](https://developers.cvent.com/docs/rest-api/reference/filters) for details.
Supported fields and operators are listed below:
| Field | Operators | Notes |
|------------------|-------------------------------------|-------|
| id | `eq`, `ne` | |
| sourceId | `eq`, `ne` | |
| firstName | `eq`, `ne`, `contains`, `sw` | |
| lastName | `eq`, `ne`, `contains`, `sw` | |
| email | `eq`, `ne`, `contains`, `sw` | |
| ccEmail | `eq`, `ne` | |
| company | `eq`, `ne` | |
| type.id | `eq`, `ne` | |
| nickname | `eq`, `ne` | |
| title | `eq`, `ne` | |
| workPhone | `eq`, `ne` | |
| middleName | `eq`, `ne` | |
| mobilePhone | `eq`, `ne` | |
| homeFax | `eq`, `ne` | |
| designation | `eq`, `ne` | |
| homePhone | `eq`, `ne` | |
| pager | `eq`, `ne` | |
| workFax | `eq`, `ne` | |
| lastModifiedBy | `eq`, `ne` | |
| lastModified | `eq`, `ne`, `lt`, `le`, `gt`, `ge` | |
| created | `eq`, `ne`, `lt`, `le`, `gt`, `ge` | |
| createdBy | `eq`, `ne` | |
| workAddress.address1 | `eq`, `ne` | |
| workAddress.address2 | `eq`, `ne` | |
| workAddress.address3 | `eq`, `ne` | |
| workAddress.city | `eq`, `ne` | |
| workAddress.country | `eq`, `ne` | |
| homeAddress.address1 | `eq`, `ne` | |
| homeAddress.address2 | `eq`, `ne` | |
| homeAddress.address3 | `eq`, `ne` | |
| homeAddress.city | `eq`, `ne` | |
| homeAddress.country | `eq`, `ne` | |
| deleted | `eq`, `ne` | Filters for deleted contacts. To retrieve purged contacts, see the `includePurged` parameter. |
| customField.{uuid of custom field} | `eq`, `ne`, `lt`, `le`, `gt`, `ge`, `sw`, `contains` | |
| optOut.optedOut | `eq`, `ne` | |
The following logical operators are supported for combining filters:
* and
* or
'
schema:
type: string
example: firstName eq 'John' or lastName eq 'Anderson'
- $ref: '#/components/parameters/includePurged'
tags:
- Contacts
responses:
'200':
description: Successfully retrieved a Paginated list of Contacts.
headers: {}
content:
application/json:
schema:
$ref: '#/components/schemas/contact-paginated-response'
'400':
$ref: '#/components/responses/BadRequest1'
'401':
$ref: '#/components/responses/Unauthorized1'
'403':
$ref: '#/components/responses/Forbidden1'
'429':
$ref: '#/components/responses/TooManyRequests1'
deprecated: false
externalDocs:
description: More about OAuth2 authorization code support for administrators
url: '#oauth2-auth-code-planner-admin'
put:
security:
- OAuth2.clientCredentials:
- event/contacts:write
- OAuth2.authorizationCode:
- event/contacts:write
summary: Update Contacts
description: 'Updates a list of contacts based on the values provided in the request body. If you''re changing [de-duplication fields](https://support.cvent.com/s/communityarticle/Allowing-Multiple-People-to-Use-the-Same-Email-Address), the new values must be unique in your account.
For information on updating secure contact fields, see the description of <a href="#operation/updateContactById">PUT Contact</a>.
'
operationId: updateContacts
tags:
- Contacts
requestBody:
description: List of contacts to be updated. Up to **10 contacts** can be updated per call.
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/contact-bulk-update'
responses:
'207':
description: Successfully updated a list of Contacts.
headers: {}
content:
application/json:
schema:
$ref: '#/components/schemas/contact-bulk-response'
'400':
$ref: '#/components/responses/BadRequest1'
'401':
$ref: '#/components/responses/Unauthorized1'
'403':
$ref: '#/components/responses/Forbidden1'
'429':
$ref: '#/components/responses/TooManyRequests1'
externalDocs:
description: More about OAuth2 authorization code support for administrators
url: '#oauth2-auth-code-planner-admin'
patch:
security:
- OAuth2.clientCredentials:
- event/contacts:write
- OAuth2.authorizationCode:
- event/contacts:write
summary: Patch Contacts
description: 'Updates a list of contacts based on the values provided only, keeping the existing values intact for every contact.
For information on PATCH behavior, see the description of
<a href="#operation/patchContactById">PATCH Contact</a>.
For information on updating secure contact fields, see the description of
<a href="#operation/updateContactById">PUT Contact</a>.
'
operationId: patchContacts
tags:
- Contacts
requestBody:
description: List of contacts to be updated. Up to **10 contacts** can be updated per call.
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/contact-bulk-patch'
responses:
'207':
description: Successfully updated a list of contacts.
headers: {}
content:
application/json:
schema:
$ref: '#/components/schemas/contact-bulk-response'
'400':
$ref: '#/components/responses/BadRequest1'
'401':
$ref: '#/components/responses/Unauthorized1'
'403':
$ref: '#/components/responses/Forbidden1'
'429':
$ref: '#/components/responses/TooManyRequests1'
externalDocs:
description: More about OAuth2 authorization code support for administrators
url: '#oauth2-auth-code-planner-admin'
post:
security:
- OAuth2.clientCredentials:
- event/contacts:write
- OAuth2.authorizationCode:
- event/contacts:write
summary: Create Contacts
description: 'Creates a list of contacts based on the values provided in the request body. If you''re changing [de-duplication fields](https://support.cvent.com/s/communityarticle/Allowing-Multiple-People-to-Use-the-Same-Email-Address), the new values must be unique in your account.
For information on creating contacts with secure contact fields, see the description of <a href="#operation/updateContactById">PUT Contact</a>.
'
operationId: createContacts
tags:
- Contacts
parameters:
- name: upsert
in: query
required: false
description: 'This parameter determines whether the POST operation should be treated as an upsert. Upserts update existing contacts if they already exist, and otherwise create new contacts.
True indicates that this operation creates new contacts and updates existing contacts if they exist. False means that it only creates new contacts, and attempting to create an existing contact will result in the API returning an error.
Existing contacts are matched to the upsert request via the account''s [match key](https://support.cvent.com/s/communityarticle/Allowing-Multiple-People-to-Use-the-Same-Email-Address). By default, the match key for contacts is their email. The match key can also be altered to match contacts based on a combination of their first name, last name, and email.
'
schema:
type: boolean
example: true
default: false
requestBody:
description: List of contacts to be created. Up to **10 contacts** can be created per call.
required: true
content:
app
# --- truncated at 32 KB (142 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/cvent-event-cloud/refs/heads/main/openapi/cvent-event-cloud-contacts-api-openapi.yml