HATEOAS link descriptor attached to every Mailchimp resource and list envelope under the `_links` array. Follows JSON Hyper-Schema conventions. `schema` is present only on links whose `method` accepts a request body (POST/PATCH/PUT). `targetSchema` describes the response payload shape.
Per-field validation error returned inside `MailchimpError.errors` on `400 Bad Request` responses.
Mailchimp Marketing API error envelope. Returned as `application/problem+json` (RFC 7807 Problem Details) for every documented 4xx/5xx response: 400, 401, 403, 404, 405, 414, 422, 426, 429, 500. All five top-level fields are always present; the `errors` array is populated only on validation failures (400).
Send-progress snapshot attached to campaign and campaign-report resources. All fields are server-populated (read-only).
Aggregate e-commerce numbers nested under `ReportSummary.ecommerce`. Mailchimp returns counts as int32 and currency values as float64.
High-level performance summary shared by Campaign and Automation resources. Campaign omits no fields; Automation omits `ecommerce`.
Salesforce CRM integration toggles nested under `CampaignTracking`. Both fields are deprecated by Mailchimp but still surface on responses.
Capsule CRM integration toggles nested under `CampaignTracking`. Deprecated by Mailchimp but still surface on responses.
Tracking-feature toggles shared by Campaign and Automation. Controls which engagement signals Mailchimp records for the send.
Single condition row inside a saved segment definition. Mailchimp's full spec discriminates ~40 variants on `condition_type` (Aim, Automation, CampaignPoll, Conversation, Date, EmailClient, Language, Mandrill, MemberRating, SignupSource, SurveyMonkey, VIP, Interests, EcommCategory, EcommNumber, EcommPurchased, EcommSpent, EcommStore, GoalActivity, GoalTimestamp, LikeNumber, LikeMember, Location, GeolocationZip, GeolocationUsZip, Predicted, SocialAge, SocialGender, SocialNetworkMember, SocialNetworkFollow, SocialInfluence, AddressMerge, ZipMerge, BirthdayMerge, DateMerge, TextMerge, SelectMerge, IPGeoInZip, IPGeoCountryState, IPGeoUS, IPGeoUnknown, IPGeoZip3, Static, Tag), each with a variant-specific shape for `value`. This stub models the common surface shared by every variant so list, segment, campaign-recipient, and automation-recipient endpoints compile. Full discriminated-union expansion is deferred until the Mailchimp segment-condition feature is in scope; the deferral keeps downstream codegen unblocked. See: https://mailchimp.com/developer/marketing/docs/alternative-schemas/#segment-condition-schemas
Mailing address Mailchimp prints in the campaign footer to satisfy CAN-SPAM. Every list must carry a complete physical address.
Default fields applied to new campaigns drafted against this list.
Aggregate counters and rate metrics for a list. All fields are server-populated.
A Mailchimp audience (a.k.a. list) that contacts can subscribe to. Returned by `GET /lists/{list_id}`.
Attributed e-commerce activity for the subscriber. Populated from Mailchimp's Ecomm360 store integrations.
Engagement and e-commerce summary for a single subscriber.
Approximate geographic location resolved from the subscriber's most recent IP. Coordinates are zeroed when location cannot be determined.
GDPR marketing-permission flag attached to a subscriber. The `marketingPermissionId` is opaque and scoped to the parent list.
Most recent note attached to the member by an account user. References `MemberNote` via the opaque note identifier.
Stub — only used to resolve Ref<MemberNote>; full schema deferred to v2.
A subscriber on a Mailchimp list. Returned by `GET /lists/{list_id}/members/{subscriber_hash}`. The subscriber-hash path parameter is the MD5 of the lowercased email address, which is also the value of `id`.
Tag association embedded on `Member.tags`. Distinct from the canonical `Tag` entity: this embedded form uses `RefInt<Tag>` for the `id` field (denoting a cross-entity reference, not an owned key), and surfaces only the `id`/`name` pair Mailchimp embeds inside a member payload.
A tag applied to subscribers on a Mailchimp list. The parent list is implied by the request path; the Tag entity itself carries no `listId`. Returned inside the `tags[]` array of `GET /lists/{list_id}/tag-search`.
Predicate definition for a saved segment. `match` selects the conjunction; `conditions` is the polymorphic row list.
A Mailchimp list segment used to target a subset of a list's subscribers. Returned by `GET /lists/{list_id}/segments/{segment_id}`.
Type-specific configuration options for a merge field. Which sub-field is populated depends on the parent `MergeField.type`: - `address` uses `defaultCountry`. - `phone` uses `phoneFormat`. - `date` and `birthday` use `dateFormat`. - `radio` and `dropdown` use `choices`. - `text` and `number` honor `size` for input width.
A merge-field definition on a Mailchimp list. Merge fields are the named subscriber attributes referenced in campaign content via merge tags (e.g. `*|FNAME|*`). Returned by `GET /lists/{list_id}/merge-fields/{merge_id}`.
Response variant returned only on `POST /lists/{list_id}/merge-fields`. Extends `MergeField` with the post-response-only counters that Mailchimp omits from the regular GET response.
Nested record for Campaign.recipients.segmentOpts.
Nested record for Campaign.variateSettings.
Nested record for Campaign.variateSettings.combinations[]. The integer fields (`subjectLine`, `sendTime`, `fromName`, `replyTo`, `contentDescription`, `recipients`) are **array indices into sibling string arrays on VariateSettings**, NOT entity references. They must never be modeled as Ref<T>.
Nested record for Campaign.rssOpts.schedule.
Nested record for Campaign.rssOpts.schedule.dailySend.
Nested record for Campaign.abSplitOpts (legacy A/B split tests; use VariateSettings instead). Every field on this sub-shape is read-only; the entire abSplitOpts block is returned by the API but cannot be mutated client-side.
Nested record for Campaign.resendShortcutEligibility. Only populated when the request includes `include_resend_shortcuts=true`.
Nested record for a single resend-shortcut eligibility entry.
Nested record for Campaign.resendShortcutUsage.
Nested record for a resend-shortcut child campaign. Every field on this sub-shape is read-only.
Nested record for Campaign.resendShortcutUsage.originalCampaign. Every field on this sub-shape is read-only.
Aggregate report for a Mailchimp campaign. Note: `id` is **both** the key for this entity AND a Ref<Campaign>. The campaign report keys on the campaign's own ID (1:1 keying — there is exactly one report per campaign and the report's ID is the campaign's ID verbatim). This is the only entity in this service where the
Nested record for CampaignReport.bounces.
Nested record for CampaignReport.forwards.
Nested record for CampaignReport.clicks.
Nested record for CampaignReport.facebookLikes.
Nested record for CampaignReport.industryStats. Industry benchmark rates Mailchimp publishes for the campaign's declared industry segment.
Nested record for CampaignReport.listStats.
Nested record for CampaignReport.abSplit (legacy A/B test results).
Nested record for a single A/B split arm in CampaignReport.abSplit.
Nested record for a single Timewarp delivery slice in CampaignReport.timewarp[].
Nested record for a single time-series bucket in CampaignReport.timeseries[].
Nested record for CampaignReport.shareReport.
Nested record for CampaignReport.ecommerce.
A Mailchimp automation workflow — a sequence of one or more emails fired by a trigger (subscriber signup, purchase, date, integration event, etc.) against a single parent list. Returned by `GET /automations/{workflow_id}`.
Recipient configuration block nested under `Automation.recipients`. The list reference is required at the API level for any active automation; the segment options are present only when the workflow targets a subset of the list.
Segment options nested under `Automation.recipients`. Mirrors the Campaign equivalent but only carries the saved-segment integer key plus a polymorphic condition list (no prebuilt-segment string variant).
Sender and content settings nested under `Automation.settings`. Strict subset of `CampaignSettings` — no folder, template, social, or Google-Analytics fields.
Trigger-and-runtime descriptor nested under `Automation.triggerSettings`. The `workflowType` field is the only `required: true` field in the Mailchimp automation GET-response schema.
Schedule constraints attached to `TriggerSettings.runtime`.
Run-window descriptor nested under `TriggerSettings.runtime`. Restricts which weekdays and which hours the workflow may dispatch on.
Per-campaign email activity report — a flat envelope listing each recipient and the open/click/bounce events Mailchimp recorded against the send. Returned by `GET /reports/{campaign_id}/email-activity`. Not a top-level identified entity (no `@key` field); the parent campaign is the addressable resource. Cross-references to `Campaign` and `List` are carried both at envelope level and on every recipient row.
Per-recipient activity envelope returned inside `EmailActivity.emails[]`. Each entry pins the recipient by `emailId` (the Member subscriber-hash) and carries the chronological list of events Mailchimp recorded against the send for that recipient (capped at 1000 opens + 1000 clicks).
One open/click/bounce event recorded against a single recipient for the parent campaign. The action discriminator selects which sibling fields carry meaningful values: `url` on clicks, `type` on bounces, neither on opens. `ip` is best-effort and may be absent for opens recorded behind privacy proxies.
Webhook subscription configured under a single audience (list). A list can have multiple webhook subscriptions, each routing a different combination of event types and origin sources to its own callback URL. Returned by `GET /lists/{list_id}/webhooks/{webhook_id}`.
Event-type subscription mask attached to `ListWebhook.events`. Each boolean toggles whether Mailchimp delivers callbacks for the corresponding subscriber-lifecycle event. Mailchimp models these as object fields (not an enum array) so callers can toggle each flag independently and the API can extend the surface additively. The six fields cover the entire documented event set.
Source-filter mask attached to `ListWebhook.sources`. Each boolean controls whether events from the corresponding origin are delivered. Modelled as object fields (not an enum array) to match Mailchimp's on-wire shape and allow independent toggling per source.
Stub — only used to resolve Ref<Interest>; full schema deferred to v2.
Stub — only used to resolve Ref<InterestCategory>; full schema deferred to v2.
Collection envelope returned by `GET /lists`. Mailchimp uses the resource-plural collection key `lists` and adds `total_items`, optional `constraints`, and a `_links` array.
Body of `POST /lists/{list_id}`. Mailchimp uses POST on the resource (not the collection) for batch subscribe/unsubscribe; `members` is an array of fragmentary member payloads sharing the same wire shape as `POST /lists/{list_id}/members` bodies.
Response shape returned by `POST /lists/{list_id}`. Mailchimp returns three parallel arrays plus per-bucket counts and per-error detail.
Body of `POST /lists`. Mailchimp documents the same shape for both create and PATCH update; this model is reused on `PATCH /lists/{list_id}`.
Collection envelope returned by `GET /lists/{list_id}/members`.
Body of `POST /lists/{list_id}/members`. Required to subscribe a new member; `email_address` and `status` are the only mandatory fields.
Body of `PUT /lists/{list_id}/members/{subscriber_hash}`. Upserts a member: `email_address` and `status_if_new` become required when the member does not already exist (Mailchimp ignores both on update).
Body of `PATCH /lists/{list_id}/members/{subscriber_hash}`. All fields optional; Mailchimp applies the supplied fields and leaves the rest.
Single tag entry returned by `GET /lists/{list_id}/members/{subscriber_hash}/tags`.
Envelope returned by `GET /lists/{list_id}/members/{subscriber_hash}/tags`.
Body of `POST /lists/{list_id}/members/{subscriber_hash}/tags`. Each tag row carries an action verb (`active` to add, `inactive` to remove).
Collection envelope returned by `GET /lists/{list_id}/segments`.
Body of `POST /lists/{list_id}/segments` (create) and `PATCH /lists/{list_id}/segments/{segment_id}` (update). Mailchimp documents the same shape on both verbs.
Body of `POST /lists/{list_id}/segments/{segment_id}`. Mailchimp uses POST on the resource (not the collection) for batch add/remove on static segments. At least one of `members_to_add` or `members_to_remove` must be supplied; Mailchimp returns HTTP 400 with title `"Invalid Resource"` when both arrays are absent or empty. Both fields are modelled as optional because either may be omitted in a valid request, but the cross-field constraint is checkable only at the API boundary; TypeSpec cannot express "exactly-one-of" on optional siblings without forking the model into a discriminated union that would distort the wire shape, so the constraint lives in the docstring and in this model's per-property docs and is enforced by Mailchimp on receipt.
Response shape returned by `POST /lists/{list_id}/segments/{segment_id}`. Mirrors the audience-level batch endpoint: parallel buckets of added and removed members plus a per-row error report.
Envelope returned by `GET /lists/{list_id}/tag-search`. Mailchimp uses the bare `tags` collection key here (not the standard `ListResponse` envelope) and omits `_links` on this endpoint.
Collection envelope returned by `GET /lists/{list_id}/merge-fields`.
Body of `POST /lists/{list_id}/merge-fields`. Mailchimp generates the uppercase `tag` from the name when omitted.
Body of `PATCH /lists/{list_id}/merge-fields/{merge_id}`. Mailchimp disallows updating `type` after creation; the field is omitted here.
Collection envelope returned by `GET /campaigns`.
Body of `POST /campaigns`. Mailchimp requires `type`; recipients, settings, and tracking are all optional at create time but become mandatory before send.
Body of `PATCH /campaigns/{campaign_id}`. Mailchimp requires `settings`; all other top-level groups are optional.
Body of `POST /campaigns/{campaign_id}/actions/test`. Both fields are required: Mailchimp will not infer a default recipient or rendering type.
Body of `POST /campaigns/{campaign_id}/actions/schedule`.
Body of `POST /campaigns/{campaign_id}/actions/create-resend`. Optional — defaults to `to_non_openers` when omitted.
Collection envelope returned by `GET /automations`.
Body of `POST /automations`. Mailchimp documents `recipients` and `trigger_settings` as required; `settings` is optional at create time.
Collection envelope returned by `GET /lists/{list_id}/webhooks`. Mailchimp omits pagination on this endpoint — webhook counts are always small — so there is no `total_items` field documented.
Body of `POST /lists/{list_id}/webhooks` and `PATCH /lists/{list_id}/webhooks/{webhook_id}`. Mailchimp documents the same shape on both verbs.
Winner-selection criterion for legacy A/B split tests.
A/B split test variable being tested (legacy abSplitOpts).
Wait-time unit for legacy A/B split tests and variate tests.
Day-of-week tokens accepted by `TriggerSettings.runtime.days`.
Daily run-window mode that gates when emails in the workflow may fire.
Segment-condition combinator used inside `Automation.recipients.segmentOpts`.
Lifecycle state of an automation workflow.
Built-in workflow templates Mailchimp exposes for an automation. `workflowType` is the only `required: true` field in the entire automation response schema. The 17 variants map one-to-one to Mailchimp's pre-built automation recipes (welcome series, abandoned-cart follow-ups, date-driven sends, integration-triggered sends, etc.).
Campaign report type — a separate enum from CampaignType. The reports endpoint returns a loose, non-strictly-enforced variant with hyphen/underscore wire-format drift from Campaign.type. The set also includes `automation` and `auto` which Campaign.type omits.
Plain-text campaign (hyphenated wire form)
Legacy A/B split test campaign (underscored wire form)
Resend shortcut variant accepted by `POST /campaigns/{campaign_id}/actions/create-resend`.
Send-type filter for `POST /campaigns/{campaign_id}/actions/test`.
Campaign type. Differs in wire format from CampaignReport.type (which uses hyphen/underscore variants and additional values).
Legacy A/B split test campaign (use variate instead)
Day-of-week selector for RSS weekly schedules and automation runtime days.
Delivery progress envelope shared by `Campaign.deliveryStatus` and `CampaignReport.deliveryStatus`.
Action recorded for a single per-recipient activity row. Mailchimp documents the action set as prose only (no `enum` block in the spec). The three observed values are open, click, and bounce; sibling fields specialise per action (`url` set on click, `type` set on bounce).
Bounce sub-classification used when `action == bounce`.
HTTP methods reported by a HATEOAS link descriptor. Source: every Mailchimp `_links[].method` field across the v3 API.
Presentation style Mailchimp uses to render the interest category on signup and preference forms.
Whether the list appears in Mailchimp's legacy public archive. Newer accounts only ever see `prv`; preserved for completeness.
Format Mailchimp uses to deliver email to this subscriber. `html` is the default; `text` strips HTML to a plain-text alternative.
SMS subscription state. `nonsubscribed` indicates the contact has a recorded phone number but has not opted in.
Subscription state of a contact on the list. `archived` removes the contact from the active subscriber count but preserves their history.
Phone-number format expected for `MergeFieldType.phone`. `US` enforces a 10-digit US format; `International` accepts free-form numbers.
Data type of a merge field. Drives validation and the input widget Mailchimp renders on signup and preference forms.
Eligibility/usage shortcut type for resend campaigns.
Resend to recipients who did not open the original
Resend to subscribers who joined after the original send
Resend to recipients who opened but did not click
Resend to recipients who did not purchase
Conjunction applied across the condition rows of a saved segment.
Segment matching mode for campaign recipients.
Segment kind. `saved` is a stored predicate, `static` is a tag-style fixed membership list, and `fuzzy` is a predictive Mailchimp-managed audience.
Winner-selection criterion for variate (multivariate) tests.
Query alias: 1 model declares abSplitOpts.
Query alias: 1 model declares abuseRate.
Query alias: 2 models declare abuseReports.
Query alias: 1 model declares archiveUrl.
Query alias: 2 models declare authenticate.
Query alias: 1 model declares autoFbPost.
Query alias: 2 models declare autoFooter.
Query alias: 1 model declares automations.
Query alias: 1 model declares autoTweet.
Query alias: 1 model declares avgClickRate.
Query alias: 1 model declares avgOpenRate.
Query alias: 1 model declares avgSubRate.
Query alias: 1 model declares avgUnsubRate.
Query alias: 1 model declares batchDelivery.
Query alias: 1 model declares beamerAddress.
Query alias: 1 model declares bounceRate.
Query alias: 1 model declares campaignCount.
Query alias: 2 models declare campaignDefaults.
Query alias: 2 models declare campaignId.
Query alias: 1 model declares campaignLastSent.
Query alias: 1 model declares campaigns.
Query alias: 1 model declares campaignTitle.
Query alias: 1 model declares canCancel.
Query alias: 1 model declares categoryId.
Query alias: 1 model declares cleanedCount.
Query alias: 1 model declares cleanedCountSinceSend.
Query alias: 5 models declare clickRate.
Query alias: 1 model declares clicksTotal.
Query alias: 2 models declare clicktale.
Query alias: 1 model declares combinations.
Query alias: 3 models declare conditions.
Query alias: 1 model declares conditionType.
Query alias: 1 model declares consentsToOneToOneMessaging.
Query alias: 1 model declares constrainRssImg.
Query alias: 1 model declares constraints.
Query alias: 1 model declares contactId.
Query alias: 1 model declares contentDescription.
Query alias: 2 models declare contentType.
Query alias: 1 model declares countryCode.
Query alias: 3 models declare createdAt.
Query alias: 1 model declares createdBy.
Query alias: 2 models declare createTime.
Query alias: 2 models declare currencyCode.
Query alias: 1 model declares dailySend.
Query alias: 1 model declares dateAdded.
Query alias: 1 model declares dateCreated.
Query alias: 1 model declares dateFormat.
Query alias: 1 model declares defaultCountry.
Query alias: 4 models declare defaultValue.
Query alias: 2 models declare deliveryStatus.
Query alias: 1 model declares description.
Query alias: 4 models declare displayOrder.
Query alias: 2 models declare doubleOptin.
Query alias: 1 model declares dragAndDrop.
Query alias: 1 model declares ecommerceData.
Query alias: 6 models declare emailAddress.
Query alias: 1 model declares emailAddresses.
Query alias: 1 model declares emailClient.
Query alias: 1 model declares emailsCanceled.
Query alias: 5 models declare emailsSent.
Query alias: 4 models declare emailType.
Query alias: 2 models declare emailTypeOption.
Query alias: 1 model declares errorCode.
Query alias: 2 models declare errorCount.
Query alias: 1 model declares fbComments.
Query alias: 1 model declares forwardsCount.
Query alias: 2 models declare forwardsOpens.
Query alias: 1 model declares frequency.
Query alias: 1 model declares fromEmail.
Query alias: 1 model declares fromNameA.
Query alias: 1 model declares fromNameB.
Query alias: 1 model declares fromNames.
Query alias: 1 model declares gmtOffset.
Query alias: 1 model declares goalTracking.
Query alias: 2 models declare googleAnalytics.
Query alias: 1 model declares hardBounces.
Query alias: 1 model declares hasWelcome.
Query alias: 1 model declares htmlClicks.
Query alias: 1 model declares industryStats.
Query alias: 2 models declare inlineCss.
Query alias: 1 model declares isEligible.
Query alias: 1 model declares isSyncing.
Query alias: 1 model declares lastChanged.
Query alias: 2 models declare lastClick.
Query alias: 1 model declares lastSubDate.
Query alias: 1 model declares lastUnsubDate.
Query alias: 4 models declare listIsActive.
Query alias: 1 model declares listRating.
Query alias: 1 model declares listStats.
Query alias: 1 model declares longArchiveUrl.
Query alias: 1 model declares longitude.
Query alias: 1 model declares marketingPermissionId.
Query alias: 2 models declare memberCount.
Query alias: 1 model declares memberCountSinceSend.
Query alias: 1 model declares memberRating.
Query alias: 1 model declares membersAdded.
Query alias: 1 model declares membersRemoved.
Query alias: 1 model declares membersToAdd.
Query alias: 1 model declares membersToRemove.
Query alias: 1 model declares mergeFieldCount.
Query alias: 1 model declares mergeFieldLimit.
Query alias: 1 model declares monthlySendDate.
Query alias: 1 model declares needsBlockRefresh.
Query alias: 1 model declares newMembers.
Query alias: 2 models declare notifyOnSubscribe.
Query alias: 2 models declare notifyOnUnsubscribe.
Query alias: 1 model declares numberOfOrders.
Query alias: 1 model declares opensTotal.
Query alias: 1 model declares originalCampaign.
Query alias: 1 model declares parentCampaignId.
Query alias: 2 models declare permissionReminder.
Query alias: 1 model declares phoneFormat.
Query alias: 1 model declares pickWinner.
Query alias: 1 model declares prebuiltSegmentId.
Query alias: 2 models declare previewText.
Query alias: 2 models declare proxyExcludedOpenRate.
Query alias: 1 model declares proxyExcludedOpens.
Query alias: 2 models declare proxyExcludedUniqueOpens.
Query alias: 1 model declares recipientClicks.
Query alias: 1 model declares recipientCount.
Query alias: 1 model declares recipientLikes.
Query alias: 1 model declares recipientsClicks.
Query alias: 1 model declares replyEmailA.
Query alias: 1 model declares replyEmailB.
Query alias: 1 model declares replyToAddresses.
Query alias: 2 models declare reportSummary.
Query alias: 1 model declares resendable.
Query alias: 1 model declares resendShortcutEligibility.
Query alias: 1 model declares resendShortcutUsage.
Query alias: 1 model declares rssLastSend.
Query alias: 1 model declares salesforce.
Query alias: 2 models declare savedSegmentId.
Query alias: 1 model declares scheduleTime.
Query alias: 1 model declares segmentText.
Query alias: 1 model declares sendTimeA.
Query alias: 1 model declares sendTimeB.
Query alias: 1 model declares sendTimes.
Query alias: 1 model declares sendTimeWinner.
Query alias: 1 model declares sharePassword.
Query alias: 1 model declares shareReport.
Query alias: 1 model declares shortcutCampaigns.
Query alias: 3 models declare shortcutType.
Query alias: 1 model declares smsPhoneNumber.
Query alias: 1 model declares smsSubscriptionLastUpdated.
Query alias: 1 model declares smsSubscriptionStatus.
Query alias: 3 models declare socialCard.
Query alias: 1 model declares softBounces.
Query alias: 1 model declares splitSize.
Query alias: 1 model declares splitTest.
Query alias: 1 model declares startTime.
Query alias: 1 model declares staticSegment.
Query alias: 1 model declares statusIfNew.
Query alias: 1 model declares subjectLines.
Query alias: 1 model declares subscribe.
Query alias: 1 model declares subscriberClicks.
Query alias: 1 model declares subscribeUrlLong.
Query alias: 1 model declares subscribeUrlShort.
Query alias: 1 model declares syntaxErrors.
Query alias: 1 model declares tagsCount.
Query alias: 1 model declares targetSchema.
Query alias: 1 model declares targetSubRate.
Query alias: 1 model declares templateId.
Query alias: 1 model declares testEmails.
Query alias: 1 model declares textClicks.
Query alias: 1 model declares timeseries.
Query alias: 2 models declare timestamp.
Query alias: 4 models declare timestampOpt.
Query alias: 4 models declare timestampSignup.
Query alias: 1 model declares toNewSubscribers.
Query alias: 1 model declares toNonClickers.
Query alias: 1 model declares toNonOpeners.
Query alias: 1 model declares toNonPurchasers.
Query alias: 1 model declares totalAdded.
Query alias: 1 model declares totalContacts.
Query alias: 1 model declares totalCreated.
Query alias: 10 models declare totalItems.
Query alias: 2 models declare totalOrders.
Query alias: 1 model declares totalRemoved.
Query alias: 3 models declare totalRevenue.
Query alias: 2 models declare totalSpent.
Query alias: 1 model declares totalUpdated.
Query alias: 2 models declare triggerSettings.
Query alias: 2 models declare uniqueClicks.
Query alias: 1 model declares uniqueEmailId.
Query alias: 1 model declares uniqueLikes.
Query alias: 5 models declare uniqueOpens.
Query alias: 1 model declares uniqueSubscriberClicks.
Query alias: 1 model declares unopenRate.
Query alias: 2 models declare unsubRate.
Query alias: 1 model declares unsubscribe.
Query alias: 1 model declares unsubscribeCount.
Query alias: 1 model declares unsubscribeCountSinceSend.
Query alias: 1 model declares unsubscribed.
Query alias: 1 model declares unsubscribeReason.
Query alias: 1 model declares updatedAt.
Query alias: 1 model declares updatedMembers.
Query alias: 1 model declares updateExisting.
Query alias: 2 models declare useArchiveBar.
Query alias: 2 models declare useConversation.
Query alias: 3 models declare variateSettings.
Query alias: 1 model declares visibility.
Query alias: 1 model declares waitUnits.
Query alias: 1 model declares wednesday.
Query alias: 1 model declares weeklySendDay.
Query alias: 1 model declares winnerCriteria.
Query alias: 1 model declares winningCampaignId.
Query alias: 1 model declares winningCombinationId.
Query alias: 1 model declares workflowEmailsCount.
Query alias: 1 model declares workflowTitle.
Query alias: 1 model declares workflowType.
Link relation type (e.g. `self`, `parent`, `create`, `update`, `delete`).
JSON Schema describing the response payload for this link.
JSON Schema describing the request payload for this link (write methods only).
Dotted path of the offending request field.
Human-readable description of why validation failed.
URI reference to the error-type documentation.
Short human-readable summary of the error category.
HTTP status code repeated as an integer.
Instance-specific explanation of what went wrong.
Unique request identifier (UUID) for support correlation.
Per-field validation errors. Present only on `400 Bad Request`.
Whether delivery tracking is enabled for this campaign.
Whether the operator can still cancel the in-flight send.
Count of messages successfully handed off to the SMTP layer.
Count of messages that were canceled before send.
Total amount spent across attributed orders.
Attributed e-commerce aggregates. Absent on Automation summaries.
Push a Salesforce campaign record on send.
Push send activity into Salesforce notes.
Track conversions on the operator's website via Mailchimp goals.
Track e-commerce events via Mailchimp Ecomm360.
Google Analytics campaign tag (max 50 bytes).
Discriminator selecting the condition variant.
Member or merge-field path the condition targets. Variant-defined.
Comparison operator (e.g. `is`, `not`, `greater`). Variant-defined.
Variant-specific comparison value. Concrete type depends on `conditionType` (string, number, boolean, array, or nested object).
Company or organization name printed in the footer.
Street address line 2 (suite, unit, etc.).
Default language code (e.g. `en`, `es`).
Total contacts in any state (subscribed + unsubscribed + cleaned).
Cleaned (bounced/invalid) contact count.
Net subscribers added since the last send.
Number of merge fields defined for the list.
Target monthly subscribe rate set by the operator.
Open rate averaged across recent campaigns.
Click rate averaged across recent campaigns.
Timestamp of the most recent subscribe event.
Timestamp of the most recent unsubscribe event.
Secondary numeric identifier surfaced in the Mailchimp admin UI URL.
Physical mailing address printed in the campaign footer.
Reminder text explaining why a recipient is on this list.
Whether to render the Mailchimp archive bar in sent campaigns.
Default field values applied to new campaigns drafted against this list.
Email address notified when a contact subscribes.
Email address notified when a contact unsubscribes.
Mailchimp-assigned engagement rating from 0 (lowest) to 5 (highest).
Whether subscribers can choose between HTML and plain-text email.
Branded short URL hosting the subscribe form.
Canonical long URL hosting the subscribe form.
Email Beamer inbound address for converting emails into campaigns.
Legacy public/private visibility flag. Newer accounts always see `prv`.
Whether subscribers must confirm via a follow-up email before being added.
Whether a welcome email is sent on subscribe.
Whether the list collects GDPR marketing permission flags.
Mailchimp module identifiers enabled for the list (read-only).
Aggregate counters and rate metrics for the list.
HATEOAS link descriptors for related resources.
ISO 4217 currency code of the attributed totals.
Open rate averaged across campaigns sent to this member.
Click rate averaged across campaigns sent to this member.
Attributed e-commerce aggregates from Ecomm360.
Daylight-savings offset in hours at resolution time.
Opaque permission identifier scoped to the parent list.
Human-readable description of what the subscriber consented to.
Whether the subscriber currently grants the permission.
Opaque identifier of the source `MemberNote`.
Display name of the account user who authored the note.
MD5 hash of the lowercased email address. Distinct from `uniqueEmailId`.
Cross-Mailchimp email-address identifier (different from `id`).
Email-agnostic contact identifier persistent across address changes.
Subscriber's full name as resolved from merge fields.
Delivery format preference (`html` or `text`).
Subscription state of the contact on the list.
Free-text reason captured when the subscriber unsubscribed.
Whether the subscriber consents to one-to-one outreach.
SMS phone number on file. US numbers only.
Last update to SMS subscription state. Wire format is unspecified; emitted as a string.
Open dictionary of merge-field values keyed by merge tag.
Map of interest opt-ins. Keys are `Ref<Interest>` identifiers; values indicate whether the subscriber is opted in.
Engagement and e-commerce summary for the subscriber.
IP address recorded at confirmed opt-in.
Mailchimp-assigned engagement rating from 1 (lowest) to 5 (highest).
Timestamp of the most recent change to the subscriber record.
Subscriber language code (e.g. `en`, `es`).
Whether the subscriber is flagged as a VIP for the account.
Inferred email client (`Apple Mail`, `Gmail`, etc.).
Approximate geographic location resolved from the subscriber's IP.
GDPR marketing-permission flags. One entry per permission defined on the parent list.
Most recent note attached to the subscriber.
Acquisition source (e.g. signup form, API, import).
Number of tags currently applied to the subscriber.
Tag associations for the subscriber. Each `id` references a `Tag` on the parent list.
Integer tag identifier scoped to the parent list.
Whether condition rows are combined with logical OR (`any`) or AND (`all`).
Polymorphic condition rows; variant is keyed by `conditionType`.
Integer segment identifier scoped to the parent list.
Cached count of subscribers matching the segment predicate.
Predicate definition. Absent on `static` and `fuzzy` segments.
Numeric Mailchimp country code applied as the default for `address` merge fields.
Phone-number format applied to `phone` merge fields.
Date format string for `date` and `birthday` merge fields (e.g. `MM/DD/YYYY`).
Enumerated choices for `radio` and `dropdown` merge fields.
Input width hint for `text` and `number` merge fields.
Integer merge-field identifier scoped to the parent list.
Merge tag used in campaign content (e.g. `FNAME`, `LNAME`, `EMAIL`).
Display name shown in the Mailchimp admin UI and on forms.
Whether the merge field is required on signup.
Default value applied when the subscriber does not supply one.
Whether the merge field is shown on the public signup form.
Position of the merge field within the list's form.
Type-specific configuration options. Populated keys depend on `type`.
Helper text rendered under the merge field on signup forms.
Total merge fields defined for the parent list after this insert.
Account-level cap on merge fields per list.
Campaign ID. Opaque string assigned by Mailchimp.
Display ID used in the Mailchimp web UI; not an entity reference
Parent campaign ID for RSS/automation child campaigns; self-reference
Campaign type (regular, plaintext, absplit, rss, variate)
Long-form public archive URL for the campaign
Deprecated; always false in current responses
Whether this campaign is eligible to be resent
Campaign settings (subject, from, content options)
Variate (multivariate) test configuration; present when type is variate
Open/click/ecommerce tracking flags; see common CampaignTracking
RSS feed options; present when type is rss
Deprecated legacy A/B split test options. Mailchimp no longer authors classic A/B from the API; use `Campaigns.VariateSettings` for multivariate tests.
Social-card preview image, title, and description
Per-campaign report summary; see common ReportSummary
Delivery status; see common DeliveryStatus
Eligibility flags for the four resend-shortcut variants
Records of resend-shortcut campaigns spawned from this campaign
Audience (list) ID this campaign sends to
Whether the target audience is currently active
HTML description of the targeted segment
Number of recipients targeted by this campaign
Prebuilt segment ID (string variant). Modeled as plain string because heterogeneous Ref<Segment> across int and string key types cannot be expressed through dual scalars cleanly; resolve at consumer.
Whether all or any conditions must match
Segment conditions (polymorphic, discriminator condition_type). Promoted to shared SegmentCondition base model in common.tsp.
Subject line shown in the recipient's inbox
Preview snippet rendered in inbox clients alongside the subject
Internal title of the campaign (not shown to recipients)
Whether to enable Mailchimp Conversation for inbound replies
Recipient name expression (merge-tag aware)
Campaign folder ID. Dangling Ref<CampaignFolder>; CampaignFolder entity not in v1.
Whether the campaign is authenticated (DKIM/SPF)
Whether the default Mailchimp footer is automatically appended
Whether CSS is inlined automatically on send
Whether the campaign auto-tweets when sent
Facebook page IDs to auto-post the campaign to
Whether Facebook comments are enabled on the campaign
Template ID used to construct the campaign content. Dangling Ref<Template>; Template entity not in v1.
Whether the campaign was built with the drag-and-drop editor
Google Analytics campaign name (max 50 bytes)
ID of the combination chosen as the variate winner
ID of the campaign sent to the remaining audience after a variate winner is selected
Criterion used to pick the variate winner
Wait time before evaluating variate combinations
Fraction of the audience used for the variate test
Subject lines tested in this variate campaign
Send times tested in this variate campaign. Local-clock format YYYY-MM-DD HH:MM:SS, not ISO 8601; deliberately string[] rather than utcDateTime[].
From names tested in this variate campaign
Reply-to addresses tested in this variate campaign
Content blocks tested in this variate campaign
Resolved variate combinations and their per-arm metrics
Array index into Campaign.variateSettings.subject_lines; NOT a Ref.
Array index into Campaign.variateSettings.send_times; NOT a Ref.
Array index into Campaign.variateSettings.from_names; NOT a Ref.
Array index into Campaign.variateSettings.reply_to_addresses; NOT a Ref.
Array index into Campaign.variateSettings.contents; NOT a Ref.
Array index recording which recipient slice received this combination; NOT a Ref.
RSS feed URL polled to drive the campaign
Detailed schedule controlling when the feed is polled
Whether to constrain RSS images to the template width
Per-day enable flags for daily RSS sends
Day of the week to send for weekly RSS campaigns
Day of the month to send for monthly RSS campaigns (0-31; 0 means the last day of the month)
Which campaign attribute is being split-tested
Unit used for waitTime before evaluating the winner
Time to wait before evaluating the winner
Percentage of the audience used for the test split
Send time for the winning variant. Local-clock string, not ISO 8601; deliberately string rather than utcDateTime.
Image URL used for the social-card preview
Eligibility for resending to non-openers
Eligibility for resending to new subscribers
Eligibility for resending to non-clickers
Eligibility for resending to non-purchasers
Whether this shortcut is eligible to be triggered
Reason explaining why this shortcut is or is not eligible
Campaigns generated from resend shortcuts on this original campaign
Original campaign that produced these resend shortcuts
Resend shortcut variant used to generate this campaign
Campaign report ID. Equal to the corresponding Campaign.id verbatim (1:1 keying). Acts as @key for this entity AND as Ref<Campaign>.
Campaign report type. Wire formats differ from Campaign.type (hyphen/underscore drift; extra `automation` and `auto` values).
Audience (list) the source campaign sent to
Timestamp of the most recent RSS send for RSS campaigns
Open counts, rates, and last-open timestamp
Click counts, rates, and last-click timestamp
Facebook likes attributable to the campaign
Send/open/click counts bucketed over time
Shareable URL and password for the campaign report
Ecommerce totals attributed to the campaign
HATEOAS links for the campaign report resource
Number of syntax errors in recipient addresses
Number of times the campaign was forwarded
Number of opens generated by forwarded copies
Total number of opens (including proxy opens)
Total opens excluding privacy-proxy-generated opens
Number of unique recipients who opened the campaign
Unique opens excluding privacy-proxy-generated opens
Open rate excluding privacy-proxy-generated opens
Number of unique subscribers who clicked
Number of likes from recipients of this campaign
Number of unique users who liked the campaign on Facebook
Total Facebook likes attributed to the campaign
Audience open rate excluding privacy-proxy-generated opens
Number of opens from forwarded copies for this arm
Timestamp of the last open in this arm. The spec does not declare a datetime format on this field; deliberately string.
GMT offset (in hours) for this delivery slice
Timestamp of the last open in this slice
Timestamp of the last click in this slice
Timestamp marking the start of this time-series bucket
Number of emails sent during this bucket
Number of unique opens recorded during this bucket
Unique opens during this bucket excluding privacy-proxy-generated opens
Number of recipient clicks during this bucket
Total ecommerce orders attributed to the campaign
Total revenue attributed to the campaign
ISO 4217 currency code for the ecommerce totals
Timestamp when the workflow was created.
Timestamp when the workflow was last started (set to sending).
Total emails dispatched across all steps of the workflow.
Recipient targeting (parent list and optional segment).
Sender, footer, and content toggles applied to every step.
Engagement-tracking toggles shared with regular campaigns.
Trigger recipe and runtime constraints. The nested `workflowType` is the single required field across the entire Automation response shape per Mailchimp's OpenAPI; the wrapper is therefore non-optional so that requirement is reachable on the wire.
Aggregate engagement summary (without the e-commerce sub-block).
HATEOAS link descriptors for this resource.
Parent audience the workflow runs against.
Whether the parent list is currently active.
Segment definition narrowing the recipient set.
Connected store ID. Dangling Ref<Store>; not in v1.
Saved-segment integer ID referenced by this automation.
Ordered list of segment conditions evaluated against the parent list. Concrete shape is variant-defined; see the `SegmentCondition` stub in `common.tsp` for the discriminator contract.
Internal title shown in the Mailchimp UI.
Display "from" name presented to recipients.
Reply-to address attached to every send in the workflow.
Personalised "to" name template (e.g. `*|FNAME|*`).
Convert replies to recipients into a Mailchimp Conversation thread.
Apply Mailchimp's authentication (SPF/DKIM) on outbound mail.
Append the standard Mailchimp footer to the body.
Inline CSS on send to maximise email-client compatibility.
Built-in workflow recipe selected for this automation. Required by the Mailchimp spec.
Schedule constraints restricting when the workflow fires.
Count of email steps configured under this workflow.
Weekdays on which the workflow may fire. Empty array means the trigger fires on any day.
How the daily run-window is interpreted. Required by the Mailchimp spec on every runtime block; flagged as `required: true` alongside the parent `workflowType`.
Per-recipient activity envelopes for this campaign.
Total recipient rows available across all pages.
HATEOAS link descriptors for this report.
Parent campaign this activity row belongs to.
Parent audience the recipient is subscribed to.
Member subscriber-hash (MD5 of the lowercased email address) — same value as `Member.id`. Used to join activity back to the Member resource.
Chronological list of per-action events for this recipient. Capped at 1000 opens + 1000 clicks per recipient per campaign.
Bounce sub-classification. Set only when `action == bounce`.
Timestamp at which the action was recorded.
Destination URL of the click. Set only when `action == click`.
Originating IP address. Best-effort; may be empty for proxy opens.
Opaque webhook subscription ID assigned by Mailchimp on create.
Callback URL Mailchimp POSTs form-encoded events to.
Event-type subscription mask (subscribe, unsubscribe, profile, upemail, cleaned, campaign).
Origin-source filter mask (user, admin, api).
Parent audience the webhook is attached to.
Deliver a callback when a subscriber opts in.
Deliver a callback when a subscriber opts out.
Deliver a callback when a subscriber's profile (merge fields) changes.
Deliver a callback when a subscriber changes their email address.
Deliver a callback when an address is cleaned (bounced/removed).
Deliver a callback when a campaign send completes.
Deliver events triggered by the subscriber themselves.
Deliver events triggered by operators inside the Mailchimp UI.
Deliver events triggered programmatically through the API.
Opaque Interest ID. Appears as the key in `Member.interests`.
Display name shown in subscribe forms and the admin UI.
Parent interest category that groups this interest.
Parent list that owns the interest category.
Display title shown above the interest checkboxes.
Presentation style for the category on subscribe forms.
Total number of audiences on the account (across all pages).
Per-account audience-count limits applied to this response.
HATEOAS link descriptors for the collection.
Member descriptors to subscribe, update, or unsubscribe in bulk.
Replace each member's tag set with the tags supplied in the payload.
Update members already on the list instead of skipping duplicates.
Per-row error reports for rejected members.
Number of members created in this batch.
Number of members updated in this batch.
Number of members rejected by this batch.
Audience postal contact information shown in campaign footers (CAN-SPAM).
Permission reminder displayed at the bottom of campaigns sent to this audience.
Show the Mailchimp archive bar in campaigns sent to this audience.
Default `from_name`, `from_email`, `subject`, and `language` for new campaigns.
Email address that receives notifications when someone subscribes.
Email address that receives notifications when someone unsubscribes.
Allow subscribers to choose between HTML and plain-text emails.
Require subscribers to confirm via opt-in email.
Surface GDPR-style marketing permissions on the signup form.
Total number of members on the audience (unfiltered by pagination).
Member email address. The MD5 of the lowercased email becomes the `subscriber_hash` used as `Member.id` and as the path parameter for per-member endpoints.
Initial subscription status (`subscribed`, `pending`, `unsubscribed`, `cleaned`, `transactional`).
Map of merge-tag names to scalar values (e.g. `FNAME`, `LNAME`).
Map of interest IDs to boolean subscription flags.
Subscriber geo location (`latitude`, `longitude`).
Per-permission consent records (GDPR-style).
Tag names to apply at create time. Mailchimp creates missing tags.
Member email address. Required only when upserting a new member.
Status to assign when the member does not yet exist on the audience.
Current subscription status. Ignored when creating a new member (use `status_if_new`).
Map of merge-tag names to scalar values.
New email address. Updates the subscriber identity.
Numeric tag identifier scoped to the parent list.
When this tag was applied to the member.
Total number of tags applied to the member.
Tag mutations to apply. Each row names a tag and an action.
Treat the call as part of a background sync to suppress some side effects.
Total number of segments defined on the audience.
Seed emails for a static segment. Unknown emails are created on the audience as transactional.
Saved-segment condition tree (`match` plus an array of `conditions`).
Emails to add to the static segment. Required unless `members_to_remove` is supplied; at least one of the two arrays must be present and non-empty per Mailchimp's API contract.
Emails to remove from the static segment. Required unless `members_to_add` is supplied; at least one of the two arrays must be present and non-empty per Mailchimp's API contract.
Members successfully added by this batch.
Members successfully removed by this batch.
Per-row error reports for rejected emails.
Tags matching the search query, ordered by relevance.
Total number of matching tags across all pages.
Total number of merge fields defined on the audience.
Merge tag short code used inside campaigns (e.g. `FNAME`). Auto-generated when omitted.
Whether subscribers must supply a value for this field.
Default value substituted when the field is empty.
Surface the field on hosted signup forms.
Position of the field on hosted signup forms.
Type-specific options (e.g. `choices` for `dropdown`, `format` for `date`).
Helper text shown beside the field on signup forms.
Total number of campaigns on the account.
Campaign type. One of `regular`, `plaintext`, `absplit`, `rss`, `variate`.
Recipient settings: `list_id` and optional segment options.
Campaign settings: subject line, from name, from email, reply-to, etc.
A/B variate settings. Only used when `type = variate`.
Engagement-tracking toggles (opens, clicks, GA, etc.).
RSS feed settings. Only used when `type = rss`.
Social card metadata for archive previews.
Editor used to compose the campaign (`template`, `html`, `url`, `multichannel`).
Recipients of the test send. Must be a non-empty array of email addresses.
Whether to send the HTML or plain-text variant.
UTC ISO 8601 timestamp to schedule the campaign for delivery.
Send across multiple timezones to align with each recipient's local time of day.
Trickle-send settings (`batch_count`, `batch_delay`).
Which resend shortcut to use. Defaults to `to_non_openers` server-side.
Total number of classic automation workflows on the account.
Workflow-level settings (`from_name`, `reply_to`, etc.).
Trigger configuration that fires this workflow.
HTTPS URL Mailchimp will POST events to. Embed any secret token in the URL itself.
Per-source subscription toggles (user/admin/api).
Tag name. Mailchimp creates the tag if it does not exist.
`active` to attach, `inactive` to detach.