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
  version: v3
  x-hubspot-api-use-case: You have an external system that handles registration for your webinars and you want to ensure that attendee data and behavior is synced with your HubSpot CRM.
  x-hubspot-documentation-banner: NONE
  x-hubspot-introduction: The marketing events API allows you to build a custom integration that will sync event and registration data with your HubSpot account.The marketing events API allows you to build a custom integration that will sync event and registration data with your HubSpot account.
  x-hubspot-product-tier-requirements:
    cms: STARTER
    marketing: FREE
  x-hubspot-related-documentation:
    - name: Marketing Events Guide
      url: https://hubspot.dev/guides/api/marketing/marketing-events
  x-logo:
    url: 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: ""
    name: Batch
    x-hubspot-tag-name-english-source: Batch
  - description: ""
    name: Attendance Subscriber State Changes
    x-hubspot-tag-name-english-source: Attendance Subscriber State Changes
  - description: ""
    name: Subscriber State Changes
    x-hubspot-tag-name-english-source: Subscriber State Changes
  - description: ""
    name: Marketing_Events_External
    x-hubspot-tag-name-english-source: Marketing_Events_External
  - description: ""
    name: Basic
    x-hubspot-tag-name-english-source: Basic
  - description: ""
    name: Settings
    x-hubspot-tag-name-english-source: Settings
  - description: ""
    name: Search
    x-hubspot-tag-name-english-source: Search
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.
      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:
      description: Creates a new marketing event in HubSpot
      operationId: post-/marketing/v3/marketing-events/events_create
      parameters: []
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/MarketingEventCreateRequestParams"
        description: The details of the marketing event to create
        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
      summary: Create a marketing event
      tags:
        - Basic
  /marketing/v3/marketing-events/events/delete:
    post:
      description: Bulk delete a number of marketing events in HubSpot
      operationId: post-/marketing/v3/marketing-events/events/delete_archive
      parameters: []
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/BatchInputMarketingEventExternalUniqueIdentifier"
        description: The details of the marketing events to delete
        required: true
      responses:
        default:
          $ref: "#/components/responses/Error"
      security:
        - private_apps_legacy: []
        - oauth2_legacy:
            - crm.objects.marketing_events.write
      summary: Delete multiple marketing events
      tags:
        - Batch
  /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:
      description: Upset multiple Marketing Event. If there is an existing Marketing event with the specified id, it will be updated; otherwise a new event will be created.
      operationId: post-/marketing/v3/marketing-events/events/upsert_doUpsert
      parameters: []
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/BatchInputMarketingEventCreateRequestParams"
        description: The details of the marketing events to upsert
        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
      summary: Create or update multiple marketing events
      tags:
        - Batch
  /marketing/v3/marketing-events/events/{externalEventId}:
    delete:
      description: Deletes an existing Marketing Event with the specified id, if one exists.
      operationId: delete-/marketing/v3/marketing-events/events/{externalEventId}_archive
      parameters:
        - description: The id of the marketing event to delete
          explode: false
          in: path
          name: externalEventId
          required: true
          schema:
            type: string
          style: simple
        - description: The account id associated with the marketing event
          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
      summary: Delete a marketing event
      tags:
        - Basic
    get:
      description: Returns the details of the Marketing Event with the specified id, if one exists.
      operationId: get-/marketing/v3/marketing-events/events/{externalEventId}_getById
      parameters:
        - description: The id of the marketing event to return
          explode: false
          in: path
          name: externalEventId
          required: true
          schema:
            type: string
          style: simple
        - description: The account id associated with the marketing event
          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: []
      summary: Get a marketing event
      tags:
        - Basic
    patch:
      description: Updates an existing Marketing Event with the specified id, if one exists.
      operationId: patch-/marketing/v3/marketing-events/events/{externalEventId}_update
      parameters:
        - description: The id of the marketing event to update
          explode: false
          in: path
          name: externalEventId
          required: true
          schema:
            type: string
          style: simple
        - description: The account id associated with the marketing event
          explode: true
          in: query
          name: externalAccountId
          required: true
          schema:
            type: string
          style: form
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/MarketingEventUpdateRequestParams"
        description: The details of the marketing event to update
        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
      summary: Update a marketing event
      tags:
        - Basic
    put:
      description: Upsets a Marketing Event. If there is an existing Marketing event with the specified id, it will be updated; otherwise a new event will be created.
      operationId: put-/marketing/v3/marketing-events/events/{externalEventId}_replace
      parameters:
        - description: The id of the marketing event to upsert
          explode: false
          in: path
          name: externalEventId
          required: true
          schema:
            type: string
          style: simple
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/MarketingEventCreateRequestParams"
        description: The details of the marketing event to upsert
        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
      summary: Create or update a marketing event
      tags:
        - Basic
  /marketing/v3/marketing-events/events/{externalEventId}/cancel:
    post:
      description: Mark a marketing event as cancelled.
      operationId: post-/marketing/v3/marketing-events/events/{externalEventId}/cancel_doCancel
      parameters:
        - description: The id of the marketing event to mark as cancelled
          explode: false
          in: path
          name: externalEventId
          required: true
          schema:
            type: string
          style: simple
        - description: The account id associated with the marketing event
          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
      summary: Mark a marketing event as cancelled
      tags:
        - Basic
  /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:
      description: Record a subscription state between multiple HubSpot contacts and a marketing event, using contact email addresses. Note that the contact must already exist in HubSpot; a contact will not be created.
      operationId: post-/marketing/v3/marketing-events/events/{externalEventId}/{subscriberState}/email-upsert_doEmailUpsertById
      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
          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: true
          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
        required: true
      responses:
        default:
          $ref: "#/components/responses/Error"
      security:
        - private_apps_legacy: []
        - oauth2_legacy:
            - crm.objects.marketing_events.write
      summary: Record
      tags:
        - Subscriber State Changes
  /marketing/v3/marketing-events/events/{externalEventId}/{subscriberState}/upsert:
    post:
      description: Record a subscription state between multiple HubSpot contacts and a marketing event, using HubSpot contact ids. Note that the contact must already exist in HubSpot; a contact will not be create.
      operationId: post-/marketing/v3/marketing-events/events/{externalEventId}/{subscriberState}/upsert_doUpsertById
      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
          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: true
          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
        required: true
      responses:
        default:
          $ref: "#/components/responses/Error"
      security:
        - private_apps_legacy: []
        - oauth2_legacy:
            - crm.objects.marketing_events.write
      summary: Record
      tags:
        - Subscriber State Changes
  /marketing/v3/marketing-events/{appId}/settings:
    get:
      description: Retrieve the current settings for the application.
      operationId: get-/marketing/v3/marketing-events/{appId}/settings_getAll
      parameters:
        - description: The id of the application to retrieve the settings for.
          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:
        - developer_hapikey: []
      summary: Retrieve the application settings
      tags:
        - Settings
    post:
      description: Create or update the current settings for the application.
      operationId: post-/marketing/v3/marketing-events/{appId}/settings_create
      parameters:
        - description: The id of the application to update the settings for.
          explode: false
          in: path
          name: appId
          required: true
          schema:
            format: int32
            type: integer
          style: simple
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/EventDetailSettingsUrl"
        description: The new application settings
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/EventDetailSettings"
          description: successful operation
        default:
          $ref: "#/components/responses/Error"
      security:
        - developer_hapikey: []
      summary: Update the application settings
      tags:
        - Settings
components:
  responses:
    Error:
      content:
        "*/*":
          schema:
            $ref: "#/components/schemas/Error"
      description: An error occurred.
  schemas:
    BatchInputMarketingEventCreateRequestParams:
      properties:
        inputs:
          description: ""
          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:
          description: ""
          format: date-time
          type: string
        errors:
          description: ""
          items:
            $ref: "#/components/schemas/StandardError"
          type: array
        links:
          additionalProperties:
            type: string
          description: ""
          type: object
        numErrors:
          description: ""
          format: int32
          type: integer
        requestedAt:
          description: ""
          format: date-time
          type: string
        results:
          description: ""
          items:
            $ref: "#/components/schemas/MarketingEventPublicDefaultResponse"
          type: array
        startedAt:
          description: ""
          format: date-time
          type: string
        status:
          description: ""
          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
          example: VALIDATION_ERROR
          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
          example:
            knowledge-base: https://www.hubspot.com/products/service/knowledge-base
          type: object
        message:
          description: A human readable message describing the error along with remediation steps where appropriate
          example: Invalid input (details will vary based on the error)
          type: string
        subCategory:
          description: A specific category that contains more specific detail about the error
          type: string
      required:
        - category
        - correlationId
        - message
      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.
          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:
          description: ""
          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:
          description: ""
          type: string
        startDateTime:
          description: The start date and time of the marketing event.
          format: date-time
          type: string
        updatedAt:
          description: ""
          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:
          description: ""
          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:
          description: ""
          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:
          description: ""
          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:
        isLargeValue:
          type: boolean
        name:
          description: ""
          type: string
        persistenceTimestamp:
          format: int64
          type: integer
        requestId:
          description: ""
          type: string
        selectedByUser:
          description: ""
          type: boolean
        selectedByUserTimestamp:
          description: ""
          format: int64
          type: integer
        source:
          description: ""
          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:
          description: ""
          type: string
        sourceLabel:
          description: ""
          type: string
        sourceMetadata:
          description: "Source metadata encoded as a base64 string. For example: `ZXhhbXBsZSBzdHJpbmc=`"
          type: string
        sourceVid:
          description: ""
          items:
            format: int64
            type: integer
          type: array
        timestamp:
          description: ""
          format: int64
          type: integer
        updatedByUserId:
          format: int32
          type: integer
        useTimestampAsPersistenceTimestamp:
          type: boolean
        value:
          description: ""
          type: string
      required:
        - name
        - requestId
        - selectedByUser
        - selectedByUserTimestamp
        - source
        - sourceId
        - sourceLabel
        - sourceMetadata
        - sourceVid
        - timestamp
        - value
      type: object
    StandardError:
      properties:
        category:
          description: ""
          type: string
        context:
          additionalProperties:
            items:
              type: string
            type: array
          description: ""
          type: object
        errors:
          description: ""
          items:
            $ref: "#/components/schemas/ErrorDetail"
          type: array
        id:
          description: ""
          type: string
        links:
          additionalProperties:
            type: string
          description: ""
          type: object
        message:
          description: ""
          type: string
        status:
          description: ""
          type: string
        subCategory:
          description: ""
          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
    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
  - Ruby
  - Python
x-hubspot-documentation-banner: NONE
x-hubspot-product-tier-requirements:
  cms: STARTER
  marketing: FREE
