> ## Documentation Index
> Fetch the complete documentation index at: https://developers.hubspot.com/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# List properties

> Retrieve a list of properties for a specified object type in your HubSpot account. This endpoint allows you to filter results based on archived status and control pagination through query parameters. It is useful for obtaining metadata about object properties, such as their labels, types, and other attributes.

> [accordion] Supported products

> [accordion] Scope requirements


## OpenAPI

````yaml specs/2027-03-beta/crm-unified-schemas-v2027-03-beta.json GET /crm/schemas/2027-03-beta/objects/{objectTypeId}/properties
openapi: 3.0.1
info:
  title: CRM Unified Schemas
  description: Basepom for all HubSpot Projects
  version: 2027-03-beta
  x-hubspot-product-tier-requirements:
    marketing: FREE
    sales: FREE
    service: FREE
    cms: FREE
    commerce: FREE
    crmHub: FREE
    dataHub: FREE
servers:
  - url: https://api.hubapi.com
security: []
tags:
  - name: Basic
  - name: Batch
paths:
  /crm/schemas/2027-03-beta/objects/{objectTypeId}/properties:
    get:
      tags:
        - Basic
      summary: List properties
      description: >-
        Retrieve a list of properties for a specified object type in your
        HubSpot account. This endpoint allows you to filter results based on
        archived status and control pagination through query parameters. It is
        useful for obtaining metadata about object properties, such as their
        labels, types, and other attributes.
      operationId: get-/crm/schemas/2027-03-beta/objects/{objectTypeId}/properties
      parameters:
        - name: objectTypeId
          in: path
          description: >-
            The unique identifier of the object type whose properties are being
            retrieved.
          required: true
          style: simple
          explode: false
          schema:
            type: string
        - name: after
          in: query
          description: >-
            A paging cursor token for pagination. Use the value from the
            previous response's paging.next.after field to retrieve the next set
            of results.
          required: false
          style: form
          explode: true
          schema:
            type: string
        - name: archived
          in: query
          description: >-
            Whether to return only results that have been archived. Defaults to
            false.
          required: false
          style: form
          explode: true
          schema:
            type: boolean
            default: false
        - name: fields
          in: query
          description: >-
            A list of specific fields to include in the response. Possible
            values include category, label, type, fieldType, and more.
          required: false
          style: form
          explode: true
          schema:
            type: array
            items:
              type: string
              enum:
                - category
                - label
                - type
                - fieldType
                - groupName
                - description
                - options
                - createdAt
                - updatedAt
                - hidden
                - readOnlyValue
                - readOnlyDefinition
                - hasUniqueValue
                - archivable
                - readOnlyOptions
                - calculationFormula
                - archived
                - calculated
                - optionsSource
                - dateDisplayFormat
                - numberDisplayFormat
                - currencyPropertyName
                - updatedByUserId
                - createdByUserId
                - dataEntryInstructions
                - optionColors
                - accessAllowlist
                - dataSensitivity
                - defaultValue
                - formField
                - sensitiveDataCategories
                - validationRules
                - rollupConfig
                - syncConfig
        - name: limit
          in: query
          description: The maximum number of results to display per page. Defaults to 25.
          required: false
          style: form
          explode: true
          schema:
            type: integer
            format: int32
            default: 25
      responses:
        '200':
          description: successful operation
          content:
            application/json:
              schema:
                $ref: >-
                  #/components/schemas/CollectionResponsePublicApiPropertyForwardPaging
        default:
          $ref: '#/components/responses/Error'
          description: ''
      security:
        - oauth2:
            - crm.schemas.contracts.read
        - oauth2:
            - crm.objects.owners.read
        - oauth2:
            - crm.objects.deals.read
        - oauth2:
            - crm.objects.services.read
        - oauth2:
            - crm.objects.subscriptions.read
        - oauth2:
            - crm.objects.tickets.sensitive.read
        - oauth2:
            - crm.objects.listings.write
        - oauth2:
            - crm.objects.custom.read
        - oauth2:
            - crm.schemas.tickets.read
        - oauth2:
            - crm.objects.custom.sensitive.write.v2
        - oauth2:
            - crm.objects.tasks.read
        - oauth2:
            - crm.objects.custom.highly_sensitive.write.v2
        - oauth2:
            - crm.schemas.quotes.read
        - oauth2:
            - crm.objects.companies.read
        - oauth2:
            - crm.objects.tickets.highly_sensitive.read
        - oauth2:
            - crm.objects.companies.sensitive.read.v2
        - oauth2:
            - media_bridge.read
        - oauth2:
            - crm.objects.deals.highly_sensitive.read.v2
        - oauth2:
            - crm.objects.contracts.read
        - oauth2:
            - crm.objects.companies.highly_sensitive.read.v2
        - oauth2:
            - crm.objects.contacts.sensitive.write.v2
        - oauth2:
            - crm.objects.calls.read
        - oauth2:
            - crm.objects.meetings.read
        - oauth2:
            - crm.schemas.services.read
        - oauth2:
            - crm.schemas.line_items.read
        - oauth2:
            - crm.schemas.subscriptions.read
        - oauth2:
            - crm.objects.projects.highly_sensitive.write
        - oauth2:
            - crm.schemas.companies.read
        - oauth2:
            - crm.objects.tasks.write
        - oauth2:
            - cpq.price_books.write
        - oauth2:
            - crm.objects.feedback_submissions.read
        - oauth2:
            - crm.objects.products.write
        - oauth2:
            - crm.objects.services.write
        - oauth2:
            - crm.objects.subscriptions.write
        - oauth2:
            - crm.schemas.calls.read
        - oauth2:
            - crm.schemas.meetings.read
        - oauth2:
            - crm.objects.contacts.read
        - oauth2:
            - crm.objects.invoices.read
        - oauth2:
            - crm.schemas.orders.read
        - oauth2:
            - crm.schemas.emails.read
        - oauth2:
            - crm.schemas.deals.read
        - oauth2:
            - crm.objects.deals.write
        - oauth2:
            - e-commerce
        - oauth2:
            - crm.schemas.notes.read
        - oauth2:
            - crm.objects.companies.sensitive.write.v2
        - oauth2:
            - crm.objects.projects.read
        - oauth2:
            - crm.objects.custom.highly_sensitive.read.v2
        - oauth2:
            - crm.objects.goals.write
        - oauth2:
            - crm.objects.line_items.write
        - oauth2:
            - crm.objects.contacts.write
        - oauth2:
            - crm.objects.goals.read
        - oauth2:
            - crm.objects.line_items.read
        - oauth2:
            - crm.objects.deals.sensitive.read.v2
        - oauth2:
            - crm.objects.projects.sensitive.write
        - oauth2:
            - crm.objects.quotes.write
        - oauth2:
            - crm.schemas.contacts.read
        - oauth2:
            - tickets.highly_sensitive.v2
        - oauth2:
            - crm.objects.leads.read
        - oauth2:
            - crm.objects.leads.write
        - oauth2:
            - crm.schemas.tasks.read
        - oauth2:
            - crm.objects.emails.read
        - oauth2:
            - crm.schemas.invoices.read
        - oauth2:
            - crm.objects.quotes.read
        - oauth2:
            - crm.schemas.forecasts.read
        - oauth2:
            - crm.objects.courses.read
        - oauth2:
            - crm.objects.notes.read
        - oauth2:
            - crm.objects.marketing_events.read
        - oauth2:
            - crm.pipelines.orders.read
        - oauth2:
            - crm.objects.contacts.sensitive.read.v2
        - oauth2:
            - crm.objects.tickets.write
        - oauth2:
            - crm.schemas.projects.read
        - oauth2:
            - crm.objects.tickets.read
        - oauth2:
            - crm.objects.orders.read
        - oauth2:
            - automation
        - oauth2:
            - crm.objects.companies.write
        - oauth2:
            - crm.schemas.carts.read
        - oauth2:
            - cpq.quotes.write
        - oauth2:
            - crm.schemas.listings.read
        - oauth2:
            - crm.objects.appointments.sensitive.read.v2
        - oauth2:
            - crm.objects.contacts.highly_sensitive.read.v2
        - oauth2:
            - crm.objects.forecasts.read
        - oauth2:
            - crm.objects.contacts.highly_sensitive.write.v2
        - oauth2:
            - crm.objects.commercepayments.write
        - oauth2:
            - crm.objects.invoices.write
        - oauth2:
            - crm.objects.custom.sensitive.read.v2
        - oauth2:
            - crm.objects.users.read
        - oauth2:
            - crm.objects.appointments.write
        - oauth2:
            - crm.objects.emails.write
        - oauth2:
            - crm.objects.deals.sensitive.write.v2
        - oauth2:
            - cpq.quotes.read
        - oauth2:
            - crm.objects.appointments.sensitive.write.v2
        - oauth2:
            - cpq.price_books.read
        - oauth2:
            - crm.objects.meetings.write
        - oauth2:
            - crm.objects.projects.highly_sensitive.read
        - oauth2:
            - crm.schemas.appointments.read
        - oauth2:
            - crm.objects.custom.write
        - oauth2:
            - crm.objects.notes.write
        - oauth2:
            - tickets.sensitive.v2
        - oauth2:
            - crm.objects.appointments.read
        - oauth2:
            - crm.schemas.courses.read
        - oauth2:
            - crm.objects.companies.highly_sensitive.write.v2
        - oauth2:
            - crm.objects.deals.highly_sensitive.write.v2
        - oauth2:
            - crm.objects.calls.write
        - oauth2:
            - crm.objects.projects.sensitive.read
        - oauth2:
            - crm.pipelines.approval.read
        - oauth2:
            - workflows.write
        - oauth2:
            - crm.objects.marketing_events.write
        - oauth2:
            - crm.objects.projects.write
        - oauth2:
            - crm.schemas.custom.read
        - oauth2:
            - workflows.read
        - oauth2:
            - crm.objects.carts.read
        - oauth2:
            - crm.objects.courses.write
        - oauth2:
            - crm.objects.listings.read
        - oauth2:
            - crm.schemas.commercepayments.read
components:
  schemas:
    CollectionResponsePublicApiPropertyForwardPaging:
      required:
        - results
      type: object
      properties:
        paging:
          $ref: '#/components/schemas/ForwardPaging'
        results:
          type: array
          description: >-
            An array of PublicApiProperty objects, representing the properties
            retrieved in the current page of results.
          items:
            $ref: '#/components/schemas/PublicApiProperty'
    ForwardPaging:
      type: object
      properties:
        next:
          $ref: '#/components/schemas/NextPage'
    PublicApiProperty:
      required:
        - category
        - fieldType
        - name
        - type
      type: object
      properties:
        accessAllowlist:
          type: array
          description: >-
            An array of access control entries defining who can view or edit the
            property.
          items:
            $ref: '#/components/schemas/PublicAccessAllowlistEntry'
        archivable:
          type: boolean
          description: A boolean indicating if the property can be archived.
        archived:
          type: boolean
          description: A boolean indicating whether the property is archived.
        calculated:
          type: boolean
          description: A boolean indicating if the property is calculated.
        calculationFormula:
          type: string
          description: >-
            The formula used for calculating the property's value, if
            applicable.
        category:
          type: string
          description: >-
            Indicates the origin of the property, with possible values being
            'HUBSPOT_DEFINED', 'INTEGRATION_DEFINED', or 'USER_DEFINED'.
          enum:
            - HUBSPOT_DEFINED
            - INTEGRATION_DEFINED
            - USER_DEFINED
        createdAt:
          type: string
          description: >-
            The date and time when the property was created, in ISO 8601
            date-time format.
          format: date-time
        createdByUserId:
          type: string
          description: The ID of the user who created the property.
        currencyPropertyName:
          type: string
          description: >-
            The name of the currency property associated with this property, if
            applicable.
        dataEntryInstructions:
          type: string
          description: >-
            Instructions for data entry related to the property, represented as
            a string.
        dataSensitivity:
          type: string
          description: >-
            Indicates the sensitivity level of the data, with possible values
            being 'NONE', 'STANDARD', or 'HIGH'.
          enum:
            - HIGH
            - NONE
            - STANDARD
        dateDisplayFormat:
          type: string
          description: >-
            The format used to display date values, with options such as
            'ABSOLUTE', 'ABSOLUTE_WITH_RELATIVE', 'TIME_SINCE', or 'TIME_UNTIL'.
          enum:
            - ABSOLUTE
            - ABSOLUTE_WITH_RELATIVE
            - TIME_SINCE
            - TIME_UNTIL
        defaultValue:
          type: string
          description: The default value assigned to the property, represented as a string.
        description:
          type: string
          description: A string providing a description of the property.
        fieldType:
          type: string
          description: >-
            Defines the field type of the property, with options including
            'BOOLEANCHECKBOX', 'CALCULATION_EQUATION', 'CALCULATION_READ_TIME',
            'CALCULATION_ROLLUP', 'CALCULATION_SCORE', 'CHECKBOX', 'DATE',
            'EMAIL', 'FILE', 'HTML', 'NUMBER', 'PHONE_NUMBER', 'RADIO',
            'SELECT', 'TEXT', 'TEXTAREA', 'UNKNOWN', or 'URL'.
          enum:
            - BOOLEANCHECKBOX
            - CALCULATION_EQUATION
            - CALCULATION_READ_TIME
            - CALCULATION_ROLLUP
            - CALCULATION_SCORE
            - CHECKBOX
            - DATE
            - EMAIL
            - FILE
            - HTML
            - NUMBER
            - PHONE_NUMBER
            - RADIO
            - SELECT
            - TEXT
            - TEXTAREA
            - UNKNOWN
            - URL
        formField:
          type: boolean
          description: A boolean indicating if the property is used as a form field.
        groupName:
          type: string
          description: The name of the group to which the property belongs.
        hasUniqueValue:
          type: boolean
          description: >-
            A boolean indicating if the property must have a unique value across
            records.
        hidden:
          type: boolean
          description: A boolean indicating if the property is hidden.
        label:
          type: string
          description: The label of the property, used for display purposes.
        name:
          type: string
          description: The unique name of the property, represented as a string.
        numberDisplayFormat:
          type: string
          description: >-
            The format used to display number values, with options such as
            'UNFORMATTED', 'FORMATTED', 'CURRENCY', 'PERCENTAGE', 'DURATION', or
            'PROBABILITY'.
          enum:
            - CURRENCY
            - DURATION
            - FORMATTED
            - PERCENTAGE
            - PROBABILITY
            - UNFORMATTED
        optionColors:
          type: array
          description: >-
            An array of colors associated with the property's options, used for
            visual representation.
          items:
            $ref: '#/components/schemas/OptionDecoratorColor'
        options:
          type: array
          description: >-
            An array of options available for the property, applicable if the
            property type is an enumeration.
          items:
            $ref: '#/components/schemas/Option'
        optionsSource:
          type: string
          description: >-
            The source of the property's options, with possible values being
            'OWNER', 'PERSONA', or 'CALL_DISPOSITION'.
          enum:
            - CALL_DISPOSITION
            - OWNER
            - PERSONA
        readOnlyDefinition:
          type: boolean
          description: A boolean indicating if the property's definition is read-only.
        readOnlyOptions:
          type: boolean
          description: A boolean indicating if the property's options are read-only.
        readOnlyValue:
          type: boolean
          description: A boolean indicating if the property's value is read-only.
        rollupConfig:
          $ref: '#/components/schemas/RollupPropertyConfiguration'
        sensitiveDataCategories:
          type: array
          description: >-
            An array of strings representing categories of sensitive data
            associated with the property.
          items:
            type: string
        syncConfig:
          $ref: '#/components/schemas/SyncPropertyConfiguration'
        type:
          type: string
          description: >-
            Specifies the data type of the property, such as 'BOOL',
            'CURRENCY_NUMBER', 'DATE', 'DATETIME', 'ENUMERATION', 'JSON',
            'NUMBER', 'OBJECT_COORDINATES', 'PHONE_NUMBER', 'STRING', or
            'TIME_RANGE'.
          enum:
            - BOOL
            - CURRENCY_NUMBER
            - DATE
            - DATETIME
            - ENUMERATION
            - JSON
            - NUMBER
            - OBJECT_COORDINATES
            - PHONE_NUMBER
            - STRING
            - TIME_RANGE
        updatedAt:
          type: string
          description: >-
            The date and time when the property was last updated, in ISO 8601
            date-time format.
          format: date-time
        updatedByUserId:
          type: string
          description: The ID of the user who last updated the property.
        validationRules:
          type: array
          description: An array of validation rules applied to the property.
          items:
            $ref: '#/components/schemas/ValidationRule'
    Error:
      required:
        - category
        - correlationId
        - message
      type: object
      properties:
        category:
          type: string
          description: The error category.
        context:
          type: object
          additionalProperties:
            type: array
            items:
              type: string
          description: >-
            Context about the error condition, represented as an object with
            additional properties.
          example: >-
            {invalidPropertyName=[propertyValue], missingScopes=[scope1,
            scope2]}
        correlationId:
          type: string
          description: >-
            A unique identifier for the request. Include this value with any
            error reports or support tickets.
          format: uuid
          example: aeb5f871-7f07-4993-9211-075dc63e7cbf
        errors:
          type: array
          description: >-
            Further information about the error, represented as an array of
            ErrorDetail objects.
          items:
            $ref: '#/components/schemas/ErrorDetail'
        links:
          type: object
          additionalProperties:
            type: string
          description: >-
            A map of link names to associated URIs containing documentation
            about the error or recommended remediation steps.
        message:
          type: string
          description: >-
            A human readable message describing the error along with remediation
            steps where appropriate.
          example: An error occurred
        subCategory:
          type: string
          description: >-
            A specific category that contains more specific detail about the
            error.
      example:
        message: Invalid input (details will vary based on the error)
        correlationId: aeb5f871-7f07-4993-9211-075dc63e7cbf
        category: VALIDATION_ERROR
        links:
          knowledge-base: https://www.hubspot.com/products/service/knowledge-base
    NextPage:
      required:
        - after
      type: object
      properties:
        after:
          type: string
          description: >-
            A string token used as a cursor to indicate the position after the
            last successfully read resource, allowing the retrieval of the next
            page of results.
        link:
          type: string
          description: >-
            A string representing the URL link to the next page of results,
            facilitating navigation to additional data.
      description: >-
        Specifies the paging information needed to retrieve the next set of
        results in a paginated API response
    PublicAccessAllowlistEntry:
      required:
        - accessType
        - entityId
        - entityType
      type: object
      properties:
        accessType:
          type: string
          description: The type of access granted, which can be either 'EDIT' or 'VIEW'.
          enum:
            - EDIT
            - VIEW
        entityId:
          type: string
          description: The unique identifier of the entity to which the access is granted.
        entityType:
          type: string
          description: >-
            The type of entity that the access is granted to, which can be
            'ALL', 'TEAM', 'USER', or 'ADMIN'.
          enum:
            - ADMIN
            - ALL
            - TEAM
            - USER
    OptionDecoratorColor:
      required:
        - color
        - optionName
      type: object
      properties:
        color:
          type: string
          description: >-
            The color assigned to the option, represented as a string. Valid
            values include 'BLACK', 'BLUE', 'BLUE_LIGHT', 'GRAY', 'GREEN',
            'GREEN_LIGHT', 'ORANGE', 'ORANGE_LIGHT', 'PINK', 'PINK_LIGHT',
            'PURPLE', 'PURPLE_LIGHT', 'RED', 'RED_LIGHT', 'TEAL', 'TEAL_LIGHT',
            'YELLOW', and 'YELLOW_LIGHT'.
          enum:
            - BLACK
            - BLUE
            - BLUE_LIGHT
            - GRAY
            - GREEN
            - GREEN_LIGHT
            - ORANGE
            - ORANGE_LIGHT
            - PINK
            - PINK_LIGHT
            - PURPLE
            - PURPLE_LIGHT
            - RED
            - RED_LIGHT
            - TEAL
            - TEAL_LIGHT
            - YELLOW
            - YELLOW_LIGHT
        optionName:
          type: string
          description: >-
            The name of the option to which the color decoration is applied. It
            is a string.
    Option:
      type: object
      properties:
        description:
          type: string
          description: A string providing additional information about the option.
        displayOrder:
          type: integer
          description: >-
            An integer representing the order in which the option should be
            displayed relative to other options.
          format: int32
        hidden:
          type: boolean
          description: >-
            A boolean indicating whether the option is hidden from the user
            interface.
        label:
          type: string
          description: The display name of the option, shown to users.
        value:
          type: string
          description: >-
            The internal value associated with the option, used for data storage
            and retrieval.
      description: A HubSpot property option
    RollupPropertyConfiguration:
      required:
        - associatedRecordProperty
        - associatedRecordType
        - associationSpec
        - rollupType
      type: object
      properties:
        associatedRecordProperty:
          type: string
          description: >-
            The specific property of the associated record that is used in the
            rollup calculation, represented as a string.
        associatedRecordType:
          type: string
          description: >-
            The type of the record associated with this rollup property,
            represented as a string.
        associationSpec:
          $ref: '#/components/schemas/PublicAssociationSpec'
        conditionalFormula:
          type: string
          description: >-
            A string representing a conditional formula that determines when the
            rollup calculation should be applied.
        rollupType:
          type: string
          description: >-
            The type of rollup calculation to perform. Valid values include
            'MIN', 'MAX', 'AVG', 'COUNT', 'SUM', 'EARLIEST_DATE', and
            'LATEST_DATE'.
          enum:
            - AVG
            - COUNT
            - EARLIEST_DATE
            - LATEST_DATE
            - MAX
            - MIN
            - SUM
    SyncPropertyConfiguration:
      required:
        - associatedRecordProperty
        - associatedRecordType
        - associationSpec
        - syncPreference
      type: object
      properties:
        associatedRecordProperty:
          type: string
          description: >-
            The specific property of the associated record that is involved in
            the synchronization. It is a string value.
        associatedRecordType:
          type: string
          description: >-
            The type of record that is associated with the property being
            synchronized. It is a string value.
        associationSpec:
          $ref: '#/components/schemas/PublicAssociationSpec'
        syncPreference:
          type: string
          description: >-
            The preference for synchronization, determining which value should
            be prioritized. Valid values include 'FIRST_CREATED',
            'MOST_RECENTLY_CREATED', and 'SYNC_VALUE'.
          enum:
            - FIRST_CREATED
            - MOST_RECENTLY_CREATED
            - SYNC_VALUE
    ValidationRule:
      required:
        - ruleArguments
        - ruleType
      type: object
      properties:
        ruleArguments:
          type: array
          description: >-
            An array of strings that provide additional parameters or
            constraints required by the validation rule specified in 'ruleType'.
          items:
            type: string
        ruleType:
          type: string
          description: >-
            A string indicating the type of validation rule to apply. Valid
            values include 'FORMAT', 'ALPHANUMERIC', 'MAX_LENGTH', 'MIN_LENGTH',
            'MIN_NUMBER', 'MAX_NUMBER', 'START_DATE', 'END_DATE',
            'SPECIAL_CHARACTERS', 'WHITESPACE', 'DECIMAL', 'BEFORE_DURATION',
            'AFTER_DURATION', 'DAYS_OF_WEEK', 'REGEX', 'START_DATETIME',
            'END_DATETIME', 'BEFORE_DATETIME_DURATION',
            'AFTER_DATETIME_DURATION',
            'PHONE_NUMBER_WITH_EXPLICIT_COUNTRY_CODE', 'URL',
            'URL_ALLOWED_DOMAINS', 'URL_BLOCKED_DOMAINS', 'EMAIL',
            'EMAIL_ALLOWED_DOMAINS', 'EMAIL_BLOCKED_DOMAINS', and 'DOMAIN'.
          enum:
            - AFTER_DATETIME_DURATION
            - AFTER_DURATION
            - ALPHANUMERIC
            - BEFORE_DATETIME_DURATION
            - BEFORE_DURATION
            - DAYS_OF_WEEK
            - DECIMAL
            - DOMAIN
            - EMAIL
            - EMAIL_ALLOWED_DOMAINS
            - EMAIL_BLOCKED_DOMAINS
            - END_DATE
            - END_DATETIME
            - FORMAT
            - MAX_LENGTH
            - MAX_NUMBER
            - MIN_LENGTH
            - MIN_NUMBER
            - PHONE_NUMBER_WITH_EXPLICIT_COUNTRY_CODE
            - REGEX
            - SPECIAL_CHARACTERS
            - START_DATE
            - START_DATETIME
            - URL
            - URL_ALLOWED_DOMAINS
            - URL_BLOCKED_DOMAINS
            - WHITESPACE
        shouldApplyNormalization:
          type: boolean
          description: >-
            A boolean indicating whether normalization should be applied to the
            property value before validation.
    ErrorDetail:
      required:
        - message
      type: object
      properties:
        code:
          type: string
          description: The status code associated with the error detail.
        context:
          type: object
          additionalProperties:
            type: array
            items:
              type: string
          description: >-
            Context about the error condition, represented as an object with
            additional properties.
          example: '{missingScopes=[scope1, scope2]}'
        in:
          type: string
          description: The name of the field or parameter in which the error was found.
        message:
          type: string
          description: >-
            A human readable message describing the error along with remediation
            steps where appropriate.
        subCategory:
          type: string
          description: >-
            A specific category that contains more specific detail about the
            error.
    PublicAssociationSpec:
      required:
        - category
        - typeId
      type: object
      properties:
        category:
          type: string
          description: >-
            A string indicating the category of the association. Valid values
            include 'HUBSPOT_DEFINED', 'USER_DEFINED', and 'INTEGRATOR_DEFINED'.
          enum:
            - HUBSPOT_DEFINED
            - INTEGRATOR_DEFINED
            - USER_DEFINED
        typeId:
          type: integer
          description: >-
            An integer representing the unique identifier for the type of
            association.
          format: int32
  responses:
    Error:
      description: An error occurred.
      content:
        '*/*':
          schema:
            $ref: '#/components/schemas/Error'
  securitySchemes:
    oauth2:
      type: oauth2
      flows:
        authorizationCode:
          authorizationUrl: https://app.hubspot.com/oauth/authorize
          tokenUrl: https://api.hubapi.com/oauth/v1/token
          scopes:
            automation: ''
            cpq.price_books.read: ''
            cpq.price_books.write: ''
            cpq.quotes.read: ''
            cpq.quotes.write: ''
            crm.objects.appointments.read: ''
            crm.objects.appointments.sensitive.read.v2: ''
            crm.objects.appointments.sensitive.write.v2: ''
            crm.objects.appointments.write: ''
            crm.objects.calls.read: ''
            crm.objects.calls.write: ''
            crm.objects.carts.read: ''
            crm.objects.carts.write: ''
            crm.objects.commercepayments.write: ''
            crm.objects.companies.highly_sensitive.read.v2: ''
            crm.objects.companies.highly_sensitive.write.v2: ''
            crm.objects.companies.read: ''
            crm.objects.companies.sensitive.read.v2: ''
            crm.objects.companies.sensitive.write.v2: ''
            crm.objects.companies.write: ''
            crm.objects.contacts.highly_sensitive.read.v2: ''
            crm.objects.contacts.highly_sensitive.write.v2: ''
            crm.objects.contacts.read: ''
            crm.objects.contacts.sensitive.read.v2: ''
            crm.objects.contacts.sensitive.write.v2: ''
            crm.objects.contacts.write: ''
            crm.objects.contracts.read: ''
            crm.objects.courses.read: ''
            crm.objects.courses.write: ''
            crm.objects.custom.highly_sensitive.read.v2: ''
            crm.objects.custom.highly_sensitive.write.v2: ''
            crm.objects.custom.read: ''
            crm.objects.custom.sensitive.read.v2: ''
            crm.objects.custom.sensitive.write.v2: ''
            crm.objects.custom.write: ''
            crm.objects.deals.highly_sensitive.read.v2: ''
            crm.objects.deals.highly_sensitive.write.v2: ''
            crm.objects.deals.read: ''
            crm.objects.deals.sensitive.read.v2: ''
            crm.objects.deals.sensitive.write.v2: ''
            crm.objects.deals.write: ''
            crm.objects.emails.read: ''
            crm.objects.emails.write: ''
            crm.objects.feedback_submissions.read: ''
            crm.objects.forecasts.read: ''
            crm.objects.goals.read: ''
            crm.objects.goals.write: ''
            crm.objects.invoices.read: ''
            crm.objects.invoices.write: ''
            crm.objects.leads.read: ''
            crm.objects.leads.write: ''
            crm.objects.line_items.read: ''
            crm.objects.line_items.write: ''
            crm.objects.listings.read: ''
            crm.objects.listings.write: ''
            crm.objects.marketing_events.read: ''
            crm.objects.marketing_events.write: ''
            crm.objects.meetings.read: ''
            crm.objects.meetings.write: ''
            crm.objects.notes.read: ''
            crm.objects.notes.write: ''
            crm.objects.orders.read: ''
            crm.objects.orders.write: ''
            crm.objects.owners.read: ''
            crm.objects.products.write: ''
            crm.objects.projects.highly_sensitive.read: ''
            crm.objects.projects.highly_sensitive.write: ''
            crm.objects.projects.read: ''
            crm.objects.projects.sensitive.read: ''
            crm.objects.projects.sensitive.write: ''
            crm.objects.projects.write: ''
            crm.objects.quotes.read: ''
            crm.objects.quotes.write: ''
            crm.objects.services.read: ''
            crm.objects.services.write: ''
            crm.objects.subscriptions.read: ''
            crm.objects.subscriptions.write: ''
            crm.objects.tasks.read: ''
            crm.objects.tasks.write: ''
            crm.objects.tickets.highly_sensitive.read: ''
            crm.objects.tickets.highly_sensitive.write: ''
            crm.objects.tickets.read: ''
            crm.objects.tickets.sensitive.read: ''
            crm.objects.tickets.sensitive.write: ''
            crm.objects.tickets.write: ''
            crm.objects.users.read: ''
            crm.objects.users.write: ''
            crm.pipelines.approval.read: ''
            crm.pipelines.orders.read: ''
            crm.pipelines.orders.write: ''
            crm.schemas.appointments.read: ''
            crm.schemas.appointments.write: ''
            crm.schemas.calls.read: ''
            crm.schemas.calls.write: ''
            crm.schemas.carts.read: ''
            crm.schemas.carts.write: ''
            crm.schemas.commercepayments.read: ''
            crm.schemas.commercepayments.write: ''
            crm.schemas.companies.read: ''
            crm.schemas.companies.write: ''
            crm.schemas.contacts.read: ''
            crm.schemas.contacts.write: ''
            crm.schemas.contracts.read: ''
            crm.schemas.contracts.write: ''
            crm.schemas.courses.read: ''
            crm.schemas.courses.write: ''
            crm.schemas.custom.read: ''
            crm.schemas.custom.write: ''
            crm.schemas.deals.read: ''
            crm.schemas.deals.write: ''
            crm.schemas.emails.read: ''
            crm.schemas.emails.write: ''
            crm.schemas.forecasts.read: ''
            crm.schemas.invoices.read: ''
            crm.schemas.invoices.write: ''
            crm.schemas.line_items.read: ''
            crm.schemas.listings.read: ''
            crm.schemas.listings.write: ''
            crm.schemas.meetings.read: ''
            crm.schemas.meetings.write: ''
            crm.schemas.notes.read: ''
            crm.schemas.notes.write: ''
            crm.schemas.orders.read: ''
            crm.schemas.orders.write: ''
            crm.schemas.projects.read: ''
            crm.schemas.projects.write: ''
            crm.schemas.quotes.read: ''
            crm.schemas.quotes.write: ''
            crm.schemas.services.read: ''
            crm.schemas.services.write: ''
            crm.schemas.subscriptions.read: ''
            crm.schemas.subscriptions.write: ''
            crm.schemas.tasks.read: ''
            crm.schemas.tasks.write: ''
            crm.schemas.tickets.read: ''
            crm.schemas.tickets.write: ''
            e-commerce: ''
            media_bridge.read: ''
            tickets.highly_sensitive.v2: ''
            tickets.sensitive.v2: ''
            workflows.read: ''
            workflows.write: ''
      x-hubspot-app-availability:
        automation:
          portal:
            - public
            - private
          developer: false
        cpq.price_books.read:
          portal:
            - public
            - private
          user:
            - public
            - private
          developer: false
        cpq.price_books.write:
          portal:
            - public
            - private
          developer: false
        cpq.quotes.read:
          portal:
            - public
          user:
            - public
          developer: false
        cpq.quotes.write:
          portal:
            - public
          user:
            - public
          developer: false
        crm.objects.appointments.read:
          portal:
            - public
            - private
          user:
            - public
            - private
          developer: false
        crm.objects.appointments.sensitive.read.v2:
          portal:
            - private
          developer: false
        crm.objects.appointments.sensitive.write.v2:
          portal:
            - private
          developer: false
        crm.objects.appointments.write:
          portal:
            - public
            - private
          user:
            - public
            - private
          developer: false
        crm.objects.calls.read:
          user:
            - public
            - private
          developer: false
        crm.objects.calls.write:
          user:
            - public
            - private
          developer: false
        crm.objects.carts.read:
          portal:
            - public
            - private
          user:
            - public
            - private
          developer: false
        crm.objects.carts.write:
          portal:
            - public
            - private
          user:
            - public
            - private
          developer: false
        crm.objects.commercepayments.write:
          portal:
            - public
            - private
          user:
            - public
            - private
          developer: false
        crm.objects.companies.highly_sensitive.read.v2:
          portal:
            - private
          developer: false
        crm.objects.companies.highly_sensitive.write.v2:
          portal:
            - private
          developer: false
        crm.objects.companies.read:
          portal:
            - public
            - private
          user:
            - public
            - private
          developer: true
        crm.objects.companies.sensitive.read.v2:
          portal:
            - private
          developer: false
        crm.objects.companies.sensitive.write.v2:
          portal:
            - private
          developer: false
        crm.objects.companies.write:
          portal:
            - public
            - private
          user:
            - public
            - private
          developer: false
        crm.objects.contacts.highly_sensitive.read.v2:
          portal:
            - private
          developer: false
        crm.objects.contacts.highly_sensitive.write.v2:
          portal:
            - private
          developer: false
        crm.objects.contacts.read:
          portal:
            - public
            - private
          user:
            - public
            - private
          developer: true
        crm.objects.contacts.sensitive.read.v2:
          portal:
            - private
          developer: false
        crm.objects.contacts.sensitive.write.v2:
          portal:
            - private
          developer: false
        crm.objects.contacts.write:
          portal:
            - public
            - private
          user:
            - public
            - private
          developer: false
        crm.objects.contracts.read:
          portal:
            - public
            - private
          user:
            - public
            - private
          developer: false
        crm.objects.courses.read:
          portal:
            - public
            - private
          user:
            - public
            - private
          developer: false
        crm.objects.courses.write:
          portal:
            - public
            - private
          user:
            - public
            - private
          developer: false
        crm.objects.custom.highly_sensitive.read.v2:
          portal:
            - private
          developer: false
        crm.objects.custom.highly_sensitive.write.v2:
          portal:
            - private
          developer: false
        crm.objects.custom.read:
          portal:
            - public
            - private
          user:
            - public
            - private
          developer: true
        crm.objects.custom.sensitive.read.v2:
          portal:
            - private
          developer: false
        crm.objects.custom.sensitive.write.v2:
          portal:
            - private
          developer: false
        crm.objects.custom.write:
          portal:
            - public
            - private
          user:
            - public
            - private
          developer: true
        crm.objects.deals.highly_sensitive.read.v2:
          portal:
            - private
          developer: false
        crm.objects.deals.highly_sensitive.write.v2:
          portal:
            - private
          developer: false
        crm.objects.deals.read:
          portal:
            - public
            - private
          user:
            - public
            - private
          developer: true
        crm.objects.deals.sensitive.read.v2:
          portal:
            - private
          developer: false
        crm.objects.deals.sensitive.write.v2:
          portal:
            - private
          developer: false
        crm.objects.deals.write:
          portal:
            - public
            - private
          user:
            - public
            - private
          developer: false
        crm.objects.emails.read:
          user:
            - public
            - private
          developer: false
        crm.objects.emails.write:
          user:
            - public
            - private
          developer: false
        crm.objects.feedback_submissions.read:
          portal:
            - public
            - private
          user:
            - public
            - private
          developer: false
        crm.objects.forecasts.read:
          portal:
            - public
            - private
          user:
            - public
            - private
          developer: false
        crm.objects.goals.read:
          portal:
            - public
            - private
          user:
            - public
            - private
          developer: false
        crm.objects.goals.write:
          portal:
            - public
            - private
          user:
            - public
            - private
          developer: false
        crm.objects.invoices.read:
          portal:
            - public
            - private
          user:
            - public
            - private
          developer: false
        crm.objects.invoices.write:
          portal:
            - public
            - private
          user:
            - public
            - private
          developer: false
        crm.objects.leads.read:
          portal:
            - public
            - private
          user:
            - public
            - private
          developer: false
        crm.objects.leads.write:
          portal:
            - public
            - private
          user:
            - public
            - private
          developer: false
        crm.objects.line_items.read:
          portal:
            - public
            - private
          user:
            - public
            - private
          developer: false
        crm.objects.line_items.write:
          portal:
            - public
            - private
          user:
            - public
            - private
          developer: false
        crm.objects.listings.read:
          portal:
            - public
            - private
          user:
            - public
            - private
          developer: false
        crm.objects.listings.write:
          portal:
            - public
            - private
          user:
            - public
            - private
          developer: false
        crm.objects.marketing_events.read:
          portal:
            - public
            - private
          user:
            - public
            - private
          developer: false
        crm.objects.marketing_events.write:
          portal:
            - public
            - private
          user:
            - public
            - private
          developer: false
        crm.objects.meetings.read:
          user:
            - public
            - private
          developer: false
        crm.objects.meetings.write:
          user:
            - public
            - private
          developer: false
        crm.objects.notes.read:
          user:
            - public
            - private
          developer: false
        crm.objects.notes.write:
          user:
            - public
            - private
          developer: false
        crm.objects.orders.read:
          portal:
            - public
            - private
          user:
            - public
            - private
          developer: false
        crm.objects.orders.write:
          portal:
            - public
            - private
          user:
            - public
            - private
          developer: false
        crm.objects.owners.read:
          portal:
            - public
            - private
          user:
            - public
            - private
          developer: true
        crm.objects.products.write:
          portal:
            - public
            - private
          user:
            - public
            - private
          developer: false
        crm.objects.projects.highly_sensitive.read:
          portal:
            - private
          developer: false
        crm.objects.projects.highly_sensitive.write:
          portal:
            - private
          developer: false
        crm.objects.projects.read:
          portal:
            - public
            - private
          user:
            - public
            - private
          developer: false
        crm.objects.projects.sensitive.read:
          portal:
            - private
          developer: false
        crm.objects.projects.sensitive.write:
          portal:
            - private
          developer: false
        crm.objects.projects.write:
          portal:
            - public
            - private
          user:
            - public
            - private
          developer: false
        crm.objects.quotes.read:
          portal:
            - public
            - private
          user:
            - public
            - private
          developer: false
        crm.objects.quotes.write:
          portal:
            - public
            - private
          developer: false
        crm.objects.services.read:
          portal:
            - public
            - private
          user:
            - public
            - private
          developer: false
        crm.objects.services.write:
          portal:
            - public
            - private
          user:
            - public
            - private
          developer: false
        crm.objects.subscriptions.read:
          portal:
            - public
            - private
          user:
            - public
            - private
          developer: false
        crm.objects.subscriptions.write:
          portal:
            - public
            - private
          user:
            - public
            - private
          developer: false
        crm.objects.tasks.read:
          user:
            - public
            - private
          developer: false
        crm.objects.tasks.write:
          user:
            - public
            - private
          developer: false
        crm.objects.tickets.highly_sensitive.read:
          user:
            - public
            - private
          developer: false
        crm.objects.tickets.highly_sensitive.write:
          user:
            - public
            - private
          developer: false
        crm.objects.tickets.read:
          portal:
            - public
            - private
          user:
            - public
            - private
          developer: false
        crm.objects.tickets.sensitive.read:
          user:
            - public
            - private
          developer: false
        crm.objects.tickets.sensitive.write:
          user:
            - public
            - private
          developer: false
        crm.objects.tickets.write:
          portal:
            - public
            - private
          user:
            - public
            - private
          developer: false
        crm.objects.users.read:
          portal:
            - public
            - private
          developer: false
        crm.objects.users.write:
          portal:
            - public
            - private
          developer: false
        crm.pipelines.approval.read:
          portal:
            - public
            - private
          developer: false
        crm.pipelines.orders.read:
          portal:
            - public
            - private
          developer: false
        crm.pipelines.orders.write:
          portal:
            - public
            - private
          developer: false
        crm.schemas.appointments.read:
          portal:
            - public
            - private
          developer: false
        crm.schemas.appointments.write:
          portal:
            - public
            - private
          user:
            - public
            - private
          developer: false
        crm.schemas.calls.read:
          user:
            - public
            - private
          developer: false
        crm.schemas.calls.write:
          user:
            - public
            - private
          developer: false
        crm.schemas.carts.read:
          portal:
            - public
            - private
          user:
            - public
            - private
          developer: false
        crm.schemas.carts.write:
          portal:
            - public
            - private
          user:
            - public
            - private
          developer: false
        crm.schemas.commercepayments.read:
          portal:
            - public
            - private
          user:
            - public
            - private
          developer: false
        crm.schemas.commercepayments.write:
          portal:
            - public
            - private
          user:
            - public
            - private
          developer: false
        crm.schemas.companies.read:
          portal:
            - public
            - private
          user:
            - public
            - private
          developer: true
        crm.schemas.companies.write:
          portal:
            - public
            - private
          user:
            - public
            - private
          developer: false
        crm.schemas.contacts.read:
          portal:
            - public
            - private
          user:
            - public
            - private
          developer: true
        crm.schemas.contacts.write:
          portal:
            - public
            - private
          user:
            - public
            - private
          developer: false
        crm.schemas.contracts.read:
          portal:
            - public
            - private
          user:
            - public
            - private
          developer: false
        crm.schemas.contracts.write:
          user:
            - public
            - private
          developer: false
        crm.schemas.courses.read:
          portal:
            - public
            - private
          user:
            - public
            - private
          developer: false
        crm.schemas.courses.write:
          portal:
            - public
            - private
          user:
            - public
            - private
          developer: false
        crm.schemas.custom.read:
          portal:
            - public
            - private
          user:
            - public
            - private
          developer: true
        crm.schemas.custom.write:
          portal:
            - public
            - private
          user:
            - public
            - private
          developer: true
        crm.schemas.deals.read:
          portal:
            - public
            - private
          user:
            - public
            - private
          developer: true
        crm.schemas.deals.write:
          portal:
            - public
            - private
          user:
            - public
            - private
          developer: false
        crm.schemas.emails.read:
          user:
            - public
            - private
          developer: false
        crm.schemas.emails.write:
          user:
            - public
            - private
          developer: false
        crm.schemas.forecasts.read:
          portal:
            - public
            - private
          user:
            - public
            - private
          developer: false
        crm.schemas.invoices.read:
          portal:
            - public
            - private
          user:
            - public
            - private
          developer: false
        crm.schemas.invoices.write:
          portal:
            - public
            - private
          user:
            - public
            - private
          developer: false
        crm.schemas.line_items.read:
          portal:
            - public
            - private
          user:
            - public
            - private
          developer: false
        crm.schemas.listings.read:
          portal:
            - public
            - private
          user:
            - public
            - private
          developer: false
        crm.schemas.listings.write:
          portal:
            - public
            - private
          user:
            - public
            - private
          developer: false
        crm.schemas.meetings.read:
          user:
            - public
            - private
          developer: false
        crm.schemas.meetings.write:
          user:
            - public
            - private
          developer: false
        crm.schemas.notes.read:
          user:
            - public
            - private
          developer: false
        crm.schemas.notes.write:
          user:
            - public
            - private
          developer: false
        crm.schemas.orders.read:
          portal:
            - public
            - private
          user:
            - public
            - private
          developer: false
        crm.schemas.orders.write:
          portal:
            - public
            - private
          user:
            - public
            - private
          developer: false
        crm.schemas.projects.read:
          portal:
            - public
            - private
          user:
            - public
            - private
          developer: false
        crm.schemas.projects.write:
          portal:
            - public
            - private
          user:
            - public
            - private
          developer: false
        crm.schemas.quotes.read:
          portal:
            - public
            - private
          user:
            - public
            - private
          developer: false
        crm.schemas.quotes.write:
          portal:
            - public
            - private
          user:
            - public
            - private
          developer: false
        crm.schemas.services.read:
          portal:
            - public
            - private
          user:
            - public
            - private
          developer: false
        crm.schemas.services.write:
          portal:
            - public
            - private
          user:
            - public
            - private
          developer: false
        crm.schemas.subscriptions.read:
          portal:
            - public
            - private
          developer: false
        crm.schemas.subscriptions.write:
          portal:
            - public
            - private
          developer: false
        crm.schemas.tasks.read:
          user:
            - public
            - private
          developer: false
        crm.schemas.tasks.write:
          user:
            - public
            - private
          developer: false
        crm.schemas.tickets.read:
          portal:
            - public
            - private
          user:
            - public
            - private
          developer: false
        crm.schemas.tickets.write:
          portal:
            - public
            - private
          user:
            - public
            - private
          developer: false
        e-commerce:
          portal:
            - public
            - private
          developer: false
        media_bridge.read:
          portal:
            - public
            - private
          developer: false
        tickets.highly_sensitive.v2:
          portal:
            - private
          developer: false
        tickets.sensitive.v2:
          portal:
            - private
          developer: false
        workflows.read:
          user:
            - public
            - private
          developer: false
        workflows.write:
          user:
            - public
            - private
          developer: false

````