Command-line interface for the Mailchimp Marketing API. Manage audiences, subscribers, campaigns, templates, reports, and automations from your terminal.
npm install -g @funnelenvy/mailchimp-cli# Set up authentication
mailchimp auth login
# List your audiences
mailchimp lists list --output table
# List subscribers in an audience
mailchimp members list --list-id abc123 --output table
# Add a subscriber
mailchimp members add --list-id abc123 --email user@example.com --status subscribed
# List campaigns
mailchimp campaigns list --output table
# Get a campaign report
mailchimp reports get --campaign-id camp123Mailchimp uses API keys that include the datacenter suffix (e.g., abc123def-us21). The CLI automatically extracts the datacenter from your key.
# Interactive setup — saves key to config file
mailchimp auth login
# Or use environment variable
export MAILCHIMP_API_KEY=your-api-key-us21
# Or pass directly to any command
mailchimp lists list --api-key your-api-key-us21--api-keyflagMAILCHIMP_API_KEYenvironment variable- Config file at
~/.config/mailchimp-cli/config.json - Interactive
mailchimp auth login
mailchimp auth statusmailchimp auth login # Save API key interactively
mailchimp auth status # Show auth status and account info
mailchimp auth logout # Remove saved credentialsmailchimp lists list # List all audiences
mailchimp lists list --count 20 --offset 10 # Pagination
mailchimp lists get --list-id abc123 # Get list detailsmailchimp members list --list-id abc123 # List members
mailchimp members list --list-id abc123 --status subscribed # Filter by status
mailchimp members get --list-id abc123 --email user@example.com # Get member
mailchimp members add --list-id abc123 --email new@example.com --status subscribed # Add member
mailchimp members add --list-id abc123 --email new@example.com --first-name Jane # With name
mailchimp members update --list-id abc123 --email user@example.com --status unsubscribed # Update
mailchimp members delete --list-id abc123 --email user@example.com # Deletemailchimp campaigns list # List campaigns
mailchimp campaigns list --status sent # Filter by status
mailchimp campaigns get --campaign-id camp123 # Get details
mailchimp campaigns create --list-id abc123 --subject "Hello" --from-name "ACME" --reply-to hello@acme.com
mailchimp campaigns send --campaign-id camp123 --confirm # Send (requires --confirm)
mailchimp campaigns send --campaign-id camp123 --dry-run # Preview without sending
mailchimp campaigns delete --campaign-id camp123 # Deletemailchimp templates list # List templates
mailchimp templates list --type user # Filter by type
mailchimp templates get --template-id 101 # Get detailsmailchimp reports list # List all reports
mailchimp reports get --campaign-id camp123 # Get campaign reportmailchimp automations list # List automations
mailchimp automations get --automation-id auto123 # Get detailsAll commands support --output / -o with these formats:
json(default) — machine-readable, pipe-friendlytable— human-readable aligned columnscsv— for spreadsheets and data pipelines
# Pipe JSON to jq
mailchimp lists list -o json | jq '.[].name'
# Human-readable table
mailchimp campaigns list -o table
# Export to CSV
mailchimp members list --list-id abc123 -o csv > members.csvConfig file location: ~/.config/mailchimp-cli/config.json
{
"auth": {
"api_key": "your-api-key-us21",
"datacenter": "us21"
},
"defaults": {
"output": "table"
}
}git clone https://github.com/FunnelEnvy/mailchimp-cli.git
cd mailchimp-cli
pnpm install
pnpm run build
pnpm run testThis tool is part of Marketing CLIs — open source CLIs for marketing tools that don't have them.
MIT