Full access to Brevo (email marketing, newsletters) using curl and the Brevo REST API directly - no MCP server or additional dependencies required.
Inherits all available tools
Additional assets for this skill
This skill inherits all available tools. When active, it can use any tool Claude has access to.
_auth.shcampaigns/create.shcampaigns/delete.shcampaigns/get.shcampaigns/list.shcampaigns/update.shcheck-auth.shconfig.json.examplecontacts/create.shcontacts/delete.shcontacts/get.shcontacts/list.shcontacts/update.shlists/create.shlists/delete.shlists/get.shlists/list.shlists/update.shtemplates/get.shtemplates/list.shAccess Brevo to manage contacts, contact lists, email campaigns, and templates. Add subscribers to newsletters, draft email campaigns, and view email templates.
Before making API calls, verify the user is authenticated:
bash $SKILL_PATH/check-auth.sh
Returns USER_AUTHENTICATED or USER_NOT_AUTHENTICATED.
All scripts are located at $SKILL_PATH/. Replace $SKILL_PATH with the actual skill directory path.
# List all contact lists (to find list IDs and names)
bash $SKILL_PATH/lists/list.sh [limit] [offset]
# Get details of a specific list
bash $SKILL_PATH/lists/get.sh <list_id>
# Create a new list
bash $SKILL_PATH/lists/create.sh '<json_data>'
# Update a list
bash $SKILL_PATH/lists/update.sh <list_id> '<json_data>'
# Delete a list (contacts are not deleted)
bash $SKILL_PATH/lists/delete.sh <list_id>
Example - Create a new list:
bash $SKILL_PATH/lists/create.sh '{"name":"VIP Customers","folderId":1}'
# List all contacts
bash $SKILL_PATH/contacts/list.sh [limit] [offset]
# Get contact by email or ID
bash $SKILL_PATH/contacts/get.sh <identifier>
# Create contact (optionally add to lists)
bash $SKILL_PATH/contacts/create.sh '<json_data>'
# Update contact
bash $SKILL_PATH/contacts/update.sh <identifier> '<json_data>'
# Delete contact
bash $SKILL_PATH/contacts/delete.sh <identifier>
Example - Add contact to newsletter:
bash $SKILL_PATH/contacts/create.sh '{"email":"john@example.com","attributes":{"FIRSTNAME":"John","LASTNAME":"Doe"},"listIds":[4],"updateEnabled":true}'
Contact JSON fields:
email (required): Email addressattributes: Object with contact attributes (FIRSTNAME, LASTNAME, etc.)listIds: Array of list IDs to add the contact toupdateEnabled: If true, updates existing contact with same email (default: false)Example - Update contact attributes:
bash $SKILL_PATH/contacts/update.sh john@example.com '{"attributes":{"LASTNAME":"Smith"}}'
# List all campaigns
bash $SKILL_PATH/campaigns/list.sh [type] [status] [limit] [offset]
# type: classic, trigger (default: all)
# status: draft, sent, queued, suspended, in_process, archive (default: all)
# Get campaign details
bash $SKILL_PATH/campaigns/get.sh <campaign_id>
# Create campaign draft
bash $SKILL_PATH/campaigns/create.sh '<json_data>'
# Update campaign draft (to iterate on content)
bash $SKILL_PATH/campaigns/update.sh <campaign_id> '<json_data>'
# Delete campaign
bash $SKILL_PATH/campaigns/delete.sh <campaign_id>
Example - Create newsletter draft:
bash $SKILL_PATH/campaigns/create.sh '{
"name": "Weekly Newsletter",
"subject": "This Week'\''s Updates",
"sender": {"name": "Company Name", "email": "newsletter@example.com"},
"htmlContent": "<html><body><h1>Hello!</h1><p>Newsletter content here...</p></body></html>",
"recipients": {"listIds": [4]}
}'
Campaign JSON fields:
name (required): Campaign name (internal identifier)subject (required): Email subject linesender (required): Object with name and emailhtmlContent (required): HTML body of the emailrecipients (required): Object with listIds arrayThe campaign is created as a draft and can be edited in the Brevo UI before sending.
Example - Update campaign content:
bash $SKILL_PATH/campaigns/update.sh 123 '{"subject":"Updated Subject Line","htmlContent":"<html><body><h1>Revised Content</h1><p>New newsletter content...</p></body></html>"}'
# List all templates
bash $SKILL_PATH/templates/list.sh [limit] [offset]
# Get template details
bash $SKILL_PATH/templates/get.sh <template_id>
Get your API key from Brevo:
Create the config file:
mkdir -p ~/.config/brevo
cat > ~/.config/brevo/config.json << 'EOF'
{
"api_key": "your-api-key-here"
}
EOF
chmod 600 ~/.config/brevo/config.json
Verify authentication:
bash $SKILL_PATH/check-auth.sh
# 1. Find the newsletter list ID
bash $SKILL_PATH/lists/list.sh
# Look for the list named "Newsletter" and note its ID (e.g., 4)
# 2. Create contact and add to list
bash $SKILL_PATH/contacts/create.sh '{"email":"john@example.com","attributes":{"FIRSTNAME":"John","LASTNAME":"Doe"},"listIds":[4],"updateEnabled":true}'
# 1. Check available templates (optional)
bash $SKILL_PATH/templates/list.sh
# 2. Find the target list
bash $SKILL_PATH/lists/list.sh
# 3. Create the campaign draft
bash $SKILL_PATH/campaigns/create.sh '{
"name": "Product Launch Newsletter",
"subject": "Introducing Our New Product",
"sender": {"name": "Company", "email": "newsletter@example.com"},
"htmlContent": "<html><body><h1>New Product Launch</h1><p>We are excited to announce...</p></body></html>",
"recipients": {"listIds": [4]}
}'
# 4. Go to Brevo UI to review and send the campaign
bash $SKILL_PATH/contacts/get.sh john@example.com
Authentication fails:
~/.config/brevo/config.jsonContact creation fails:
lists/list.sh to verify)Campaign creation fails: