openapi: 3.0.1
servers:
  - url: https://api.hubapi.com/
info:
  description: |
    These APIs allow you to interact with HubSpot's Marketing Events Extension. It allows you to:
    * Create, Read or update Marketing Event information in HubSpot
    * Specify whether a HubSpot contact has registered, attended or cancelled a registration to a Marketing Event.
    * Specify a URL that can be called to get the details of a Marketing Event.
  title: Marketing Events Extension
  version: v3
  x-logo:
    url: https://api.apis.guru/v2/cache/logo/https_developers.hubspot.com_hubfs_assets_hubspot.com_buzz_HubSpotOpenGraph.png
  x-origin:
    - format: openapi
      url: https://api.hubspot.com/api-catalog-public/v1/apis/marketing/v3/marketing-events-beta
      version: "3.0"
  x-providerName: hubapi.com
  x-serviceName: marketing
tags:
  - description: Endpoints that allow you to search for Marketing Events in HubSpot.
    name: Search
  - description: Operations to mark HubSpot contacts as registered, attended or cancelled a registration to a Marketing Event.
    name: Attendance Subscriber State Changes
  - name: Marketing_Events_External
  - name: Settings_External
paths:
  "/marketing/v3/marketing-events/attendance/{externalEventId}/{subscriberState}/create":
    post:
      description: Record a subscription state between multiple HubSpot contacts and a marketing event, using HubSpot contact ids.
      operationId: post-/marketing/v3/marketing-events/attendance/{externalEventId}/{subscriberState}/create_create
      parameters:
        - description: The id of the marketing event
          explode: false
          in: path
          name: externalEventId
          required: true
          schema:
            type: string
          style: simple
        - description: "The new subscriber state for the HubSpot contacts and the specified marketing event. For example: 'register', 'attend' or 'cancel'."
          explode: false
          in: path
          name: subscriberState
          required: true
          schema:
            type: string
          style: simple
        - description: The account id associated with the marketing event
          explode: true
          in: query
          name: externalAccountId
          required: false
          schema:
            type: string
          style: form
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/BatchInputMarketingEventSubscriber"
        description: The details of the contacts to subscribe to the event. Parameters of join and left time if state is Attended.
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/BatchResponseSubscriberVidResponse"
          description: successful operation
        default:
          $ref: "#/components/responses/Error"
      security:
        - private_apps_legacy: []
        - oauth2_legacy:
            - crm.objects.marketing_events.write
      summary: Record
      tags:
        - Attendance Subscriber State Changes
  "/marketing/v3/marketing-events/attendance/{externalEventId}/{subscriberState}/email-create":
    post:
      description: "Record a subscription state between multiple HubSpot contacts and a marketing event, using contact email addresses. If contact is not present it will be automatically created. If you set params "
      operationId: post-/marketing/v3/marketing-events/attendance/{externalEventId}/{subscriberState}/email-create_createByEmail
      parameters:
        - description: The id of the marketing event
          explode: false
          in: path
          name: externalEventId
          required: true
          schema:
            type: string
          style: simple
        - description: "The new subscriber state for the HubSpot contacts and the specified marketing event. For example: 'register', 'attend' or 'cancel'."
          explode: false
          in: path
          name: subscriberState
          required: true
          schema:
            type: string
          style: simple
        - description: The account id associated with the marketing event
          explode: true
          in: query
          name: externalAccountId
          required: false
          schema:
            type: string
          style: form
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/BatchInputMarketingEventEmailSubscriber"
        description: The details of the contacts to subscribe to the event. Parameters of join and left time if state is Attended.
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/BatchResponseSubscriberEmailResponse"
          description: successful operation
        default:
          $ref: "#/components/responses/Error"
      security:
        - private_apps_legacy: []
        - oauth2_legacy:
            - crm.objects.marketing_events.write
      summary: Record
      tags:
        - Attendance Subscriber State Changes
  /marketing/v3/marketing-events/events:
    post:
      operationId: post-/marketing/v3/marketing-events/events_create
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/MarketingEventCreateRequestParams"
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/MarketingEventDefaultResponse"
          description: successful operation
        default:
          $ref: "#/components/responses/Error"
      security:
        - private_apps_legacy: []
        - oauth2_legacy:
            - crm.objects.marketing_events.write
      tags:
        - Marketing_Events_External
  /marketing/v3/marketing-events/events/delete:
    post:
      operationId: post-/marketing/v3/marketing-events/events/delete_archiveBatch
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/BatchInputMarketingEventExternalUniqueIdentifier"
        required: true
      responses:
        default:
          $ref: "#/components/responses/Error"
      security:
        - private_apps_legacy: []
        - oauth2_legacy:
            - crm.objects.marketing_events.write
      tags:
        - Marketing_Events_External
  /marketing/v3/marketing-events/events/search:
    get:
      description: Search for marketing events that have an event id that starts with the query string
      operationId: get-/marketing/v3/marketing-events/events/search_doSearch
      parameters:
        - description: The id of the marketing event in the external event application
          explode: true
          in: query
          name: q
          required: true
          schema:
            type: string
          style: form
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/CollectionResponseMarketingEventExternalUniqueIdentifierNoPaging"
          description: successful operation
        default:
          $ref: "#/components/responses/Error"
      security:
        - oauth2_legacy:
            - crm.objects.marketing_events.read
        - private_apps_legacy: []
      summary: Search for marketing events
      tags:
        - Search
  /marketing/v3/marketing-events/events/upsert:
    post:
      operationId: post-/marketing/v3/marketing-events/events/upsert_doUpsert
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/BatchInputMarketingEventCreateRequestParams"
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/BatchResponseMarketingEventPublicDefaultResponse"
          description: successful operation
        default:
          $ref: "#/components/responses/Error"
      security:
        - private_apps_legacy: []
        - oauth2_legacy:
            - crm.objects.marketing_events.write
      tags:
        - Marketing_Events_External
  "/marketing/v3/marketing-events/events/{externalEventId}":
    delete:
      operationId: delete-/marketing/v3/marketing-events/events/{externalEventId}_archive
      parameters:
        - explode: false
          in: path
          name: externalEventId
          required: true
          schema:
            type: string
          style: simple
        - explode: true
          in: query
          name: externalAccountId
          required: true
          schema:
            type: string
          style: form
      responses:
        "204":
          content: {}
          description: No content
        default:
          $ref: "#/components/responses/Error"
      security:
        - private_apps_legacy: []
        - oauth2_legacy:
            - crm.objects.marketing_events.write
      tags:
        - Marketing_Events_External
    get:
      operationId: get-/marketing/v3/marketing-events/events/{externalEventId}_getById
      parameters:
        - explode: false
          in: path
          name: externalEventId
          required: true
          schema:
            type: string
          style: simple
        - explode: true
          in: query
          name: externalAccountId
          required: true
          schema:
            type: string
          style: form
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/MarketingEventPublicReadResponse"
          description: successful operation
        default:
          $ref: "#/components/responses/Error"
      security:
        - oauth2_legacy:
            - crm.objects.marketing_events.read
        - private_apps_legacy: []
      tags:
        - Marketing_Events_External
    patch:
      operationId: patch-/marketing/v3/marketing-events/events/{externalEventId}_update
      parameters:
        - explode: false
          in: path
          name: externalEventId
          required: true
          schema:
            type: string
          style: simple
        - explode: true
          in: query
          name: externalAccountId
          required: true
          schema:
            type: string
          style: form
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/MarketingEventUpdateRequestParams"
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/MarketingEventPublicDefaultResponse"
          description: successful operation
        default:
          $ref: "#/components/responses/Error"
      security:
        - private_apps_legacy: []
        - oauth2_legacy:
            - crm.objects.marketing_events.write
      tags:
        - Marketing_Events_External
    put:
      operationId: put-/marketing/v3/marketing-events/events/{externalEventId}_replace
      parameters:
        - explode: false
          in: path
          name: externalEventId
          required: true
          schema:
            type: string
          style: simple
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/MarketingEventCreateRequestParams"
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/MarketingEventPublicDefaultResponse"
          description: successful operation
        default:
          $ref: "#/components/responses/Error"
      security:
        - private_apps_legacy: []
        - oauth2_legacy:
            - crm.objects.marketing_events.write
      tags:
        - Marketing_Events_External
  "/marketing/v3/marketing-events/events/{externalEventId}/cancel":
    post:
      operationId: post-/marketing/v3/marketing-events/events/{externalEventId}/cancel_doCancel
      parameters:
        - explode: false
          in: path
          name: externalEventId
          required: true
          schema:
            type: string
          style: simple
        - explode: true
          in: query
          name: externalAccountId
          required: true
          schema:
            type: string
          style: form
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/MarketingEventDefaultResponse"
          description: successful operation
        default:
          $ref: "#/components/responses/Error"
      security:
        - private_apps_legacy: []
        - oauth2_legacy:
            - crm.objects.marketing_events.write
      tags:
        - Marketing_Events_External
  "/marketing/v3/marketing-events/events/{externalEventId}/complete":
    post:
      operationId: post-/marketing/v3/marketing-events/events/{externalEventId}/complete_complete
      parameters:
        - explode: false
          in: path
          name: externalEventId
          required: true
          schema:
            type: string
          style: simple
        - explode: true
          in: query
          name: externalAccountId
          required: true
          schema:
            type: string
          style: form
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/MarketingEventCompleteRequestParams"
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/MarketingEventDefaultResponse"
          description: successful operation
        default:
          $ref: "#/components/responses/Error"
      security:
        - private_apps_legacy: []
        - oauth2_legacy:
            - crm.objects.marketing_events.write
      tags:
        - Marketing_Events_External
  "/marketing/v3/marketing-events/events/{externalEventId}/{subscriberState}/email-upsert":
    post:
      operationId: post-/marketing/v3/marketing-events/events/{externalEventId}/{subscriberState}/email-upsert_doEmailUpsertById
      parameters:
        - explode: false
          in: path
          name: externalEventId
          required: true
          schema:
            type: string
          style: simple
        - explode: false
          in: path
          name: subscriberState
          required: true
          schema:
            type: string
          style: simple
        - explode: true
          in: query
          name: externalAccountId
          required: true
          schema:
            type: string
          style: form
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/BatchInputMarketingEventEmailSubscriber"
        required: true
      responses:
        default:
          $ref: "#/components/responses/Error"
      security:
        - private_apps_legacy: []
        - oauth2_legacy:
            - crm.objects.marketing_events.write
      tags:
        - Marketing_Events_External
  "/marketing/v3/marketing-events/events/{externalEventId}/{subscriberState}/upsert":
    post:
      operationId: post-/marketing/v3/marketing-events/events/{externalEventId}/{subscriberState}/upsert_doUpsertById
      parameters:
        - explode: false
          in: path
          name: externalEventId
          required: true
          schema:
            type: string
          style: simple
        - explode: false
          in: path
          name: subscriberState
          required: true
          schema:
            type: string
          style: simple
        - explode: true
          in: query
          name: externalAccountId
          required: true
          schema:
            type: string
          style: form
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/BatchInputMarketingEventSubscriber"
        required: true
      responses:
        default:
          $ref: "#/components/responses/Error"
      security:
        - private_apps_legacy: []
        - oauth2_legacy:
            - crm.objects.marketing_events.write
      tags:
        - Marketing_Events_External
  "/marketing/v3/marketing-events/{appId}/settings":
    get:
      operationId: get-/marketing/v3/marketing-events/{appId}/settings_getAll
      parameters:
        - explode: false
          in: path
          name: appId
          required: true
          schema:
            format: int32
            type: integer
          style: simple
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/EventDetailSettings"
          description: successful operation
        default:
          $ref: "#/components/responses/Error"
      security:
        - hapikey: []
        - developer_hapikey: []
      tags:
        - Settings_External
    post:
      operationId: post-/marketing/v3/marketing-events/{appId}/settings_create
      parameters:
        - explode: false
          in: path
          name: appId
          required: true
          schema:
            format: int32
            type: integer
          style: simple
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/EventDetailSettingsUrl"
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/EventDetailSettings"
          description: successful operation
        default:
          $ref: "#/components/responses/Error"
      security:
        - hapikey: []
        - developer_hapikey: []
      tags:
        - Settings_External
components:
  responses:
    Error:
      content:
        "*/*":
          schema:
            $ref: "#/components/schemas/Error"
      description: An error occurred.
  schemas:
    BatchInputMarketingEventCreateRequestParams:
      properties:
        inputs:
          items:
            $ref: "#/components/schemas/MarketingEventCreateRequestParams"
          type: array
      required:
        - inputs
      type: object
    BatchInputMarketingEventEmailSubscriber:
      description: List of marketing event details to create or update
      properties:
        inputs:
          description: List of marketing event details to create or update
          items:
            $ref: "#/components/schemas/MarketingEventEmailSubscriber"
          type: array
      required:
        - inputs
      type: object
    BatchInputMarketingEventExternalUniqueIdentifier:
      properties:
        inputs:
          items:
            $ref: "#/components/schemas/MarketingEventExternalUniqueIdentifier"
          type: array
      required:
        - inputs
      type: object
    BatchInputMarketingEventSubscriber:
      description: List of HubSpot contacts to subscribe to the marketing event
      properties:
        inputs:
          description: List of HubSpot contacts to subscribe to the marketing event
          items:
            $ref: "#/components/schemas/MarketingEventSubscriber"
          type: array
      required:
        - inputs
      type: object
    BatchResponseMarketingEventPublicDefaultResponse:
      properties:
        completedAt:
          format: date-time
          type: string
        errors:
          items:
            $ref: "#/components/schemas/StandardError"
          type: array
        links:
          additionalProperties:
            type: string
          type: object
        numErrors:
          format: int32
          type: integer
        requestedAt:
          format: date-time
          type: string
        results:
          items:
            $ref: "#/components/schemas/MarketingEventPublicDefaultResponse"
          type: array
        startedAt:
          format: date-time
          type: string
        status:
          enum:
            - PENDING
            - PROCESSING
            - CANCELED
            - COMPLETE
          type: string
      required:
        - completedAt
        - results
        - startedAt
        - status
      type: object
    BatchResponseSubscriberEmailResponse:
      properties:
        completedAt:
          format: date-time
          type: string
        errors:
          items:
            $ref: "#/components/schemas/StandardError"
          type: array
        links:
          additionalProperties:
            type: string
          type: object
        numErrors:
          format: int32
          type: integer
        requestedAt:
          format: date-time
          type: string
        results:
          items:
            $ref: "#/components/schemas/SubscriberEmailResponse"
          type: array
        startedAt:
          format: date-time
          type: string
        status:
          enum:
            - PENDING
            - PROCESSING
            - CANCELED
            - COMPLETE
          type: string
      required:
        - completedAt
        - results
        - startedAt
        - status
      type: object
    BatchResponseSubscriberVidResponse:
      properties:
        completedAt:
          format: date-time
          type: string
        errors:
          items:
            $ref: "#/components/schemas/StandardError"
          type: array
        links:
          additionalProperties:
            type: string
          type: object
        numErrors:
          format: int32
          type: integer
        requestedAt:
          format: date-time
          type: string
        results:
          items:
            $ref: "#/components/schemas/SubscriberVidResponse"
          type: array
        startedAt:
          format: date-time
          type: string
        status:
          enum:
            - PENDING
            - PROCESSING
            - CANCELED
            - COMPLETE
          type: string
      required:
        - completedAt
        - results
        - startedAt
        - status
      type: object
    CollectionResponseMarketingEventExternalUniqueIdentifierNoPaging:
      properties:
        results:
          items:
            $ref: "#/components/schemas/MarketingEventExternalUniqueIdentifier"
          type: array
      required:
        - results
      type: object
    Error:
      example:
        category: VALIDATION_ERROR
        correlationId: aeb5f871-7f07-4993-9211-075dc63e7cbf
        links:
          knowledge-base: https://www.hubspot.com/products/service/knowledge-base
        message: Invalid input (details will vary based on the error)
      properties:
        category:
          description: The error category
          type: string
        context:
          additionalProperties:
            items:
              type: string
            type: array
          description: Context about the error condition
          example:
            invalidPropertyName:
              - propertyValue
            missingScopes:
              - scope1
              - scope2
          type: object
        correlationId:
          description: A unique identifier for the request. Include this value with any error reports or support tickets
          example: aeb5f871-7f07-4993-9211-075dc63e7cbf
          format: uuid
          type: string
        errors:
          description: further information about the error
          items:
            $ref: "#/components/schemas/ErrorDetail"
          type: array
        links:
          additionalProperties:
            type: string
          description: A map of link names to associated URIs containing documentation about the error or recommended remediation steps
          type: object
        message:
          description: A human readable message describing the error along with remediation steps where appropriate
          example: An error occurred
          type: string
        subCategory:
          description: A specific category that contains more specific detail about the error
          type: string
      required:
        - category
        - correlationId
        - message
      type: object
    ErrorCategory:
      properties:
        httpStatus:
          enum:
            - CONTINUE
            - SWITCHING_PROTOCOLS
            - PROCESSING
            - OK
            - CREATED
            - ACCEPTED
            - NON_AUTHORITATIVE_INFORMATION
            - NO_CONTENT
            - RESET_CONTENT
            - PARTIAL_CONTENT
            - MULTI_STATUS
            - ALREADY_REPORTED
            - IM_USED
            - MULTIPLE_CHOICES
            - MOVED_PERMANENTLY
            - FOUND
            - SEE_OTHER
            - NOT_MODIFIED
            - USE_PROXY
            - TEMPORARY_REDIRECT
            - PERMANENT_REDIRECT
            - BAD_REQUEST
            - UNAUTHORIZED
            - PAYMENT_REQUIRED
            - FORBIDDEN
            - NOT_FOUND
            - METHOD_NOT_ALLOWED
            - NOT_ACCEPTABLE
            - PROXY_AUTHENTICATION_REQUIRED
            - REQUEST_TIMEOUT
            - CONFLICT
            - GONE
            - LENGTH_REQUIRED
            - PRECONDITION_FAILED
            - REQUEST_ENTITY_TOO_LARGE
            - REQUEST_URI_TOO_LONG
            - UNSUPPORTED_MEDIA_TYPE
            - REQUESTED_RANGE_NOT_SATISFIABLE
            - EXPECTATION_FAILED
            - IM_A_TEAPOT
            - MISDIRECTED_REQUEST
            - UNPROCESSABLE_ENTITY
            - LOCKED
            - FAILED_DEPENDENCY
            - UPGRADE_REQUIRED
            - PRECONDITION_REQUIRED
            - TOO_MANY_REQUESTS
            - REQUEST_HEADERS_FIELDS_TOO_LARGE
            - INTERNAL_STALE_SERVICE_DISCOVERY
            - UNAVAILABLE_FOR_LEGAL_REASONS
            - MIGRATION_IN_PROGRESS
            - INTERNAL_SERVER_ERROR
            - NOT_IMPLEMENTED
            - BAD_GATEWAY
            - SERVICE_UNAVAILABLE
            - GATEWAY_TIMEOUT
            - HTTP_VERSION_NOT_SUPPORTED
            - VARIANT_ALSO_NEGOTIATES
            - INSUFFICIENT_STORAGE
            - LOOP_DETECTED
            - NOT_EXTENDED
            - NETWORK_AUTHENTICATION_REQUIRED
          type: string
        name:
          type: string
      required:
        - httpStatus
        - name
      type: object
    ErrorDetail:
      properties:
        code:
          description: The status code associated with the error detail
          type: string
        context:
          additionalProperties:
            items:
              type: string
            type: array
          description: Context about the error condition
          example:
            missingScopes:
              - scope1
              - scope2
          type: object
        in:
          description: The name of the field or parameter in which the error was found.
          type: string
        message:
          description: A human readable message describing the error along with remediation steps where appropriate
          type: string
        subCategory:
          description: A specific category that contains more specific detail about the error
          type: string
      required:
        - message
      type: object
    EventDetailSettings:
      properties:
        appId:
          description: The id of the application the settings are for
          format: int32
          type: integer
        eventDetailsUrl:
          description: The url that will be used to fetch marketing event details by id
          type: string
      required:
        - appId
        - eventDetailsUrl
      type: object
    EventDetailSettingsUrl:
      properties:
        eventDetailsUrl:
          description: "The url that will be used to fetch marketing event details by id. Must contain a `%s` character sequence that will be substituted with the event id. For example: `https://my.event.app/events/%s`"
          type: string
      required:
        - eventDetailsUrl
      type: object
    MarketingEventCompleteRequestParams:
      properties:
        endDateTime:
          format: date-time
          type: string
        startDateTime:
          format: date-time
          type: string
      required:
        - endDateTime
        - startDateTime
      type: object
    MarketingEventCreateRequestParams:
      properties:
        customProperties:
          description: |
            A list of PropertyValues. These can be whatever kind of property names and values you want. However, they must already exist on the HubSpot account's definition of the MarketingEvent Object. If they don't they will be filtered out and not set.
            In order to do this you'll need to create a new PropertyGroup on the HubSpot account's MarketingEvent object for your specific app and create the Custom Property you want to track on that HubSpot account. Do not create any new default properties on the MarketingEvent object as that will apply to all HubSpot accounts.
          items:
            $ref: "#/components/schemas/PropertyValue"
          type: array
        endDateTime:
          description: The end date and time of the marketing event.
          format: date-time
          type: string
        eventCancelled:
          description: Indicates if the marketing event has been cancelled.  Defaults to `false`
          type: boolean
        eventDescription:
          description: The description of the marketing event.
          type: string
        eventName:
          description: The name of the marketing event.
          type: string
        eventOrganizer:
          description: The name of the organizer of the marketing event.
          type: string
        eventType:
          description: "Describes what type of event this is.  For example: `WEBINAR`, `CONFERENCE`, `WORKSHOP`"
          type: string
        eventUrl:
          description: A URL in the external event application where the marketing event can be managed.
          type: string
        externalAccountId:
          description: The accountId that is associated with this marketing event in the external event application.
          type: string
        externalEventId:
          description: The id of the marketing event in the external event application.
          type: string
        startDateTime:
          description: The start date and time of the marketing event.
          format: date-time
          type: string
      required:
        - eventName
        - eventOrganizer
        - externalAccountId
        - externalEventId
      type: object
    MarketingEventDefaultResponse:
      properties:
        customProperties:
          description: |
            A list of PropertyValues. These can be whatever kind of property names and values you want. However, they must already exist on the HubSpot account's definition of the MarketingEvent Object. If they don't they will be filtered out and not set.
            In order to do this you'll need to create a new PropertyGroup on the HubSpot account's MarketingEvent object for your specific app and create the Custom Property you want to track on that HubSpot account. Do not create any new default properties on the MarketingEvent object as that will apply to all HubSpot accounts.
          items:
            $ref: "#/components/schemas/PropertyValue"
          type: array
        endDateTime:
          description: The end date and time of the marketing event.
          format: date-time
          type: string
        eventCancelled:
          description: Indicates if the marketing event has been cancelled.
          type: boolean
        eventDescription:
          description: The description of the marketing event.
          type: string
        eventName:
          description: The name of the marketing event.
          type: string
        eventOrganizer:
          description: The name of the organizer of the marketing event.
          type: string
        eventType:
          description: The type of the marketing event.
          type: string
        eventUrl:
          description: The URL in the external event application where the marketing event can be managed.
          type: string
        startDateTime:
          description: The start date and time of the marketing event.
          format: date-time
          type: string
      required:
        - eventName
        - eventOrganizer
      type: object
    MarketingEventEmailSubscriber:
      properties:
        contactProperties:
          additionalProperties:
            type: string
          type: object
        email:
          description: The email address of the contact in HubSpot to associate with the event. Note that the contact must already exist in HubSpot; a contact will not be created.
          type: string
        interactionDateTime:
          description: The date and time at which the contact subscribed to the event.
          format: int64
          type: integer
        properties:
          additionalProperties:
            type: string
          type: object
      required:
        - email
        - interactionDateTime
      type: object
    MarketingEventExternalUniqueIdentifier:
      properties:
        appId:
          description: The id of the application that created the marketing event in HubSpot.
          format: int32
          type: integer
        externalAccountId:
          description: The accountId that is associated with this marketing event in the external event application.
          type: string
        externalEventId:
          description: The id of the marketing event in the external event application.
          type: string
      required:
        - appId
        - externalAccountId
        - externalEventId
      type: object
    MarketingEventPublicDefaultResponse:
      properties:
        createdAt:
          format: date-time
          type: string
        customProperties:
          description: |
            A list of PropertyValues. These can be whatever kind of property names and values you want. However, they must already exist on the HubSpot account's definition of the MarketingEvent Object. If they don't they will be filtered out and not set.
            In order to do this you'll need to create a new PropertyGroup on the HubSpot account's MarketingEvent object for your specific app and create the Custom Property you want to track on that HubSpot account. Do not create any new default properties on the MarketingEvent object as that will apply to all HubSpot accounts.
          items:
            $ref: "#/components/schemas/PropertyValue"
          type: array
        endDateTime:
          description: The end date and time of the marketing event.
          format: date-time
          type: string
        eventCancelled:
          description: Indicates if the marketing event has been cancelled.
          type: boolean
        eventDescription:
          description: The description of the marketing event.
          type: string
        eventName:
          description: The name of the marketing event.
          type: string
        eventOrganizer:
          description: The name of the organizer of the marketing event.
          type: string
        eventType:
          description: The type of the marketing event.
          type: string
        eventUrl:
          description: A URL in the external event application where the marketing event can be managed.
          type: string
        id:
          type: string
        startDateTime:
          description: The start date and time of the marketing event.
          format: date-time
          type: string
        updatedAt:
          format: date-time
          type: string
      required:
        - createdAt
        - eventName
        - eventOrganizer
        - id
        - updatedAt
      type: object
    MarketingEventPublicReadResponse:
      properties:
        attendees:
          description: The number of HubSpot contacts that attended this marketing event.
          format: int32
          type: integer
        cancellations:
          description: The number of HubSpot contacts that registered for this marketing event, but later cancelled their registration.
          format: int32
          type: integer
        createdAt:
          format: date-time
          type: string
        customProperties:
          description: |
            A list of PropertyValues. These can be whatever kind of property names and values you want. However, they must already exist on the HubSpot account's definition of the MarketingEvent Object. If they don't they will be filtered out and not set.
            In order to do this you'll need to create a new PropertyGroup on the HubSpot account's MarketingEvent object for your specific app and create the Custom Property you want to track on that HubSpot account. Do not create any new default properties on the MarketingEvent object as that will apply to all HubSpot accounts.
          items:
            $ref: "#/components/schemas/PropertyValue"
          type: array
        endDateTime:
          description: The end date and time of the marketing event.
          format: date-time
          type: string
        eventCancelled:
          description: Indicates if the marketing event has been cancelled.
          type: boolean
        eventDescription:
          description: The description of the marketing event.
          type: string
        eventName:
          description: The name of the marketing event.
          type: string
        eventOrganizer:
          description: The name of the organizer of the marketing event.
          type: string
        eventType:
          description: The type of the marketing event.
          type: string
        eventUrl:
          description: A URL in the external event application where the marketing event can be managed.
          type: string
        externalEventId:
          description: The id of the marketing event in the external event application.
          type: string
        id:
          type: string
        noShows:
          description: The number of HubSpot contacts that registered for this marketing event, but did not attend. This field only had a value when the event is over.
          format: int32
          type: integer
        registrants:
          description: The number of HubSpot contacts that registered for this marketing event.
          format: int32
          type: integer
        startDateTime:
          description: The start date and time of the marketing event.
          format: date-time
          type: string
        updatedAt:
          format: date-time
          type: string
      required:
        - attendees
        - cancellations
        - createdAt
        - eventName
        - eventOrganizer
        - externalEventId
        - id
        - noShows
        - registrants
        - updatedAt
      type: object
    MarketingEventSubscriber:
      properties:
        interactionDateTime:
          description: The date and time at which the contact subscribed to the event.
          format: int64
          type: integer
        properties:
          additionalProperties:
            type: string
          type: object
        vid:
          format: int32
          type: integer
      required:
        - interactionDateTime
      type: object
    MarketingEventUpdateRequestParams:
      properties:
        customProperties:
          description: |
            A list of PropertyValues. These can be whatever kind of property names and values you want. However, they must already exist on the HubSpot account's definition of the MarketingEvent Object. If they don't they will be filtered out and not set.
            In order to do this you'll need to create a new PropertyGroup on the HubSpot account's MarketingEvent object for your specific app and create the Custom Property you want to track on that HubSpot account. Do not create any new default properties on the MarketingEvent object as that will apply to all HubSpot accounts.
          items:
            $ref: "#/components/schemas/PropertyValue"
          type: array
        endDateTime:
          description: The end date and time of the marketing event.
          format: date-time
          type: string
        eventCancelled:
          description: Indicates if the marketing event has been cancelled. Defaults to `false`
          type: boolean
        eventDescription:
          description: The description of the marketing event.
          type: string
        eventName:
          description: The name of the marketing event.
          type: string
        eventOrganizer:
          description: The name of the organizer of the marketing event.
          type: string
        eventType:
          description: "Describes what type of event this is.  For example: `WEBINAR`, `CONFERENCE`, `WORKSHOP`"
          type: string
        eventUrl:
          description: A URL in the external event application where the marketing event can be managed.
          type: string
        startDateTime:
          description: The start date and time of the marketing event.
          format: date-time
          type: string
      type: object
    PropertyValue:
      properties:
        name:
          type: string
        persistenceTimestamp:
          format: int64
          type: integer
        requestId:
          type: string
        selectedByUser:
          type: boolean
        selectedByUserTimestamp:
          format: int64
          type: integer
        source:
          enum:
            - IMPORT
            - API
            - FORM
            - ANALYTICS
            - MIGRATION
            - SALESFORCE
            - INTEGRATION
            - CONTACTS_WEB
            - WAL_INCREMENTAL
            - TASK
            - EMAIL
            - WORKFLOWS
            - CALCULATED
            - SOCIAL
            - BATCH_UPDATE
            - SIGNALS
            - BIDEN
            - DEFAULT
            - COMPANIES
            - DEALS
            - ASSISTS
            - PRESENTATIONS
            - TALLY
            - SIDEKICK
            - CRM_UI
            - MERGE_CONTACTS
            - PORTAL_USER_ASSOCIATOR
            - INTEGRATIONS_PLATFORM
            - BCC_TO_CRM
            - FORWARD_TO_CRM
            - ENGAGEMENTS
            - SALES
            - HEISENBERG
            - LEADIN
            - GMAIL_INTEGRATION
            - ACADEMY
            - SALES_MESSAGES
            - AVATARS_SERVICE
            - MERGE_COMPANIES
            - SEQUENCES
            - COMPANY_FAMILIES
            - MOBILE_IOS
            - MOBILE_ANDROID
            - CONTACTS
            - ASSOCIATIONS
            - EXTENSION
            - SUCCESS
            - BOT
            - INTEGRATIONS_SYNC
            - AUTOMATION_PLATFORM
            - CONVERSATIONS
            - EMAIL_INTEGRATION
            - CONTENT_MEMBERSHIP
            - QUOTES
            - BET_ASSIGNMENT
            - QUOTAS
            - BET_CRM_CONNECTOR
            - MEETINGS
            - MERGE_OBJECTS
            - RECYCLING_BIN
            - ADS
            - AI_GROUP
            - COMMUNICATOR
            - SETTINGS
            - PROPERTY_SETTINGS
            - PIPELINE_SETTINGS
            - COMPANY_INSIGHTS
            - BEHAVIORAL_EVENTS
            - PAYMENTS
            - GOALS
            - PORTAL_OBJECT_SYNC
            - APPROVALS
            - FILE_MANAGER
            - MARKETPLACE
            - INTERNAL_PROCESSING
            - FORECASTING
            - SLACK_INTEGRATION
            - CRM_UI_BULK_ACTION
            - WORKFLOW_CONTACT_DELETE_ACTION
          type: string
        sourceId:
          type: string
        sourceLabel:
          type: string
        sourceMetadata:
          description: "Source metadata encoded as a base64 string. For example: `ZXhhbXBsZSBzdHJpbmc=`"
          type: string
        sourceVid:
          items:
            format: int64
            type: integer
          type: array
        timestamp:
          format: int64
          type: integer
        updatedByUserId:
          format: int32
          type: integer
        useTimestampAsPersistenceTimestamp:
          type: boolean
        value:
          type: string
      required:
        - name
        - requestId
        - selectedByUser
        - selectedByUserTimestamp
        - source
        - sourceId
        - sourceLabel
        - sourceMetadata
        - sourceVid
        - timestamp
        - value
      type: object
    StandardError:
      properties:
        category:
          $ref: "#/components/schemas/ErrorCategory"
        context:
          additionalProperties:
            items:
              type: string
            type: array
          type: object
        errors:
          items:
            $ref: "#/components/schemas/ErrorDetail"
          type: array
        id:
          type: string
        links:
          additionalProperties:
            type: string
          type: object
        message:
          type: string
        status:
          type: string
        subCategory:
          properties: {}
          type: object
      required:
        - category
        - context
        - errors
        - links
        - message
        - status
      type: object
    SubscriberEmailResponse:
      properties:
        email:
          type: string
        vid:
          format: int32
          type: integer
      required:
        - email
        - vid
      type: object
    SubscriberVidResponse:
      properties:
        vid:
          format: int32
          type: integer
      required:
        - vid
      type: object
  securitySchemes:
    developer_hapikey:
      in: query
      name: hapikey
      type: apiKey
    hapikey:
      in: query
      name: hapikey
      type: apiKey
    oauth2_legacy:
      flows:
        authorizationCode:
          authorizationUrl: https://app.hubspot.com/oauth/authorize
          scopes:
            crm.objects.marketing_events.read: Read marketing events
            crm.objects.marketing_events.write: Write marketing events
          tokenUrl: https://api.hubapi.com/oauth/v1/token
      type: oauth2
    private_apps_legacy:
      in: header
      name: private-app-legacy
      type: apiKey
x-hubspot-available-client-libraries:
  - PHP
  - Node
  - Python
  - Ruby
