Cvent Registration Custom Fields API
Custom field definitions and answers on contacts, events and sessions.
Custom field definitions and answers on contacts, events and sessions.
Every API here is available over the APIs.io API and to AI agents over MCP.
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
find_apisBrowse and filter every API in the catalog.get_api_artifactsOne API's artifacts, grouped by type.get_openapiThe primary OpenAPI for this API.find_similar_apisAPIs that look like this one.apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.resolveTurn a domain, URL or GitHub org into the provider it belongs to.find_cohortsEvery scored population of providers in the catalog.curl "https://apis.io/api/v1/apis/cvent-registration-custom-fields-api"
curl "https://apis.io/api/v1/apis?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.
A second provider on the same verified email joins the account you already have.
openapi: 3.0.2
info:
title: Cvent Registration Custom Fields API
version: ea
description: 'Registration-surface slice of the official Cvent REST APIs OpenAPI, filtered to the ''Custom Fields'' tag(s).
Derived verbatim (operations, schemas, parameters and responses copied unchanged) from Cvent''s own published contract
at https://github.com/cvent/rest-sdks/blob/main/cvent-public-spec/openapi.yaml — the spec Cvent generates its official
TypeScript, Java and C# SDKs from.
Full platform description, authentication, pagination, filtering, rate-limit and versioning narrative lives in openapi/_original/cvent-rest-apis-openapi.yaml.'
contact:
name: Cvent Development Platform
url: https://developers.cvent.com/
servers:
- url: https://api-platform.cvent.com/ea
- url: https://api-platform-eur.cvent.com/ea
tags:
- name: Custom Fields
description: Custom Fields are created by event planners to track important information about specific objects like events,
contacts, or sessions. Use these APIs to view, create, and update custom fields in your account and their related details.
paths:
/custom-fields:
get:
security:
- OAuth2.clientCredentials:
- event/custom-fields:read
- OAuth2.authorizationCode:
- event/custom-fields:read
summary: List Custom Fields
description: Get a paginated list of custom fields in an account.
operationId: listCustomFields
parameters:
- $ref: '#/components/parameters/after'
- $ref: '#/components/parameters/before'
- $ref: '#/components/parameters/limit'
- $ref: '#/components/parameters/token'
- name: filter
in: query
required: true
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` | |
| category | `eq` | Required, one category can be provided at a time |
| lastModified | `eq`, `ne`, `lt`, `le`, `gt`, `ge` | |
| code | `eq`, `ne` | Case insensitive |
The following logical operators are supported for combining filters:
* and
* or
'
schema:
type: string
example: category eq 'Event' and lastModified gt '2021-03-19T11:30:37.909Z' and code eq 'FAVORITE_COLOR_CODE'
tags:
- Custom Fields
responses:
'200':
description: Successfully retrieved a paginated list of custom fields.
headers: {}
content:
application/json:
schema:
$ref: '#/components/schemas/custom-fields-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'
post:
security:
- OAuth2.clientCredentials:
- event/custom-fields:write
- OAuth2.authorizationCode:
- event/custom-fields:write
summary: Create Custom Field
description: Creates a single custom field based on the values provided.
operationId: createCustomField
requestBody:
description: Custom field to be created
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/custom-field2'
tags:
- Custom Fields
responses:
'201':
description: Successfully created a custom field.
headers: {}
content:
application/json:
schema:
$ref: '#/components/schemas/existing-custom-field'
'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'
/custom-fields/{customFieldId}:
put:
security:
- OAuth2.clientCredentials:
- event/custom-fields:write
- OAuth2.authorizationCode:
- event/custom-fields:write
summary: Update Custom Field
description: Updates a custom field based on the given custom field ID.
operationId: updateCustomField
requestBody:
description: Custom field to be updated
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/existing-custom-field'
tags:
- Custom Fields
responses:
'200':
description: Successfully updated the custom field.
headers: {}
content:
application/json:
schema:
$ref: '#/components/schemas/existing-custom-field'
'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'
externalDocs:
description: More about OAuth2 authorization code support for administrators
url: '#oauth2-auth-code-planner-admin'
get:
security:
- OAuth2.clientCredentials:
- event/custom-fields:read
- OAuth2.authorizationCode:
- event/custom-fields:read
summary: Get Custom Field
description: Get a single custom field based on the given custom field ID.
operationId: getCustomField
tags:
- Custom Fields
responses:
'200':
description: Successfully retrieved a custom field.
headers: {}
content:
application/json:
schema:
$ref: '#/components/schemas/existing-custom-field'
'401':
$ref: '#/components/responses/Unauthorized1'
'403':
$ref: '#/components/responses/Forbidden1'
'404':
$ref: '#/components/responses/NotFound1'
'429':
$ref: '#/components/responses/TooManyRequests1'
externalDocs:
description: More about OAuth2 authorization code support for administrators
url: '#oauth2-auth-code-planner-admin'
parameters:
- $ref: '#/components/parameters/customFieldId4'
/custom-fields/{customFieldId}/advanced-logic:
put:
security:
- OAuth2.clientCredentials:
- event/custom-fields:write
- OAuth2.authorizationCode:
- event/custom-fields:write
summary: Update Advanced Logic
description: Updates the advanced logic for a custom field. Links the field given in the path to a 'source' custom field.
Answers to the source custom field determine the visible choices in the given custom field. If the source field has
no answers, only the default choices for the given field are visible.
operationId: updateCustomFieldAdvancedLogic
requestBody:
description: Advanced logic rules to apply to the given custom field.
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/advanced-logic'
tags:
- Custom Fields
responses:
'200':
description: Successfully updated the custom field's advanced logic.
headers: {}
content:
application/json:
schema:
$ref: '#/components/schemas/advanced-logic'
'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'
externalDocs:
description: More about OAuth2 authorization code support for administrators
url: '#oauth2-auth-code-planner-admin'
parameters:
- $ref: '#/components/parameters/customFieldId4'
/custom-fields/{customFieldId}/translations:
post:
security:
- OAuth2.clientCredentials:
- event/custom-fields:write
- OAuth2.authorizationCode:
- event/custom-fields:write
summary: Create Custom Fld. Translation
description: Creates translations for a single custom field based on the values provided.
operationId: createCustomFieldTranslation
requestBody:
description: Translation details to be created for the custom field.
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/translation1'
tags:
- Custom Fields
responses:
'201':
description: Successfully created translations for the custom field.
headers: {}
content:
application/json:
schema:
$ref: '#/components/schemas/translation1'
'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'
externalDocs:
description: More about OAuth2 authorization code support for administrators
url: '#oauth2-auth-code-planner-admin'
put:
security:
- OAuth2.clientCredentials:
- event/custom-fields:write
- OAuth2.authorizationCode:
- event/custom-fields:write
summary: Update Custom Fld. Translation
description: Updates translations for a single custom field based on the given custom field ID.
operationId: updateCustomFieldTranslation
requestBody:
description: Translation details to be updated for the custom field.
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/translation1'
tags:
- Custom Fields
responses:
'200':
description: Successfully updated translations for the custom field.
headers: {}
content:
application/json:
schema:
$ref: '#/components/schemas/translation1'
'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'
externalDocs:
description: More about OAuth2 authorization code support for administrators
url: '#oauth2-auth-code-planner-admin'
parameters:
- $ref: '#/components/parameters/customFieldId4'
components:
parameters:
after:
name: after
required: false
description: Used to query records that have been added or updated after this time point. Default to the beginning of
time of the data store.
in: query
schema:
type: string
format: date-time
example: '2017-01-02T02:00:00Z'
before:
name: before
required: false
in: query
description: Used to query records that have been added or updated before this time point.
schema:
type: string
format: date-time
example: '2017-01-02T02:00:00Z'
customFieldId4:
in: path
name: customFieldId
description: The unique identifier of a custom field.
required: true
schema:
$ref: '#/components/schemas/uuid-property'
limit:
name: limit
in: query
description: The maximum number of records to return per page.
style: form
explode: true
schema:
maximum: 200
minimum: 1
type: integer
default: 100
example: 100
token:
name: token
in: query
description: 'The continuation token returned from a previous class. This must be a valid UUID v4 if provided.
This will override any other pageable parameters provided.
'
style: form
explode: true
schema:
type: string
example: 0e28af57-511f-47ab-ae46-46cd1ca51a1a
responses:
BadRequest1:
description: Bad request
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
example:
code: 400
message: Bad Request
Forbidden1:
description: You do not have access to the resource
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
example:
code: 403
message: Access Forbidden
NotFound1:
description: Resource not found
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
example:
code: 404
message: Not found
TooManyRequests1:
description: Too many requests
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
example:
code: 429
message: Limit Exceeded
Unauthorized1:
description: Bad or expired token
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
example:
code: 401
message: Unauthorized
schemas:
AdvancedLogicChoices:
title: AdvancedLogicChoices
type: object
required:
- sourceCustomFieldChoice
description: This is used to denote which custom field choices to display when a source custom field choice is selected.
properties:
sourceCustomFieldChoice:
type: string
format: uuid
description: The ID of a choice of the source custom field.
choices:
type: array
items:
type: string
format: uuid
description: The ID of the choice to display.
description: The choices to display if the associated source custom field choice is selected. Leave empty to have
no choices displayed.
minItems: 0
maxItems: 100
Audit:
title: Audit
description: Audit information
type: object
properties:
created:
type: string
format: date-time
description: The ISO 8601 zoned date time when this record was created.
readOnly: true
example: '2017-01-02T02:00:00Z'
createdBy:
type: string
description: The identifier of the user that created this record.
readOnly: true
example: hporter
lastModified:
type: string
format: date-time
description: The ISO 8601 zoned date time when this record was updated.
readOnly: true
example: '2019-02-12T03:00:00Z'
lastModifiedBy:
type: string
description: The identifier of the user that last updated this record.
readOnly: true
example: hporter
Choice2:
title: Choice
type: object
description: This is used to denote the choice of question.
required:
- text
properties:
id:
type: string
format: uuid
description: The ID of the question choice. If you supply the choice's existing ID in a PUT call, the choice keeps
its current ID and the choice text is updated. If this `id` field is left blank in a PUT call, this choice text
will be replaced with the text supplied, and a new choice ID is created.
readOnly: true
text:
type: string
description: The text for the question choice.
example: What is your current designation?
minLength: 1
ChoiceTranslation:
title: ChoiceTranslation
type: object
description: This is used to denote that the translation for the choice text of a custom field.
properties:
choiceId:
type: string
format: uuid
description: The ID of the choice that this translation is associated with.
translatedText:
type: string
maxLength: 300
description: Translation for the choice text of a custom field.
example: Departamento de Tecnología
Choices1:
title: Choices
description: Choices for a custom field.
type: object
properties:
choices:
type: array
items:
$ref: '#/components/schemas/Choice2'
description: Choices of custom fields.
displayType:
$ref: '#/components/schemas/DisplayType1'
CustomFieldCategory:
title: CustomFieldCategory
enum:
- Contact
- Session
- Event
- Survey
- Campaign
- Rfp
- Appointment
- Resource
- User
- Abstract
- Budget Item
type: string
description: This is used to denote the category of a custom field.
example: Contact
CustomFieldType2:
title: CustomFieldType
enum:
- Open Ended Text - Date/Time
- Open Ended Text - One Line
- Open Ended Text - Comment Box
- Choice - Single Answer
- Choice - Multiple Answers
- Auto-Increment
type: string
description: This is used to denote the type of data collected by a custom field. Auto-Increment custom fields are read
only.
example: Open Ended Text - One Line
DateTimeDisplayFormat:
title: DateTimeDisplayFormat
enum:
- DateAndTimeMonthFirst12HourTime
- DateAndTimeMonthFirst24HourTime
- DateOnlyMonthFirst
- DateAndTimeDayFirst12HourTime
- DateAndTimeDayFirst24HourTime
- DateOnlyDayFirst
type: string
description: This is used to denote the display format type of date time type custom field.
example: DateOnlyMonthFirst
DisplayInDataTag:
title: DisplayInDataTag
enum:
- 'Yes'
- 'No'
- Only when answered
type: string
description: This option allows you to choose whether to display the custom field in emails. The field name and the
value entered by the invitee are used in the My Agenda data tag. You can set the custom field to display always or
only when answered. Only applicable to session custom fields.
default: 'No'
example: 'No'
DisplayType1:
title: DisplayType
description: Display type indicating how to display the choices on UI. For 'Choice - Single Answer' custom field type,
this defaults to Dropdown. For 'Choice - Multiple Answers' custom field type, this defaults to MultiSelectBox.
type: string
enum:
- Dropdown
- Vertical
- Horizontal
- MultiSelectBox
ErrorResponse:
title: ErrorResponse
description: Represents an error response with additional details of cascading error messages.
allOf:
- $ref: '#/components/schemas/ErrorResponseBase'
type: object
required:
- code
- message
properties:
details:
type: array
items:
$ref: '#/components/schemas/ErrorResponseBase'
description: Additional details of cascading error messages.
ErrorResponseBase:
title: ErrorResponseBase
type: object
description: Represents an error response with no additional details.
required:
- code
- message
properties:
code:
type: integer
description: The HTTP status code representing the error.
example: 400
message:
type: string
description: A brief description of the error.
example: Bad Request
target:
type: string
description: The target resource of the error.
example: example target
Language1:
title: Language
enum:
- af-ZA
- ar-SA
- az-Latn-AZ
- be-BY
- bg-BG
- bn-IN
- bs-BA
- ca-ES
- cs-CZ
- da-DK
- de-CH
- de-DE
- el-GR
- en-GB
- en-US
- es-ES
- fi-FI
- fr-CA
- fr-FR
- ga-IE
- he-IL
- hi-IN
- hr-HR
- hu-HU
- hy-AM
- id-ID
- is-IS
- it-IT
- ja-JP
- kn
- ko-KR
- lb-LU
- lt-LT
- lv-LV
- mi-NZ
- ml
- mn-CN
- ms-MY
- mt-MT
- nb-NO
- ne-NP
- nl-NL
- pa-IN
- pl-PL
- pt-BR
- pt-PT
- ro-MO
- ro-RO
- ru-RU
- sk-SK
- sl-SI
- sq-AL
- sr-RS
- sv-SE
- ta-IN
- te-IN
- th-TH
- tl-PH
- tr-TR
- uk-UA
- vi-VN
- zh-CHT
- zh-CN
- zh-tw
type: string
description: IETF language code used to specify a target language for the translation.
example: es-ES
Link:
title: Link
required:
- href
type: object
description: Represents a link to a related resource.
properties:
href:
type: string
description: A url provided that can be followed for linking
example: ?token=90c5f062-76ad-4ea4-aa53-00eb698d9262
OpenEndedCommentBox:
title: OpenEndedCommentBox
description: This is used to denote the open ended comment box type of custom field.
type: object
properties:
minimum:
type: integer
description: Minimum number/characters allowed.
example: 2
maximum:
type: integer
description: Maximum number/characters allowed.
example: 8
OpenEndedDateTime1:
title: OpenEndedDateTime
description: This is used to denote the open ended date time type of custom field.
type: object
properties:
from:
type: string
format: date-time
description: The ISO 8601 zoned minimum date time accepted.
example: '2021-01-02T02:00:00Z'
to:
type: string
format: date-time
description: The ISO 8601 zoned maximum date time accepted.
example: '2021-02-02T02:00:00Z'
format:
$ref: '#/components/schemas/DateTimeDisplayFormat'
defaultToCurrentDate:
type: boolean
description: Whether it needs to be pre populated with current date.
example: false
displayPopUpCalendar:
type: boolean
description: True means that a pop-up calendar will be displayed to assist date selection on UI.
default: false
example: false
OpenEndedOneLine:
title: OpenEndedOneLine
type: object
description: This is used to denote the open ended one line type of custom field.
properties:
answerFormat:
type: string
description: 'The supported answer formats are: General, Number, Currency, Decimal, USPhoneNumber, and EmailAddress.
Custom answer formats are also supported and can be created in the Admin section of the planner UI.'
example: General
minimum:
type: integer
description: Minimum number/characters allowed.
example: 2
maximum:
type: integer
description: Maximum number/characters allowed.
example: 8
PageVisibility:
title: PageVisibility
description: Visibility of the custom field on various pages/forms.
type: object
properties:
essentialEventCreationForm:
type: boolean
description: True indicates it's visible on the event essentials event creation form.
default: false
essentialEventDetailsForm:
type: boolean
description: True indicates it's visible on the event essentials event details form.
default: false
webinarCreationForm:
type: boolean
description: True indicates it's visible on webinar creation form.
default: false
webinarDetailsForm:
type: boolean
description: True indicates it's visible on the webinar details form.
default: false
PaginationLinks:
title: PaginationLinks
type: object
description: Represents pagination links for navigating between pages of data.
properties:
next:
$ref: '#/components/schemas/Link'
self:
$ref: '#/components/schemas/Link'
prev:
$ref: '#/components/schemas/Link'
Paging:
title: Paging
required:
- _links
type: object
description: Represents pagination information for a collection of resources.
properties:
previousToken:
type: string
description: The pagination token for the previous page, if one exists. You can use this token to navigate to the
previous page of data.
example: 1a2b3c4d5e6f7g8h9i10j11k
nextToken:
type: string
description: The pagination token for the next page. If this value is present in the response, there is another
page of data you can fetch.
example: 1a2b3c4d5e6f7g8h9i10j11k
currentToken:
type: string
description: The pagination token for the current page.
example: 1a2b3c4d5e6f7g8h9i10j11k
limit:
type: integer
description: The number of records to return on the page. Not to exceed 200.
example: 100
totalCount:
type: integer
description: The total number of records available. This field may return blank, even if there are more records.
To confirm if there are more records, check the `nextToken` field.
example: 2
_links:
$ref: '#/components/schemas/PaginationLinks'
advanced-logic:
title: AdvancedLogic
type: object
description: Describes the advanced logic for a custom field.
required:
- sourceCustomFieldId
properties:
sourceCustomFieldId:
type: string
format: uuid
description: The ID of the source custom field.
defaultChoices:
type: array
items:
type: string
format: uuid
description: The ID of the choice to display.
description: The choices of this custom field to display by default (when no choice is selected for the source custom
field), specified by choice ID. Leave empty to have no choices displayed by default.
minItems: 0
maxItems: 100
sourceChoices:
type: array
items:
$ref: '#/components/schemas/AdvancedLogicChoices'
description: The choices of this custom field to display based on the choice selected for the source custom field,
specified by choice ID.
custom-field2:
title: CustomField
required:
- category
- name
- code
- type
description: This is used to denote the custom field data.
type: object
allOf:
- $ref: '#/components/schemas/Audit'
properties:
category:
$ref: '#/components/schemas/CustomFieldCategory'
name:
type: string
description: The actual text of the custom field.
example: What is a your favorite color?
maxLength: 300
code:
type: string
description: Code to uniquely identify custom field.
example: FAVORITE_COLOR_CODE
maxLength: 50
required:
type: boolean
description: Whether answer to custom field is mandatory or not.
default: true
example: true
type:
$ref: '#/components/schemas/CustomFieldType2'
details:
type: object
description: Type-specific details of the custom-field.
oneOf:
- $ref: '#/components/schemas/OpenEndedOneLine'
- $ref: '#/components/schemas/OpenEndedDateTime1'
- $ref: '#/components/schemas/OpenEndedCommentBox'
- $ref: '#/components/schemas/Choices1'
order:
type: integer
description: The order of the custom field on the display page.
example: 1
readOnly: true
helpText:
type: string
description: The help text of the custom field.
example: Enter your favorite color.
maxLength: 50
displayInDataTag:
$ref: '#/components/schemas/DisplayInDataTag'
defaultTagText:
type: string
description: Default text in emails when a contact does not have a value answered for this custom field. Only applicable
to contact custom fields.
example: Your Division
maxLength: 300
consentField:
type: boolean
description: True means that this is a consent field. Only applicable to contact custom fields.
default: false
example: false
active:
type: boolean
description: True means that this custom field is active. Determines visibility for event custom fields.
default: true
example: true
displayInEventCreationWizard:
type: boolean
description: True means that the field will be displayed in the event creation wizard. Only applicable to event
custom fields.
default: false
example: false
pageVisibility:
$ref: '#/components/schemas/PageVisibility'
custom-fields-paginated-response:
title: CustomFieldsPaginatedResponse
description: The response from a request to get the list of custom fields metadata. This includes the paging object
as well as the collection of custom fields metadata.
required:
- paging
- data
type: object
properties:
paging:
$ref: '#/components/schemas/Paging'
data:
type: array
items:
$ref: '#/components/schemas/existing-custom-field'
description: Collection of custom fields.
existing-custom-field:
title: ExistingCustomField
description: This is used to denote an existing custom field.
type: object
allOf:
- $ref: '#/components/schemas/custom-field2'
properties:
id:
type: string
format: uuid
description: The ID of the custom field.
pageVisibility:
$ref: '#/components/schemas/PageVisibility'
translation1:
title: CustomFieldTranslation
description: A custom-field translation for a particular language.
type: object
required:
- translation
- language
properties:
translation:
type: object
description: This is used to denote the translation of the custom field, including its name, help text, and choice
texts.
properties:
nameTranslation:
type: string
description: Translation of the custom field's name.
maxLength: 30
example: Departamento
helpTextTranslation:
type: string
description: Translation for the help text of the custom field.
maxLength: 30
example: El departamento donde tr
# --- truncated at 32 KB (70 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/cvent-registration/refs/heads/main/openapi/cvent-registration-custom-fields-api-openapi.yml