Skip to content

HubSpot: Get the variation of a an A B marketing email

HubSpot marketingEmails.emailsGetAbVariation: arguments, response, policy and SDK examples.

← Marketing emails operations · Get started

Operation hubspot.marketing_emails_emails_get_ab_variation

Provider route: GET /marketing/emails/2026-09/{emailId}/ab-test/get-variation. Alter supplies the connection’s credentials and routing.

Install @alter-ai/sdk @alter-ai/hubspot with npm, or alter-sdk-hubspot with pip. Supply your connected customer’s grant ID and the arguments described below.

import { App } from "@alter-ai/sdk";
import { HubSpotIntegration } from "@alter-ai/hubspot";
async function execute(input: Parameters<HubSpotIntegration["marketingEmails"]["emailsGetAbVariation"]>[0]) {
const app = new App({ apiKey: process.env.ALTER_API_KEY! });
try {
const provider = new HubSpotIntegration(app, { grantId: process.env.PROVIDER_GRANT_ID! });
const call = await provider.marketingEmails.emailsGetAbVariation(input);
const result = await call.wait();
return result.bodyJson();
} finally {
await app.close();
}
}
import os
from alter_sdk import App
from alter_sdk_hubspot import HubSpotIntegration
async def execute(arguments):
async with App(api_key=os.environ["ALTER_API_KEY"]) as app:
provider = HubSpotIntegration(app, {"grant_id": os.environ["PROVIDER_GRANT_ID"]})
call = await provider.marketing_emails.emails_get_ab_variation(arguments)
result = await call.wait()
return result.body_json()
FieldTypePresenceDescription and constraints
$objectRootAdditional keys: not allowed
pathobjectRequired within parentAdditional keys: not allowed
path.emailIdstringRequired within parent
queryobjectOptionalAdditional keys: not allowed
query.archivedbooleanOptional
query.includedPropertiesarrayOptional
query.includedProperties[]stringEach item
query.includeStatsbooleanOptional
query.marketingCampaignNamesbooleanOptional
query.variantStatsbooleanOptional
query.workflowNamesbooleanOptional

Response media type: application/json. The table describes the pinned successful response. Referenced models link to their complete fields.

FieldTypePresenceDescription and constraints
$ModelRootExpand Create Email — response body

Referenced models: Create Email — response body

6 more schemas are linked from the tables above, on the schema pages.

Create Email — response body — stats
FieldTypePresenceDescription and constraints
$objectRoot
countersobjectRequired within parentCounters like number of `sent`, `open` or `delivered`.
Additional keys: see wildcard field
counters.*JSONAdditional keys
counters.* (anyOf 1)integerAlternativeFormat: int64
counters.* (anyOf 2)stringAlternativePattern: ^-?[0-9]+(?:\.[0-9]+)?(?:[eE][+-]?[0-9]+)?$
deviceBreakdownobjectRequired within parentStatistics by device.
Additional keys: see wildcard field
deviceBreakdown.*objectAdditional keysAdditional keys: see wildcard field
deviceBreakdown.*.*JSONAdditional keys
deviceBreakdown.*.* (anyOf 1)integerAlternativeFormat: int64
deviceBreakdown.*.* (anyOf 2)stringAlternativePattern: ^-?[0-9]+(?:\.[0-9]+)?(?:[eE][+-]?[0-9]+)?$
qualifierStatsobjectRequired within parentNumber of emails that were dropped and bounced.
Additional keys: see wildcard field
qualifierStats.*objectAdditional keysAdditional keys: see wildcard field
qualifierStats.*.*JSONAdditional keys
qualifierStats.*.* (anyOf 1)integerAlternativeFormat: int64
qualifierStats.*.* (anyOf 2)stringAlternativePattern: ^-?[0-9]+(?:\.[0-9]+)?(?:[eE][+-]?[0-9]+)?$
ratiosobjectRequired within parentRatios like `openratio` or `clickratio`
Additional keys: see wildcard field
ratios.*JSONAdditional keys
ratios.* (anyOf 1)numberAlternative
ratios.* (anyOf 2)stringAlternativePattern: ^-?[0-9]+(?:\.[0-9]+)?(?:[eE][+-]?[0-9]+)?$
Create Email — response body — content
FieldTypePresenceDescription and constraints
$objectRoot
flexAreasobjectOptionalAn object containing flexible area configurations, where each key is an area identifier and the value is an object with area properties.
Additional keys: see wildcard field
flexAreas.*objectAdditional keys
plainTextVersionstringOptionalA string containing the plain text version of the email content.
smartFieldsobjectOptionalAn object containing smart field configurations, where each key is a field identifier and the value is a SmartEmailField object.
Additional keys: see wildcard field
smartFields.*ModelAdditional keysExpand List tags — response body
styleSettingsModelOptionalExpand Create Email — response body — content style Settings
templatePathstringOptionalA string representing the path to the email template used for this email.
themeSettingsValuesobjectOptionalAn object containing theme settings values, where each key is a setting identifier and the value is an object with setting properties.
Additional keys: see wildcard field
themeSettingsValues.*objectAdditional keys
widgetContainersobjectOptionalAn object containing widget container configurations, where each key is a container identifier and the value is an object with container properties.
Additional keys: see wildcard field
widgetContainers.*objectAdditional keys
widgetsobjectOptionalAn object containing widget configurations, where each key is a widget identifier and the value is an object with widget properties.
Additional keys: see wildcard field
widgets.*objectAdditional keys

Referenced models: List tags — response body, Create Email — response body — content style Settings

Create Email — response body — from
FieldTypePresenceDescription and constraints
$objectRoot
customReplyTostringOptionalThe reply to recipients will see.
fromNamestringOptionalThe name recipients will see.
replyTostringOptionalThe from address and reply to email address (if no customReplyTo defined) recipients will see.
Create Email — response body — subscription Details
FieldTypePresenceDescription and constraints
$objectRoot
officeLocationIdstringOptionalID of the selected office location.
preferencesGroupIdstringOptionalThe identifier for the preferences group associated with the subscription. It is a string value.
subscriptionIdstringOptionalID of the subscription.
subscriptionNamestringOptionalThe name of the email subscription. It is a string value.
Create Email — response body — testing
FieldTypePresenceDescription and constraints
$objectRoot
abSampleSizeDefaultstringOptionalVersion of the email that should be sent if there are too few recipients to conduct an AB test.
Known values: automated_loser_variant, automated_master, automated_variant, loser_variant, mab_master, mab_variant, master, variant
abSamplingDefaultstringOptionalVersion of the email that should be sent if the results are inconclusive after the test period, master or variant.
Known values: automated_loser_variant, automated_master, automated_variant, loser_variant, mab_master, mab_variant, master, variant
abStatusstringOptionalStatus of the AB test.
Known values: automated_loser_variant, automated_master, automated_variant, loser_variant, mab_master, mab_variant, master, variant
abSuccessMetricstringOptionalMetric to determine the version that will be sent to the remaining contacts.
Known values: CLICKS_BY_DELIVERED, CLICKS_BY_OPENS, OPENS_BY_DELIVERED
abTestPercentageJSONOptional
abTestPercentage (anyOf 1)integerAlternativeThe size of your test group.
Format: int32
abTestPercentage (anyOf 2)stringAlternativePattern: ^-?[0-9]+(?:\.[0-9]+)?(?:[eE][+-]?[0-9]+)?$
hoursToWaitJSONOptional
hoursToWait (anyOf 1)integerAlternativeTime limit on gathering test results. After this time is up, the winning version will be sent to the remaining contacts.
Format: int32
hoursToWait (anyOf 2)stringAlternativePattern: ^-?[0-9]+(?:\.[0-9]+)?(?:[eE][+-]?[0-9]+)?$
isAbVariationbooleanRequired within parentA boolean indicating whether the email is an A/B test variation.
testIdstringOptionalThe ID of the AB test.
Create Email — response body — to
FieldTypePresenceDescription and constraints
$objectRoot
contactIdsModelOptionalExpand Create Email — response body — to contact Ids
contactIlsListsModelOptionalExpand Create Email — response body — to contact Ids
contactListsModelOptionalExpand Create Email — response body — to contact Ids
limitSendFrequencybooleanOptionalA boolean indicating whether the frequency of sending emails to the recipients should be limited.
suppressGraymailbooleanOptionalWhether to send to unengaged contacts (false) or not (true).

Referenced models: Create Email — response body — to contact Ids

Create Email — response body — rss Data
FieldTypePresenceDescription and constraints
$objectRoot
blogEmailTypestringOptionalA string representing the type of blog email.
blogImageMaxWidthJSONOptional
blogImageMaxWidth (anyOf 1)integerAlternativeThe maximum width for images in the blog, specified as an integer.
Format: int32
blogImageMaxWidth (anyOf 2)stringAlternativePattern: ^-?[0-9]+(?:\.[0-9]+)?(?:[eE][+-]?[0-9]+)?$
blogLayoutstringOptionalThe layout of the blog in the email. Valid values include 'SUMMARY_NO_FEATURED_IMAGE', 'SUMMARY_WITH_FEATURED_IMAGE', and 'FULL_POST'.
Known values: FULL_POST, SUMMARY_NO_FEATURED_IMAGE, SUMMARY_WITH_FEATURED_IMAGE
hubspotBlogIdstringOptionalThe unique identifier of the HubSpot blog associated with the RSS email. It is a string.
maxEntriesJSONOptional
maxEntries (anyOf 1)integerAlternativeThe maximum number of entries to include from the RSS feed. It is an integer value.
Format: int32
maxEntries (anyOf 2)stringAlternativePattern: ^-?[0-9]+(?:\.[0-9]+)?(?:[eE][+-]?[0-9]+)?$
rssEntryTemplatestringOptionalA string representing the template used for each RSS entry in the email.
timingobjectOptionalAn object representing the timing configuration for the RSS email. The specific properties of this object are not detailed in the specification.
Additional keys: see wildcard field
timing.*objectAdditional keys
urlstringOptionalThe URL of the RSS feed to be used in the email. It is a string.
useHeadlineAsSubjectbooleanOptionalA boolean indicating whether to use the headline of the RSS entry as the subject of the email.
List tags — response body
FieldTypePresenceDescription and constraints
$objectRoot
Create Email — response body — to contact Ids
FieldTypePresenceDescription and constraints
$objectRoot
excludearrayOptionalExcluded IDs.
exclude[]stringEach item
includearrayOptionalIncluded IDs.
include[]stringEach item

SDK function policy ID: hubspot.marketing_emails_emails_get_ab_variation. Catalog operation: marketing_emails_emails_get_ab_variation. Rules can name either ID; function rules distinguish managed calls and conservatively cover raw calls sharing the route. Existing grant permissions and policy rules apply. wait() returns an immediate result or waits for a required approval; it never approves the request itself. Persist the approval ID to resume after a restart.

Provider errors retain their response; JSON decoding raises ProviderAPIError for provider failures. ManagedOperationError identifies contract/input/retention errors. See error handling and provider-specific behavior. Sensitive input may be refused before approval storage. A decoding error never resubmits a write.

Required provider scopes: ["content"]

Official provider source

Report an issue with this page

Necessary

Required for sign-in, security, authorization, and remembering your choices.

Always active

Analytics

Helps us understand which product and documentation features are useful.

Performance diagnostics

Uses performance tracing and privacy-masked session replay to diagnose problems.

You can change these choices at any time from Cookie settings.