This generated ontology is derived by SPARQL from Relay API artifacts. It should be refreshed by the build, not edited by hand.
Generated type-system projection materialized from the Mailchimp Relay RDFS ontology and SHACL shapes.
Generated Mailchimp Type System Projection
Tag name. Mailchimp creates the tag if it does not exist.
`active` to attach, `inactive` to detach.
HTTPS URL Mailchimp will POST events to. Embed any secret token in the URL itself.
Body of `POST /lists/{list_id}/webhooks` and `PATCH /lists/{list_id}/webhooks/{webhook_id}`. Mailchimp documents the same shape on both verbs.
Per-source subscription toggles (user/admin/api).
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.
HATEOAS link descriptors for the collection.
Recipient settings: `list_id` and optional segment options.
Body of `POST /automations`. Mailchimp documents `recipients` and `trigger_settings` as required; `settings` is optional at create time.
Workflow-level settings (`from_name`, `reply_to`, etc.).
Trigger configuration that fires this workflow.
Collection envelope returned by `GET /automations`.
Total number of classic automation workflows on the account.
Which resend shortcut to use. Defaults to `to_non_openers` server-side.
Body of `POST /campaigns/{campaign_id}/actions/create-resend`. Optional — defaults to `to_non_openers` when omitted.
UTC ISO 8601 timestamp to schedule the campaign for delivery.
Body of `POST /campaigns/{campaign_id}/actions/schedule`.
Send across multiple timezones to align with each recipient's local time of day.
Trickle-send settings (`batch_count`, `batch_delay`).
Recipients of the test send. Must be a non-empty array of email addresses.
Body of `POST /campaigns/{campaign_id}/actions/test`. Both fields are required: Mailchimp will not infer a default recipient or rendering type.
Whether to send the HTML or plain-text variant.
Body of `PATCH /campaigns/{campaign_id}`. Mailchimp requires `settings`; all other top-level groups are optional.
Campaign settings: subject line, from name, from email, reply-to, etc.
Campaign type. One of `regular`, `plaintext`, `absplit`, `rss`, `variate`.
Body of `POST /campaigns`. Mailchimp requires `type`; recipients, settings, and tracking are all optional at create time but become mandatory before send.
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`).
Collection envelope returned by `GET /campaigns`.
Total number of campaigns on the account.
Body of `PATCH /lists/{list_id}/merge-fields/{merge_id}`. Mailchimp disallows updating `type` after creation; the field is omitted here.
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.
Helper text shown beside the field on signup forms.
Merge tag short code used inside campaigns (e.g. `FNAME`). Auto-generated when omitted.
Body of `POST /lists/{list_id}/merge-fields`. Mailchimp generates the uppercase `tag` from the name when omitted.
Type-specific options (e.g. `choices` for `dropdown`, `format` for `date`).
Collection envelope returned by `GET /lists/{list_id}/merge-fields`.
Total number of merge fields defined on the audience.
Tags matching the search query, ordered by relevance.
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.
Total number of matching tags across all pages.
Members successfully added by this batch.
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.
Members successfully removed by this batch.
Per-row error reports for rejected emails.
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.
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.
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.
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.
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`).
Collection envelope returned by `GET /lists/{list_id}/segments`.
Total number of segments defined on the audience.
Tag mutations to apply. Each row names a tag and an action.
Body of `POST /lists/{list_id}/members/{subscriber_hash}/tags`. Each tag row carries an action verb (`active` to add, `inactive` to remove).
Treat the call as part of a background sync to suppress some side effects.
Envelope returned by `GET /lists/{list_id}/members/{subscriber_hash}/tags`.
Total number of tags applied to the member.
Numeric tag identifier scoped to the parent list.
Single tag entry returned by `GET /lists/{list_id}/members/{subscriber_hash}/tags`.
When this tag was applied to the member.
New email address. Updates the subscriber identity.
Body of `PATCH /lists/{list_id}/members/{subscriber_hash}`. All fields optional; Mailchimp applies the supplied fields and leaves the rest.
Member email address. Required only when upserting a new member.
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).
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.
Map of interest IDs to boolean subscription flags.
Subscriber geo location (`latitude`, `longitude`).
Per-permission consent records (GDPR-style).
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.
Body of `POST /lists/{list_id}/members`. Required to subscribe a new member; `email_address` and `status` are the only mandatory fields.
Initial subscription status (`subscribed`, `pending`, `unsubscribed`, `cleaned`, `transactional`).
Map of merge-tag names to scalar values (e.g. `FNAME`, `LNAME`).
Tag names to apply at create time. Mailchimp creates missing tags.
Collection envelope returned by `GET /lists/{list_id}/members`.
Total number of members on the audience (unfiltered by pagination).
Body of `POST /lists`. Mailchimp documents the same shape for both create and PATCH update; this model is reused on `PATCH /lists/{list_id}`.
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.
Response shape returned by `POST /lists/{list_id}`. Mailchimp returns three parallel arrays plus per-bucket counts and per-error detail.
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.
Member descriptors to subscribe, update, or unsubscribe in bulk.
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.
Replace each member's tag set with the tags supplied in the payload.
Update members already on the list instead of skipping duplicates.
Collection envelope returned by `GET /lists`. Mailchimp uses the resource-plural collection key `lists` and adds `total_items`, optional `constraints`, and a `_links` array.
Total number of audiences on the account (across all pages).
Per-account audience-count limits applied to this response.
Stub — only used to resolve Ref<InterestCategory>; full schema deferred to v2.
Parent list that owns the interest category.
Display title shown above the interest checkboxes.
Presentation style for the category on subscribe forms.
Opaque Interest ID. Appears as the key in `Member.interests`.
Stub — only used to resolve Ref<Interest>; full schema deferred to v2.
Display name shown in subscribe forms and the admin UI.
Parent interest category that groups this interest.
Deliver events triggered by the subscriber themselves.
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.
Deliver events triggered by operators inside the Mailchimp UI.
Deliver events triggered programmatically through the API.
Deliver a callback when a subscriber opts in.
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.
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.
Opaque webhook subscription ID assigned by Mailchimp on create.
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}`.
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.
HATEOAS link descriptors for this resource.
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.
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.
Parent campaign this activity row belongs to.
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).
Parent audience the recipient is subscribed to.
Whether the parent list is currently active.
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.
Per-recipient activity envelopes for this campaign.
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.
Total recipient rows available across all pages.
HATEOAS link descriptors for this report.
How the daily run-window is interpreted. Required by the Mailchimp spec on every runtime block; flagged as `required: true` alongside the parent `workflowType`.
Run-window descriptor nested under `TriggerSettings.runtime`. Restricts which weekdays and which hours the workflow may dispatch on.
Weekdays on which the workflow may fire. Empty array means the trigger fires on any day.
Schedule constraints attached to `TriggerSettings.runtime`.
Built-in workflow recipe selected for this automation. Required by the Mailchimp spec.
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 restricting when the workflow fires.
Count of email steps configured under this workflow.
Internal title shown in the Mailchimp UI.
Sender and content settings nested under `Automation.settings`. Strict subset of `CampaignSettings` — no folder, template, social, or Google-Analytics fields.
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.
Saved-segment integer ID referenced by this automation.
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).
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.
Parent audience the workflow runs against.
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 definition narrowing the recipient set.
Connected store ID. Dangling Ref<Store>; not in v1.
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}`.
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).
Total ecommerce orders attributed to the campaign
Nested record for CampaignReport.ecommerce.
Total revenue attributed to the campaign
ISO 4217 currency code for the ecommerce totals
Nested record for CampaignReport.shareReport.
Timestamp marking the start of this time-series bucket
Nested record for a single time-series bucket in CampaignReport.timeseries[].
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
GMT offset (in hours) for this delivery slice
Nested record for a single Timewarp delivery slice in CampaignReport.timewarp[].
Timestamp of the last open in this slice
Timestamp of the last click in this slice
Nested record for a single A/B split arm in CampaignReport.abSplit.
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.
Nested record for CampaignReport.abSplit (legacy A/B test results).
Nested record for CampaignReport.listStats.
Audience open rate excluding privacy-proxy-generated opens
Nested record for CampaignReport.industryStats. Industry benchmark rates Mailchimp publishes for the campaign's declared industry segment.
Number of likes from recipients of this campaign
Nested record for CampaignReport.facebookLikes.
Number of unique users who liked the campaign on Facebook
Total Facebook likes attributed to the campaign
Nested record for CampaignReport.clicks.
Number of unique subscribers who clicked
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 times the campaign was forwarded
Nested record for CampaignReport.forwards.
Number of opens generated by forwarded copies
Nested record for CampaignReport.bounces.
Number of syntax errors in recipient addresses
Campaign report ID. Equal to the corresponding Campaign.id verbatim (1:1 keying). Acts as @key for this entity AND as Ref<Campaign>.
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
Campaign report type. Wire formats differ from Campaign.type (hyphen/underscore drift; extra `automation` and `auto` values).
Audience (list) the source campaign sent to
Whether the target audience is currently active
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
Delivery status; see common DeliveryStatus
HATEOAS links for the campaign report resource
Nested record for Campaign.resendShortcutUsage.originalCampaign. Every field on this sub-shape is read-only.
Display ID used in the Mailchimp web UI; not an entity reference
Nested record for a resend-shortcut child campaign. Every field on this sub-shape is read-only.
Resend shortcut variant used to generate this campaign
Campaigns generated from resend shortcuts on this original campaign
Nested record for Campaign.resendShortcutUsage.
Original campaign that produced these resend shortcuts
Whether this shortcut is eligible to be triggered
Nested record for a single resend-shortcut eligibility entry.
Reason explaining why this shortcut is or is not eligible
Eligibility for resending to non-openers
Nested record for Campaign.resendShortcutEligibility. Only populated when the request includes `include_resend_shortcuts=true`.
Eligibility for resending to new subscribers
Eligibility for resending to non-clickers
Eligibility for resending to non-purchasers
Image URL used for the social-card preview
Which campaign attribute is being split-tested
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.
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.
Nested record for Campaign.rssOpts.schedule.dailySend.
Nested record for Campaign.rssOpts.schedule.
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)
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
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>.
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.
ID of the combination chosen as the variate winner
Nested record for Campaign.variateSettings.
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
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)
Nested record for Campaign.recipients.segmentOpts.
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.
Audience (list) ID this campaign sends to
HTML description of the targeted segment
Number of recipients targeted by this campaign
Campaign ID. Opaque string assigned by Mailchimp.
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
Eligibility flags for the four resend-shortcut variants
Records of resend-shortcut campaigns spawned from this campaign
Integer merge-field identifier scoped to the parent list.
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.
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.
HATEOAS link descriptors for related resources.
Total merge fields defined for the parent list after this insert.
Account-level cap on merge fields per list.
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}`.
Numeric Mailchimp country code applied as the default for `address` merge fields.
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.
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 segment identifier scoped to the parent list.
A Mailchimp list segment used to target a subset of a list's subscribers. Returned by `GET /lists/{list_id}/segments/{segment_id}`.
Cached count of subscribers matching the segment predicate.
Predicate definition. Absent on `static` and `fuzzy` segments.
Whether condition rows are combined with logical OR (`any`) or AND (`all`).
Predicate definition for a saved segment. `match` selects the conjunction; `conditions` is the polymorphic row list.
Polymorphic condition rows; variant is keyed by `conditionType`.
Integer tag identifier scoped to the parent list.
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`.
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.
MD5 hash of the lowercased email address. Distinct from `uniqueEmailId`.
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`.
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.
Secondary numeric identifier surfaced in the Mailchimp admin UI URL.
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.
Stub — only used to resolve Ref<MemberNote>; full schema deferred to v2.
Opaque identifier of the source `MemberNote`.
Most recent note attached to the member by an account user. References `MemberNote` via the opaque note identifier.
Display name of the account user who authored the note.
Opaque permission identifier scoped to the parent list.
GDPR marketing-permission flag attached to a subscriber. The `marketingPermissionId` is opaque and scoped to the parent list.
Human-readable description of what the subscriber consented to.
Whether the subscriber currently grants the permission.
Approximate geographic location resolved from the subscriber's most recent IP. Coordinates are zeroed when location cannot be determined.
Daylight-savings offset in hours at resolution time.
Open rate averaged across campaigns sent to this member.
Engagement and e-commerce summary for a single subscriber.
Click rate averaged across campaigns sent to this member.
Attributed e-commerce aggregates from Ecomm360.
Attributed e-commerce activity for the subscriber. Populated from Mailchimp's Ecomm360 store integrations.
ISO 4217 currency code of the attributed totals.
A Mailchimp audience (a.k.a. list) that contacts can subscribe to. Returned by `GET /lists/{list_id}`.
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.
Aggregate counters and rate metrics for a list. All fields are server-populated.
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.
Default fields applied to new campaigns drafted against this list.
Default language code (e.g. `en`, `es`).
Company or organization name printed in the footer.
Mailing address Mailchimp prints in the campaign footer to satisfy CAN-SPAM. Every list must carry a complete physical address.
Street address line 2 (suite, unit, etc.).
Discriminator selecting the condition variant.
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
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).
Tracking-feature toggles shared by Campaign and Automation. Controls which engagement signals Mailchimp records for the send.
Track conversions on the operator's website via Mailchimp goals.
Track e-commerce events via Mailchimp Ecomm360.
Google Analytics campaign tag (max 50 bytes).
Capsule CRM integration toggles nested under `CampaignTracking`. Deprecated by Mailchimp but still surface on responses.
Push a Salesforce campaign record on send.
Salesforce CRM integration toggles nested under `CampaignTracking`. Both fields are deprecated by Mailchimp but still surface on responses.
Push send activity into Salesforce notes.
High-level performance summary shared by Campaign and Automation resources. Campaign omits no fields; Automation omits `ecommerce`.
Attributed e-commerce aggregates. Absent on Automation summaries.
Aggregate e-commerce numbers nested under `ReportSummary.ecommerce`. Mailchimp returns counts as int32 and currency values as float64.
Total amount spent across attributed orders.
Whether delivery tracking is enabled for this campaign.
Send-progress snapshot attached to campaign and campaign-report resources. All fields are server-populated (read-only).
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.
URI reference to the error-type documentation.
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).
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`.
Dotted path of the offending request field.
Per-field validation error returned inside `MailchimpError.errors` on `400 Bad Request` responses.
Human-readable description of why validation failed.
Link relation type (e.g. `self`, `parent`, `create`, `update`, `delete`).
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.
JSON Schema describing the response payload for this link.
JSON Schema describing the request payload for this link (write methods only).