Optimizely Events API

Send customer events to ODP for tracking actions, behaviors, and interactions across channels.

Operations 16

GET /events GET /events #
POST /events POST /events #
GET /events/{id} GET /events/{id} #
PATCH /events/{id} PATCH /events/{id} #
PUT /events/{id}/fields PUT /events/{id}/fields #
GET /events/{id}/fields GET events/{id}/fields #
POST /api/events/fx #
GET /events/{event_id} Get an event #
PATCH /events/{event_id} Update an event #
DELETE /events/{event_id} Delete an event #
POST /pages/{page_id}/events Create an In-Page Event #
DELETE /pages/{page_id}/events/{event_id} Archive an In-Page Event #
PATCH /pages/{page_id}/events/{event_id} Update an In-Page Event #
POST /projects/{project_id}/custom_events Create a Custom Event #
DELETE /projects/{project_id}/custom_events/{event_id} Archive a Custom Event #
PATCH /projects/{project_id}/custom_events/{event_id} Update a Custom Event #

Documentation

Specifications

Other Resources

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • 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.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/optimizely-events-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no email required.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

optimizely-events-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Optimizely Events API
  version: '1.0'
  description: 'Operations tagged Events across 6 of this provider''s published API definitions: optimizely-content-marketing-platform-optimizely-cmp-open-api-documentation-openapi.json, optimizely-data-platform-events-openapi.json, optimizely-data-platform-openapi.yml, optimizely-platform-optimizely-swagger-openapi.json, optimizely-web-experimentation-openapi.yml, optimizely-web-experimentation-optimizely-api-openapi.json. Each path carries the servers of the definition it was published in.'
servers:
- url: https://api.cmp.optimizely.com/v3
  description: v3 version of Optimizely CMP Open API
- url: https://api.us1.odp.optimizely.com/v3
  description: United States
- url: https://api.eu1.odp.optimizely.com/v3
  description: Europe
- url: https://api.au1.odp.optimizely.com/v3
  description: Asia-Pacific
- url: https://api.zaius.com/v3
  description: Optimizely Data Platform API v3 Server
- url: https://prod.cg.optimizely.com
- url: https://api.optimizely.com/v2
  description: Optimizely REST API v2 Production Server
tags:
- name: Events
paths:
  /events:
    get:
      operationId: listEvents
      tags:
      - Events
      summary: GET /events
      description: <span style="background-color:#e95f6a;padding:5px;border-radius:5px">Experimental</span> Get a list of events.
      parameters:
      - name: start_date
        in: query
        schema:
          type: string
          description: ISO date string - filters events with end_date >= start_date
        example: '2024-11-24T00:00:00.000Z'
      - name: end_date
        in: query
        schema:
          type: string
          description: ISO date string - filters events with start_date <= end_date
        example: '2024-11-26T00:00:00.000Z'
      - name: campaign_id
        in: query
        schema:
          type: string
          description: Single campaign ID - filters events by campaign
        example: 66d953340019d7b86833ac6d
      - $ref: '#/components/parameters/offset'
      - $ref: '#/components/parameters/page_size'
      responses:
        '200':
          description: List of fetched events
          content:
            application/json:
              schema:
                type: object
                additionalProperties: false
                properties:
                  data:
                    description: List of events
                    type: array
                    items:
                      $ref: '#/components/schemas/EventResponse'
                  pagination:
                    allOf:
                    - $ref: '#/components/schemas/Pagination'
                    - type: object
                      properties:
                        next:
                          type:
                          - string
                          - 'null'
                          example: https://api.cmp.optimizely.com/v3/events?offset=10&page_size=10
                required:
                - data
                - pagination
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
      security:
      - OAuth2:
        - openid
        - profile
        - offline_access
    post:
      operationId: createEvent
      tags:
      - Events
      summary: POST /events
      description: <span style="background-color:#e95f6a;padding:5px;border-radius:5px">Experimental</span> Create an event.
      requestBody:
        description: Payload to create a new event
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/EventCreateRequest'
      responses:
        '201':
          description: Created event details
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/EventResponse'
        '400':
          $ref: '#/components/responses/ClientError'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '422':
          $ref: '#/components/responses/UnprocessableEntity'
      security:
      - OAuth2:
        - openid
        - profile
        - offline_access
    servers:
    - url: https://api.cmp.optimizely.com/v3
      description: v3 version of Optimizely CMP Open API
  /events/{id}:
    get:
      operationId: getEvent
      tags:
      - Events
      summary: GET /events/{id}
      description: <span style="background-color:#e95f6a;padding:5px;border-radius:5px">Experimental</span> Get an event.
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: string
          description: Unique identifier of the event
          example: 674ea40a7a9cac80ff78c95c
      responses:
        '200':
          description: Fetched event details
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/EventResponse'
        '400':
          $ref: '#/components/responses/ClientError'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
      security:
      - OAuth2:
        - openid
        - profile
        - offline_access
    patch:
      operationId: updateEvent
      tags:
      - Events
      summary: PATCH /events/{id}
      description: <span style="background-color:#e95f6a;padding:5px;border-radius:5px">Experimental</span> Update an event.
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: string
          description: Unique identifier of the event
          example: 674ea40a7a9cac80ff78c95c
      requestBody:
        description: Payload to update an event
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/EventUpdateRequest'
      responses:
        '200':
          description: Updated event details
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/EventResponse'
        '400':
          $ref: '#/components/responses/ClientError'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '422':
          $ref: '#/components/responses/UnprocessableEntity'
      security:
      - OAuth2:
        - openid
        - profile
        - offline_access
    servers:
    - url: https://api.cmp.optimizely.com/v3
      description: v3 version of Optimizely CMP Open API
  /events/{id}/fields:
    put:
      operationId: updateEventFields
      tags:
      - Events
      summary: PUT /events/{id}/fields
      description: <span style="background-color:#e95f6a;padding:5px;border-radius:5px">Experimental</span> Replace existing fields of an event.
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: string
          description: Unique identifier of the event
        example: 5f857f30e1c4a2038d6179e9
      requestBody:
        description: Payload to replace the fields
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/EventFieldsUpdateRequest'
      responses:
        '204':
          description: Event fields updated
        '400':
          $ref: '#/components/responses/ClientError'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '422':
          $ref: '#/components/responses/UnprocessableEntity'
      security:
      - OAuth2:
        - openid
        - profile
        - offline_access
    get:
      operationId: listEventFields
      tags:
      - Events
      summary: GET events/{id}/fields
      description: <span style="background-color:#e95f6a;padding:5px;border-radius:5px">Experimental</span> Get the list of fields of an event.
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: string
          description: Unique identifier of the event
        example: 5f857f30e1c4a2038d6179e9
      - $ref: '#/components/parameters/offset'
      - $ref: '#/components/parameters/page_size'
      responses:
        '200':
          description: List of fetched fields
          content:
            application/json:
              schema:
                type: object
                additionalProperties: false
                properties:
                  data:
                    description: List of fields
                    type: array
                    items:
                      $ref: '#/components/schemas/FieldListResponseItem'
                  pagination:
                    allOf:
                    - $ref: '#/components/schemas/Pagination'
                    - type: object
                      properties:
                        next:
                          type:
                          - string
                          - 'null'
                          example: https://api.cmp.optimizely.com/v3/events/5f857f30e1c4a2038d6179e9/fields?offset=10&page_size=10
                required:
                - data
                - pagination
        '400':
          $ref: '#/components/responses/ClientError'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
      security:
      - OAuth2:
        - openid
        - profile
        - offline_access
    servers:
    - url: https://api.cmp.optimizely.com/v3
      description: v3 version of Optimizely CMP Open API
  /api/events/fx:
    post:
      operationId: post-FxEventHandler
      responses:
        '200':
          description: Ok
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Response'
      security: []
      parameters: []
      tags:
      - Events
    servers:
    - url: https://prod.cg.optimizely.com
  /events/{event_id}:
    get:
      operationId: getEvent
      summary: Get an event
      description: Retrieves the full details of a specific event by its identifier.
      tags:
      - Events
      parameters:
      - $ref: '#/components/parameters/eventId'
      responses:
        '200':
          description: Successfully retrieved the event
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Event_2'
        '401':
          description: Authentication credentials are missing or invalid
        '404':
          description: Event not found
      security:
      - bearerAuth: []
    patch:
      operationId: updateEvent
      summary: Update an event
      description: Updates the specified event with the provided fields.
      tags:
      - Events
      parameters:
      - $ref: '#/components/parameters/eventId'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/EventInput_2'
      responses:
        '200':
          description: Event successfully updated
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Event_2'
        '400':
          description: Invalid request body
        '401':
          description: Authentication credentials are missing or invalid
        '404':
          description: Event not found
      security:
      - bearerAuth: []
    delete:
      operationId: deleteEvent
      summary: Delete an event
      description: Permanently deletes the specified event.
      tags:
      - Events
      parameters:
      - $ref: '#/components/parameters/eventId'
      responses:
        '204':
          description: Event successfully deleted
        '401':
          description: Authentication credentials are missing or invalid
        '404':
          description: Event not found
      security:
      - bearerAuth: []
    servers:
    - url: https://api.optimizely.com/v2
      description: Optimizely REST API v2 Production Server
  /pages/{page_id}/events:
    post:
      description: Create an Event that occurs in the context of a Page, such as measuring clicks
      operationId: create_in_page_event
      parameters:
      - description: The Page ID of the Page you want to create an In-Page Event for
        in: path
        name: page_id
        required: true
        schema:
          format: int64
          type: integer
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/InPageEvent'
        description: A string in JSON format that includes all the fields to create an In-Page Event
        required: true
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InPageEvent'
          description: Return the created In-Page event
        '400':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error_2'
          description: Invalid Page ID or request body supplied
        '401':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error_2'
          description: Invalid credentials
        '403':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error_2'
          description: You do not have permission to add an In-Page event
        default:
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error_2'
          description: Unexpected error
      summary: Create an In-Page Event
      tags:
      - Events
      security:
      - apiKey: []
      - OAuth2:
        - read
        - write
    servers:
    - url: https://api.optimizely.com/v2
  /pages/{page_id}/events/{event_id}:
    delete:
      description: Archive an In-Page Event
      operationId: delete_in_page_event
      parameters:
      - description: The Page ID of the In-Page Event you want to archive
        in: path
        name: page_id
        required: true
        schema:
          format: int64
          type: integer
      - description: The In-Page Event ID of the In-Page Event you want to archive
        in: path
        name: event_id
        required: true
        schema:
          format: int64
          type: integer
      responses:
        '204':
          description: Successfully archived In-Page event
        '401':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error_2'
          description: Invalid credentials
        '403':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error_2'
          description: You do not have permission to archive this In-Page event
        '404':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error_2'
          description: Invalid Page ID or Event ID supplied
        default:
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error_2'
          description: Unexpected error
      summary: Archive an In-Page Event
      tags:
      - Events
      security:
      - apiKey: []
      - OAuth2:
        - read
        - write
    patch:
      description: Update an Event that occurs in the context of a Page, such as measuring clicks
      operationId: update_in_page_event
      parameters:
      - description: The Page ID of the In-Page Event you want to change
        in: path
        name: page_id
        required: true
        schema:
          format: int64
          type: integer
      - description: The In-Page Event ID of the In-Page Event you want to change
        in: path
        name: event_id
        required: true
        schema:
          format: int64
          type: integer
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/InPageEventUpdate'
        description: A string in JSON format that includes all the fields you'd like to change for an In-Page Event
        required: true
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InPageEvent'
          description: Successfully updated the In-Page event
        '400':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error_2'
          description: Invalid request body supplied
        '401':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error_2'
          description: Invalid credentials
        '403':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error_2'
          description: You do not have access to the specified Event
        '404':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error_2'
          description: Event not found
        default:
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error_2'
          description: Unexpected error
      summary: Update an In-Page Event
      tags:
      - Events
      security:
      - apiKey: []
      - OAuth2:
        - read
        - write
    servers:
    - url: https://api.optimizely.com/v2
  /projects/{project_id}/custom_events:
    post:
      description: Create a Custom Event in a provided Project
      operationId: create_custom_event
      parameters:
      - description: The Project ID of the Project you want to create an Custom Event in
        in: path
        name: project_id
        required: true
        schema:
          format: int64
          type: integer
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CustomEvent'
        description: A string in JSON format that includes all the fields to create a Custom Event
        required: true
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CustomEvent'
          description: Return the created Custom Event
        '400':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error_2'
          description: Invalid request body supplied
        '401':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error_2'
          description: Invalid credentials
        '403':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error_2'
          description: You do not have access to the specified Project
        default:
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error_2'
          description: Unexpected error
      summary: Create a Custom Event
      tags:
      - Events
      security:
      - apiKey: []
      - OAuth2:
        - read
        - write
    servers:
    - url: https://api.optimizely.com/v2
  /projects/{project_id}/custom_events/{event_id}:
    delete:
      description: Archive a Custom Event
      operationId: delete_custom_event
      parameters:
      - description: The project ID of the Project the Custom Event is stored in
        in: path
        name: project_id
        required: true
        schema:
          format: int64
          type: integer
      - description: The Event ID of the Custom Event you'd like to archive
        in: path
        name: event_id
        required: true
        schema:
          format: int64
          type: integer
      responses:
        '204':
          description: Successfully archived Custom Event
        '401':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error_2'
          description: Invalid credentials
        '403':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error_2'
          description: You do not have permission to archive this Custom Event
        '404':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error_2'
          description: Invalid Project ID or Event ID supplied
        default:
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error_2'
          description: Unexpected error
      summary: Archive a Custom Event
      tags:
      - Events
      security:
      - apiKey: []
      - OAuth2:
        - read
        - write
    patch:
      description: Update a Custom Event
      operationId: update_custom_event
      parameters:
      - description: The project ID of the Project the Custom Event is stored in
        in: path
        name: project_id
        required: true
        schema:
          format: int64
          type: integer
      - description: The Event ID of the Custom Event you'd like to change
        in: path
        name: event_id
        required: true
        schema:
          format: int64
          type: integer
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CustomEventUpdate'
        description: A string in JSON format that includes all the fields you'd like to change for a Custom Event
        required: true
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CustomEvent'
          description: Return the updated Event
        '400':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error_2'
          description: Invalid Project ID supplied
        '401':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error_2'
          description: Invalid credentials
        '403':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error_2'
          description: You do not have permission to access the specified Event
        '404':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error_2'
          description: Event not found
        default:
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error_2'
          description: Unexpected error
      summary: Update a Custom Event
      tags:
      - Events
      security:
      - apiKey: []
      - OAuth2:
        - read
        - write
    servers:
    - url: https://api.optimizely.com/v2
components:
  responses:
    Forbidden:
      description: Permission error
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
          example:
            message: You do not have the permission to perform this operation
    UnprocessableEntity:
      description: Unprocessable entity error
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
          example:
            message: Resource cannot be processed
    NotFound:
      description: Not found error
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
          example:
            message: Resource not found
    ClientError:
      description: Client error
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
          example:
            message: 'Unsupported arguments: a,b,c'
    Unauthorized:
      description: Authorization error
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
          example:
            message: Unauthorized
  schemas:
    EventFieldsUpdateRequest:
      type: array
      items:
        type: object
        additionalProperties: false
        oneOf:
        - $ref: '#/components/schemas/MultiChoiceTypeObjectField'
        - $ref: '#/components/schemas/StringTypeObjectField'
        - $ref: '#/components/schemas/DropdownTypeObjectField'
        - $ref: '#/components/schemas/RadioButtonTypeObjectField'
        - $ref: '#/components/schemas/NumberTypeObjectField'
        - $ref: '#/components/schemas/DateTypeObjectField'
        - $ref: '#/components/schemas/AssetTypeObjectField'
        discriminator:
          propertyName: type
          mapping:
            checkbox: '#/components/schemas/MultiChoiceTypeObjectField'
            currency_number: '#/components/schemas/NumberTypeObjectField'
            date: '#/components/schemas/DateTypeObjectField'
            dropdown: '#/components/schemas/DropdownTypeObjectField'
            label: '#/components/schemas/MultiChoiceTypeObjectField'
            radio_button: '#/components/schemas/RadioButtonTypeObjectField'
            percentage_number: '#/components/schemas/NumberTypeObjectField'
            simple_number: '#/components/schemas/NumberTypeObjectField'
            text: '#/components/schemas/StringTypeObjectField'
            text_area: '#/components/schemas/StringTypeObjectField'
            rich_text: '#/components/schemas/StringTypeObjectField'
            image: '#/components/schemas/AssetTypeObjectField'
            video: '#/components/schemas/AssetTypeObjectField'
    FieldListResponseItem:
      oneOf:
      - $ref: '#/components/schemas/FieldTypeCommon'
      - $ref: '#/components/schemas/FieldTypeLabel'
      - $ref: '#/components/schemas/FieldTypeDropdown'
      - $ref: '#/components/schemas/FieldTypeRadio'
      - $ref: '#/components/schemas/FieldTypeCheckbox'
      - $ref: '#/components/schemas/FieldTypeSimpleNumber'
      - $ref: '#/components/schemas/FieldTypePercentageNumber'
      - $ref: '#/components/schemas/FieldTypeCurrencyNumber'
      discriminator:
        propertyName: type
        mapping:
          checkbox: '#/components/schemas/FieldTypeCheckbox'
          currency_number: '#/components/schemas/FieldTypeCurrencyNumber'
          date: '#/components/schemas/FieldTypeCommon'
          dropdown: '#/components/schemas/FieldTypeDropdown'
          image: '#/components/schemas/FieldTypeCommon'
          label: '#/components/schemas/FieldTypeLabel'
          percentage_number: '#/components/schemas/FieldTypePercentageNumber'
          radio_button: '#/components/schemas/FieldTypeRadio'
          rich_text: '#/components/schemas/FieldTypeCommon'
          simple_number: '#/components/schemas/FieldTypeSimpleNumber'
          text: '#/components/schemas/FieldTypeCommon'
          text_area: '#/components/schemas/FieldTypeCommon'
          video: '#/components/schemas/FieldTypeCommon'
    FieldTypeCommon:
      allOf:
      - $ref: '#/components/schemas/FieldBaseType'
      - type: object
    FieldTypeRadio:
      allOf:
      - $ref: '#/components/schemas/FieldBaseType'
      - type: object
        properties:
          choices:
            type: array
            description: Choices of the radio button
            items:
              type: object
              properties:
                id:
                  type: string
                  description: Identifier of the choice
                  example: 6ceee2f4fa3411ecb37802420ac8001b
                name:
                  type: string
                  description: Name of the choice
                  example: Radio 1 Choice 1
              required:
              - id
              - name
              - color
        required:
        - choices
    StringTypeObjectField:
      allOf:
      - $ref: '#/components/schemas/BaseObjectField'
      - $ref: '#/components/schemas/StringTypeObjectFieldUpdatePayload'
    FieldTypeDropdown:
      allOf:
      - $ref: '#/components/schemas/FieldBaseType'
      - type: object
        properties:
          is_multi_select:
            type: boolean
            description: Select multiple values from the dropdown
          choices:
            type: array
            description: Choices of the dropdown
            items:
              type: object
              properties:
                id:
                  type: string
                  description: Identifier of the choice
                  example: 6ceee2f4fa3411ecb37802420ac8001b
                name:
                  type: string
                  description: Name of the choice
                  example: Dropdown 1 Choice 1
              required:
              - id
              - name
        required:
        - is_multi_select
        - choices
    FieldTypeLabel:
      allOf:
      - $ref: '#/components/schemas/FieldBaseType'
      - type: object
        properties:
          is_multi_select:
            type: boolean
            description: Select multiple values from the label
          choices:
            type: array
            description: Choices of the label
            items:
              type: object
              properties:
                id:
                  type: string
                  description: Identifier of the choice
                  example: 6ceee2f4fa3411ecb37802420ac8001b
                name:
                  type: string
                  description: Name of the choice
                  example: Label 1 Choice 1
              required:
              - id
              - name
              - color
        required:
        - is_multi_select
        - choices
    NumberTypeObjectFieldUpdatePayload:
      allOf:
      - $ref: '#/components/schemas/BaseObjectFieldUpdatePayload'
      - type: object
        properties:
          values:
            type: array
            description: Accepts a single numeric value
            maxItems: 1
            items:
              type: number
              example: 200
    MultiChoiceTypeObjectField:
      allOf:
      - $ref: '#/components/schemas/BaseObjectField'
      - $ref: '#/components/schemas/MultiChoiceTypeObjectFieldUpdatePayload'
    EventUpdateRequest:
      type: object
      additionalProperties: false
      properties:
        title:
          type: string
          description: Title of the event
          example: The awesome event
        description:
          type: string
          description: Description of the event
          example: This awesome event is created to celebrate our clients
        is_all_day:
          type: boolean
          description: Indicate if the event is all day long
          example: false
        start_date:
          type: string
          format: date-time
          description: 'Start date and time of the event in ISO 8601 format: `YYYY-MM-DDTHH:MM:SSZ`'
          example: '1996-09-09T12:18:00Z'
        end_date:
          type: string
          format: date-time
          description: 'End date and time of the event in ISO 8601 format: `YYYY-MM-DDTHH:MM:SSZ`'
          example: '2024-12-24T12:18:00Z'
    FieldTypeSimpleNumber:
      allOf:
      - $ref: '#/components/schemas/FieldBaseType'
      - type: object
        properties:
          has_thousand_separator:
            type: boolean
            description: Whether the numerical field has a thousand separator
            example: true
          decimal_places:
            type:
            - integer
            - 'null'
            description: Decimal place of the numerical field
            example: 2
        required:
        - has_thousand_separator
        - decimal_places
    Error:
      type: object
      additionalProperties: true
      description: Error

# --- truncated at 32 KB (61 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/optimizely/refs/heads/main/openapi/optimizely-events-api-openapi.yml