Skip to main content

Mailchimp

This connector captures data from Mailchimp into Estuary collections. It authenticates with OAuth2 or a Mailchimp API key and reads data through the Mailchimp Marketing API.

Supported data resources

The following data resources are supported:

ResourceReplication Mode
automation_emailsFull Refresh
automationsFull Refresh
campaignsIncremental
email_activityIncremental
interest_categoriesFull Refresh
interestsFull Refresh
list_membersIncremental
listsFull Refresh
segment_membersFull Refresh
segmentsIncremental
tagsFull Refresh

By default, each resource is mapped to an Estuary collection through a separate binding.

tip

The campaigns stream re-captures existing campaigns with periodic backfills, since Mailchimp's /campaigns endpoint only supports filtering by creation time while campaign records keep changing after creation (status transitions, report statistics). These backfills can be scheduled with the schedule resource config setting. By default, campaigns's schedule is 0 0 * * *, which means the stream attempts to backfill every day at midnight UTC. Campaign deletions are not captured.

Prerequisites

To set up the Mailchimp source connector, you'll need a Mailchimp API key, including its data center suffix (for example, a key ending in -us21). The connector uses the suffix to resolve your account's data-center-specific API endpoint automatically.

Alternatively, you can authenticate by signing in to Mailchimp with OAuth2 in the Estuary web app; the connector then resolves your API endpoint from Mailchimp's OAuth metadata endpoint.

Configuration

You configure connectors either in the Estuary web app, or by directly editing the catalog specification file. See connectors to learn more about using connectors. The values and specification sample below provide configuration details specific to the Mailchimp source connector.

Properties

Endpoint

The properties below reflect the manual, API key authentication method.

PropertyTitleDescriptionTypeRequired/Default
/credentials/api_keyAPI KeyYour Mailchimp API key, including the data center suffix (e.g. ends in -us21).stringRequired
/credentials/credentials_titleAuthentication MethodName of the credentials set. Set to API Key.stringRequired
/start_dateStart DateUTC date and time in the format YYYY-MM-DDTHH:MM:SSZ. Any data generated before this date will not be replicated. If left blank, the start date will be set to 30 days before the present date.string

Bindings

PropertyTitleDescriptionTypeRequired/Default
/nameData resourceName of the data resource.stringRequired
/intervalIntervalInterval between data syncs.string
/scheduleBackfill scheduleThe schedule for automatically backfilling this binding. Accepts a cron expression. For example, a schedule of 55 23 * * * means the binding will initiate a new backfill at 23:55 UTC every day. If left empty, the binding will not automatically backfill.string

Sample

captures:
${PREFIX}/${CAPTURE_NAME}:
endpoint:
connector:
image: ghcr.io/estuary/source-mailchimp-native:v1
config:
credentials:
credentials_title: API Key
api_key: <secret>
start_date: 2025-01-01T00:00:00Z
bindings:
- resource:
name: lists
target: ${PREFIX}/lists
- resource:
name: list_members
target: ${PREFIX}/list_members
- resource:
name: campaigns
schedule: 0 0 * * *
target: ${PREFIX}/campaigns
{...}