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

# Publish a message

> Publish a message over your custom channel

export const ScopesList = ({scopes = [], description = "Cette API requiert l'une des portées suivantes :"}) => {
  if (!scopes || scopes.length === 0) {
    return null;
  }
  const sortedScopes = scopes.sort((a, b) => a.localeCompare(b));
  return <div>
      <div className="text-sm mb-2">{description}</div>
      <div>
        {sortedScopes.map((scope, index) => <div key={index}>
            <code>
              <span className="text-xs">{scope}</span>
            </code>
          </div>)}
      </div>
    </div>;
};

export const SupportedProducts = ({marketing, sales, service, cms, marketingLevel, salesLevel, serviceLevel, cmsLevel}) => {
  const translations = {
    header: "Produits pris en charge",
    description: "Exige l'un des produits suivants ou un produit supérieur.",
    productNames: {
      marketing: "Marketing Hub",
      sales: "Sales Hub",
      service: "Service Hub",
      cms: "Content Hub"
    },
    tiers: {
      free: "Gratuit",
      starter: "Starter",
      professional: "Pro",
      enterprise: "Entreprise"
    }
  };
  const translateTier = tier => {
    if (!tier) return '';
    const lowerTier = tier.toLowerCase();
    return translations.tiers[lowerTier] || tier;
  };
  const products = [{
    name: marketing ? translations.productNames.marketing : '',
    level: translateTier(marketingLevel),
    icon: "https://mintlify-assets.b-cdn.net/Icons/marketing-bolt.svg",
    alt: "Marketing Hub"
  }, {
    name: sales ? translations.productNames.sales : '',
    level: translateTier(salesLevel),
    icon: "https://mintlify-assets.b-cdn.net/Icons/sales-star.svg",
    alt: "Sales Hub"
  }, {
    name: service ? translations.productNames.service : '',
    level: translateTier(serviceLevel),
    icon: "https://mintlify-assets.b-cdn.net/Icons/service-heart.svg",
    alt: "Service Hub"
  }, {
    name: cms ? translations.productNames.cms : '',
    level: translateTier(cmsLevel),
    icon: "https://mintlify-assets.b-cdn.net/Icons/content-play.svg",
    alt: "Content Hub"
  }].filter(product => product.name && product.level);
  if (products.length === 0) return null;
  return <div>
      <div className="text-sm mb-2">{translations.description}</div>
      <div className={`grid ${products.length === 1 ? 'grid-cols-1' : 'grid-cols-2'} gap-1.5`}>
        {products.map((product, index) => <div key={index} style={{
    display: 'flex',
    alignItems: 'center'
  }}>
            <img src={product.icon} alt={product.alt} className="w-3.5 h-3.5 mr-1.5 mt-2.5 mb-2.5 flex-shrink-0 align-middle" />
            <span className="font-medium mr-1 text-sm">{product.name} -</span>
            <span className="text-sm">{product.level}</span>
          </div>)}
      </div>
    </div>;
};

<AccordionGroup>
  <Accordion title="Supported products" defaultOpen="true" icon="cubes">
    <SupportedProducts marketing={true} sales={true} service={true} cms={true} marketingLevel="FREE" salesLevel="PROFESSIONAL" serviceLevel="PROFESSIONAL" cmsLevel="FREE" />
  </Accordion>

  <Accordion title="Required Scopes" icon="key">
    <ScopesList
      scopes={[
  'conversations.custom_channels.write'
]}
    />
  </Accordion>
</AccordionGroup>


## OpenAPI

````yaml specs/legacy/v3/conversations-custom-channels-v3.json POST /conversations/v3/custom-channels/{channelId}/messages
openapi: 3.0.1
info:
  title: Conversations Custom Channels
  description: Basepom for all HubSpot Projects
  version: v3
  x-hubspot-product-tier-requirements:
    marketing: FREE
    sales: PROFESSIONAL
    service: PROFESSIONAL
    cms: FREE
    commerce: FREE
    crmHub: FREE
    dataHub: FREE
  x-hubspot-api-use-case: >-
    Allow admins to install an integration with a third-party messaging channel
    that your team uses to communicate with customers, to allow users in your
    account to manage their conversations for that channel directly in HubSpot.
  x-hubspot-related-documentation:
    - name: Custom Channels Guide
      url: >-
        https://developers.hubspot.com/docs/guides/api/conversations/create-custom-channels
  x-hubspot-introduction: >-
    Use the custom channels API to create custom channels to build a bridge
    between an external message service and HubSpot's inbox or help desk
    features. 
servers:
  - url: https://api.hubapi.com
security: []
tags:
  - name: Basic
  - name: Channel accounts
  - name: Channels
  - name: Messages
paths:
  /conversations/v3/custom-channels/{channelId}/messages:
    post:
      tags:
        - Messages
      summary: Publish a message
      description: Publish a message over your custom channel
      operationId: post-/conversations/v3/custom-channels/{channelId}/messages
      parameters:
        - name: channelId
          in: path
          description: The ID of the channel.
          required: true
          style: simple
          explode: false
          schema:
            type: integer
            format: int32
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ChannelIntegrationMessageEgg'
        required: true
      responses:
        '201':
          description: successful operation
          headers:
            Location:
              description: URL of the newly created resource
              style: simple
              explode: false
              schema:
                type: string
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PublicConversationsMessage'
        default:
          $ref: '#/components/responses/Error'
          description: ''
      security:
        - oauth2:
            - conversations.custom_channels.write
components:
  schemas:
    ChannelIntegrationMessageEgg:
      required:
        - attachments
        - channelAccountId
        - messageDirection
        - recipients
        - senders
        - text
        - timestamp
      type: object
      properties:
        associateWithContactId:
          type: integer
          format: int64
        attachments:
          type: array
          items:
            oneOf:
              - $ref: '#/components/schemas/FileAttachment'
              - $ref: '#/components/schemas/LocationAttachment'
              - $ref: '#/components/schemas/ContactAttachment'
              - $ref: '#/components/schemas/UnsupportedContentAttachment'
              - $ref: '#/components/schemas/MessageHeaderAttachment'
              - $ref: '#/components/schemas/QuickRepliesAttachment'
              - $ref: '#/components/schemas/SocialMetadataIntegrationAttachment'
        channelAccountId:
          type: string
        inReplyToId:
          type: string
        integrationIdempotencyId:
          type: string
        integrationThreadId:
          type: string
        messageDirection:
          type: string
          enum:
            - INCOMING
            - OUTGOING
        preResolvedContacts:
          $ref: '#/components/schemas/PreResolvedContacts'
        recipients:
          type: array
          items:
            $ref: '#/components/schemas/ChannelIntegrationParticipant'
        richText:
          type: string
        senders:
          type: array
          items:
            $ref: '#/components/schemas/ChannelIntegrationParticipant'
        text:
          type: string
        timestamp:
          type: string
          format: date-time
    PublicConversationsMessage:
      required:
        - archived
        - attachments
        - channelAccountId
        - channelId
        - client
        - conversationsThreadId
        - createdAt
        - createdBy
        - direction
        - id
        - recipients
        - senders
        - text
        - truncationStatus
        - type
      type: object
      properties:
        archived:
          type: boolean
        attachments:
          type: array
          items:
            oneOf:
              - $ref: '#/components/schemas/PublicFile'
              - $ref: '#/components/schemas/PublicLocation'
              - $ref: '#/components/schemas/PublicContact'
              - $ref: '#/components/schemas/PublicUnsupportedContent'
              - $ref: '#/components/schemas/PublicMessageHeader'
              - $ref: '#/components/schemas/PublicQuickReplies'
              - $ref: '#/components/schemas/PublicWhatsAppTemplateMetadata'
              - $ref: '#/components/schemas/PublicSocialMetadataAttachment'
        channelAccountId:
          type: string
        channelId:
          type: string
        client:
          $ref: '#/components/schemas/PublicClient'
        conversationsThreadId:
          type: string
        createdAt:
          type: string
          format: date-time
        createdBy:
          type: string
        direction:
          type: string
          enum:
            - INCOMING
            - OUTGOING
        id:
          type: string
        inReplyToId:
          type: string
        recipients:
          type: array
          items:
            $ref: '#/components/schemas/PublicRecipient'
        richText:
          type: string
        senders:
          type: array
          items:
            $ref: '#/components/schemas/PublicSender'
        status:
          $ref: '#/components/schemas/PublicMessageStatus'
        subject:
          type: string
        text:
          type: string
        truncationStatus:
          type: string
          enum:
            - NOT_TRUNCATED
            - TRUNCATED
            - TRUNCATED_TO_MOST_RECENT_REPLY
        type:
          type: string
          default: MESSAGE
          enum:
            - MESSAGE
        updatedAt:
          type: string
          format: date-time
      x-hubspot-sub-type-impl: true
    FileAttachment:
      title: FILE
      required:
        - fileId
        - type
      type: object
      properties:
        fileId:
          type: string
        fileUsageType:
          type: string
          enum:
            - AUDIO
            - IMAGE
            - OTHER
            - STICKER
            - VOICE_RECORDING
        type:
          type: string
          default: FILE
          enum:
            - FILE
      x-hubspot-sub-type-impl: true
    LocationAttachment:
      title: LOCATION
      required:
        - latitude
        - longitude
        - type
      type: object
      properties:
        address:
          type: string
        latitude:
          type: number
        longitude:
          type: number
        name:
          type: string
        type:
          type: string
          default: LOCATION
          enum:
            - LOCATION
        url:
          type: string
      x-hubspot-sub-type-impl: true
    ContactAttachment:
      title: CONTACT
      required:
        - contactProfile
        - type
      type: object
      properties:
        contactProfile:
          $ref: '#/components/schemas/ContactProfile'
        type:
          type: string
          default: CONTACT
          enum:
            - CONTACT
      x-hubspot-sub-type-impl: true
    UnsupportedContentAttachment:
      title: UNSUPPORTED_CONTENT
      required:
        - type
      type: object
      properties:
        type:
          type: string
          default: UNSUPPORTED_CONTENT
          enum:
            - UNSUPPORTED_CONTENT
      x-hubspot-sub-type-impl: true
    MessageHeaderAttachment:
      title: MESSAGE_HEADER
      required:
        - type
      type: object
      properties:
        fileId:
          type: integer
          format: int64
        text:
          type: string
        type:
          type: string
          default: MESSAGE_HEADER
          enum:
            - MESSAGE_HEADER
      x-hubspot-sub-type-impl: true
    QuickRepliesAttachment:
      title: QUICK_REPLIES
      required:
        - quickReplies
        - type
      type: object
      properties:
        quickReplies:
          type: array
          items:
            $ref: '#/components/schemas/QuickReply'
        type:
          type: string
          default: QUICK_REPLIES
          enum:
            - QUICK_REPLIES
      x-hubspot-sub-type-impl: true
    SocialMetadataIntegrationAttachment:
      title: SOCIAL_MEDIA_METADATA
      required:
        - socialMetadata
        - type
      type: object
      properties:
        socialMetadata:
          $ref: '#/components/schemas/SocialMetadata'
        type:
          type: string
          default: SOCIAL_MEDIA_METADATA
          enum:
            - SOCIAL_MEDIA_METADATA
      x-hubspot-sub-type-impl: true
    PreResolvedContacts:
      required:
        - contacts
      type: object
      properties:
        contacts:
          type: array
          items:
            $ref: '#/components/schemas/PreResolvedContact'
    ChannelIntegrationParticipant:
      required:
        - deliveryIdentifier
      type: object
      properties:
        deliveryIdentifier:
          $ref: '#/components/schemas/PublicDeliveryIdentifier'
        name:
          type: string
        senderActorId:
          type: string
    PublicFile:
      title: FILE
      required:
        - fileId
        - fileUsageType
        - type
      type: object
      properties:
        fileId:
          type: string
        fileUsageType:
          type: string
          enum:
            - AUDIO
            - IMAGE
            - OTHER
            - STICKER
            - VOICE_RECORDING
        name:
          type: string
        type:
          type: string
          default: FILE
          enum:
            - FILE
        url:
          type: string
      x-hubspot-sub-type-impl: true
    PublicLocation:
      title: LOCATION
      required:
        - latitude
        - longitude
        - type
      type: object
      properties:
        address:
          type: string
        latitude:
          type: number
        longitude:
          type: number
        name:
          type: string
        type:
          type: string
          default: LOCATION
          enum:
            - LOCATION
        url:
          type: string
      x-hubspot-sub-type-impl: true
    PublicContact:
      title: CONTACT
      required:
        - contactProfile
        - type
      type: object
      properties:
        contactProfile:
          $ref: '#/components/schemas/ContactProfile'
        type:
          type: string
          default: CONTACT
          enum:
            - CONTACT
      x-hubspot-sub-type-impl: true
    PublicUnsupportedContent:
      title: UNSUPPORTED_CONTENT
      required:
        - type
      type: object
      properties:
        type:
          type: string
          default: UNSUPPORTED_CONTENT
          enum:
            - UNSUPPORTED_CONTENT
      x-hubspot-sub-type-impl: true
    PublicMessageHeader:
      title: MESSAGE_HEADER
      required:
        - type
      type: object
      properties:
        fileId:
          type: integer
          format: int64
        text:
          type: string
        type:
          type: string
          default: MESSAGE_HEADER
          enum:
            - MESSAGE_HEADER
      x-hubspot-sub-type-impl: true
    PublicQuickReplies:
      title: QUICK_REPLIES
      required:
        - allowMultiSelect
        - allowUserInput
        - quickReplies
        - type
      type: object
      properties:
        allowMultiSelect:
          type: boolean
        allowUserInput:
          type: boolean
        quickReplies:
          type: array
          items:
            $ref: '#/components/schemas/QuickReply'
        type:
          type: string
          default: QUICK_REPLIES
          enum:
            - QUICK_REPLIES
      x-hubspot-sub-type-impl: true
    PublicWhatsAppTemplateMetadata:
      title: WHATSAPP_TEMPLATE_METADATA
      required:
        - crmObjectIds
        - parameters
        - type
      type: object
      properties:
        contentId:
          type: integer
          format: int64
        crmObjectIds:
          type: object
          additionalProperties:
            type: integer
            format: int64
        mappedTemplateId:
          type: integer
          format: int64
        parameters:
          type: object
          additionalProperties:
            type: string
        rootMicId:
          type: integer
          format: int64
        type:
          type: string
          default: WHATSAPP_TEMPLATE_METADATA
          enum:
            - WHATSAPP_TEMPLATE_METADATA
      x-hubspot-sub-type-impl: true
    PublicSocialMetadataAttachment:
      title: SOCIAL_MEDIA_METADATA
      required:
        - socialMetadata
        - type
      type: object
      properties:
        socialMetadata:
          $ref: '#/components/schemas/SocialMetadata'
        type:
          type: string
          default: SOCIAL_MEDIA_METADATA
          enum:
            - SOCIAL_MEDIA_METADATA
      x-hubspot-sub-type-impl: true
    PublicClient:
      required:
        - clientType
      type: object
      properties:
        clientType:
          type: string
          enum:
            - HUBSPOT
            - INTEGRATION
            - SYSTEM
            - UNKNOWN
        integrationAppId:
          type: integer
          format: int32
    PublicRecipient:
      required:
        - deliveryIdentifier
      type: object
      properties:
        actorId:
          type: string
        deliveryIdentifier:
          $ref: '#/components/schemas/PublicDeliveryIdentifier'
        name:
          type: string
        recipientField:
          type: string
    PublicSender:
      type: object
      properties:
        actorId:
          type: string
        deliveryIdentifier:
          $ref: '#/components/schemas/PublicDeliveryIdentifier'
        name:
          type: string
        senderField:
          type: string
    PublicMessageStatus:
      required:
        - statusType
      type: object
      properties:
        failureDetails:
          $ref: '#/components/schemas/PublicMessageFailureDetails'
        statusType:
          type: string
          enum:
            - FAILED
            - READ
            - RECEIVED
            - SENT
    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
          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
          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
      description: >-
        Represents an error response returned by the API when an operation
        fails. This component is used in various endpoints to provide detailed
        information about the error encountered.
      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
    ContactProfile:
      required:
        - addresses
        - emails
        - phones
        - urls
      type: object
      properties:
        addresses:
          type: array
          items:
            $ref: '#/components/schemas/ContactAddress'
        emails:
          type: array
          items:
            $ref: '#/components/schemas/ContactEmail'
        name:
          $ref: '#/components/schemas/ContactName'
        org:
          $ref: '#/components/schemas/ContactOrg'
        phones:
          type: array
          items:
            $ref: '#/components/schemas/ContactPhone'
        urls:
          type: array
          items:
            $ref: '#/components/schemas/ContactUrl'
    QuickReply:
      required:
        - value
        - valueType
      type: object
      properties:
        label:
          type: string
        value:
          type: string
        valueType:
          type: string
          enum:
            - TEXT
            - URL
    SocialMetadata:
      required:
        - mediaType
      type: object
      properties:
        description:
          type: string
        id:
          type: string
        mediaTitle:
          type: string
        mediaType:
          type: string
          enum:
            - ARTICLE
            - AUDIO
            - CAROUSEL
            - DOCUMENT
            - GIF
            - LINK
            - NONE
            - PHOTO
            - POLL
            - STORY
            - VIDEO
        mediaUrl:
          type: string
        mediaUrlString:
          type: string
        thumbnailUrl:
          type: string
    PreResolvedContact:
      required:
        - contactPropertiesLeadingToMatch
        - contactVid
      type: object
      properties:
        contactPropertiesLeadingToMatch:
          type: array
          items:
            type: string
            enum:
              - address
              - annualrevenue
              - associatedcompanyid
              - associatedcompanylastupdated
              - city
              - closedate
              - company
              - company_size
              - country
              - createdate
              - currentlyinworkflow
              - date_of_birth
              - days_to_close
              - degree
              - email
              - engagements_last_meeting_booked
              - engagements_last_meeting_booked_campaign
              - engagements_last_meeting_booked_medium
              - engagements_last_meeting_booked_source
              - fax
              - field_of_study
              - first_conversion_date
              - first_conversion_event_name
              - first_deal_created_date
              - firstname
              - followercount
              - gender
              - graduation_date
              - hs_active_contracts_arr
              - hs_active_contracts_mrr
              - hs_active_contracts_tcv
              - hs_additional_emails
              - hs_all_contact_vids
              - hs_analytics_average_page_views
              - hs_analytics_first_referrer
              - hs_analytics_first_timestamp
              - hs_analytics_first_touch_converting_campaign
              - hs_analytics_first_url
              - hs_analytics_first_visit_timestamp
              - hs_analytics_last_referrer
              - hs_analytics_last_timestamp
              - hs_analytics_last_touch_converting_campaign
              - hs_analytics_last_url
              - hs_analytics_last_visit_timestamp
              - hs_analytics_num_event_completions
              - hs_analytics_num_page_views
              - hs_analytics_num_visits
              - hs_analytics_revenue
              - hs_analytics_source
              - hs_analytics_source_composite_data
              - hs_analytics_source_data_1
              - hs_analytics_source_data_2
              - hs_associated_target_accounts
              - hs_avatar_filemanager_key
              - hs_bing_ad_clicked
              - hs_bing_click_id
              - hs_buying_role
              - hs_calculated_form_submissions
              - hs_calculated_merged_vids
              - hs_calculated_mobile_number
              - hs_calculated_phone_number
              - hs_calculated_phone_number_area_code
              - hs_calculated_phone_number_country_code
              - hs_calculated_phone_number_region_code
              - hs_chat_assistant_iql_date
              - hs_chat_assistant_source
              - hs_chat_assistant_summary
              - hs_chatgpt_ad_clicked
              - hs_chatgpt_click_id
              - hs_clicked_linkedin_ad
              - hs_contact_creation_legal_basis_source_instance_id
              - hs_contact_enrichment_opt_out
              - hs_contact_enrichment_opt_out_timestamp
              - hs_content_membership_email
              - hs_content_membership_email_confirmed
              - hs_content_membership_follow_up_enqueued_at
              - hs_content_membership_notes
              - hs_content_membership_registered_at
              - hs_content_membership_registration_domain_sent_to
              - hs_content_membership_registration_email_sent_at
              - hs_content_membership_status
              - hs_conversations_visitor_email
              - hs_count_is_unworked
              - hs_count_is_worked
              - hs_country_region_code
              - hs_created_by_conversations
              - hs_cross_account_note
              - hs_cross_sell_opportunity
              - hs_current_customer
              - hs_currently_enrolled_in_prospecting_agent
              - hs_customer_agent_lead_status
              - hs_data_privacy_ads_consent
              - hs_date_entered_customer
              - hs_date_entered_evangelist
              - hs_date_entered_lead
              - hs_date_entered_marketingqualifiedlead
              - hs_date_entered_opportunity
              - hs_date_entered_other
              - hs_date_entered_salesqualifiedlead
              - hs_date_entered_subscriber
              - hs_date_exited_customer
              - hs_date_exited_evangelist
              - hs_date_exited_lead
              - hs_date_exited_marketingqualifiedlead
              - hs_date_exited_opportunity
              - hs_date_exited_other
              - hs_date_exited_salesqualifiedlead
              - hs_date_exited_subscriber
              - hs_document_last_revisited
              - hs_email_bad_address
              - hs_email_bounce
              - hs_email_click
              - hs_email_communication_subscriptions_opted_in
              - hs_email_communication_subscriptions_opted_out
              - hs_email_customer_quarantined_reason
              - hs_email_delivered
              - hs_email_domain
              - hs_email_engagement_likelihood_category
              - hs_email_first_click_date
              - hs_email_first_open_date
              - hs_email_first_reply_date
              - hs_email_first_send_date
              - hs_email_hard_bounce_reason
              - hs_email_hard_bounce_reason_enum
              - hs_email_is_ineligible
              - hs_email_last_click_date
              - hs_email_last_email_name
              - hs_email_last_open_date
              - hs_email_last_reply_date
              - hs_email_last_send_date
              - hs_email_live_sourcing_restricted
              - hs_email_open
              - hs_email_optimal_send_day_of_week
              - hs_email_optimal_send_time_of_day
              - hs_email_optout
              - hs_email_optout_survey_reason
              - hs_email_quarantined
              - hs_email_quarantined_reason
              - hs_email_recipient_fatigue_recovery_time
              - hs_email_replied
              - hs_email_sends_since_last_engagement
              - hs_email_type
              - hs_emailconfirmationstatus
              - hs_employment_change_detected_date
              - hs_enforce_double_opt_in
              - hs_enriched_email_bounce_detected
              - hs_excluded_from_cross_account_data_mirroring
              - hs_facebook_ad_clicked
              - hs_facebook_click_id
              - hs_facebookid
              - hs_feedback_last_ces_survey_date
              - hs_feedback_last_ces_survey_follow_up
              - hs_feedback_last_ces_survey_rating
              - hs_feedback_last_csat_survey_date
              - hs_feedback_last_csat_survey_follow_up
              - hs_feedback_last_csat_survey_rating
              - hs_feedback_last_nps_follow_up
              - hs_feedback_last_nps_rating
              - hs_feedback_last_nps_rating_number
              - hs_feedback_last_survey_date
              - hs_feedback_show_nps_web_survey
              - hs_first_closed_order_id
              - hs_first_engagement_object_id
              - hs_first_order_closed_date
              - hs_first_outreach_date
              - hs_first_subscription_create_date
              - hs_full_name_or_email
              - hs_geohash_1
              - hs_geohash_2
              - hs_geohash_3
              - hs_geohash_4
              - hs_geohash_5
              - hs_geohash_6
              - hs_google_click_id
              - hs_googleplusid
              - hs_gps_coordinates
              - hs_gps_error
              - hs_gps_latitude
              - hs_gps_longitude
              - hs_has_active_subscription
              - hs_inferred_language_codes
              - hs_intent_paid_up_to_date
              - hs_intent_signals_enabled
              - hs_ip_timezone
              - hs_is_contact
              - hs_is_enriched
              - hs_is_mass_marketing_activation_disallowed
              - hs_is_merge_revertible
              - hs_is_unworked
              - hs_job_change_detected_date
              - hs_journey_stage
              - hs_language
              - hs_last_metered_enrichment_timestamp
              - hs_last_sales_activity_date
              - hs_last_sales_activity_timestamp
              - hs_last_sales_activity_type
              - hs_last_sms_send_date
              - hs_last_sms_send_name
              - hs_latest_disqualified_lead_date
              - hs_latest_meeting_activity
              - hs_latest_open_lead_date
              - hs_latest_qualified_lead_date
              - hs_latest_sequence_ended_date
              - hs_latest_sequence_enrolled
              - hs_latest_sequence_enrolled_date
              - hs_latest_sequence_finished_date
              - hs_latest_sequence_unenrolled_date
              - hs_latest_source
              - hs_latest_source_composite_data
              - hs_latest_source_data_1
              - hs_latest_source_data_2
              - hs_latest_source_timestamp
              - hs_latest_subscription_create_date
              - hs_latitude
              - hs_lead_status
              - hs_legal_basis
              - hs_lifecyclestage_customer_date
              - hs_lifecyclestage_evangelist_date
              - hs_lifecyclestage_lead_date
              - hs_lifecyclestage_marketingqualifiedlead_date
              - hs_lifecyclestage_opportunity_date
              - hs_lifecyclestage_other_date
              - hs_lifecyclestage_salesqualifiedlead_date
              - hs_lifecyclestage_subscriber_date
              - hs_linkedin_ad_clicked
              - hs_linkedin_click_id
              - hs_linkedin_url
              - hs_linkedinid
              - hs_live_enrichment_deadline
              - hs_longitude
              - hs_manual_campaign_ids
              - hs_marketable_reason_id
              - hs_marketable_reason_type
              - hs_marketable_status
              - hs_marketable_until_renewal
              - hs_membership_has_accessed_private_content
              - hs_membership_last_private_content_access_date
              - hs_messaging_engagement_score
              - hs_mobile_sdk_push_tokens
              - hs_next_renewal_date
              - hs_notes_last_activity
              - hs_notes_next_activity
              - hs_notes_next_activity_type
              - hs_num_active_contracts
              - hs_num_associated_open_deals
              - hs_persona
              - hs_pinned_engagement_id
              - hs_pipeline
              - hs_predictivecontactscore
              - hs_predictivecontactscore_tmp
              - hs_predictivecontactscore_v2
              - hs_predictivecontactscorebucket
              - hs_predictivescoringtier
              - hs_predictivescoringtier_tmp
              - hs_prospecting_agent_activation_email_id
              - hs_prospecting_agent_activation_status
              - hs_prospecting_agent_actively_enrolled_count
              - hs_prospecting_agent_enrollment_status
              - hs_prospecting_agent_enrollment_status_raw
              - hs_prospecting_agent_last_enrolled
              - hs_prospecting_agent_sender
              - hs_prospecting_agent_total_enrolled_count
              - hs_quarantined_emails
              - hs_recent_closed_order_date
              - hs_reddit_ad_clicked
              - hs_reddit_click_id
              - hs_registered_member
              - hs_registration_method
              - hs_returning_to_office_detected_date
              - hs_role
              - hs_sa_first_engagement_date
              - hs_sa_first_engagement_descr
              - hs_sa_first_engagement_object_type
              - hs_sales_email_last_clicked
              - hs_sales_email_last_opened
              - hs_sales_email_last_replied
              - hs_searchable_calculated_international_mobile_number
              - hs_searchable_calculated_international_phone_number
              - hs_searchable_calculated_mobile_number
              - hs_searchable_calculated_phone_number
              - hs_seniority
              - hs_sequences_actively_enrolled_count
              - hs_sequences_enrolled_count
              - hs_sequences_is_enrolled
              - hs_social_facebook_clicks
              - hs_social_google_plus_clicks
              - hs_social_last_engagement
              - hs_social_linkedin_clicks
              - hs_social_num_broadcast_clicks
              - hs_social_twitter_clicks
              - hs_source_object_id
              - hs_source_portal_id
              - hs_sourced_contact_origin
              - hs_state_code
              - hs_sub_role
              - hs_testpurge
              - hs_testrollback
              - hs_tiktok_ad_clicked
              - hs_tiktok_click_id
              - hs_time_between_contact_creation_and_deal_close
              - hs_time_between_contact_creation_and_deal_creation
              - hs_time_in_customer
              - hs_time_in_evangelist
              - hs_time_in_lead
              - hs_time_in_marketingqualifiedlead
              - hs_time_in_opportunity
              - hs_time_in_other
              - hs_time_in_salesqualifiedlead
              - hs_time_in_subscriber
              - hs_time_to_first_engagement
              - hs_time_to_move_from_lead_to_customer
              - hs_time_to_move_from_marketingqualifiedlead_to_customer
              - hs_time_to_move_from_opportunity_to_customer
              - hs_time_to_move_from_salesqualifiedlead_to_customer
              - hs_time_to_move_from_subscriber_to_customer
              - hs_timezone
              - hs_twitterid
              - hs_user_ids_of_all_notification_recipients
              - hs_v2_cumulative_time_in_customer
              - hs_v2_cumulative_time_in_evangelist
              - hs_v2_cumulative_time_in_lead
              - hs_v2_cumulative_time_in_marketingqualifiedlead
              - hs_v2_cumulative_time_in_opportunity
              - hs_v2_cumulative_time_in_other
              - hs_v2_cumulative_time_in_salesqualifiedlead
              - hs_v2_cumulative_time_in_subscriber
              - hs_v2_date_entered_current_stage
              - hs_v2_date_entered_customer
              - hs_v2_date_entered_evangelist
              - hs_v2_date_entered_lead
              - hs_v2_date_entered_marketingqualifiedlead
              - hs_v2_date_entered_opportunity
              - hs_v2_date_entered_other
              - hs_v2_date_entered_salesqualifiedlead
              - hs_v2_date_entered_subscriber
              - hs_v2_date_exited_customer
              - hs_v2_date_exited_evangelist
              - hs_v2_date_exited_lead
              - hs_v2_date_exited_marketingqualifiedlead
              - hs_v2_date_exited_opportunity
              - hs_v2_date_exited_other
              - hs_v2_date_exited_salesqualifiedlead
              - hs_v2_date_exited_subscriber
              - hs_v2_latest_time_in_customer
              - hs_v2_latest_time_in_evangelist
              - hs_v2_latest_time_in_lead
              - hs_v2_latest_time_in_marketingqualifiedlead
              - hs_v2_latest_time_in_opportunity
              - hs_v2_latest_time_in_other
              - hs_v2_latest_time_in_salesqualifiedlead
              - hs_v2_latest_time_in_subscriber
              - hs_v2_time_in_current_stage
              - hs_whatsapp_bsuids
              - hs_whatsapp_phone_number
              - hs_why_this_contact
              - hubspot_owner_id
              - hubspotscore
              - industry
              - ip_city
              - ip_country
              - ip_country_code
              - ip_latlon
              - ip_state
              - ip_state_code
              - ip_zipcode
              - job_function
              - jobtitle
              - kloutscoregeneral
              - lastmodifieddate
              - lastname
              - lifecyclestage
              - linkedinbio
              - linkedinconnections
              - marital_status
              - message
              - military_status
              - mobilephone
              - notes_last_contacted
              - notes_last_updated
              - notes_next_activity_date
              - num_associated_deals
              - num_contacted_notes
              - num_conversion_events
              - num_notes
              - num_unique_conversion_events
              - numemployees
              - owneremail
              - ownername
              - phone
              - photo
              - recent_conversion_date
              - recent_conversion_event_name
              - recent_deal_amount
              - recent_deal_close_date
              - relationship_status
              - salutation
              - school
              - seniority
              - start_date
              - state
              - surveymonkeyeventlastupdated
              - total_revenue
              - twitterbio
              - twitterhandle
              - twitterprofilephoto
              - webinareventlastupdated
              - website
              - work_email
              - zip
        contactVid:
          type: integer
          format: int64
    PublicDeliveryIdentifier:
      required:
        - type
        - value
      type: object
      properties:
        type:
          type: string
          enum:
            - CHANNEL_SPECIFIC_OPAQUE_ID
            - HS_EMAIL_ADDRESS
            - HS_PHONE_NUMBER
            - HS_SHORT_CODE
        value:
          type: string
    PublicMessageFailureDetails:
      required:
        - errorMessageTokens
      type: object
      properties:
        errorMessage:
          type: string
        errorMessageTokens:
          type: object
          additionalProperties:
            type: string
    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
          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
      description: >-
        Represents detailed information about an error that occurred in the API.
        This component is used to provide additional context and specifics about
        errors, typically as part of an error response.
    ContactAddress:
      type: object
      properties:
        city:
          type: string
        country:
          type: string
        countryCode:
          type: string
        state:
          type: string
        street:
          type: string
        type:
          type: string
          enum:
            - HOME
            - WORK
        zip:
          type: string
    ContactEmail:
      required:
        - email
      type: object
      properties:
        email:
          type: string
        type:
          type: string
          enum:
            - HOME
            - WORK
    ContactName:
      type: object
      properties:
        firstName:
          type: string
        lastName:
          type: string
        middleName:
          type: string
        prefix:
          type: string
        suffix:
          type: string
    ContactOrg:
      type: object
      properties:
        company:
          type: string
        department:
          type: string
        title:
          type: string
    ContactPhone:
      required:
        - phone
      type: object
      properties:
        phone:
          type: string
        type:
          type: string
          enum:
            - CELL
            - HOME
            - MAIN
            - WORK
    ContactUrl:
      required:
        - url
      type: object
      properties:
        type:
          type: string
          enum:
            - HOME
            - WORK
        url:
          type: string
  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:
            conversations.custom_channels.read: ''
            conversations.custom_channels.write: ''

````