openapi: 3.0.1 info: title: HubSpot Marketing Emails description: Basepom for all HubSpot Projects version: 2026-09 x-hubspot-product-tier-requirements: marketing: FREE sales: FREE service: FREE cms: FREE commerce: FREE crmHub: FREE dataHub: FREE x-hubspot-api-use-case: You want to programmatically create marketing emails, then retrieve their send statistics at a later time. x-hubspot-introduction: Use the marketing email API to create, manage, and retrieve details about marketing emails. You can also this use API to retrieve statistics related to email sends, similar to what you can see in HubSpot. servers: - url: https://api.hubapi.com tags: - name: Basic - name: Emails paths: /marketing/emails/2026-09: get: tags: - Basic operationId: get-/marketing/emails/2026-09_/marketing/emails/v3 parameters: - name: after in: query description: The paging cursor token of the last successfully read resource will be returned as the `paging.next.after` JSON property of a paged response containing more results. required: false style: form explode: true schema: type: string - name: archived in: query description: Whether to return only results that have been archived. required: false style: form explode: true schema: type: boolean - name: campaign in: query description: '' required: false style: form explode: true schema: type: string - name: createdAfter in: query description: '' required: false style: form explode: true schema: type: string format: date-time - name: createdAt in: query description: '' required: false style: form explode: true schema: type: string format: date-time - name: createdBefore in: query description: '' required: false style: form explode: true schema: type: string format: date-time - name: includedProperties in: query description: '' required: false style: form explode: true schema: type: array items: type: string - name: includeStats in: query description: '' required: false style: form explode: true schema: type: boolean - name: isPublished in: query description: '' required: false style: form explode: true schema: type: boolean - name: limit in: query description: The maximum number of results to display per page. required: false style: form explode: true schema: type: integer format: int32 - name: marketingCampaignNames in: query description: '' required: false style: form explode: true schema: type: boolean - name: publishedAfter in: query description: '' required: false style: form explode: true schema: type: string format: date-time - name: publishedAt in: query description: '' required: false style: form explode: true schema: type: string format: date-time - name: publishedBefore in: query description: '' required: false style: form explode: true schema: type: string format: date-time - name: sort in: query description: '' required: false style: form explode: true schema: type: array items: type: string - name: type in: query description: '' required: false style: form explode: true schema: type: string enum: - AB_EMAIL - AUTOMATED_AB_EMAIL - AUTOMATED_EMAIL - BATCH_EMAIL - BLOG_EMAIL - BLOG_EMAIL_CHILD - FEEDBACK_CES_EMAIL - FEEDBACK_CUSTOM_EMAIL - FEEDBACK_CUSTOM_SURVEY_EMAIL - FEEDBACK_NPS_EMAIL - FOLLOWUP_EMAIL - LEADFLOW_EMAIL - LOCALTIME_EMAIL - MANAGE_PREFERENCES_EMAIL - MARKETING_SINGLE_SEND_API - MEMBERSHIP_EMAIL_VERIFICATION_EMAIL - MEMBERSHIP_FOLLOW_UP_EMAIL - MEMBERSHIP_OTP_LOGIN_EMAIL - MEMBERSHIP_PASSWORD_RESET_EMAIL - MEMBERSHIP_PASSWORD_SAVED_EMAIL - MEMBERSHIP_PASSWORDLESS_AUTH_EMAIL - MEMBERSHIP_REGISTRATION_EMAIL - MEMBERSHIP_REGISTRATION_FOLLOW_UP_EMAIL - MEMBERSHIP_VERIFICATION_EMAIL - OPTIN_EMAIL - OPTIN_FOLLOWUP_EMAIL - RESUBSCRIBE_EMAIL - RSS_EMAIL - RSS_EMAIL_CHILD - SINGLE_SEND_API - SMTP_TOKEN - TICKET_EMAIL - name: updatedAfter in: query description: '' required: false style: form explode: true schema: type: string format: date-time - name: updatedAt in: query description: '' required: false style: form explode: true schema: type: string format: date-time - name: updatedBefore in: query description: '' required: false style: form explode: true schema: type: string format: date-time - name: variantStats in: query description: '' required: false style: form explode: true schema: type: boolean - name: workflowNames in: query description: '' required: false style: form explode: true schema: type: boolean responses: '200': description: successful operation content: application/json: schema: $ref: '#/components/schemas/CollectionResponseWithTotalPublicEmail' default: description: '' $ref: '#/components/responses/Error' security: - oauth2: - marketing.email.read - oauth2: - marketing.email.write - oauth2: - content post: tags: - Basic operationId: post-/marketing/emails/2026-09_/marketing/emails/v3 parameters: [] requestBody: content: application/json: schema: $ref: '#/components/schemas/EmailCreateRequest' 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/PublicEmail' default: description: '' $ref: '#/components/responses/Error' security: - oauth2: - marketing.email.read - oauth2: - marketing.email.write - oauth2: - content /marketing/emails/2026-09/ab-test/create-variation: post: tags: - Emails summary: Create an A/B test variation of a marketing email description: Create a variation of a marketing email for an A/B test. The new variation will be created as a draft. If an active variation already exists, a new one won't be created. operationId: post-/marketing/emails/2026-09/ab-test/create-variation_createAbTestVariation parameters: [] requestBody: content: application/json: schema: $ref: '#/components/schemas/AbTestCreateRequestVNext' 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/PublicEmail' default: description: '' $ref: '#/components/responses/Error' security: - oauth2: - marketing.email.read - oauth2: - marketing.email.write - oauth2: - content /marketing/emails/2026-09/clone: post: tags: - Emails summary: Clone a marketing email description: This will create a duplicate email with the same properties as the original, with the exception of a unique ID. operationId: post-/marketing/emails/2026-09/clone_clone parameters: [] requestBody: content: application/json: schema: $ref: '#/components/schemas/EmailCloneRequestVNext' required: true responses: '200': description: successful operation content: application/json: schema: $ref: '#/components/schemas/PublicEmail' default: description: '' $ref: '#/components/responses/Error' security: - oauth2: - marketing.email.read - oauth2: - marketing.email.write - oauth2: - content /marketing/emails/2026-09/statistics/histogram: get: tags: - Basic summary: Get aggregated statistic intervals description: Get aggregated statistics in intervals for a specified time span. Each interval contains aggregated statistics of the emails that were sent in that time. operationId: get-/marketing/emails/2026-09/statistics/histogram_getHistogram parameters: - name: emailIds in: query description: '' required: false style: form explode: true schema: type: array items: type: integer format: int64 - name: endTimestamp in: query description: '' required: false style: form explode: true schema: type: string format: date-time - name: interval in: query description: '' required: false style: form explode: true schema: type: string enum: - DAY - HOUR - MINUTE - MONTH - QUARTER - QUARTER_HOUR - SECOND - WEEK - YEAR - name: startTimestamp in: query description: '' required: false style: form explode: true schema: type: string format: date-time responses: '200': description: successful operation content: application/json: schema: $ref: '#/components/schemas/CollectionResponseWithTotalEmailStatisticInterval' default: description: '' $ref: '#/components/responses/Error' security: - oauth2: - marketing.email.read - oauth2: - marketing.email.write - oauth2: - content /marketing/emails/2026-09/statistics/list: get: tags: - Basic summary: Get aggregated statistics description: Use this endpoint to get aggregated statistics of emails sent in a specified time span. It also returns the list of emails that were sent during the time span. operationId: get-/marketing/emails/2026-09/statistics/list_getEmailsList parameters: - name: emailIds in: query description: '' required: false style: form explode: true schema: type: array items: type: integer format: int64 - name: endTimestamp in: query description: '' required: false style: form explode: true schema: type: string format: date-time - name: property in: query description: '' required: false style: form explode: true schema: type: string - name: startTimestamp in: query description: '' required: false style: form explode: true schema: type: string format: date-time responses: '200': description: successful operation content: application/json: schema: $ref: '#/components/schemas/AggregateEmailStatistics' default: description: '' $ref: '#/components/responses/Error' security: - oauth2: - marketing.email.read - oauth2: - marketing.email.write - oauth2: - content /marketing/emails/2026-09/{emailId}: get: tags: - Emails summary: Get the details of a specified marketing email description: Get the details for a marketing email. operationId: get-/marketing/emails/2026-09/{emailId}_getById parameters: - name: emailId in: path description: '' required: true style: simple explode: false schema: type: string - name: archived in: query description: Whether to return only results that have been archived. required: false style: form explode: true schema: type: boolean - name: includedProperties in: query description: '' required: false style: form explode: true schema: type: array items: type: string - name: includeStats in: query description: '' required: false style: form explode: true schema: type: boolean - name: marketingCampaignNames in: query description: '' required: false style: form explode: true schema: type: boolean - name: variantStats in: query description: '' required: false style: form explode: true schema: type: boolean - name: workflowNames in: query description: '' required: false style: form explode: true schema: type: boolean responses: '200': description: successful operation content: application/json: schema: $ref: '#/components/schemas/PublicEmail' default: description: '' $ref: '#/components/responses/Error' security: - oauth2: - marketing.email.read - oauth2: - marketing.email.write - oauth2: - content delete: tags: - Emails summary: Delete a marketing email description: Delete a marketing email by its ID operationId: delete-/marketing/emails/2026-09/{emailId}_archive parameters: - name: emailId in: path description: '' required: true style: simple explode: false schema: type: string - name: archived in: query description: Whether to return only results that have been archived. required: false style: form explode: true schema: type: boolean responses: '204': description: No content content: {} default: description: '' $ref: '#/components/responses/Error' security: - oauth2: - marketing.email.read - oauth2: - marketing.email.write - oauth2: - content patch: tags: - Emails summary: Update a marketing email description: Change properties of a marketing email. operationId: patch-/marketing/emails/2026-09/{emailId}_update parameters: - name: emailId in: path description: '' required: true style: simple explode: false schema: type: string - name: archived in: query description: Whether to return only results that have been archived. required: false style: form explode: true schema: type: boolean requestBody: content: application/json: schema: $ref: '#/components/schemas/EmailUpdateRequest' required: true responses: '200': description: successful operation content: application/json: schema: $ref: '#/components/schemas/PublicEmail' default: description: '' $ref: '#/components/responses/Error' security: - oauth2: - marketing.email.read - oauth2: - marketing.email.write - oauth2: - content /marketing/emails/2026-09/{emailId}/ab-test/get-variation: get: tags: - Emails summary: Get the variation of a an A/B marketing email description: This endpoint lets you obtain the variation of an A/B marketing email. If the email is variation A (master) it will return variation B (variant) and vice versa. operationId: get-/marketing/emails/2026-09/{emailId}/ab-test/get-variation_getAbTestVariation parameters: - name: emailId in: path description: '' required: true style: simple explode: false schema: type: string - name: archived in: query description: Whether to return only results that have been archived. required: false style: form explode: true schema: type: boolean - name: includedProperties in: query description: '' required: false style: form explode: true schema: type: array items: type: string - name: includeStats in: query description: '' required: false style: form explode: true schema: type: boolean - name: marketingCampaignNames in: query description: '' required: false style: form explode: true schema: type: boolean - name: variantStats in: query description: '' required: false style: form explode: true schema: type: boolean - name: workflowNames in: query description: '' required: false style: form explode: true schema: type: boolean responses: '200': description: successful operation content: application/json: schema: $ref: '#/components/schemas/PublicEmail' default: description: '' $ref: '#/components/responses/Error' security: - oauth2: - marketing.email.read - oauth2: - marketing.email.write - oauth2: - content /marketing/emails/2026-09/{emailId}/draft: get: tags: - Emails summary: Get draft version of a marketing email description: Get the draft version of an email (if it exists). If no draft version exists, the published email is returned. operationId: get-/marketing/emails/2026-09/{emailId}/draft_getDraft parameters: - name: emailId in: path description: '' required: true style: simple explode: false schema: type: string responses: '200': description: successful operation content: application/json: schema: $ref: '#/components/schemas/PublicEmail' default: description: '' $ref: '#/components/responses/Error' security: - oauth2: - marketing.email.read - oauth2: - marketing.email.write - oauth2: - content patch: tags: - Emails summary: Create or update draft version description: Create or update the draft version of a marketing email. If no draft exists, the system creates a draft from the current “live” email then applies the request body to that draft. The draft version only lives on the buffer—the email is not cloned. operationId: patch-/marketing/emails/2026-09/{emailId}/draft_upsertDraft parameters: - name: emailId in: path description: '' required: true style: simple explode: false schema: type: string requestBody: content: application/json: schema: $ref: '#/components/schemas/EmailUpdateRequest' required: true responses: '200': description: successful operation content: application/json: schema: $ref: '#/components/schemas/PublicEmail' default: description: '' $ref: '#/components/responses/Error' security: - oauth2: - marketing.email.read - oauth2: - marketing.email.write - oauth2: - content /marketing/emails/2026-09/{emailId}/draft/reset: post: tags: - Emails summary: Reset the draft version description: Resets the draft back to a copy of the live object. operationId: post-/marketing/emails/2026-09/{emailId}/draft/reset_resetDraft parameters: - name: emailId in: path description: '' required: true style: simple explode: false schema: type: string responses: '204': description: No content content: {} default: description: '' $ref: '#/components/responses/Error' security: - oauth2: - marketing.email.read - oauth2: - marketing.email.write - oauth2: - content /marketing/emails/2026-09/{emailId}/publish: post: tags: - Emails summary: Publish or send a marketing email description: If you have a Marketing Hub Enterprise account or the transactional email add-on, you can use this endpoint to publish an automated email or send/schedule a regular email. operationId: post-/marketing/emails/2026-09/{emailId}/publish_publishOrSend parameters: - name: emailId in: path description: '' required: true style: simple explode: false schema: type: string responses: '204': description: No content content: {} default: description: '' $ref: '#/components/responses/Error' security: - oauth2: - marketing-email - oauth2: - transactional-email x-hubspot-rate-limit-exemptions: - ten-secondly /marketing/emails/2026-09/{emailId}/revisions: get: tags: - Emails summary: Get revisions of a marketing email description: 'Get a list of all versions of a marketing email, with each entry including the full state of that particular version. To view the most recent version, sort by the updatedAt parameter. ' operationId: get-/marketing/emails/2026-09/{emailId}/revisions_getRevisions parameters: - name: emailId in: path description: '' required: true style: simple explode: false schema: type: string - name: after in: query description: The paging cursor token of the last successfully read resource will be returned as the `paging.next.after` JSON property of a paged response containing more results. required: false style: form explode: true schema: type: string - name: before in: query description: '' required: false style: form explode: true schema: type: string - name: limit in: query description: The maximum number of results to display per page. required: false style: form explode: true schema: type: integer format: int32 responses: '200': description: successful operation content: application/json: schema: $ref: '#/components/schemas/CollectionResponseWithTotalPublicEmailVersion' default: description: '' $ref: '#/components/responses/Error' security: - oauth2: - marketing.email.read - oauth2: - marketing.email.write - oauth2: - content /marketing/emails/2026-09/{emailId}/revisions/{revisionId}: get: tags: - Emails summary: Get a revision of a marketing email description: Get a specific revision of a marketing email. operationId: get-/marketing/emails/2026-09/{emailId}/revisions/{revisionId}_getRevisionById parameters: - name: emailId in: path description: '' required: true style: simple explode: false schema: type: string - name: revisionId in: path description: '' required: true style: simple explode: false schema: type: string responses: '200': description: successful operation content: application/json: schema: $ref: '#/components/schemas/PublicEmailVersion' default: description: '' $ref: '#/components/responses/Error' security: - oauth2: - marketing.email.read - oauth2: - marketing.email.write - oauth2: - content /marketing/emails/2026-09/{emailId}/revisions/{revisionId}/restore: post: tags: - Emails summary: Restore a revision of a marketing email description: Restores a previous revision of a marketing email. The current revision becomes old, and the restored revision is given a new version number. operationId: post-/marketing/emails/2026-09/{emailId}/revisions/{revisionId}/restore_restoreRevision parameters: - name: emailId in: path description: '' required: true style: simple explode: false schema: type: string - name: revisionId in: path description: '' required: true style: simple explode: false schema: type: string responses: '204': description: No content content: {} default: description: '' $ref: '#/components/responses/Error' security: - oauth2: - marketing.email.read - oauth2: - marketing.email.write - oauth2: - content /marketing/emails/2026-09/{emailId}/revisions/{revisionId}/restore-to-draft: post: tags: - Emails summary: Restore a revision of a marketing email to DRAFT state description: 'Restores a previous revision of a marketing email to DRAFT state. If there is currently something in the draft for that object, it is overwritten. ' operationId: post-/marketing/emails/2026-09/{emailId}/revisions/{revisionId}/restore-to-draft_restoreDraftRevision parameters: - name: emailId in: path description: '' required: true style: simple explode: false schema: type: string - name: revisionId in: path description: '' required: true style: simple explode: false schema: type: integer format: int64 responses: '200': description: successful operation content: application/json: schema: $ref: '#/components/schemas/PublicEmail' default: description: '' $ref: '#/components/responses/Error' security: - oauth2: - marketing.email.read - oauth2: - marketing.email.write - oauth2: - content /marketing/emails/2026-09/{emailId}/unpublish: post: tags: - Emails summary: Unpublish or cancel a marketing email description: If you have a Marketing Hub Enterprise account or the transactional email add-on, you can use this endpoint to unpublish an automated email or cancel a regular email. If the email is already in the process of being sent, canceling might not be possible. operationId: post-/marketing/emails/2026-09/{emailId}/unpublish_unpublishOrCancel parameters: - name: emailId in: path description: '' required: true style: simple explode: false schema: type: string responses: '204': description: No content content: {} default: description: '' $ref: '#/components/responses/Error' security: - oauth2: - marketing-email - oauth2: - transactional-email x-hubspot-rate-limit-exemptions: - ten-secondly components: schemas: AbTestCreateRequestVNext: required: - contentId - variationName type: object properties: contentId: type: string description: ID of the object to test. variationName: type: string description: Name of the variation to be created. AggregateEmailStatistics: required: - aggregate - campaignAggregations - emails type: object properties: aggregate: $ref: '#/components/schemas/EmailStatisticsData' campaignAggregations: type: object additionalProperties: $ref: '#/components/schemas/EmailStatisticsData' description: The aggregated statistics per campaign. emails: type: array description: List of email IDs that were sent during the time span. items: type: integer format: int64 CollectionResponseWithTotalEmailStatisticInterval: required: - results - total type: object properties: paging: $ref: '#/components/schemas/Paging' results: type: array items: $ref: '#/components/schemas/EmailStatisticInterval' total: type: integer format: int32 CollectionResponseWithTotalPublicEmail: required: - results - total type: object properties: paging: $ref: '#/components/schemas/Paging' results: type: array items: $ref: '#/components/schemas/PublicEmail' total: type: integer format: int32 CollectionResponseWithTotalPublicEmailVersion: required: - results - total type: object properties: paging: $ref: '#/components/schemas/Paging' results: type: array items: $ref: '#/components/schemas/VersionPublicEmail' total: type: integer format: int32 EmailCloneRequestVNext: required: - id type: object properties: cloneName: type: string description: The name to assign to the cloned email. id: type: string description: The email ID. language: type: string description: The language code for the cloned email, such as 'en' for English. EmailCreateRequest: type: object properties: activeDomain: type: string description: The active domain of the email. archived: type: boolean description: Determines if the email is archived or not. businessUnitId: type: integer description: The ID of the business unit associated with the email. format: int64 campaign: type: string description: The ID of the campaign this email is associated to. content: $ref: '#/components/schemas/PublicEmailContent' feedbackSurveyId: type: string description: The ID of the feedback survey linked to the email. folderIdV2: type: integer description: The ID of the folder where the email will be stored. format: int64 from: $ref: '#/components/schemas/PublicEmailFromDetails' jitterSendTime: type: boolean description: Determines whether the email send time should be randomized to avoid sending all emails at the exact same time. language: type: string description: The language code for the email, such as 'en' for English. enum: - aa - ab - ae - af - af-na - af-za - agq - agq-cm - ak - ak-gh - am - am-et - an - ann - ann-ng - ar - ar-001 - ar-ae - ar-bh - ar-dj - ar-dz - ar-eg - ar-eh - ar-er - ar-il - ar-iq - ar-jo - ar-km - ar-kw - ar-lb - ar-ly - ar-ma - ar-mr - ar-om - ar-ps - ar-qa - ar-sa - ar-sd - ar-so - ar-ss - ar-sy - ar-td - ar-tn - ar-ye - as - as-in - asa - asa-tz - ast - ast-es - av - ay - az - az-az - ba - bal - bal-pk - bas - bas-cm - be - be-by - bem - bem-zm - bez - bez-tz - bg - bg-bg - bgc - bgc-in - bho - bho-in - bi - blo - blo-bj - bm - bm-ml - bn - bn-bd - bn-in - bo - bo-cn - bo-in - br - br-fr - brx - brx-in - bs - bs-ba - ca - ca-ad - ca-es - ca-fr - ca-it - ccp - ccp-bd - ccp-in - ce - ce-ru - ceb - ceb-ph - cgg - cgg-ug - ch - chr - chr-us - ckb - ckb-iq - ckb-ir - co - cr - cs - cs-cz - csw - csw-ca - cu - cu-ru - cv - cv-ru - cy - cy-gb - da - da-dk - da-gl - dav - dav-ke - de - de-at - de-be - de-ch - de-de - de-gr - de-it - de-li - de-lu - dje - dje-ne - doi - doi-in - dsb - dsb-de - dua - dua-cm - dv - dyo - dyo-sn - dz - dz-bt - ebu - ebu-ke - ee - ee-gh - ee-tg - el - el-cy - el-gr - en - en-001 - en-150 - en-ae - en-ag - en-ai - en-as - en-at - en-au - en-bb - en-be - en-bi - en-bm - en-bs - en-bw - en-bz - en-ca - en-cc - en-ch - en-ck - en-cm - en-cn - en-cx - en-cy - en-cz - en-de - en-dg - en-dk - en-dm - en-ee - en-eg - en-er - en-es - en-fi - en-fj - en-fk - en-fm - en-fr - en-gb - en-gd - en-gg - en-gh - en-gi - en-gm - en-gs - en-gu - en-gy - en-hk - en-hu - en-id - en-ie - en-il - en-im - en-in - en-io - en-it - en-je - en-jm - en-ke - en-ki - en-kn - en-ky - en-lc - en-lr - en-ls - en-lu - en-mg - en-mh - en-mo - en-mp - en-ms - en-mt - en-mu - en-mv - en-mw - en-mx - en-my - en-na - en-nf - en-ng - en-nl - en-no - en-nr - en-nu - en-nz - en-pg - en-ph - en-pk - en-pl - en-pn - en-pr - en-pt - en-pw - en-ro - en-rw - en-sb - en-sc - en-sd - en-se - en-sg - en-sh - en-si - en-sk - en-sl - en-ss - en-sx - en-sz - en-tc - en-th - en-tk - en-tn - en-to - en-tt - en-tv - en-tz - en-ug - en-um - en-us - en-vc - en-vg - en-vi - en-vn - en-vu - en-ws - en-za - en-zm - en-zw - eo - eo-001 - es - es-419 - es-ar - es-bo - es-br - es-bz - es-cl - es-co - es-cr - es-cu - es-do - es-ea - es-ec - es-es - es-gq - es-gt - es-hn - es-ic - es-mx - es-ni - es-pa - es-pe - es-ph - es-pr - es-py - es-sv - es-us - es-uy - es-ve - et - et-ee - eu - eu-es - ewo - ewo-cm - fa - fa-af - fa-ir - ff - ff-bf - ff-cm - ff-gh - ff-gm - ff-gn - ff-gw - ff-lr - ff-mr - ff-ne - ff-ng - ff-sl - ff-sn - fi - fi-fi - fil - fil-ph - fj - fo - fo-dk - fo-fo - fr - fr-be - fr-bf - fr-bi - fr-bj - fr-bl - fr-ca - fr-cd - fr-cf - fr-cg - fr-ch - fr-ci - fr-cm - fr-dj - fr-dz - fr-fr - fr-ga - fr-gf - fr-gn - fr-gp - fr-gq - fr-ht - fr-km - fr-lu - fr-ma - fr-mc - fr-mf - fr-mg - fr-ml - fr-mq - fr-mr - fr-mu - fr-nc - fr-ne - fr-pf - fr-pm - fr-re - fr-rw - fr-sc - fr-sn - fr-sy - fr-td - fr-tg - fr-tn - fr-vu - fr-wf - fr-yt - frr - frr-de - fur - fur-it - fy - fy-nl - ga - ga-gb - ga-ie - gaa - gaa-gh - gd - gd-gb - gl - gl-es - gn - gsw - gsw-ch - gsw-fr - gsw-li - gu - gu-in - guz - guz-ke - gv - gv-im - ha - ha-gh - ha-ne - ha-ng - haw - haw-us - he - he-il - hi - hi-in - hmn - ho - hr - hr-ba - hr-hr - hsb - hsb-de - ht - ht-ht - hu - hu-hu - hy - hy-am - hz - ia - ia-001 - id - id-id - ie - ie-ee - ig - ig-ng - ii - ii-cn - ik - io - is - is-is - it - it-ch - it-it - it-sm - it-va - iu - ja - ja-jp - jgo - jgo-cm - jmc - jmc-tz - jv - jv-id - ka - ka-ge - kab - kab-dz - kam - kam-ke - kar - kde - kde-tz - kea - kea-cv - kg - kgp - kgp-br - kh - khq - khq-ml - ki - ki-ke - kj - kk - kk-kz - kkj - kkj-cm - kl - kl-gl - kln - kln-ke - km - km-kh - kn - kn-in - ko - ko-cn - ko-kp - ko-kr - kok - kok-in - kr - ks - ks-in - ksb - ksb-tz - ksf - ksf-cm - ksh - ksh-de - ku - ku-tr - kv - kw - kw-gb - kxv - kxv-in - ky - ky-kg - la - lag - lag-tz - lb - lb-lu - lg - lg-ug - li - lij - lij-it - lkt - lkt-us - lmo - lmo-it - ln - ln-ao - ln-cd - ln-cf - ln-cg - lo - lo-la - lrc - lrc-iq - lrc-ir - lt - lt-lt - lu - lu-cd - luo - luo-ke - luy - luy-ke - lv - lv-lv - mai - mai-in - mas - mas-ke - mas-tz - mdf - mdf-ru - mer - mer-ke - mfe - mfe-mu - mg - mg-mg - mgh - mgh-mz - mgo - mgo-cm - mh - mi - mi-nz - mk - mk-mk - ml - ml-in - mn - mn-mn - mni - mni-in - mr - mr-in - ms - ms-bn - ms-id - ms-my - ms-sg - mt - mt-mt - mua - mua-cm - my - my-mm - mzn - mzn-ir - na - naq - naq-na - nb - nb-no - nb-sj - nd - nd-zw - nds - nds-de - nds-nl - ne - ne-in - ne-np - ng - nl - nl-aw - nl-be - nl-bq - nl-ch - nl-cw - nl-lu - nl-nl - nl-sr - nl-sx - nmg - nmg-cm - nn - nn-no - nnh - nnh-cm - 'no' - no-no - nqo - nqo-gn - nr - nso - nso-za - nus - nus-ss - nv - ny - nyn - nyn-ug - oc - oc-es - oc-fr - oj - om - om-et - om-ke - or - or-in - os - os-ge - os-ru - pa - pa-in - pa-pk - pcm - pcm-ng - pi - pis - pis-sb - pl - pl-pl - prg - prg-001 - ps - ps-af - ps-pk - pt - pt-ao - pt-br - pt-ch - pt-cv - pt-gq - pt-gw - pt-lu - pt-mo - pt-mz - pt-pt - pt-st - pt-tl - qu - qu-bo - qu-ec - qu-pe - raj - raj-in - rm - rm-ch - rn - rn-bi - ro - ro-md - ro-ro - rof - rof-tz - ru - ru-by - ru-kg - ru-kz - ru-md - ru-ru - ru-ua - rw - rw-rw - rwk - rwk-tz - sa - sa-in - sah - sah-ru - saq - saq-ke - sat - sat-in - sbp - sbp-tz - sc - sc-it - sd - sd-in - sd-pk - se - se-fi - se-no - se-se - seh - seh-mz - ses - ses-ml - sg - sg-cf - shi - shi-ma - si - si-lk - sk - sk-sk - sl - sl-si - sm - smn - smn-fi - sms - sms-fi - sn - sn-zw - so - so-dj - so-et - so-ke - so-so - sq - sq-al - sq-mk - sq-xk - sr - sr-ba - sr-cs - sr-me - sr-rs - sr-xk - ss - st - st-ls - st-za - su - su-id - sv - sv-ax - sv-fi - sv-se - sw - sw-cd - sw-ke - sw-tz - sw-ug - sy - syr - syr-iq - syr-sy - szl - szl-pl - ta - ta-in - ta-lk - ta-my - ta-sg - te - te-in - teo - teo-ke - teo-ug - tg - tg-tj - th - th-th - ti - ti-er - ti-et - tk - tk-tm - tl - tn - tn-bw - tn-za - to - to-to - tok - tok-001 - tr - tr-cy - tr-tr - ts - tt - tt-ru - tw - twq - twq-ne - ty - tzm - tzm-ma - ug - ug-cn - uk - uk-ua - ur - ur-in - ur-pk - uz - uz-af - uz-uz - vai - vai-lr - ve - vec - vec-it - vi - vi-vn - vmw - vmw-mz - vo - vo-001 - vun - vun-tz - wa - wae - wae-ch - wo - wo-sn - xh - xh-za - xnr - xnr-in - xog - xog-ug - yav - yav-cm - yi - yi-001 - yi-ua - yo - yo-bj - yo-ng - yrl - yrl-br - yrl-co - yrl-ve - yue - yue-cn - yue-hk - yue-mo - za - za-cn - zgh - zgh-ma - zh - zh-cn - zh-hans - zh-hant - zh-hk - zh-mo - zh-my - zh-sg - zh-tw - zu - zu-za name: type: string description: The name of the email, as displayed on the email dashboard. publishDate: type: string description: The date and time the email is scheduled for, in ISO8601 representation. This is only used in local time or scheduled emails. format: date-time rssData: $ref: '#/components/schemas/PublicRssEmailDetails' sendOnPublish: type: boolean description: Determines whether the email will be sent immediately on publish. state: type: string description: The email state. enum: - AGENT_GENERATED - AUTOMATED - AUTOMATED_AB - AUTOMATED_AB_VARIANT - AUTOMATED_DRAFT - AUTOMATED_DRAFT_AB - AUTOMATED_DRAFT_ABVARIANT - AUTOMATED_FOR_FORM - AUTOMATED_FOR_FORM_BUFFER - AUTOMATED_FOR_FORM_DRAFT - AUTOMATED_FOR_FORM_LEGACY - AUTOMATED_LOSER_ABVARIANT - AUTOMATED_SENDING - BLOG_EMAIL_DRAFT - BLOG_EMAIL_PUBLISHED - DRAFT - DRAFT_AB - DRAFT_AB_VARIANT - ERROR - LOSER_AB_VARIANT - PAGE_STUB - PRE_PROCESSING - PROCESSING - PUBLISHED - PUBLISHED_AB - PUBLISHED_AB_VARIANT - PUBLISHED_OR_SCHEDULED - RSS_TO_EMAIL_DRAFT - RSS_TO_EMAIL_PUBLISHED - SCHEDULED - SCHEDULED_AB - SCHEDULED_OR_PUBLISHED subcategory: type: string description: The email subcategory. enum: - ab_loser_variant - ab_loser_variant_site_page - ab_master - ab_master_site_page - ab_variant - ab_variant_site_page - automated - automated_ab_master - automated_ab_variant - automated_for_crm - automated_for_custom_survey - automated_for_deal - automated_for_feedback_ces - automated_for_feedback_custom - automated_for_feedback_nps - automated_for_form - automated_for_form_buffer - automated_for_form_draft - automated_for_form_legacy - automated_for_leadflow - automated_for_ticket - batch - blog_article_instance_layout - blog_article_listing - blog_author_detail - blog_email - blog_email_child - case_study - case_study_instance_layout - case_study_listing - discardable_stub - imported_blog_post - kb_404_page - kb_article_instance_layout - kb_listing - kb_search_results - kb_support_form - landing_page - legacy_blog_post - legacy_page - localtime - manage_preferences_email - marketing_single_send_api - membership_email_verification - membership_follow_up - membership_otp_login - membership_password_reset - membership_password_saved - membership_passwordless_auth - membership_registration - membership_registration_follow_up - membership_verification - normal_blog_post - optin_email - optin_followup_email - page_instance_layout - page_stub - performable_landing_page - performable_landing_page_cutover - podcast_instance_layout - podcast_listing - portal_content - resubscribe_confirmation_email - resubscribe_email - rss_to_email - rss_to_email_child - scp_instance_layout_page - scp_static_page - single_send_api - site_page - smtp_token - staged_page - ticket_closed_kickback_email - ticket_opened_kickback_email - ticket_pipeline_automated - UNKNOWN - unsubscribe_confirmation_email - web_interactive subject: type: string description: The subject of the email. subscriptionDetails: $ref: '#/components/schemas/PublicEmailSubscriptionDetails' testing: $ref: '#/components/schemas/PublicEmailTestingDetails' to: $ref: '#/components/schemas/PublicEmailToDetails' webversion: $ref: '#/components/schemas/PublicWebversionDetails' EmailStatisticInterval: required: - aggregations - interval type: object properties: aggregations: $ref: '#/components/schemas/EmailStatisticsData' interval: $ref: '#/components/schemas/Interval' EmailStatisticsData: required: - counters - deviceBreakdown - qualifierStats - ratios type: object properties: counters: type: object additionalProperties: type: integer format: int64 description: Counters like number of `sent`, `open` or `delivered`. deviceBreakdown: type: object additionalProperties: type: object additionalProperties: type: integer format: int64 description: Statistics by device. qualifierStats: type: object additionalProperties: type: object additionalProperties: type: integer format: int64 description: Number of emails that were dropped and bounced. ratios: type: object additionalProperties: type: number description: Ratios like `openratio` or `clickratio` EmailUpdateRequest: type: object properties: activeDomain: type: string description: The active domain of the email. archived: type: boolean description: Determines if the email is archived or not. businessUnitId: type: integer description: The ID of the business unit associated with the email. format: int64 campaign: type: string description: The ID of the campaign this email is associated to. content: $ref: '#/components/schemas/PublicEmailContent' folderIdV2: type: integer description: The ID of the folder where the email will be stored. format: int64 from: $ref: '#/components/schemas/PublicEmailFromDetails' jitterSendTime: type: boolean description: Determines whether the email send time should be randomized to avoid sending all emails at the exact same time. language: type: string description: The language code for the email, such as 'en' for English. enum: - aa - ab - ae - af - af-na - af-za - agq - agq-cm - ak - ak-gh - am - am-et - an - ann - ann-ng - ar - ar-001 - ar-ae - ar-bh - ar-dj - ar-dz - ar-eg - ar-eh - ar-er - ar-il - ar-iq - ar-jo - ar-km - ar-kw - ar-lb - ar-ly - ar-ma - ar-mr - ar-om - ar-ps - ar-qa - ar-sa - ar-sd - ar-so - ar-ss - ar-sy - ar-td - ar-tn - ar-ye - as - as-in - asa - asa-tz - ast - ast-es - av - ay - az - az-az - ba - bal - bal-pk - bas - bas-cm - be - be-by - bem - bem-zm - bez - bez-tz - bg - bg-bg - bgc - bgc-in - bho - bho-in - bi - blo - blo-bj - bm - bm-ml - bn - bn-bd - bn-in - bo - bo-cn - bo-in - br - br-fr - brx - brx-in - bs - bs-ba - ca - ca-ad - ca-es - ca-fr - ca-it - ccp - ccp-bd - ccp-in - ce - ce-ru - ceb - ceb-ph - cgg - cgg-ug - ch - chr - chr-us - ckb - ckb-iq - ckb-ir - co - cr - cs - cs-cz - csw - csw-ca - cu - cu-ru - cv - cv-ru - cy - cy-gb - da - da-dk - da-gl - dav - dav-ke - de - de-at - de-be - de-ch - de-de - de-gr - de-it - de-li - de-lu - dje - dje-ne - doi - doi-in - dsb - dsb-de - dua - dua-cm - dv - dyo - dyo-sn - dz - dz-bt - ebu - ebu-ke - ee - ee-gh - ee-tg - el - el-cy - el-gr - en - en-001 - en-150 - en-ae - en-ag - en-ai - en-as - en-at - en-au - en-bb - en-be - en-bi - en-bm - en-bs - en-bw - en-bz - en-ca - en-cc - en-ch - en-ck - en-cm - en-cn - en-cx - en-cy - en-cz - en-de - en-dg - en-dk - en-dm - en-ee - en-eg - en-er - en-es - en-fi - en-fj - en-fk - en-fm - en-fr - en-gb - en-gd - en-gg - en-gh - en-gi - en-gm - en-gs - en-gu - en-gy - en-hk - en-hu - en-id - en-ie - en-il - en-im - en-in - en-io - en-it - en-je - en-jm - en-ke - en-ki - en-kn - en-ky - en-lc - en-lr - en-ls - en-lu - en-mg - en-mh - en-mo - en-mp - en-ms - en-mt - en-mu - en-mv - en-mw - en-mx - en-my - en-na - en-nf - en-ng - en-nl - en-no - en-nr - en-nu - en-nz - en-pg - en-ph - en-pk - en-pl - en-pn - en-pr - en-pt - en-pw - en-ro - en-rw - en-sb - en-sc - en-sd - en-se - en-sg - en-sh - en-si - en-sk - en-sl - en-ss - en-sx - en-sz - en-tc - en-th - en-tk - en-tn - en-to - en-tt - en-tv - en-tz - en-ug - en-um - en-us - en-vc - en-vg - en-vi - en-vn - en-vu - en-ws - en-za - en-zm - en-zw - eo - eo-001 - es - es-419 - es-ar - es-bo - es-br - es-bz - es-cl - es-co - es-cr - es-cu - es-do - es-ea - es-ec - es-es - es-gq - es-gt - es-hn - es-ic - es-mx - es-ni - es-pa - es-pe - es-ph - es-pr - es-py - es-sv - es-us - es-uy - es-ve - et - et-ee - eu - eu-es - ewo - ewo-cm - fa - fa-af - fa-ir - ff - ff-bf - ff-cm - ff-gh - ff-gm - ff-gn - ff-gw - ff-lr - ff-mr - ff-ne - ff-ng - ff-sl - ff-sn - fi - fi-fi - fil - fil-ph - fj - fo - fo-dk - fo-fo - fr - fr-be - fr-bf - fr-bi - fr-bj - fr-bl - fr-ca - fr-cd - fr-cf - fr-cg - fr-ch - fr-ci - fr-cm - fr-dj - fr-dz - fr-fr - fr-ga - fr-gf - fr-gn - fr-gp - fr-gq - fr-ht - fr-km - fr-lu - fr-ma - fr-mc - fr-mf - fr-mg - fr-ml - fr-mq - fr-mr - fr-mu - fr-nc - fr-ne - fr-pf - fr-pm - fr-re - fr-rw - fr-sc - fr-sn - fr-sy - fr-td - fr-tg - fr-tn - fr-vu - fr-wf - fr-yt - frr - frr-de - fur - fur-it - fy - fy-nl - ga - ga-gb - ga-ie - gaa - gaa-gh - gd - gd-gb - gl - gl-es - gn - gsw - gsw-ch - gsw-fr - gsw-li - gu - gu-in - guz - guz-ke - gv - gv-im - ha - ha-gh - ha-ne - ha-ng - haw - haw-us - he - he-il - hi - hi-in - hmn - ho - hr - hr-ba - hr-hr - hsb - hsb-de - ht - ht-ht - hu - hu-hu - hy - hy-am - hz - ia - ia-001 - id - id-id - ie - ie-ee - ig - ig-ng - ii - ii-cn - ik - io - is - is-is - it - it-ch - it-it - it-sm - it-va - iu - ja - ja-jp - jgo - jgo-cm - jmc - jmc-tz - jv - jv-id - ka - ka-ge - kab - kab-dz - kam - kam-ke - kar - kde - kde-tz - kea - kea-cv - kg - kgp - kgp-br - kh - khq - khq-ml - ki - ki-ke - kj - kk - kk-kz - kkj - kkj-cm - kl - kl-gl - kln - kln-ke - km - km-kh - kn - kn-in - ko - ko-cn - ko-kp - ko-kr - kok - kok-in - kr - ks - ks-in - ksb - ksb-tz - ksf - ksf-cm - ksh - ksh-de - ku - ku-tr - kv - kw - kw-gb - kxv - kxv-in - ky - ky-kg - la - lag - lag-tz - lb - lb-lu - lg - lg-ug - li - lij - lij-it - lkt - lkt-us - lmo - lmo-it - ln - ln-ao - ln-cd - ln-cf - ln-cg - lo - lo-la - lrc - lrc-iq - lrc-ir - lt - lt-lt - lu - lu-cd - luo - luo-ke - luy - luy-ke - lv - lv-lv - mai - mai-in - mas - mas-ke - mas-tz - mdf - mdf-ru - mer - mer-ke - mfe - mfe-mu - mg - mg-mg - mgh - mgh-mz - mgo - mgo-cm - mh - mi - mi-nz - mk - mk-mk - ml - ml-in - mn - mn-mn - mni - mni-in - mr - mr-in - ms - ms-bn - ms-id - ms-my - ms-sg - mt - mt-mt - mua - mua-cm - my - my-mm - mzn - mzn-ir - na - naq - naq-na - nb - nb-no - nb-sj - nd - nd-zw - nds - nds-de - nds-nl - ne - ne-in - ne-np - ng - nl - nl-aw - nl-be - nl-bq - nl-ch - nl-cw - nl-lu - nl-nl - nl-sr - nl-sx - nmg - nmg-cm - nn - nn-no - nnh - nnh-cm - 'no' - no-no - nqo - nqo-gn - nr - nso - nso-za - nus - nus-ss - nv - ny - nyn - nyn-ug - oc - oc-es - oc-fr - oj - om - om-et - om-ke - or - or-in - os - os-ge - os-ru - pa - pa-in - pa-pk - pcm - pcm-ng - pi - pis - pis-sb - pl - pl-pl - prg - prg-001 - ps - ps-af - ps-pk - pt - pt-ao - pt-br - pt-ch - pt-cv - pt-gq - pt-gw - pt-lu - pt-mo - pt-mz - pt-pt - pt-st - pt-tl - qu - qu-bo - qu-ec - qu-pe - raj - raj-in - rm - rm-ch - rn - rn-bi - ro - ro-md - ro-ro - rof - rof-tz - ru - ru-by - ru-kg - ru-kz - ru-md - ru-ru - ru-ua - rw - rw-rw - rwk - rwk-tz - sa - sa-in - sah - sah-ru - saq - saq-ke - sat - sat-in - sbp - sbp-tz - sc - sc-it - sd - sd-in - sd-pk - se - se-fi - se-no - se-se - seh - seh-mz - ses - ses-ml - sg - sg-cf - shi - shi-ma - si - si-lk - sk - sk-sk - sl - sl-si - sm - smn - smn-fi - sms - sms-fi - sn - sn-zw - so - so-dj - so-et - so-ke - so-so - sq - sq-al - sq-mk - sq-xk - sr - sr-ba - sr-cs - sr-me - sr-rs - sr-xk - ss - st - st-ls - st-za - su - su-id - sv - sv-ax - sv-fi - sv-se - sw - sw-cd - sw-ke - sw-tz - sw-ug - sy - syr - syr-iq - syr-sy - szl - szl-pl - ta - ta-in - ta-lk - ta-my - ta-sg - te - te-in - teo - teo-ke - teo-ug - tg - tg-tj - th - th-th - ti - ti-er - ti-et - tk - tk-tm - tl - tn - tn-bw - tn-za - to - to-to - tok - tok-001 - tr - tr-cy - tr-tr - ts - tt - tt-ru - tw - twq - twq-ne - ty - tzm - tzm-ma - ug - ug-cn - uk - uk-ua - ur - ur-in - ur-pk - uz - uz-af - uz-uz - vai - vai-lr - ve - vec - vec-it - vi - vi-vn - vmw - vmw-mz - vo - vo-001 - vun - vun-tz - wa - wae - wae-ch - wo - wo-sn - xh - xh-za - xnr - xnr-in - xog - xog-ug - yav - yav-cm - yi - yi-001 - yi-ua - yo - yo-bj - yo-ng - yrl - yrl-br - yrl-co - yrl-ve - yue - yue-cn - yue-hk - yue-mo - za - za-cn - zgh - zgh-ma - zh - zh-cn - zh-hans - zh-hant - zh-hk - zh-mo - zh-my - zh-sg - zh-tw - zu - zu-za name: type: string description: The name of the email, as displayed on the email dashboard. publishDate: type: string description: The date and time the email is scheduled for, in ISO8601 representation. This is only used in local time or scheduled emails. format: date-time rssData: $ref: '#/components/schemas/PublicRssEmailDetails' sendOnPublish: type: boolean description: Determines whether the email will be sent immediately on publish. state: type: string description: The email state. enum: - AGENT_GENERATED - AUTOMATED - AUTOMATED_AB - AUTOMATED_AB_VARIANT - AUTOMATED_DRAFT - AUTOMATED_DRAFT_AB - AUTOMATED_DRAFT_ABVARIANT - AUTOMATED_FOR_FORM - AUTOMATED_FOR_FORM_BUFFER - AUTOMATED_FOR_FORM_DRAFT - AUTOMATED_FOR_FORM_LEGACY - AUTOMATED_LOSER_ABVARIANT - AUTOMATED_SENDING - BLOG_EMAIL_DRAFT - BLOG_EMAIL_PUBLISHED - DRAFT - DRAFT_AB - DRAFT_AB_VARIANT - ERROR - LOSER_AB_VARIANT - PAGE_STUB - PRE_PROCESSING - PROCESSING - PUBLISHED - PUBLISHED_AB - PUBLISHED_AB_VARIANT - PUBLISHED_OR_SCHEDULED - RSS_TO_EMAIL_DRAFT - RSS_TO_EMAIL_PUBLISHED - SCHEDULED - SCHEDULED_AB - SCHEDULED_OR_PUBLISHED subcategory: type: string description: The email subcategory. enum: - ab_loser_variant - ab_loser_variant_site_page - ab_master - ab_master_site_page - ab_variant - ab_variant_site_page - automated - automated_ab_master - automated_ab_variant - automated_for_crm - automated_for_custom_survey - automated_for_deal - automated_for_feedback_ces - automated_for_feedback_custom - automated_for_feedback_nps - automated_for_form - automated_for_form_buffer - automated_for_form_draft - automated_for_form_legacy - automated_for_leadflow - automated_for_ticket - batch - blog_article_instance_layout - blog_article_listing - blog_author_detail - blog_email - blog_email_child - case_study - case_study_instance_layout - case_study_listing - discardable_stub - imported_blog_post - kb_404_page - kb_article_instance_layout - kb_listing - kb_search_results - kb_support_form - landing_page - legacy_blog_post - legacy_page - localtime - manage_preferences_email - marketing_single_send_api - membership_email_verification - membership_follow_up - membership_otp_login - membership_password_reset - membership_password_saved - membership_passwordless_auth - membership_registration - membership_registration_follow_up - membership_verification - normal_blog_post - optin_email - optin_followup_email - page_instance_layout - page_stub - performable_landing_page - performable_landing_page_cutover - podcast_instance_layout - podcast_listing - portal_content - resubscribe_confirmation_email - resubscribe_email - rss_to_email - rss_to_email_child - scp_instance_layout_page - scp_static_page - single_send_api - site_page - smtp_token - staged_page - ticket_closed_kickback_email - ticket_opened_kickback_email - ticket_pipeline_automated - UNKNOWN - unsubscribe_confirmation_email - web_interactive subject: type: string description: The subject of the email. subscriptionDetails: $ref: '#/components/schemas/PublicEmailSubscriptionDetails' testing: $ref: '#/components/schemas/PublicEmailTestingDetails' to: $ref: '#/components/schemas/PublicEmailToDetails' webversion: $ref: '#/components/schemas/PublicWebversionDetails' 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 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. Interval: required: - end - start type: object properties: end: type: string description: The end timestamp of the interval, in ISO8601 format. format: date-time start: type: string description: The start timestamp of the interval, in ISO8601 format. format: date-time NextPage: required: - after type: object properties: after: type: string description: The cursor token value to get the next set of results. Use this value as query parameter (&after=...) to obtain the next page. link: type: string description: The link to the next page. description: Specifies the paging information needed to retrieve the next set of results in a paginated API response Paging: type: object properties: next: $ref: '#/components/schemas/NextPage' prev: $ref: '#/components/schemas/PreviousPage' PreviousPage: required: - before type: object properties: before: type: string description: The cursor token value to get the previous set of results. Use this value as query parameter (&before=...) to obtain the previous page. link: type: string description: The link to the previous page. description: specifies the paging information needed to retrieve the previous set of results in a paginated API response PublicButtonStyleSettings: type: object properties: backgroundColor: type: object properties: {} cornerRadius: type: integer format: int32 fontStyle: $ref: '#/components/schemas/PublicFontStyle' PublicDividerStyleSettings: type: object properties: color: type: object properties: {} height: type: integer format: int32 lineType: type: string PublicEmail: required: - isAb type: object properties: activeDomain: type: string description: The active domain of the email. allEmailCampaignIds: type: array description: List of emailCampaignIds. items: type: string archived: type: boolean description: Determines if the email is archived or not. businessUnitId: type: string campaign: type: string description: The ID of the campaign this email is associated to. campaignName: type: string description: The name of the campaign. campaignUtm: type: string clonedFrom: type: string description: The ID of the email this email was cloned from. content: $ref: '#/components/schemas/PublicEmailContent' createdAt: type: string description: The date and time of the email's creation, in ISO8601 representation. format: date-time createdById: type: string description: The id of the user who created the email. deletedAt: type: string description: The date and time the email was deleted at, in ISO8601 representation. format: date-time emailCampaignGroupId: type: string emailTemplateMode: type: string enum: - DESIGN_MANAGER - DRAG_AND_DROP feedbackSurveyId: type: string description: The ID of the feedback survey linked to the email. folderId: type: integer format: int64 folderIdV2: type: integer format: int64 from: $ref: '#/components/schemas/PublicEmailFromDetails' id: type: string description: The email ID. isAb: type: boolean isPublished: type: boolean description: Returns the published status of the email. This is read only. isTransactional: type: boolean description: Returns whether the email is a transactional email or not. This is read only. jitterSendTime: type: boolean language: type: string enum: - aa - ab - ae - af - af-na - af-za - agq - agq-cm - ak - ak-gh - am - am-et - an - ann - ann-ng - ar - ar-001 - ar-ae - ar-bh - ar-dj - ar-dz - ar-eg - ar-eh - ar-er - ar-il - ar-iq - ar-jo - ar-km - ar-kw - ar-lb - ar-ly - ar-ma - ar-mr - ar-om - ar-ps - ar-qa - ar-sa - ar-sd - ar-so - ar-ss - ar-sy - ar-td - ar-tn - ar-ye - as - as-in - asa - asa-tz - ast - ast-es - av - ay - az - az-az - ba - bal - bal-pk - bas - bas-cm - be - be-by - bem - bem-zm - bez - bez-tz - bg - bg-bg - bgc - bgc-in - bho - bho-in - bi - blo - blo-bj - bm - bm-ml - bn - bn-bd - bn-in - bo - bo-cn - bo-in - br - br-fr - brx - brx-in - bs - bs-ba - ca - ca-ad - ca-es - ca-fr - ca-it - ccp - ccp-bd - ccp-in - ce - ce-ru - ceb - ceb-ph - cgg - cgg-ug - ch - chr - chr-us - ckb - ckb-iq - ckb-ir - co - cr - cs - cs-cz - csw - csw-ca - cu - cu-ru - cv - cv-ru - cy - cy-gb - da - da-dk - da-gl - dav - dav-ke - de - de-at - de-be - de-ch - de-de - de-gr - de-it - de-li - de-lu - dje - dje-ne - doi - doi-in - dsb - dsb-de - dua - dua-cm - dv - dyo - dyo-sn - dz - dz-bt - ebu - ebu-ke - ee - ee-gh - ee-tg - el - el-cy - el-gr - en - en-001 - en-150 - en-ae - en-ag - en-ai - en-as - en-at - en-au - en-bb - en-be - en-bi - en-bm - en-bs - en-bw - en-bz - en-ca - en-cc - en-ch - en-ck - en-cm - en-cn - en-cx - en-cy - en-cz - en-de - en-dg - en-dk - en-dm - en-ee - en-eg - en-er - en-es - en-fi - en-fj - en-fk - en-fm - en-fr - en-gb - en-gd - en-gg - en-gh - en-gi - en-gm - en-gs - en-gu - en-gy - en-hk - en-hu - en-id - en-ie - en-il - en-im - en-in - en-io - en-it - en-je - en-jm - en-ke - en-ki - en-kn - en-ky - en-lc - en-lr - en-ls - en-lu - en-mg - en-mh - en-mo - en-mp - en-ms - en-mt - en-mu - en-mv - en-mw - en-mx - en-my - en-na - en-nf - en-ng - en-nl - en-no - en-nr - en-nu - en-nz - en-pg - en-ph - en-pk - en-pl - en-pn - en-pr - en-pt - en-pw - en-ro - en-rw - en-sb - en-sc - en-sd - en-se - en-sg - en-sh - en-si - en-sk - en-sl - en-ss - en-sx - en-sz - en-tc - en-th - en-tk - en-tn - en-to - en-tt - en-tv - en-tz - en-ug - en-um - en-us - en-vc - en-vg - en-vi - en-vn - en-vu - en-ws - en-za - en-zm - en-zw - eo - eo-001 - es - es-419 - es-ar - es-bo - es-br - es-bz - es-cl - es-co - es-cr - es-cu - es-do - es-ea - es-ec - es-es - es-gq - es-gt - es-hn - es-ic - es-mx - es-ni - es-pa - es-pe - es-ph - es-pr - es-py - es-sv - es-us - es-uy - es-ve - et - et-ee - eu - eu-es - ewo - ewo-cm - fa - fa-af - fa-ir - ff - ff-bf - ff-cm - ff-gh - ff-gm - ff-gn - ff-gw - ff-lr - ff-mr - ff-ne - ff-ng - ff-sl - ff-sn - fi - fi-fi - fil - fil-ph - fj - fo - fo-dk - fo-fo - fr - fr-be - fr-bf - fr-bi - fr-bj - fr-bl - fr-ca - fr-cd - fr-cf - fr-cg - fr-ch - fr-ci - fr-cm - fr-dj - fr-dz - fr-fr - fr-ga - fr-gf - fr-gn - fr-gp - fr-gq - fr-ht - fr-km - fr-lu - fr-ma - fr-mc - fr-mf - fr-mg - fr-ml - fr-mq - fr-mr - fr-mu - fr-nc - fr-ne - fr-pf - fr-pm - fr-re - fr-rw - fr-sc - fr-sn - fr-sy - fr-td - fr-tg - fr-tn - fr-vu - fr-wf - fr-yt - frr - frr-de - fur - fur-it - fy - fy-nl - ga - ga-gb - ga-ie - gaa - gaa-gh - gd - gd-gb - gl - gl-es - gn - gsw - gsw-ch - gsw-fr - gsw-li - gu - gu-in - guz - guz-ke - gv - gv-im - ha - ha-gh - ha-ne - ha-ng - haw - haw-us - he - he-il - hi - hi-in - hmn - ho - hr - hr-ba - hr-hr - hsb - hsb-de - ht - ht-ht - hu - hu-hu - hy - hy-am - hz - ia - ia-001 - id - id-id - ie - ie-ee - ig - ig-ng - ii - ii-cn - ik - io - is - is-is - it - it-ch - it-it - it-sm - it-va - iu - ja - ja-jp - jgo - jgo-cm - jmc - jmc-tz - jv - jv-id - ka - ka-ge - kab - kab-dz - kam - kam-ke - kar - kde - kde-tz - kea - kea-cv - kg - kgp - kgp-br - kh - khq - khq-ml - ki - ki-ke - kj - kk - kk-kz - kkj - kkj-cm - kl - kl-gl - kln - kln-ke - km - km-kh - kn - kn-in - ko - ko-cn - ko-kp - ko-kr - kok - kok-in - kr - ks - ks-in - ksb - ksb-tz - ksf - ksf-cm - ksh - ksh-de - ku - ku-tr - kv - kw - kw-gb - kxv - kxv-in - ky - ky-kg - la - lag - lag-tz - lb - lb-lu - lg - lg-ug - li - lij - lij-it - lkt - lkt-us - lmo - lmo-it - ln - ln-ao - ln-cd - ln-cf - ln-cg - lo - lo-la - lrc - lrc-iq - lrc-ir - lt - lt-lt - lu - lu-cd - luo - luo-ke - luy - luy-ke - lv - lv-lv - mai - mai-in - mas - mas-ke - mas-tz - mdf - mdf-ru - mer - mer-ke - mfe - mfe-mu - mg - mg-mg - mgh - mgh-mz - mgo - mgo-cm - mh - mi - mi-nz - mk - mk-mk - ml - ml-in - mn - mn-mn - mni - mni-in - mr - mr-in - ms - ms-bn - ms-id - ms-my - ms-sg - mt - mt-mt - mua - mua-cm - my - my-mm - mzn - mzn-ir - na - naq - naq-na - nb - nb-no - nb-sj - nd - nd-zw - nds - nds-de - nds-nl - ne - ne-in - ne-np - ng - nl - nl-aw - nl-be - nl-bq - nl-ch - nl-cw - nl-lu - nl-nl - nl-sr - nl-sx - nmg - nmg-cm - nn - nn-no - nnh - nnh-cm - 'no' - no-no - nqo - nqo-gn - nr - nso - nso-za - nus - nus-ss - nv - ny - nyn - nyn-ug - oc - oc-es - oc-fr - oj - om - om-et - om-ke - or - or-in - os - os-ge - os-ru - pa - pa-in - pa-pk - pcm - pcm-ng - pi - pis - pis-sb - pl - pl-pl - prg - prg-001 - ps - ps-af - ps-pk - pt - pt-ao - pt-br - pt-ch - pt-cv - pt-gq - pt-gw - pt-lu - pt-mo - pt-mz - pt-pt - pt-st - pt-tl - qu - qu-bo - qu-ec - qu-pe - raj - raj-in - rm - rm-ch - rn - rn-bi - ro - ro-md - ro-ro - rof - rof-tz - ru - ru-by - ru-kg - ru-kz - ru-md - ru-ru - ru-ua - rw - rw-rw - rwk - rwk-tz - sa - sa-in - sah - sah-ru - saq - saq-ke - sat - sat-in - sbp - sbp-tz - sc - sc-it - sd - sd-in - sd-pk - se - se-fi - se-no - se-se - seh - seh-mz - ses - ses-ml - sg - sg-cf - shi - shi-ma - si - si-lk - sk - sk-sk - sl - sl-si - sm - smn - smn-fi - sms - sms-fi - sn - sn-zw - so - so-dj - so-et - so-ke - so-so - sq - sq-al - sq-mk - sq-xk - sr - sr-ba - sr-cs - sr-me - sr-rs - sr-xk - ss - st - st-ls - st-za - su - su-id - sv - sv-ax - sv-fi - sv-se - sw - sw-cd - sw-ke - sw-tz - sw-ug - sy - syr - syr-iq - syr-sy - szl - szl-pl - ta - ta-in - ta-lk - ta-my - ta-sg - te - te-in - teo - teo-ke - teo-ug - tg - tg-tj - th - th-th - ti - ti-er - ti-et - tk - tk-tm - tl - tn - tn-bw - tn-za - to - to-to - tok - tok-001 - tr - tr-cy - tr-tr - ts - tt - tt-ru - tw - twq - twq-ne - ty - tzm - tzm-ma - ug - ug-cn - uk - uk-ua - ur - ur-in - ur-pk - uz - uz-af - uz-uz - vai - vai-lr - ve - vec - vec-it - vi - vi-vn - vmw - vmw-mz - vo - vo-001 - vun - vun-tz - wa - wae - wae-ch - wo - wo-sn - xh - xh-za - xnr - xnr-in - xog - xog-ug - yav - yav-cm - yi - yi-001 - yi-ua - yo - yo-bj - yo-ng - yrl - yrl-br - yrl-co - yrl-ve - yue - yue-cn - yue-hk - yue-mo - za - za-cn - zgh - zgh-ma - zh - zh-cn - zh-hans - zh-hant - zh-hk - zh-mo - zh-my - zh-sg - zh-tw - zu - zu-za name: type: string description: The name of the email, as displayed on the email dashboard. previewKey: type: string primaryEmailCampaignId: type: string publishDate: type: string description: The date and time the email is scheduled for, in ISO8601 representation. This is only used in local time or scheduled emails. format: date-time publishedAt: type: string description: The date and time the email was published at, in ISO8601 representation. format: date-time publishedByEmail: type: string description: Email of the user who published/sent the email. publishedById: type: string description: The ID of the user who published the email. publishedByName: type: string description: Name of the user who published the email. rssData: $ref: '#/components/schemas/PublicRssEmailDetails' sendOnPublish: type: boolean description: Determines whether the email will be sent immediately on publish. state: type: string description: The email state. enum: - AGENT_GENERATED - AUTOMATED - AUTOMATED_AB - AUTOMATED_AB_VARIANT - AUTOMATED_DRAFT - AUTOMATED_DRAFT_AB - AUTOMATED_DRAFT_ABVARIANT - AUTOMATED_FOR_FORM - AUTOMATED_FOR_FORM_BUFFER - AUTOMATED_FOR_FORM_DRAFT - AUTOMATED_FOR_FORM_LEGACY - AUTOMATED_LOSER_ABVARIANT - AUTOMATED_SENDING - BLOG_EMAIL_DRAFT - BLOG_EMAIL_PUBLISHED - DRAFT - DRAFT_AB - DRAFT_AB_VARIANT - ERROR - LOSER_AB_VARIANT - PAGE_STUB - PRE_PROCESSING - PROCESSING - PUBLISHED - PUBLISHED_AB - PUBLISHED_AB_VARIANT - PUBLISHED_OR_SCHEDULED - RSS_TO_EMAIL_DRAFT - RSS_TO_EMAIL_PUBLISHED - SCHEDULED - SCHEDULED_AB - SCHEDULED_OR_PUBLISHED stats: $ref: '#/components/schemas/EmailStatisticsData' subcategory: type: string description: The email subcategory. subject: type: string description: The subject of the email. subscriptionDetails: $ref: '#/components/schemas/PublicEmailSubscriptionDetails' teamsWithAccess: type: array items: type: string testing: $ref: '#/components/schemas/PublicEmailTestingDetails' to: $ref: '#/components/schemas/PublicEmailToDetails' type: type: string description: The email type, this is derived from other properties on the email such as subcategory. enum: - AB_EMAIL - AUTOMATED_AB_EMAIL - AUTOMATED_EMAIL - BATCH_EMAIL - BLOG_EMAIL - BLOG_EMAIL_CHILD - FEEDBACK_CES_EMAIL - FEEDBACK_CUSTOM_EMAIL - FEEDBACK_CUSTOM_SURVEY_EMAIL - FEEDBACK_NPS_EMAIL - FOLLOWUP_EMAIL - LEADFLOW_EMAIL - LOCALTIME_EMAIL - MANAGE_PREFERENCES_EMAIL - MARKETING_SINGLE_SEND_API - MEMBERSHIP_EMAIL_VERIFICATION_EMAIL - MEMBERSHIP_FOLLOW_UP_EMAIL - MEMBERSHIP_OTP_LOGIN_EMAIL - MEMBERSHIP_PASSWORD_RESET_EMAIL - MEMBERSHIP_PASSWORD_SAVED_EMAIL - MEMBERSHIP_PASSWORDLESS_AUTH_EMAIL - MEMBERSHIP_REGISTRATION_EMAIL - MEMBERSHIP_REGISTRATION_FOLLOW_UP_EMAIL - MEMBERSHIP_VERIFICATION_EMAIL - OPTIN_EMAIL - OPTIN_FOLLOWUP_EMAIL - RESUBSCRIBE_EMAIL - RSS_EMAIL - RSS_EMAIL_CHILD - SINGLE_SEND_API - SMTP_TOKEN - TICKET_EMAIL unpublishedAt: type: string format: date-time updatedAt: type: string description: The date and time of the last update to the email, in ISO8601 representation. format: date-time updatedById: type: string description: The id of the user who last updated the email. usersWithAccess: type: array items: type: string webversion: $ref: '#/components/schemas/PublicWebversionDetails' workflowNames: type: array description: Names of workflows in which the email is used within a "send email" action. items: type: string PublicEmailContent: type: object properties: flexAreas: type: object additionalProperties: type: object properties: {} plainTextVersion: type: string smartFields: type: object additionalProperties: $ref: '#/components/schemas/SmartEmailField' styleSettings: $ref: '#/components/schemas/PublicEmailStyleSettings' templatePath: type: string themeSettingsValues: type: object additionalProperties: type: object properties: {} widgetContainers: type: object additionalProperties: type: object properties: {} widgets: type: object additionalProperties: type: object properties: {} PublicEmailFromDetails: type: object properties: customReplyTo: type: string description: The reply to recipients will see. fromName: type: string description: The name recipients will see. replyTo: type: string description: The from address and reply to email address (if no customReplyTo defined) recipients will see. PublicEmailRecipients: type: object properties: exclude: type: array description: Excluded IDs. items: type: string include: type: array description: Included IDs. items: type: string PublicEmailStyleSettings: type: object properties: backgroundColor: type: string backgroundImage: type: string backgroundImageType: type: string enum: - REPEAT - SINGLE - STRETCH bodyBorderColor: type: string bodyBorderColorChoice: type: string bodyBorderWidth: type: number bodyColor: type: string buttonStyleSettings: $ref: '#/components/schemas/PublicButtonStyleSettings' colorPickerFavorite1: type: string colorPickerFavorite2: type: string colorPickerFavorite3: type: string colorPickerFavorite4: type: string colorPickerFavorite5: type: string colorPickerFavorite6: type: string dividerStyleSettings: $ref: '#/components/schemas/PublicDividerStyleSettings' emailBodyPadding: type: string emailBodyWidth: type: string headingOneFont: $ref: '#/components/schemas/PublicFontStyle' headingTwoFont: $ref: '#/components/schemas/PublicFontStyle' linksFont: $ref: '#/components/schemas/PublicFontStyle' primaryAccentColor: type: string primaryFont: type: string primaryFontColor: type: string primaryFontLineHeight: type: string primaryFontSize: type: number secondaryAccentColor: type: string secondaryFont: type: string secondaryFontColor: type: string secondaryFontLineHeight: type: string secondaryFontSize: type: number PublicEmailSubscriptionDetails: type: object properties: officeLocationId: type: string description: ID of the selected office location. preferencesGroupId: type: string subscriptionId: type: string description: ID of the subscription. subscriptionName: type: string PublicEmailTestingDetails: required: - isAbVariation type: object properties: abSampleSizeDefault: type: string description: Version of the email that should be sent if there are too few recipients to conduct an AB test. enum: - automated_loser_variant - automated_master - automated_variant - loser_variant - mab_master - mab_variant - master - variant abSamplingDefault: type: string description: Version of the email that should be sent if the results are inconclusive after the test period, master or variant. enum: - automated_loser_variant - automated_master - automated_variant - loser_variant - mab_master - mab_variant - master - variant abStatus: type: string description: Status of the AB test. enum: - automated_loser_variant - automated_master - automated_variant - loser_variant - mab_master - mab_variant - master - variant abSuccessMetric: type: string description: Metric to determine the version that will be sent to the remaining contacts. enum: - CLICKS_BY_DELIVERED - CLICKS_BY_OPENS - OPENS_BY_DELIVERED abTestPercentage: type: integer description: The size of your test group. format: int32 hoursToWait: type: integer description: Time limit on gathering test results. After this time is up, the winning version will be sent to the remaining contacts. format: int32 isAbVariation: type: boolean testId: type: string description: The ID of the AB test. PublicEmailToDetails: type: object properties: contactIds: $ref: '#/components/schemas/PublicEmailRecipients' contactIlsLists: $ref: '#/components/schemas/PublicEmailRecipients' contactLists: $ref: '#/components/schemas/PublicEmailRecipients' limitSendFrequency: type: boolean suppressGraymail: type: boolean description: Whether to send to unengaged contacts (false) or not (true). PublicEmailVersion: required: - id - object - updatedAt - user type: object properties: id: type: string object: $ref: '#/components/schemas/PublicEmail' updatedAt: type: string format: date-time user: $ref: '#/components/schemas/VersionUser' PublicFontStyle: type: object properties: bold: type: boolean color: type: string font: type: string italic: type: boolean size: type: integer format: int32 underline: type: boolean PublicRssEmailDetails: type: object properties: blogEmailType: type: string blogImageMaxWidth: type: integer format: int32 blogLayout: type: string enum: - FULL_POST - SUMMARY_NO_FEATURED_IMAGE - SUMMARY_WITH_FEATURED_IMAGE hubspotBlogId: type: string maxEntries: type: integer format: int32 rssEntryTemplate: type: string timing: type: object additionalProperties: type: object properties: {} url: type: string useHeadlineAsSubject: type: boolean PublicWebversionDetails: type: object properties: domain: type: string enabled: type: boolean expiresAt: type: string format: date-time isPageRedirected: type: boolean metaDescription: type: string pageExpiryEnabled: type: boolean redirectToPageId: type: string redirectToUrl: type: string slug: type: string title: type: string url: type: string SmartEmailField: type: object properties: {} VersionPublicEmail: required: - id - object - updatedAt - user type: object properties: id: type: string description: ID of this marketing email version. object: $ref: '#/components/schemas/PublicEmail' updatedAt: type: string description: The date and time of the last update to the email, in ISO8601 representation. format: date-time user: $ref: '#/components/schemas/VersionUser' VersionUser: required: - email - fullName - id type: object properties: email: type: string description: Email address of the user. fullName: type: string description: First and last name of the user. id: type: string description: ID of the user. responses: Error: description: An error occurred. content: '*/*': schema: $ref: '#/components/schemas/Error' securitySchemes: developer_hapikey: type: apiKey name: hapikey in: query oauth2: type: oauth2 flows: authorizationCode: authorizationUrl: https://app.hubspot.com/oauth/authorize tokenUrl: https://api.hubapi.com/oauth/v1/token scopes: content: '' transactional-email: '' private_apps: type: apiKey name: private-app in: header private_apps_legacy: type: apiKey name: private-app-legacy in: header x-hubspot-available-client-libraries: - PHP x-hubspot-product-tier-requirements: marketing: FREE sales: FREE service: FREE cms: FREE commerce: FREE crmHub: FREE dataHub: FREE