or run

npx @tessl/cli init
Log in

Version

Tile

Overview

Evals

Files

docs

configuration.mdcore-connector.mdcustom-processing.mddata-streams.mdindex.md
tile.json

tessl/pypi-airbyte-source-mailchimp

Airbyte source connector that enables data extraction from Mailchimp's API for email marketing analytics and audience management

Workspace
tessl
Visibility
Public
Created
Last updated
Describes
pypipkg:pypi/airbyte-source-mailchimp@2.0.x

To install, run

npx @tessl/cli install tessl/pypi-airbyte-source-mailchimp@2.0.0

index.mddocs/

Airbyte Source Mailchimp

Airbyte source connector that enables data extraction from Mailchimp's API for email marketing analytics and audience management. This declarative low-code connector provides access to campaigns, lists, segments, email activity, and detailed reports from Mailchimp's marketing platform.

Package Information

  • Package Name: airbyte-source-mailchimp
  • Language: Python
  • Installation: pip install airbyte-source-mailchimp
  • CLI Command: source-mailchimp

Core Imports

from source_mailchimp import SourceMailchimp

Entry point function:

from source_mailchimp.run import run

Configuration migration utilities:

from source_mailchimp.config_migrations import MigrateDataCenter

Basic Usage

Command Line Interface

# Get connector specification
source-mailchimp spec

# Test connection with config
source-mailchimp check --config config.json

# Discover available streams
source-mailchimp discover --config config.json

# Extract data
source-mailchimp read --config config.json --catalog catalog.json

Programmatic Usage

from source_mailchimp import SourceMailchimp
from source_mailchimp.run import run

# Create connector instance
source = SourceMailchimp()

# Run connector (typically used by Airbyte framework)
run()

Configuration Examples

API Key authentication:

{
  "credentials": {
    "auth_type": "apikey",
    "apikey": "your-api-key-us10"
  },
  "start_date": "2023-01-01T00:00:00.000Z"
}

OAuth authentication:

{
  "credentials": {
    "auth_type": "oauth2.0",
    "client_id": "your-client-id",
    "client_secret": "your-client-secret", 
    "access_token": "your-access-token"
  },
  "start_date": "2023-01-01T00:00:00.000Z"
}

Architecture

The connector is built using Airbyte's declarative framework with these key components:

  • SourceMailchimp: Main connector class extending YamlDeclarativeSource
  • Manifest Configuration: YAML-based stream definitions with authentication, pagination, and incremental sync
  • Configuration Migration: Automatic data center detection and config updates
  • Custom Extractors: Specialized data processing for complex API responses

The connector uses Mailchimp's REST API v3.0 with automatic data center routing, rate limiting, and comprehensive error handling.

Capabilities

Core Connector Functions

Main connector functionality for initializing and running the Mailchimp source connector within the Airbyte framework.

class SourceMailchimp(YamlDeclarativeSource):
    def __init__(self): ...

def run(): ...

Core Connector

Configuration Management

Runtime configuration migration and data center detection for both API key and OAuth authentication methods.

class MigrateDataCenter:
    @classmethod
    def get_data_center_location(cls, config: Mapping[str, Any]) -> Mapping[str, Any]: ...
    
    @staticmethod  
    def get_oauth_data_center(access_token: str) -> str: ...
    
    @classmethod
    def migrate(cls, args: List[str], source: Source) -> None: ...

Configuration Management

Data Streams

Access to 12 Mailchimp data streams including campaigns, lists, segments, email activity, and detailed analytics reports.

Available Streams:

  • automations, campaigns, email_activity, lists, list_members
  • tags, interest_categories, interests, reports, segments
  • segment_members, unsubscribes

Data Streams

Custom Data Processing

Specialized record extraction and transformation for complex Mailchimp API responses, particularly email activity data.

class MailChimpRecordExtractorEmailActivity(DpathExtractor):
    def extract_records(self, response: requests.Response) -> Iterable[Mapping[str, Any]]: ...

Custom Processing