← Back to CLIs
Nardjo

brevo-cli

Manage Brevo (ex-Sendinblue) via CLI - account, contacts, lists, folders, senders, email, templates, campaigns, sms, webhooks. Use when user mentions 'brevo', 'sendinblue', 'send transactional email', 'send SMS', 'email campaign', 'contact list', 'email template', 'newsletter', 'marketing contacts', or wants to interact with the Brevo API.

Install

$ npx api2cli install Nardjo/brevo-cli

Details

Skill type: Wrapper CLI
Auth type: api-key
Version: 0.1.0
Author: Nardjo
Views: 0

README

brevo-cli

CLI for the Brevo (ex-Sendinblue) API v3: contacts, lists, folders, senders, transactional email & SMS, templates, campaigns and webhooks. Made with api2cli.dev.

Install

npx api2cli install Nardjo/brevo-cli

This clones the repo, builds the CLI, links it to your PATH, and installs the AgentSkill to your coding agents.

Install AgentSkill only

npx skills add Nardjo/brevo-cli

Authentication

Get an API v3 key from Brevo: Settings > SMTP & API > API Keys (it starts with xkeysib-).

brevo-cli auth set "xkeysib-..."
brevo-cli auth test

The key is sent in the api-key header and stored in ~/.config/tokens/brevo-cli.txt (chmod 600).

Usage

brevo-cli --help                     # List all resources and global flags
brevo-cli <resource> --help          # List all actions for a resource
brevo-cli <resource> <action> --help # Show flags for a specific action

Always pass --json when calling commands programmatically.

Resources

account

CommandDescription
brevo-cli account get --jsonGet account details: plan, credits, company info

contacts

CommandDescription
brevo-cli contacts list --limit 50 --jsonList contacts (--offset, --sort asc|desc, --modified-since)
brevo-cli contacts get <email-or-id> --jsonGet a contact by email or numeric ID
brevo-cli contacts create --email a@b.com --list-ids 3,5 --attributes '{"FIRSTNAME":"Ada"}' --jsonCreate / upsert a contact
brevo-cli contacts update <email-or-id> --attributes '{"FIRSTNAME":"John"}' --jsonUpdate a contact
brevo-cli contacts delete <email-or-id> --jsonDelete a contact

lists

CommandDescription
brevo-cli lists list --jsonList all contact lists
brevo-cli lists get <listId> --jsonGet a list by ID
brevo-cli lists create --name "Newsletter" --folder-id 1 --jsonCreate a list in a folder
brevo-cli lists update <listId> --name "VIP" --jsonRename or move a list
brevo-cli lists delete <listId> --jsonDelete a list
brevo-cli lists contacts <listId> --jsonList contacts inside a list
brevo-cli lists add <listId> --emails a@b.com,c@d.com --jsonAdd contacts to a list
brevo-cli lists remove <listId> --emails a@b.com --jsonRemove contacts (or --all)

folders

CommandDescription
brevo-cli folders list --jsonList all contact folders
brevo-cli folders get <folderId> --jsonGet a folder by ID
brevo-cli folders create --name "Campaigns 2026" --jsonCreate a folder
brevo-cli folders update <folderId> --name "Archive" --jsonRename a folder
brevo-cli folders delete <folderId> --jsonDelete a folder

senders

CommandDescription
brevo-cli senders list --jsonList all senders
brevo-cli senders create --name "Support" --email support@acme.com --jsonCreate a sender
brevo-cli senders update <senderId> --name "Sales" --jsonUpdate a sender
brevo-cli senders delete <senderId> --jsonDelete a sender

email

CommandDescription
brevo-cli email send --to a@b.com --sender-email me@acme.com --subject "Hi" --html "<h1>Hello</h1>" --jsonSend a transactional email
brevo-cli email send --to a@b.com --template-id 12 --params '{"name":"Ada"}' --jsonSend using a template + params
brevo-cli email events --days 7 --event bounces --jsonList transactional email events

templates

CommandDescription
brevo-cli templates list --status true --jsonList (active) email templates
brevo-cli templates get <templateId> --jsonGet a template by ID
brevo-cli templates create --name Welcome --subject "Hi" --sender-email me@acme.com --html "<h1>Hi</h1>" --active --jsonCreate a template
brevo-cli templates update <templateId> --subject "New" --jsonUpdate a template
brevo-cli templates delete <templateId> --jsonDelete a template
brevo-cli templates send-test <templateId> --to me@acme.com --jsonSend a test of a template

campaigns

CommandDescription
brevo-cli campaigns list --status draft --jsonList email campaigns
brevo-cli campaigns get <campaignId> --jsonGet a campaign by ID
brevo-cli campaigns create --name "July" --subject "Hello" --sender-email me@acme.com --html "<h1>Hi</h1>" --list-ids 3,5 --jsonCreate a campaign
brevo-cli campaigns update <campaignId> --subject "New" --jsonUpdate a campaign
brevo-cli campaigns delete <campaignId> --jsonDelete a campaign
brevo-cli campaigns send <campaignId> --jsonSend a campaign immediately

sms

CommandDescription
brevo-cli sms send --sender Acme --recipient +33612345678 --content "Code: 1234" --jsonSend a transactional SMS
brevo-cli sms events --days 7 --event delivered --jsonList transactional SMS events

webhooks

CommandDescription
brevo-cli webhooks list --type transactional --jsonList webhooks
brevo-cli webhooks get <webhookId> --jsonGet a webhook by ID
brevo-cli webhooks create --url https://acme.com/hook --events delivered,opened --jsonCreate a webhook
brevo-cli webhooks update <webhookId> --events delivered,opened,click --jsonUpdate a webhook
brevo-cli webhooks delete <webhookId> --jsonDelete a webhook

Output Format

--json returns a standardized envelope:

{ "ok": true, "data": { }, "meta": { "total": 42 } }

On error: { "ok": false, "error": { "code": 401, "message": "...", "suggestion": "..." } }

Global Flags

All commands support: --json, --format <text|json|csv|yaml>, --verbose, --no-color, --no-header

Exit codes: 0 = success, 1 = API error, 2 = usage error

Sponsors