> ## Documentation Index
> Fetch the complete documentation index at: https://developers.hubspot.jp/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 = "この API には、次のいずれかのスコープが必要です。"}) => {
  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: "サポートされる製品",
    description: "次のいずれかの製品またはそれ以上が必要です。",
    productNames: {
      marketing: "Marketing Hub",
      sales: "Sales Hub",
      service: "Service Hub",
      cms: "Content Hub"
    },
    tiers: {
      free: "無料ツール",
      starter: "Starter",
      professional: "Professional",
      enterprise: "Enterprise"
    }
  };
  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
      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_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_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
    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: ''

````