# HubspotMarketingApi
import StarterToolInfo from "@/app/_components/starter-tool-info";
import ToolInfo from "@/app/_components/tool-info";
import Badges from "@/app/_components/badges";
import TabbedCodeBlock from "@/app/_components/tabbed-code-block";
import TableOfContents from "@/app/_components/table-of-contents";
import ToolFooter from "@/app/_components/tool-footer";
import { Callout } from "nextra/components";
The HubspotMarketingApi MCP Server offers a comprehensive suite of tools for managing marketing campaigns within HubSpot. Users can efficiently perform actions such as:
- Create, update, and delete marketing campaigns and associated assets.
- Manage campaign budgets and spending items.
- Retrieve detailed metrics and reports on campaign performance and email statistics.
- Handle marketing events, including participation tracking and event details.
- Create and manage marketing forms and emails, including A/B testing and transactional emails.
This server streamlines the process of executing marketing strategies and analyzing their effectiveness within the HubSpot platform.
## Available Tools
If you need to perform an action that's not listed here, you can [get in touch
with us](mailto:contact@arcade.dev) to request a new tool, or [create your own
tools](/guides/create-tools/tool-basics/build-mcp-server).
## HubspotMarketingApi.GetCampaignSpendItem
Retrieve details of a specific campaign spend item.
**Parameters**
- **campaign_guid** (`string`, required) Unique identifier for the marketing campaign to retrieve the spend item from.
- **spend_item_identifier** (`integer`, required) Unique identifier for the spend item in the campaign.
## HubspotMarketingApi.UpdateCampaignSpend
Update a specific campaign spend item by ID.
**Parameters**
- **campaign_guid** (`string`, required) Unique identifier for the campaign.
- **spend_amount** (`number`, required) The new amount value for the campaign spend. Specify this as a number representing the monetary value.
- **spend_identifier** (`integer`, required) Unique identifier for the spend item in the campaign to be updated.
- **spend_item_name** (`string`, required) The new name for the campaign spend item. This should be a descriptive string defining the spend item.
- **spend_order** (`integer`, required) The order or sequence number of the spend item within the campaign. It determines the priority or arrangement of the spend items.
- **spend_item_description** (`string`, optional) Details or notes about the campaign spend item.
## HubspotMarketingApi.RemoveCampaignSpendItem
Deletes a specific campaign spend item by ID.
**Parameters**
- **campaign_identifier** (`string`, required) Unique identifier for the specific marketing campaign.
- **spend_item_id** (`integer`, required) Unique identifier for the specific spend item to be deleted from the campaign.
## HubspotMarketingApi.UpdateCampaignBatch
Update a batch of marketing campaigns efficiently.
**Parameters**
- **mode** (`Enum` [ToolMode](#toolmode), required) Operation mode: 'get_request_schema' returns the OpenAPI spec for the request body, 'execute' performs the actual operation
- **request_body** (`string`, optional) Stringified JSON representing the request body. Required when mode is 'execute', ignored when mode is 'get_request_schema'
## HubspotMarketingApi.GetCampaignBudget
Retrieve details of a specific marketing campaign budget item.
**Parameters**
- **budget_item_id** (`integer`, required) Unique identifier for the budget item to retrieve details.
- **campaign_guid** (`string`, required) The unique identifier for the marketing campaign to access its budget details.
## HubspotMarketingApi.UpdateCampaignBudget
Update a specific campaign budget item by ID.
**Parameters**
- **budget_amount** (`number`, required) The amount to set for the budget item. This is a numerical value representing the budget in the specified currency.
- **budget_id** (`integer`, required) Unique identifier for the budget item to be updated.
- **budget_item_name** (`string`, required) The new name for the budget item. It should be a descriptive label that clearly identifies the budget item within the campaign.
- **campaign_guid** (`string`, required) A unique identifier for the campaign. Use this to specify which campaign's budget item to update.
- **priority_order** (`integer`, required) Specify the order in which the budget item appears. Accepted values are integers.
- **budget_item_description** (`string`, optional) A string to describe the budget item. Provide a brief explanation of what this budget is for.
## HubspotMarketingApi.DeleteCampaignBudgetItem
Delete a specific campaign budget item by ID.
**Parameters**
- **budget_item_id** (`integer`, required) Unique identifier for the budget item to be deleted.
- **campaign_guid** (`string`, required) Unique identifier for the campaign to delete the budget item from.
## HubspotMarketingApi.AssociateAssetWithCampaign
Associate a specified asset with a HubSpot campaign.
**Parameters**
- **asset_id** (`string`, required) The unique identifier for the asset to be associated with a campaign. This should be provided as a string.
- **asset_type** (`string`, required) Specify the asset type to associate with the campaign. Allowed values are FORM, OBJECT_LIST, and EXTERNAL_WEB_URL.
- **campaign_unique_identifier** (`string`, required) Unique identifier for the campaign, formatted as a UUID. Essential for associating an asset with the correct campaign.
## HubspotMarketingApi.DisassociateCampaignAsset
Disassociate an asset from a HubSpot marketing campaign.
**Parameters**
- **asset_id** (`string`, required) Unique identifier for the asset to be disassociated from the campaign.
- **asset_type** (`string`, required) Specify the type of asset to disassociate, limited to FORM, OBJECT_LIST, or EXTERNAL_WEB_URL.
- **campaign_unique_identifier** (`string`, required) Unique identifier for the campaign, formatted as a UUID.
## HubspotMarketingApi.GetCampaignBudgetDetails
Retrieve detailed budget and spend details for a campaign.
**Parameters**
- **campaign_unique_identifier** (`string`, required) Unique identifier for the campaign, formatted as a UUID.
## HubspotMarketingApi.FetchMarketingCampaignBatches
Retrieve a batch of HubSpot marketing campaigns and assets.
**Parameters**
- **mode** (`Enum` [ToolMode](#toolmode), required) Operation mode: 'get_request_schema' returns the OpenAPI spec for the request body, 'execute' performs the actual operation
- **fetch_start_date** (`string`, optional) Start date to fetch asset metrics, formatted as YYYY-MM-DD. Determines the period for asset metrics. Optional. Only used when mode is 'execute'.
- **end_date_for_asset_metrics** (`string`, optional) End date to fetch asset metrics, formatted as YYYY-MM-DD. If not provided, no asset metrics will be fetched. Only used when mode is 'execute'.
- **requested_properties** (`array[string]`, optional) Comma-separated list of properties to return in the response. Ignored if values are empty, resulting in an empty properties map if not specified. Only used when mode is 'execute'.
- **request_body** (`string`, optional) Stringified JSON representing the request body. Required when mode is 'execute', ignored when mode is 'get_request_schema'
## HubspotMarketingApi.GetMarketingCampaigns
Retrieve a page of marketing campaigns with optional filters.
**Parameters**
- **campaign_name_filter** (`string`, optional) A substring to filter campaigns by name. Returns campaigns containing this substring. Optional: returns all if not provided.
- **max_results_limit** (`integer`, optional) Maximum number of campaigns to return (1-100). Default is 50.
- **pagination_cursor** (`string`, optional) A cursor for pagination. If provided, results start after the given cursor. Example: NTI1Cg%3D%3D
- **requested_properties** (`array[string]`, optional) A list of properties to be included in the response. Comma-separate values are required. If any specified property is empty, it will be ignored.
- **sort_by** (`string`, optional) Specify the field to sort results by. Use '-' to denote descending order. Options are hs_name, createdAt, updatedAt. Default is hs_name.
## HubspotMarketingApi.CreateMarketingCampaign
Create a marketing campaign and retrieve its details.
**Parameters**
- **mode** (`Enum` [ToolMode](#toolmode), required) Operation mode: 'get_request_schema' returns the OpenAPI spec for the request body, 'execute' performs the actual operation
- **request_body** (`string`, optional) Stringified JSON representing the request body. Required when mode is 'execute', ignored when mode is 'get_request_schema'
## HubspotMarketingApi.GetCampaignAttributionMetrics
Retrieve attribution metrics for a specific campaign.
**Parameters**
- **campaign_unique_identifier** (`string`, required) Unique identifier for the campaign, formatted as a UUID. Required to retrieve specific campaign metrics.
- **report_end_date** (`string`, optional) Set the end date for the report data in YYYY-MM-DD format. Defaults to the current date if not specified.
- **start_date_for_report** (`string`, optional) The start date for the report data, formatted as YYYY-MM-DD. Default is 2006-01-01.
## HubspotMarketingApi.ListCampaignAssets
Retrieve all assets of a specified type for a campaign.
**Parameters**
- **asset_type** (`string`, required) The type of asset to fetch for the campaign, e.g., 'email', 'webpage'.
- **campaign_identifier** (`string`, required) Unique identifier for the campaign in UUID format.
- **end_date_for_asset_metrics** (`string`, optional) End date to fetch asset metrics, formatted as YYYY-MM-DD. Used for fetching metrics of assets within a specified period. Optional parameter.
- **maximum_results_limit** (`string`, optional) The maximum number of asset results to return. Default is 10.
- **metrics_start_date** (`string`, optional) Start date to fetch asset metrics, formatted as YYYY-MM-DD. Used to fetch metrics for a specified period. If not provided, no metrics will be fetched.
- **pagination_cursor** (`string`, optional) A cursor for pagination. If provided, results start after this cursor. Example: NTI1Cg%3D%3D
## HubspotMarketingApi.ArchiveCampaignsBatch
Delete a batch of marketing campaigns.
**Parameters**
- **mode** (`Enum` [ToolMode](#toolmode), required) Operation mode: 'get_request_schema' returns the OpenAPI spec for the request body, 'execute' performs the actual operation
- **request_body** (`string`, optional) Stringified JSON representing the request body. Required when mode is 'execute', ignored when mode is 'get_request_schema'
## HubspotMarketingApi.GetCampaignRevenueReport
Fetch revenue attribution report for a specific campaign.
**Parameters**
- **campaign_unique_identifier** (`string`, required) Unique identifier for the campaign, formatted as a UUID.
- **attribution_model** (`string`, optional) The revenue attribution model to be used. Allowed values: LINEAR, FIRST_INTERACTION, LAST_INTERACTION, FULL_PATH, U_SHAPED, W_SHAPED, TIME_DECAY, J_SHAPED, INVERSE_J_SHAPED. Defaults to LINEAR.
- **report_end_date** (`string`, optional) End date for the report data in YYYY-MM-DD format. Defaults to the current date.
- **report_start_date** (`string`, optional) The start date for the report data in the format YYYY-MM-DD. Default is 2006-01-01.
## HubspotMarketingApi.CreateMarketingCampaignBatch
Create a batch of marketing campaigns in HubSpot.
**Parameters**
- **mode** (`Enum` [ToolMode](#toolmode), required) Operation mode: 'get_request_schema' returns the OpenAPI spec for the request body, 'execute' performs the actual operation
- **request_body** (`string`, optional) Stringified JSON representing the request body. Required when mode is 'execute', ignored when mode is 'get_request_schema'
## HubspotMarketingApi.AddCampaignBudgetItem
Add a new budget item to a marketing campaign.
**Parameters**
- **budget_amount** (`number`, required) The monetary amount for the budget item. It should be a numeric value denoting the budget amount to add to the campaign.
- **budget_item_name** (`string`, required) Name of the budget item to be added to the campaign. It should be descriptive and concise.
- **budget_item_order** (`integer`, required) The position or priority of the budget item in the list. Provide as an integer.
- **campaign_id** (`string`, required) Unique identifier for the campaign in HubSpot Marketing.
- **budget_item_description** (`string`, optional) A brief description of the budget item being added to the campaign. This can include details about what the budget will be used for and any other relevant information.
## HubspotMarketingApi.GetCampaignDetails
Retrieve details and metrics for a specific marketing campaign.
**Parameters**
- **campaign_guid** (`string`, required) Unique identifier for the campaign, formatted as a UUID.
- **end_date_for_asset_metrics** (`string`, optional) End date to fetch asset metrics, formatted as YYYY-MM-DD. If omitted, no metrics will be retrieved.
- **metrics_start_date** (`string`, optional) Start date for fetching asset metrics. Format as YYYY-MM-DD. Metrics are only retrieved if both start and end dates are provided.
- **properties_list** (`array[string]`, optional) List specific properties to return in the response. Leave empty for an empty properties map.
## HubspotMarketingApi.DeleteMarketingCampaign
Delete a specified marketing campaign.
**Parameters**
- **campaign_guid** (`string`, required) Unique identifier for the campaign, formatted as a UUID.
## HubspotMarketingApi.UpdateCampaignProperties
Update properties of a HubSpot marketing campaign.
**Parameters**
- **mode** (`Enum` [ToolMode](#toolmode), required) Operation mode: 'get_request_schema' returns the OpenAPI spec for the request body, 'execute' performs the actual operation
- **campaign_uuid** (`string`, optional) Unique identifier for the campaign, formatted as a UUID. Required when mode is 'execute', ignored when mode is 'get_request_schema'.
- **request_body** (`string`, optional) Stringified JSON representing the request body. Required when mode is 'execute', ignored when mode is 'get_request_schema'
## HubspotMarketingApi.FetchCampaignContactIds
Fetch contact IDs for a specific campaign and contact type.
**Parameters**
- **campaign_identifier** (`string`, required) Unique identifier for the campaign formatted as a UUID.
- **contact_type_filter** (`string`, required) Specifies the type of metric for filtering contacts. Options: contactFirstTouch, contactLastTouch, influencedContacts.
- **contact_fetch_limit** (`integer`, optional) Specify the maximum number of contact IDs to retrieve, with a default of 100.
- **pagination_cursor** (`string`, optional) A string cursor for pagination to start results after the given point. Example: NTI1Cg%3D%3D
- **report_end_date** (`string`, optional) The end date for the report data in YYYY-MM-DD format. Defaults to the current date if not specified.
- **start_date** (`string`, optional) The start date for the report data in YYYY-MM-DD format. Default is 2006-01-01.
## HubspotMarketingApi.CreateCampaignSpend
Create a new campaign spend item for a marketing campaign.
**Parameters**
- **campaign_id** (`string`, required) Unique identifier for the marketing campaign to add the spend item to.
- **spend_amount** (`number`, required) The monetary value of the spend item to be added to the campaign. This should be a numerical value representing the amount in the currency used by the campaign.
- **spend_item_name** (`string`, required) The name of the spend item to be created for the campaign. This should be a descriptive title or label for the expenditure.
- **spend_item_order** (`integer`, required) The order of the spend item in the campaign. Use an integer to specify the sequence.
- **spend_description** (`string`, optional) A brief description of the campaign spend item, detailing the nature or purpose of the expenditure.
## HubspotMarketingApi.GetFormById
Retrieve a marketing form by its ID.
**Parameters**
- **form_id** (`string`, required) The unique identifier for the specific marketing form to retrieve. This ID is required to fetch the form details.
- **return_archived_only** (`boolean`, optional) Set to true to return only archived forms.
## HubspotMarketingApi.UpdateHubspotForm
Update all fields of a HubSpot form.
**Parameters**
- **mode** (`Enum` [ToolMode](#toolmode), required) Operation mode: 'get_request_schema' returns the OpenAPI spec for the request body, 'execute' performs the actual operation
- **hubspot_form_id** (`string`, optional) The unique identifier for the HubSpot form to update. This ID specifies which form's fields will be replaced. Required when mode is 'execute', ignored when mode is 'get_request_schema'.
- **request_body** (`string`, optional) Stringified JSON representing the request body. Required when mode is 'execute', ignored when mode is 'get_request_schema'
## HubspotMarketingApi.ArchiveMarketingForm
Archive a marketing form in HubSpot.
**Parameters**
- **form_id** (`string`, required) The ID of the form to archive in HubSpot. This is required to process the archive request.
## HubspotMarketingApi.UpdateHubspotMarketingForm
Update components of a HubSpot marketing form.
**Parameters**
- **mode** (`Enum` [ToolMode](#toolmode), required) Operation mode: 'get_request_schema' returns the OpenAPI spec for the request body, 'execute' performs the actual operation
- **form_id** (`string`, optional) The unique identifier for the form to update. Must be provided to specify which form's components to update. Required when mode is 'execute', ignored when mode is 'get_request_schema'.
- **request_body** (`string`, optional) Stringified JSON representing the request body. Required when mode is 'execute', ignored when mode is 'get_request_schema'
## HubspotMarketingApi.ListHubspotForms
Retrieve a list of HubSpot marketing forms.
**Parameters**
- **included_form_types** (`array[string]`, optional) List of form types to include in results, e.g., 'hubspot', 'workflow', etc.
- **paging_cursor_token** (`string`, optional) The token indicating the cursor position for paginated results. Use `paging.next.after` from the previous response to fetch more results.
- **results_per_page** (`integer`, optional) Specify the maximum number of forms to retrieve per page.
- **return_only_archived_forms** (`boolean`, optional) Set to true to return only archived forms in the results.
## HubspotMarketingApi.CreateMarketingForm
Create a new marketing form in HubSpot.
**Parameters**
- **mode** (`Enum` [ToolMode](#toolmode), required) Operation mode: 'get_request_schema' returns the OpenAPI spec for the request body, 'execute' performs the actual operation
- **request_body** (`string`, optional) Stringified JSON representing the request body. Required when mode is 'execute', ignored when mode is 'get_request_schema'
## HubspotMarketingApi.GetEmailStatistics
Get aggregated email statistics in a specified time span.
**Parameters**
This tool does not take any parameters.
## HubspotMarketingApi.PublishHubspotEmail
Publish a HubSpot marketing email.
**Parameters**
- **hubspot_email_id** (`string`, required) The unique identifier for the HubSpot marketing email to publish.
## HubspotMarketingApi.CreateAbTestEmailVariation
Create a new variation for an email A/B test.
**Parameters**
- **email_content_id** (`string`, required) ID of the email content to create a variation for A/B testing.
- **variation_name** (`string`, required) The name of the new email variation for the A/B test. Provide a descriptive name to easily identify this variation.
## HubspotMarketingApi.FetchEmailStatistics
Fetch aggregated email statistics in specified intervals.
**Parameters**
This tool does not take any parameters.
## HubspotMarketingApi.GetEmailAbTestVariation
Retrieve the variation of an A/B test marketing email.
**Parameters**
- **email_identifier** (`string`, required) The unique identifier of the marketing email to obtain its A/B test variation.
## HubspotMarketingApi.ResetEmailDraftToLive
Reset an email draft to match the live version.
**Parameters**
- **email_id** (`string`, required) The unique identifier for the email draft to be reset. This is a string value used to specify which draft to revert.
## HubspotMarketingApi.RestoreEmailRevisionToDraft
Restore a previous email revision to draft state.
**Parameters**
- **email_identifier** (`string`, required) The unique identifier of the marketing email whose revision is to be restored to draft. This should match the specific email ID format used by HubSpot.
- **revision_id** (`string`, required) The unique identifier of the email revision to be restored to draft state.
## HubspotMarketingApi.RetrieveEmailDraft
Retrieve the draft version of a specified email.
**Parameters**
- **email_id** (`string`, required) The unique identifier of the email to retrieve the draft for. This ID is used to specify which email's draft or published version should be accessed.
## HubspotMarketingApi.UpdateEmailDraft
Create or update the draft version of a marketing email.
**Parameters**
- **mode** (`Enum` [ToolMode](#toolmode), required) Operation mode: 'get_request_schema' returns the OpenAPI spec for the request body, 'execute' performs the actual operation
- **email_id** (`string`, optional) The unique identifier of the marketing email to update or create a draft for. This is required to specify which email draft you are modifying. Required when mode is 'execute', ignored when mode is 'get_request_schema'.
- **request_body** (`string`, optional) Stringified JSON representing the request body. Required when mode is 'execute', ignored when mode is 'get_request_schema'
## HubspotMarketingApi.GetEmailRevisions
Retrieve all versions of a marketing email.
**Parameters**
- **email_id** (`string`, required) The unique identifier of the marketing email to retrieve revisions for.
## HubspotMarketingApi.UnpublishMarketingEmail
Unpublish a HubSpot marketing email.
**Parameters**
- **email_identifier** (`string`, required) The unique identifier of the email you wish to unpublish in HubSpot Marketing.
## HubspotMarketingApi.GetMarketingEmailRevision
Retrieve a specific revision of a marketing email.
**Parameters**
- **email_id** (`string`, required) The unique identifier for the marketing email. This ID is required to specify which email's revision details to retrieve.
- **email_revision_id** (`string`, required) The unique ID of the specific email revision to retrieve. Provide the revisionId for accessing the exact version.
## HubspotMarketingApi.CloneHubspotEmail
Clone an existing HubSpot marketing email.
**Parameters**
- **original_email_id** (`string`, required) The unique identifier of the email you wish to clone in HubSpot.
- **cloned_email_name** (`string`, optional) The new name for the cloned email. This should be a descriptive string to identify the copy.
- **email_language** (`string`, optional) Specify the language for the cloned email, e.g., 'en' for English, 'fr' for French.
## HubspotMarketingApi.HubspotMarketingEmailFilter
Retrieve and filter HubSpot marketing emails.
**Parameters**
This tool does not take any parameters.
## HubspotMarketingApi.CreateMarketingEmail
Create a new marketing email in HubSpot.
**Parameters**
- **mode** (`Enum` [ToolMode](#toolmode), required) Operation mode: 'get_request_schema' returns the OpenAPI spec for the request body, 'execute' performs the actual operation
- **request_body** (`string`, optional) Stringified JSON representing the request body. Required when mode is 'execute', ignored when mode is 'get_request_schema'
## HubspotMarketingApi.RestoreEmailRevision
Restore a previous revision of a marketing email.
**Parameters**
- **email_id** (`string`, required) The unique identifier for the marketing email you want to restore. This ID is required to specify which email's revision needs restoration.
- **revision_id** (`string`, required) The unique identifier for the specific revision of the email to be restored.
## HubspotMarketingApi.GetMarketingEmailDetails
Retrieve details for a specific marketing email.
**Parameters**
- **email_id** (`string`, required) The unique identifier for the specific marketing email. Required to retrieve email details.
## HubspotMarketingApi.DeleteMarketingEmail
Delete an existing marketing email by ID.
**Parameters**
- **email_id** (`string`, required) The unique ID of the marketing email to be deleted.
## HubspotMarketingApi.UpdateMarketingEmailProperties
Change properties of a marketing email.
**Parameters**
- **mode** (`Enum` [ToolMode](#toolmode), required) Operation mode: 'get_request_schema' returns the OpenAPI spec for the request body, 'execute' performs the actual operation
- **email_identifier** (`string`, optional) The unique identifier of the marketing email to be updated. Required to specify which email's properties are being changed. Required when mode is 'execute', ignored when mode is 'get_request_schema'.
- **request_body** (`string`, optional) Stringified JSON representing the request body. Required when mode is 'execute', ignored when mode is 'get_request_schema'
## HubspotMarketingApi.GetMarketingEventParticipationsBreakdown
Retrieve participations breakdown for a specific marketing event.
**Parameters**
- **marketing_event_id** (`integer`, required) The internal id of the marketing event in HubSpot.
- **contact_identifier** (`string`, optional) The identifier of the Contact. It can be an email or internal ID.
- **last_retrieved_position_cursor** (`string`, optional) The cursor indicating the position of the last retrieved item for pagination.
- **participation_state** (`string`, optional) The participation state filter, which can be REGISTERED, CANCELLED, ATTENDED, or NO_SHOW.
- **response_size_limit** (`integer`, optional) Set the maximum number of records to return. Default is 10, maximum is 100.
## HubspotMarketingApi.RecordMarketingEventAttendance
Record participation of HubSpot contacts in a Marketing Event.
**Parameters**
- **mode** (`Enum` [ToolMode](#toolmode), required) Operation mode: 'get_request_schema' returns the OpenAPI spec for the request body, 'execute' performs the actual operation
- **external_event_id** (`string`, optional) The identifier for the marketing event in the external event application. Required when mode is 'execute', ignored when mode is 'get_request_schema'.
- **new_subscriber_state** (`string`, optional) Specifies the new state of the contact in relation to the marketing event, such as 'register', 'attend', or 'cancel'. Required when mode is 'execute', ignored when mode is 'get_request_schema'.
- **external_account_id** (`string`, optional) The ID identifying the account associated with the marketing event in the external application. Only used when mode is 'execute'.
- **request_body** (`string`, optional) Stringified JSON representing the request body. Required when mode is 'execute', ignored when mode is 'get_request_schema'
## HubspotMarketingApi.RecordHubspotSubscriberState
Record subscriber state for HubSpot contacts and events.
**Parameters**
- **mode** (`Enum` [ToolMode](#toolmode), required) Operation mode: 'get_request_schema' returns the OpenAPI spec for the request body, 'execute' performs the actual operation
- **external_account_id** (`string`, optional) The account ID associated with this marketing event in the external event application. Required when mode is 'execute', ignored when mode is 'get_request_schema'.
- **event_id_in_external_app** (`string`, optional) The ID of the marketing event in the external application. Required when mode is 'execute', ignored when mode is 'get_request_schema'.
- **subscriber_state** (`string`, optional) The new subscriber state for the HubSpot contacts and the specified marketing event, such as 'register', 'attend', or 'cancel'. Required when mode is 'execute', ignored when mode is 'get_request_schema'.
- **request_body** (`string`, optional) Stringified JSON representing the request body. Required when mode is 'execute', ignored when mode is 'get_request_schema'
## HubspotMarketingApi.GetMarketingEventDetails
Retrieve details of a specific marketing event.
**Parameters**
- **external_account_id** (`string`, required) The accountId associated with this marketing event in the external event application.
- **marketing_event_id** (`string`, required) The unique identifier of the marketing event in the external application.
## HubspotMarketingApi.UpsertMarketingEvent
Upsert a marketing event in HubSpot.
**Parameters**
- **mode** (`Enum` [ToolMode](#toolmode), required) Operation mode: 'get_request_schema' returns the OpenAPI spec for the request body, 'execute' performs the actual operation
- **external_event_id** (`string`, optional) The ID of the marketing event in the external application. Used to upsert the event in HubSpot. Required when mode is 'execute', ignored when mode is 'get_request_schema'.
- **request_body** (`string`, optional) Stringified JSON representing the request body. Required when mode is 'execute', ignored when mode is 'get_request_schema'
## HubspotMarketingApi.DeleteMarketingEvent
Deletes a specified HubSpot marketing event.
**Parameters**
- **external_account_id** (`string`, required) The account ID associated with the marketing event to be deleted in the external event application.
- **marketing_event_id** (`string`, required) The ID of the marketing event in the external event application to be deleted.
## HubspotMarketingApi.UpdateMarketingEventDetails
Update details of an existing marketing event.
**Parameters**
- **mode** (`Enum` [ToolMode](#toolmode), required) Operation mode: 'get_request_schema' returns the OpenAPI spec for the request body, 'execute' performs the actual operation
- **external_account_id** (`string`, optional) The account ID associated with this marketing event in the external event application. Required when mode is 'execute', ignored when mode is 'get_request_schema'.
- **external_event_id** (`string`, optional) The unique identifier of the marketing event in the external event application. Required when mode is 'execute', ignored when mode is 'get_request_schema'.
- **request_body** (`string`, optional) Stringified JSON representing the request body. Required when mode is 'execute', ignored when mode is 'get_request_schema'
## HubspotMarketingApi.UpsertMarketingEvents
Upsert multiple marketing events in HubSpot.
**Parameters**
- **mode** (`Enum` [ToolMode](#toolmode), required) Operation mode: 'get_request_schema' returns the OpenAPI spec for the request body, 'execute' performs the actual operation
- **request_body** (`string`, optional) Stringified JSON representing the request body. Required when mode is 'execute', ignored when mode is 'get_request_schema'
## HubspotMarketingApi.RecordEventParticipationHubspot
Record participation of contacts in a HubSpot marketing event.
**Parameters**
- **mode** (`Enum` [ToolMode](#toolmode), required) Operation mode: 'get_request_schema' returns the OpenAPI spec for the request body, 'execute' performs the actual operation
- **external_event_id** (`string`, optional) The ID of the marketing event in the external event application. Required when mode is 'execute', ignored when mode is 'get_request_schema'.
- **subscriber_state** (`string`, optional) The new subscriber state for HubSpot contacts in the specified event. Options: 'register', 'attend', 'cancel'. Required when mode is 'execute', ignored when mode is 'get_request_schema'.
- **external_account_id** (`string`, optional) The account ID linked to the marketing event in the external event application. Only used when mode is 'execute'.
- **request_body** (`string`, optional) Stringified JSON representing the request body. Required when mode is 'execute', ignored when mode is 'get_request_schema'
## HubspotMarketingApi.GetMarketingEventParticipationBreakdown
Retrieve the participation breakdown for a marketing event.
**Parameters**
- **external_account_id** (`string`, required) The ID associated with the marketing event's account in the external application.
- **external_event_id** (`string`, required) The ID of the marketing event in the external event application.
- **contact_identifier** (`string`, optional) The unique identifier for the contact, such as an email or internal ID.
- **pagination_cursor** (`string`, optional) The cursor indicating the position of the last retrieved item, used for pagination.
- **participation_state_filter** (`string`, optional) The participation state to filter results. Possible values: REGISTERED, CANCELLED, ATTENDED, NO_SHOW.
- **response_size_limit** (`integer`, optional) Maximum number of participations to retrieve. Default is 10, maximum is 100.
## HubspotMarketingApi.FetchEventDetails
Fetch details of a marketing event by its object ID.
**Parameters**
- **marketing_event_object_id** (`string`, required) The internal ID of the marketing event in HubSpot. Used to fetch specific event details.
## HubspotMarketingApi.RemoveMarketingEvent
Deletes a specified marketing event by objectId.
**Parameters**
- **marketing_event_id** (`string`, required) The internal ID of the marketing event to be deleted in HubSpot.
## HubspotMarketingApi.ModifyEventInformation
Update details of a specific marketing event.
**Parameters**
- **mode** (`Enum` [ToolMode](#toolmode), required) Operation mode: 'get_request_schema' returns the OpenAPI spec for the request body, 'execute' performs the actual operation
- **event_internal_id** (`string`, optional) The internal ID of the marketing event in HubSpot to be updated. Required when mode is 'execute', ignored when mode is 'get_request_schema'.
- **request_body** (`string`, optional) Stringified JSON representing the request body. Required when mode is 'execute', ignored when mode is 'get_request_schema'
## HubspotMarketingApi.GetMarketingEventAssociatedLists
Retrieve lists associated with a specific marketing event.
**Parameters**
- **external_account_id** (`string`, required) The account ID associated with the marketing event in the external application.
- **external_event_id** (`string`, required) The ID of the marketing event from the external event application.
## HubspotMarketingApi.GetMarketingEventLists
Retrieve lists associated with a specific marketing event.
**Parameters**
- **marketing_event_id** (`string`, required) The internal ID of the marketing event in HubSpot to retrieve associated lists.
## HubspotMarketingApi.RegisterEventParticipation
Logs event participation for contacts using email addresses.
**Parameters**
- **mode** (`Enum` [ToolMode](#toolmode), required) Operation mode: 'get_request_schema' returns the OpenAPI spec for the request body, 'execute' performs the actual operation
- **marketing_event_id** (`string`, optional) The internal ID of the marketing event in HubSpot. It is required to log participation for contacts. Required when mode is 'execute', ignored when mode is 'get_request_schema'.
- **attendance_state** (`string`, optional) The attendance state for the contact in the event. Options: 'register', 'attend', or 'cancel'. Required when mode is 'execute', ignored when mode is 'get_request_schema'.
- **request_body** (`string`, optional) Stringified JSON representing the request body. Required when mode is 'execute', ignored when mode is 'get_request_schema'
## HubspotMarketingApi.GetAllMarketingEvents
Retrieve all marketing events from the portal.
**Parameters**
- **cursor_position_after** (`string`, optional) The cursor indicating the position of the last retrieved item for pagination purposes.
- **response_limit** (`integer`, optional) Sets the maximum number of marketing events to retrieve, between 10 and 100.
## HubspotMarketingApi.RecordEventAttendance
Record participation of HubSpot contacts in a marketing event.
**Parameters**
- **mode** (`Enum` [ToolMode](#toolmode), required) Operation mode: 'get_request_schema' returns the OpenAPI spec for the request body, 'execute' performs the actual operation
- **marketing_event_id** (`string`, optional) The internal ID of the marketing event in HubSpot for which attendance is being recorded. Required when mode is 'execute', ignored when mode is 'get_request_schema'.
- **attendance_state** (`string`, optional) Specifies the attendance state of the contact: 'register', 'attend', or 'cancel'. Required when mode is 'execute', ignored when mode is 'get_request_schema'.
- **request_body** (`string`, optional) Stringified JSON representing the request body. Required when mode is 'execute', ignored when mode is 'get_request_schema'
## HubspotMarketingApi.UpdateMarketingEventsBatch
Update multiple marketing events by objectId.
**Parameters**
- **mode** (`Enum` [ToolMode](#toolmode), required) Operation mode: 'get_request_schema' returns the OpenAPI spec for the request body, 'execute' performs the actual operation
- **request_body** (`string`, optional) Stringified JSON representing the request body. Required when mode is 'execute', ignored when mode is 'get_request_schema'
## HubspotMarketingApi.DeleteMarketingEvents
Delete multiple marketing events by object ID.
**Parameters**
- **mode** (`Enum` [ToolMode](#toolmode), required) Operation mode: 'get_request_schema' returns the OpenAPI spec for the request body, 'execute' performs the actual operation
- **request_body** (`string`, optional) Stringified JSON representing the request body. Required when mode is 'execute', ignored when mode is 'get_request_schema'
## HubspotMarketingApi.GetEventParticipationCounters
Retrieve participation counters for a specific marketing event.
**Parameters**
- **event_id** (`string`, required) The unique identifier for the marketing event in the external application. Required to retrieve participation data.
- **external_account_id** (`string`, required) The account ID associated with the marketing event in the external application.
## HubspotMarketingApi.SearchMarketingEventsByExternalId
Search for marketing events by external ID.
**Parameters**
- **external_event_id** (`string`, required) The ID of the marketing event in the external event application used to search for matching events.
## HubspotMarketingApi.GetMarketingEventParticipationCounters
Retrieve participation counters for a marketing event.
**Parameters**
- **marketing_event_id** (`integer`, required) The internal ID of the marketing event in HubSpot, required to fetch participation counters.
## HubspotMarketingApi.RemoveMarketingEvents
Delete multiple HubSpot marketing events by specific IDs.
**Parameters**
- **mode** (`Enum` [ToolMode](#toolmode), required) Operation mode: 'get_request_schema' returns the OpenAPI spec for the request body, 'execute' performs the actual operation
- **request_body** (`string`, optional) Stringified JSON representing the request body. Required when mode is 'execute', ignored when mode is 'get_request_schema'
## HubspotMarketingApi.CancelMarketingEvent
Cancel a HubSpot marketing event.
**Parameters**
- **external_account_id** (`string`, required) The account ID associated with the marketing event in the external event application.
- **external_event_id** (`string`, required) The ID of the marketing event in the external event application. Required to identify the event to be cancelled.
## HubspotMarketingApi.AssociateListWithMarketingEvent
Associate a list with a marketing event by their IDs.
**Parameters**
- **list_id** (`string`, required) The ILS ID of the list to associate with the marketing event.
- **marketing_event_id** (`string`, required) The internal ID of the marketing event in HubSpot for association.
## HubspotMarketingApi.DisassociateListFromMarketingEvent
Disassociate a list from a marketing event using event and list IDs.
**Parameters**
- **list_identifier** (`string`, required) The ILS ID of the list to be disassociated from the marketing event.
- **marketing_event_id** (`string`, required) The internal ID of the marketing event in HubSpot to disassociate the list from.
## HubspotMarketingApi.RecordSubscriberState
Record a subscriber's state for a marketing event using email.
**Parameters**
- **mode** (`Enum` [ToolMode](#toolmode), required) Operation mode: 'get_request_schema' returns the OpenAPI spec for the request body, 'execute' performs the actual operation
- **external_account_id** (`string`, optional) The account ID linked to the marketing event in the external application, required for identifying events. Required when mode is 'execute', ignored when mode is 'get_request_schema'.
- **marketing_event_id** (`string`, optional) The unique identifier for the marketing event in the external application. Required to record subscriber state. Required when mode is 'execute', ignored when mode is 'get_request_schema'.
- **subscriber_state** (`string`, optional) The new subscriber state for a HubSpot contact in the specified marketing event. Options include 'register', 'attend', or 'cancel'. Required when mode is 'execute', ignored when mode is 'get_request_schema'.
- **request_body** (`string`, optional) Stringified JSON representing the request body. Required when mode is 'execute', ignored when mode is 'get_request_schema'
## HubspotMarketingApi.LinkListToEvent
Associates a marketing list with an event in HubSpot.
**Parameters**
- **external_account_id** (`string`, required) The account ID associated with the marketing event in the external event application.
- **external_event_id** (`string`, required) The ID of the marketing event in the external event application. Used to specify which event to associate with the list.
- **ils_list_id** (`string`, required) The ILS ID of the list to associate with the marketing event.
## HubspotMarketingApi.DisassociateMarketingEventList
Disassociate a list from a HubSpot marketing event using IDs.
**Parameters**
- **external_account_id** (`string`, required) The account ID linked to the marketing event in the external application.
- **list_id** (`string`, required) The ILS ID of the list to be disassociated from the marketing event.
- **marketing_event_id** (`string`, required) ID of the marketing event in the external application to be disassociated.
## HubspotMarketingApi.MarkMarketingEventCompleted
Mark a marketing event as completed in HubSpot.
**Parameters**
- **event_end_datetime** (`string`, required) The date and time when the marketing event ended. Expected in ISO 8601 format.
- **event_start_date_time** (`string`, required) The start date and time of the marketing event, formatted as an ISO 8601 string.
- **external_account_id** (`string`, required) The account ID associated with the marketing event in the external application.
- **marketing_event_id** (`string`, required) The unique ID of the marketing event in the external event application.
## HubspotMarketingApi.CreateMarketingEvent
Create a new marketing event in HubSpot.
**Parameters**
- **mode** (`Enum` [ToolMode](#toolmode), required) Operation mode: 'get_request_schema' returns the OpenAPI spec for the request body, 'execute' performs the actual operation
- **request_body** (`string`, optional) Stringified JSON representing the request body. Required when mode is 'execute', ignored when mode is 'get_request_schema'
## HubspotMarketingApi.GetContactParticipationsBreakdown
Retrieve a contact's event participation details by ID or email.
**Parameters**
- **contact_identifier** (`string`, required) The identifier of the contact, which can be either an email or an internal ID.
- **pagination_cursor** (`string`, optional) Cursor for the last retrieved item to manage pagination.
- **participation_state** (`string`, optional) The participation state for the contact. Options: REGISTERED, CANCELLED, ATTENDED, NO_SHOW.
- **response_size_limit** (`integer`, optional) Specify the maximum number of participation records to return. The default is 10, and the maximum is 100.
## HubspotMarketingApi.FindHubspotMarketingEvents
Fetch HubSpot marketing events by externalEventId.
**Parameters**
- **external_event_id** (`string`, required) The ID of the marketing event in the external application (externalEventId) to search for.
## HubspotMarketingApi.SendMarketingEmail
Send a template email to a specific recipient.
**Parameters**
- **mode** (`Enum` [ToolMode](#toolmode), required) Operation mode: 'get_request_schema' returns the OpenAPI spec for the request body, 'execute' performs the actual operation
- **request_body** (`string`, optional) Stringified JSON representing the request body. Required when mode is 'execute', ignored when mode is 'get_request_schema'
## HubspotMarketingApi.SendTransactionalEmail
Send a transactional email asynchronously.
**Parameters**
- **mode** (`Enum` [ToolMode](#toolmode), required) Operation mode: 'get_request_schema' returns the OpenAPI spec for the request body, 'execute' performs the actual operation
- **request_body** (`string`, optional) Stringified JSON representing the request body. Required when mode is 'execute', ignored when mode is 'get_request_schema'
## HubspotMarketingApi.QuerySmtpTokens
Retrieve SMTP API tokens by campaign name or emailCampaignId.
**Parameters**
- **campaign_name** (`string`, optional) Name of the campaign tied to the SMTP API token to query tokens.
- **email_campaign_id** (`string`, optional) Identifier assigned to the campaign provided during the token creation. Used to retrieve a specific SMTP API token.
- **maximum_tokens_to_return** (`integer`, optional) Specify the maximum number of SMTP API tokens to return in the response.
- **result_pagination_start** (`string`, optional) Specify a starting point for retrieving the next set of results. Use this for paginating through results.
## HubspotMarketingApi.CreateSmtpApiToken
Creates a SMTP API token for transaction emails.
**Parameters**
- **campaign_name** (`string`, required) The name of the campaign associated with the SMTP API token.
- **create_contact_for_recipients** (`boolean`, required) Indicates whether a contact should be created for email recipients. Set to true to create a contact.
## HubspotMarketingApi.ResetPasswordForToken
Resets the password for a specified token.
**Parameters**
- **token_identifier** (`string`, required) The unique string identifier for the token, used to reset its password.
## HubspotMarketingApi.GetSmtpTokenById
Retrieve details of an SMTP token using its ID.
**Parameters**
- **smtp_token_id** (`string`, required) The unique identifier of the SMTP token to be queried.
## HubspotMarketingApi.DeleteSmtpToken
Delete an SMTP token by ID in HubSpot Marketing.
**Parameters**
- **smtp_token_id** (`string`, required) The unique identifier of the SMTP token to be deleted, provided during token creation.
## Reference
Below is a reference of enumerations used by some of the tools in the HubspotMarketingApi MCP Server:
### ToolMode
- **GET_REQUEST_SCHEMA**: `get_request_schema`
- **EXECUTE**: `execute`
## Auth
The HubspotMarketingApi MCP Server uses the Auth Provider with id `arcade-hubspot` to connect to users' HubspotMarketingApi accounts. In order to use the MCP Server, you will need to configure the `arcade-hubspot` auth provider.