Can an AI agent use Brevo?

As of 3 Oct 2026, an AI agent gets into Brevo on its own and does 38% of the core work.

Level 2 · Gets inAn agent gets in on its own but does less than half the core work.
  • Find: Docs for agents: llms.txt, an OpenAPI and an MCP server.
  • Access: Sign-up in a browser.
  • Use: 38% of the work.
  • Pay: Payment not reached.
  • Leave: Nothing to cancel: Can't delete its account.

To reach L3 · Does the work: do half of the core work (now 38%).

With an account set up by a person: not measured yet.

What the levels mean

Driven 3 Oct 2026Same level in 2 drives in a rowRules of 15 Oct 2026Claim this page

Written and checked by our agents from this drive's record. How we write.

Who gets in

  • Agents on a serverGet in on their own.
  • Signed agentsThe sign-up page opens.
  • Agents in a person's browserNot measured yet.

Sign-up page checked 12 Oct 2026. Signed agents: the ones Cloudflare verifies. Where agents come from

What an agent can do in Brevo.

On its own

  • Create, update and delete contacts and contact lists
  • Import and export contacts in bulk
  • Create and manage CRM deals, companies, tasks, notes and files
3 more
  • Create email templates and webhooks
  • Set up an online store and sync products and orders
  • Read campaign and email statistics

What it can't, and why

  • Send a marketing or transactional emailNew accounts need manual activation by Brevo staff first
  • Create an API key or use the visual email editorBoth sit behind a dashboard step asking for a company address
  • Upgrade to a paid planOnly a card checkout in the dashboard, which the agent couldn't open
1 more
  • Delete the accountOnly possible from the dashboard, which the agent couldn't open
On its own, in a browser

Can an AI agent sign up for Brevo on its own?

Yes, in a browser, without a human. Web form only (email + password) at onboarding.brevo.com; invisible reCAPTCHA let our agent's browser through. No sign-up API.

Official server · 14 of 34 calls worked

Does Brevo have an MCP server, and can an agent connect to it?

Yes. Brevo has an official MCP server.

A new agent can get in on its own: in the drive of 3 Oct 2026, our agent signed up, verified and got its key without a person. Through the MCP server, 14 of our agent's 34 attempts worked.

What the drive found

APIOpenAPIMCP · officialCLISDKllms.txtWebhooksSandbox
On its own, in a browser

How does an AI agent get a Brevo API key?

In the drive of 3 Oct 2026, our agent got its Brevo API key in a browser, without a person. API keys and MCP tokens are made in the web app, which stays behind an onboarding step asking for an organization postal address we cannot truthfully give. The MCP server's OAuth (RFC 9728 metadata, DCR, PKCE) worked with one browser consent; refresh tokens then keep access headless. The CLI's browser login gives a REST Bearer token the same way.

Blocked

Can an AI agent delete its Brevo account?

Not on its own: blocked. No delete-account API, MCP tool or CLI command. Help center: Settings > General > 'Definitively close your account' in the web app, which redirects to the onboarding address step for this account. Inactive free accounts are deleted after 4 months.

Not tested in this drive: paying. Every checkpoint, in detail

For the team behind Brevo.

Where agents stop in Brevo today, and the fixes that get them further, highest impact first.

Wall at delete

The fixes, highest impact first

  1. Let agents request sending activation via API
  2. Let agents set the organization address via API
  3. Add device-code login to CLI and MCPStep-by-step guide
8 more fixes
  1. Add an account deletion endpoint
  2. Fix deal stage moves on new accounts
  3. Make failed calls fail, and successes stick
  4. Mark MCP tool errors with isError true
  5. Support MCP (the 28 Jul 2026 spec) and document its OAuth Step-by-step guide
  6. Document onboarding gates and error codes
  7. Fix broken links and the OpenAPI index Step-by-step guide
  8. Offer a billing API or agent payment rail Step-by-step guide
  • Claim it free and reply next to the result.
  • A Drive, $49: your private report, with where agents stop, the evidence and the fixes that move your level.
  • Fixed something? Order a Drive ($49) any time, or the Monthly drive ($29/month).
See the example report
Details

Your API, MCP server or CLI is the product? An Audit ($299) also checks every documented route, MCP tool and CLI command against your docs. Compare plans.

Already claimed it? Open it in your dashboard.

Rather not be driven? Block AgentDrivesAgent in robots.txt or write to us. We stop driving it ourselves; this page stays, with its date.

Embed the badge on your site

Driven · L2 · Gets in badge

Behind the level.

The part scores and the measures behind them.

Part scores and the measures · level history · paid plans

Part scores

  • Holds up: 78 of 100, fair
  • Docs match: 89 of 100, fairMCP spec of 25 Nov 2025 (1 version behind) · MCP discovery (behind) · MCP client registration (behind) · OpenAPI 3.1.0 (1 version behind)

Agent-ready setup

  • llms.txt: found
  • OpenAPI: found
  • MCP server: found
  • CLI: found

Security: reported privately to the owner

The measures

  1. Work done38
  2. Reliability83
  3. Crash test74
  4. Surface tested41
  5. Docs accuracy96
  6. Docs completeness74

Level history

  1. 1 Oct 20262 drivesL3Does the work
  2. 2 Oct 2026new driveL2Gets in
  3. 3 Oct 2026L2Gets in

Needs a paid plan

Not counted in the level. Our drive used free plan.

Needs a paid plan
CapabilityPlan
Send an SMS campaignpaid SMS credits
Send a WhatsApp campaignpaid
Build a multi-step automation workflowStandard
Live chatpaid
Landing pagesStandard
A/B testingStandard
AI send time optimizationStandard
Contact scoringProfessional
Push notificationspaid
Loyaltypaid
Chatbotpaid
VoIP phonepaid
RSS feedsEnterprise
Teammatespaid
Dedicated IPpaid add-on
Remove brandingStarter
Sub-accountsEnterprise
How Brevo handles an agent's mistakes · 15 probes · core run 3×

Malformed requests, a retry, a wrong key and a short burst of reads on our agent's own account, and how Brevo answered.

  1. Clear errors75
  2. Recovery46
  3. Safe retries100

Most errors are JSON with a code and a message that says what to fix, and duplicate creates are rejected. But send-now answered 400 and sent anyway, a single order returned 204 and was not stored, some reads return 500, and MCP marks API errors isError false.

Surface audit: 620 documented operations, 513 run, 218 passed, 10 not as documented, 25 blocked (sandbox or plan limits), 85 left out to stay safe.

  • Silenterror response vs real state on send nowSend an email campaign400 'Due to DMARC policy, you cannot use this sender' but GET shows status sent, sent 1, softBounces 1
  • Silentsend_test_email to own inboxSend an email campaign'Success : 204 No Content' but no mail arrived in 100 s
  • Vaguevalid-looking custom event createTrack custom website events and behavior400 invalid_parameter 'undefined source'
  • VagueMCP error signallingUpdate or delete an existing contactresult.isError false, text 'Brevo API error (404): {code: document_not_found, message: Contact does not exist}'
  • Clearcreate deal with pipeline+deal_stage as the tool description saysCreate and move a deal through pipeline stagesisError:false text 'Brevo API error (400): Not valid data. : Invalid attribute: pipeline passed'
  • Clearsandbox mode header X-Sib-Sandbox: drop on transactional sendSend a transactional email via API403 'Unable to send email. Your SMTP account is not yet activated…'
  • Clearinteger id where tool schema wants a stringCreate and reuse an email template'1 validation error for call[get_smtp_template] templateId Input should be a valid string [type=string_type, input_value=2]'
  • Clearburst of 15 quick GET /contacts?limit=1Add a contactall 200; x-sib-ratelimit-limit 20, x-sib-ratelimit-remaining oscillating 19..16, x-sib-ratelimit-reset present; no RateLimit/RateLimit-Policy headers, no 429
  • Clearbad credential (wrong Bearer token, wrong api-key)Add a contact401 application/json {code:unauthorized, message:'token is invalid or expired'} / {message:'Key not found'}
  • Clearcreate contact without any identifierAdd a contact400 {code:missing_parameter, message:'Please provide at least one contact identifier value(email, ext_id, …) to create user'} (application/json, not problem+json)
  • Clearrepeat a create (same email)Add a contact400 {code:duplicate_parameter, message:'Unable to create contact, email is already associated with another Contact', metadata:{duplicate_identifiers:[email]}}
  • Clearwell-formed id that does not existUpdate or delete an existing contact404 {code:document_not_found, message:'Contact does not exist'}
  • Clearbad enum valueSend an email campaign400 {code:invalid_parameter, message:'Type is invalid'} (does not list valid values)
  • ClearMCP bad credentialAdd a contact401 {error:invalid_token, error_description:'Invalid or expired OAuth session'}
  • Clearpartial failure on a multi-step deal flowCreate and move a deal through pipeline stagesfirst create rejected cleanly (400, nothing created: deals list showed only the name-only deal); state consistent

For agents and builders.

The drive as data, every checkpoint and all 64 attempts.

How an agent connects · 7 tips
  • Use the MCP server's OAuth: GET the 401's resource_metadata, register with DCR at mcp.brevo.com/oauth/register, authorize once with PKCE, then refresh headless; it works before the web app's profile step is done.
  • MCP errors come back with isError false: read the text for 'Brevo API error (NNN)'.
  • Several MCP tools want string ids (templateId) or lists (contact_id); a pydantic error tells you which.
  • eCommerce needs POST /ecommerce/activate and about 5 minutes; use /orders/status/batch, single orders were not stored.
  • On a brand-new account deal stage changes failed with 400 'Invalid attribute' for about 30 minutes, then worked; if GET /crm/attributes/deals returns 500, wait and retry.
  • A template must be set inactive (PUT isActive:false) before DELETE.
  • The Python SDK accepts an OAuth token if api_key='' and an Authorization: Bearer header.
Every checkpoint, in detail · 9 checkpoints
  1. DocsHeadlessdevelopers.brevo.com/llms.txt, every page as .md, 13 OpenAPI 3.1.0 specs (286 operations), a docs MCP server (the older 25 Nov 2025 spec).
  2. Sign upIn a browserWeb form only (email + password) at onboarding.brevo.com; invisible reCAPTCHA let our agent's browser through. No sign-up API.
  3. VerifyHeadlessConfirmation link arrived in ~1 min; a plain GET of the link activated it. Login from a new device then needs a 6-digit code from email (also readable headless).
  4. KeyIn a browserAPI keys and MCP tokens are made in the web app, which stays behind an onboarding step asking for an organization postal address we cannot truthfully give. The MCP server's OAuth (RFC 9728 metadata, DCR, PKCE) worked with one browser consent; refresh tokens then keep access headless. The CLI's browser login gives a REST Bearer token the same way.
  5. First callHeadlessMCP tools/call accounts_get_account (282 tools); REST GET /v3/account with the OAuth Bearer token.
  6. First actionHeadlessCreated a contact via MCP and read it back.
  7. PayNot reachedNo 402, x402, MPP, UCP or billing API; not in the x402 Bazaar or mpp.dev. The pricing FAQ says payment is by card through Adyen or PayPal, in the web app, which this account cannot open before the address step. Not reached: not reached (a human-pays-by-card rail is inferred from the FAQ, not observed).
  8. CancelNot neededNothing to cancel: our agent used the free plan.
  9. DeleteBlockedNo delete-account API, MCP tool or CLI command. Help center: Settings > General > 'Definitively close your account' in the web app, which redirects to the onboarding address step for this account. Inactive free accounts are deleted after 4 months.
The attempt log · 64 attempts
Attempt log
CapabilityRouteResultEvidence
MCP discover (product server): server/discover on https://mcp.brevo.com/v1/brevo/mcpmcppartial ✓401 invalid_token with WWW-Authenticate resource_metadata=https://mcp.brevo.com/.well-known/oauth-protected-resource/v1/brevo/mcp; PRM 200 {authorization_servers:[https://mcp.brevo.com/oauth],scopes_supported:[all]}; AS metadata: registration_endpoint (DCR), no client_id_metadata_document_supported, PKCE S256, grants authorization_code+refresh_token, no device flow
MCP discover (docs server): server/discover on https://developers.brevo.com/_mcp/servermcpdone ✓server/discover -> HTTP 400 code -32000 'Unsupported protocol version: 2026-07-28 (supported versions: 2025-11-25, 2025-06-18, 2025-03-26, 2024-11-05, 2024-10-07)'; initialize offering 2026-07-28 -> protocolVersion 2025-11-25, serverInfo fern-docs-mcp-server 1.0.0
cards and well-knowns: AI catalog, A2A card, MCP server card, ucp, auth.md, SKILL.mdapidone ✓www.brevo.com/.well-known/{ai-catalog.json,agent-card.json,agent.json,ucp,mcp/server-card.json} -> 500 text/html (Next.js error page); mcp.brevo.com/v1/brevo/mcp/server-card 404; developers.brevo.com/.well-known/ai-catalog.json 404; auth.md/SKILL.md 404 (developers.brevo.com/SKILL.md returns 200 text/plain 'Page Not Found' soft-404); api.brevo.com/.well-known/oauth-protected-resource 404
robots/aipref: robots.txt Content-Usage / Content-signalapidone ✓www.brevo.com/robots.txt: User-agent * with Disallow /*-p2/, /api/ etc; no Content-Usage or Content-signal lines; no Content-Usage response header. developers.brevo.com/robots.txt: Allow /, Disallow /api/fern-docs/
markdown docs: Accept: text/markdown and .md URLapidone ✓GET developers.brevo.com/docs/quickstart with Accept: text/markdown -> 303 Location .../quickstart.md; .md URL -> 200 content-type text/markdown; llms.txt at developers.brevo.com/llms.txt (H1 'Brevo API Documentation'); www.brevo.com/llms.txt 404; llms-full.txt empty-ish (15 bytes)
OpenAPI: fetch OpenAPIapidone ✓developers.brevo.com/openapi.json is an HTML index page (not JSON) listing 13 per-area specs openapi/*.json, each openapi: 3.1.0, server https://api.brevo.com/v3, 286 operations total, securityScheme api-key
sign up: find a headless/documented sign-up routenonefailedNo account-creation endpoint in the 13 OpenAPI specs (286 ops) or llms.txt; MCP/OAuth need an existing account; onboarding.brevo.com/account/register is a JS SPA (200 text/html)
sign up: web sign-up form with test email + passwordbrowserdone ✓onboarding.brevo.com/account/register: filled email+password, 'Create your account' -> /account/register/verify 'We sent an email with a confirmation link to the agent's inbox'. reCAPTCHA present on page (invisible, no visible challenge) and let our agent's browser through.
verify email: open the confirmation link from the mailapidone ✓Mail 'Complete your registration' from contact@t.brevo.com arrived in ~1 min.
MCP discover with auth: server/discover then initialize on https://mcp.brevo.com/v1/brevo/mcp with OAuth tokenmcpdone ✓server/discover with Bearer token -> HTTP 400 JSON-RPC -32600 'Unsupported protocol version: 2026-07-28. Supported versions: 2024-11-05, 2025-03-26, 2025-06-18, 2025-11-25'; initialize offering 2026-07-28 -> 200 SSE protocolVersion 2025-11-25, serverInfo MainBrevoMCPServer 2.14.7, capabilities tools/prompts/resources/tasks; tools/list -> 282 tools
get credentials: get an MCP token via the MCP server's OAuth (PRM -> AS metadata -> DCR -> authorize with PKCE -> token)browserdone ✓POST mcp.brevo.com/oauth/register 201 client_id; authorize -> oauth.brevo.com consent page 'Authorize Brevo-MCP' (browser, after login + new-device 6-digit email code); Authorize -> callback code+state (no iss param); POST /oauth/token -> Bearer access_token expires_in 3600 + refresh_token
first call: MCP accounts_get_accountmcpdone ✓tools/call accounts_get_account -> email the agent's inbox, plan free, 300 credits sendLimit, address empty
Add a contact: create contact an inbox with FIRSTNAME/LASTNAME in list 2mcpdone ✓contacts_create_contact -> {id:2}; contacts_get_contact_info -> email the agent's inbox, attributes FIRSTNAME AgentDrives LASTNAME Contact1, listIds [2]
first real action: create a contact via MCPmcpdone ✓contact id 2 created and read back
Update or delete an existing contact: update LASTNAME then delete contact an inboxmcpdone ✓contacts_update_contact -> 204; get shows LASTNAME Updated1, modifiedAt changed; contacts_delete_contact -> 204; get -> 'Brevo API error (404): document_not_found Contact does not exist'
Add a contact: create contact the agent's inboxmcpdone ✓create -> {"id": 3}; get -> {"id": 3, "email": "the agent's inbox", "emailBlacklisted": false, "smsBlacklisted": false, "whatsappBlacklisted
Update or delete an existing contact: update+delete the agent's inboxmcpdone ✓update Success: 204 No Content; get shows Upd2=True; delete Success: 204 No Content; get after -> Brevo API error (404): {"code": "document_not_found", "message": "Contact does n
Add a contact: create contact the agent's inboxmcpdone ✓create -> {"id": 4}; get -> {"id": 4, "email": "the agent's inbox", "emailBlacklisted": false, "smsBlacklisted": false, "whatsappBlacklisted
Update or delete an existing contact: update+delete the agent's inboxmcpdone ✓update Success: 204 No Content; get shows Upd3=True; delete Success: 204 No Content; get after -> Brevo API error (404): {"code": "document_not_found", "message": "Contact does n
Create and move a deal through pipeline stages: create deal in Deals Pipeline then move New -> Qualifyingmcppartial ✓deals_post_crm_deals with attributes {pipeline,deal_stage} -> 400 'Invalid attribute: pipeline passed' (and 'deal_stage passed' without pipeline); name-only create -> id 6ac16b464c7536c4e9db2b1b in stage New (read back via deals_get_crm_deals); deals_patch_crm_deals_by_id {attributes:{pipeline,deal_stage:Qualifying}} -> 400 'Invalid attribute: pipeline passed'; {deal_stage} only -> 400 'Invalid attribute: deal_stage passed'; rename -> 204 works; attributes_get_crm_attributes_deals -> 500 'get all deal attributes: add is required field to attributes: no config details found'
Send a transactional email via API: send transactional email from account sender to our inbox an inboxmcpblockedtransac_templates_send_transac_email -> 'Brevo API error (403): Unable to send email. Your SMTP account is not yet activated. Please contact us at contact@brevo.com to request activation' code permission_denied
Send an email campaign: create campaign to own list (an inbox) and send nowmcpfailedcreate_email_campaign -> id 1 (status draft, read back); send_email_campaign_now -> 'Brevo API error (400): invalid_parameter Unable to create/update campaign. Due to DMARC policy, you cannot use this sender. Please choose another sender.'
Send an email campaign: read back campaign 1 after the failed send_nowmcppartial ✓get_email_campaign 1 -> status 'sent', sentDate 2026-10-03T22:54:21+02:00, campaignStats list 3: sent 1, delivered 0, softBounces 1
Schedule a campaign for later delivery: create a second campaign with scheduledAt +2 days (and schedule campaign 1)mcpblockedcreate_email_campaign with scheduledAt -> 'Brevo API error (402): account_under_validation Your account is under validation. You can not create another campaign.'; update campaign 1 scheduledAt -> 405 'already been processed/sent'
Send an SMS campaign: create SMS campaign draft to own listmcpplan_gatedsms_campaigns_create_sms_campaign -> 400 'To create your first SMS campaign, you need to complete your profile here first - https://app.brevo.com/profile/information'; pricing page: 'SMS credit sold separately'; we hold no SMS credits and no phone number
Send a WhatsApp campaign: read WhatsApp config before creating a campaignmcpplan_gatedwhatsapp_campaigns_get_whats_app_config -> 403 'plan not eligible for using whatsapp'
Build a multi-step automation workflow: look for an automation routenoneplan_gatedno automation/workflow operation in the 13 OpenAPI specs or the 282 MCP tools; pricing page: Standard plan 'Marketing automation: Create an unlimited number of automated, multi-step workflows'
Design an email with drag-and-drop editor: open the campaign editor in the web appbrowserblockedapp.brevo.com/* redirects to onboarding.brevo.com/account/register/complete-profile asking for organization Address, Postal code, City, Country (required); we have no address we can truthfully give
Create a contact list and add/remove members: create list, add an inbox, remove itmcpdone ✓lists_create_list -> id 4; add_contact_to_list success [an inbox]; get_contacts_from_list shows id 6 an inbox; remove -> success; list then count 0
Create and reuse an email template: create template, read back, update, reuse in a campaignmcppartial ✓templates_create_smtp_template -> id 2; templates_get_smtp_template('2') returns it; update name -> 204; reuse: create_email_campaign with templateId 2 -> 402 account_under_validation; preview tool -> 403 'Cookie auth cookie missing'
View campaign performance reports: read the report of campaign 1 and the transactional aggregate reportmcppartial ✓get_email_campaign 1 statistics: campaignStats sent 1, delivered 0, softBounces 1, opens/clicks 0, statsByDevice/Browser present; campaign_analytics_get_aggregated_smtp_report -> all zeros for 2026-07-05|2026-10-03
Bulk import or export contacts: import 2 contacts by CSV body into a new list, then export the listmcpdone ✓import_contacts -> processId 7; processes_get_process 7 status completed; get_contacts_from_list 5 shows an inbox Import1 and an inbox Import2; request_contact_export -> processId 8 completed with export_url; CSV downloaded with the 2 rows
Configure a webhook to receive event notifications: create marketing webhook to our URL, read back, updatemcppartial ✓create_webhook -> id 2220072; get_webhook shows url/events; update -> 204; get_webhooks shows new description and events
Verify a sending domain and manage sender identities: create sender on own address; add domain brevo-drive.agentdrives.com, read DNS config, authenticatemcppartial ✓senders_create_sender(the agent's inbox) -> 400 'Your DMARC policy requires your domain to be authenticated before creating a sender'; domains_create_domain -> id 6ac16c89…, DNS records (2 DKIM CNAME, brevo-code TXT, DMARC); get_domain_configuration verified:false; authenticate_domain -> 400 'cannot be authenticated. Check your domain DNS panel…'
Build a contact segment with filters: find a route to create a segmentmcpfailedonly GET /contacts/segments exists in the OpenAPI specs and segments_get_segments in MCP (returns '{}' on this account); no create route; web app behind the profile (address) step
Track custom website events and behavior: create a custom event for contact an inboxmcpfailedevents_create_event {event_name:'agentdrives_test', identifiers:{email_id:an inbox@…}} (with and without event_properties) -> 'Brevo API error (400): invalid_parameter undefined source'
Create RSS-to-email campaigns from an external feed: create an external feedmcpplan_gatedexternal_feeds_create_external_feed -> 403 permission_denied 'This feature is only available to customers with an Enterprise plan.'
Invite teammates and assign roles/permissions: invite our own inbox an inbox with contacts:viewmcpplan_gatedusers_inviteuser -> 403 'User Management API is not enabled for this account'; users_get_invited_users_list works (owner only)
Manage a dedicated sending IP: list dedicated IPsmcpplan_gatedips_get_ips -> {ips: []}; dedicated IPs are a paid add-on (map: paid)
Manage sub-accounts under one organization: list sub-accountsmcpplan_gatedaccounts_get_corporate_sub_account -> 403 'Current account is not a corporate user'
Chat with website visitors via live chat widget: send an agent message to our own visitor idmcpplan_gatedconversations_post_messages -> 402 not_enough_credits 'Upgrade your plan to use REST API'
Run a customer loyalty/rewards program: create a loyalty programmcpplan_gatedloyalty_create_new_lp -> 401 'Loyalty application is inactive' (loyalty_get_lp_list -> items [])
Create a signup form to capture leads: find and use a route on the free planbrowserblockedno form API in OpenAPI/MCP; web app (Contacts > Forms) redirects to the onboarding profile step that requires an organization postal address we cannot truthfully give
Publish a landing page: find and use a route on the free plannoneplan_gatedpricing page https://www.brevo.com/pricing/ (fetched this run): 'Landing pages … 1 page included' listed under Standard ('Everything in Starter, plus')
Run an A/B test on subject lines or content: find and use a route on the free plannoneplan_gatedpricing page https://www.brevo.com/pricing/ (fetched this run): A/B testing listed under Standard; also create_email_campaign returns 402 account_under_validation on this account
Generate email copy/subject lines with AI: find and use a route on the free planbrowserblockedno AI-content operation in OpenAPI or MCP tools; editor UI behind the onboarding profile (address) step
Auto-send at each contact's optimal engagement time: find and use a route on the free plannoneplan_gatedpricing page https://www.brevo.com/pricing/ (fetched this run): 'AI send time optimization' under Standard
Score contacts by engagement/purchase behavior: find and use a route on the free plannoneplan_gatedpricing page https://www.brevo.com/pricing/ (fetched this run): 'Contact scoring' under Professional ('Everything in Standard, plus')
Send web or mobile push notifications: find and use a route on the free plannoneplan_gatedpricing page https://www.brevo.com/pricing/ (fetched this run): web push under Starter/Standard, web & mobile push Professional; no push API in the specs
Deploy a chatbot to auto-answer visitor questions: find and use a route on the free plannoneplan_gatedmap: paid; Conversations REST API itself answered 402 'Upgrade your plan to use REST API' on the free plan
Let prospects book a meeting via scheduling page: find and use a route on the free planbrowserblockedno Meetings API in OpenAPI/MCP; web app behind the onboarding profile (address) step
Make and log sales calls via VoIP phone: find and use a route on the free plannoneplan_gatedmap: paid; no phone API in the specs
Remove the 'Sent with Brevo' footer branding: find and use a route on the free plannoneplan_gatedpricing page https://www.brevo.com/pricing/ (fetched this run): 'No Brevo logo' is a Starter feature / 'Remove Brevo branding' add-on
Connect third-party apps from the integrations marketplace: find and use a route on the free planbrowserblockedno integrations API; web app behind the onboarding profile (address) step
get REST credentials: brevo CLI (@getbrevo/cli 2.3.0) 'brevo login' (browser OAuth) and use its Bearer token on api.brevo.com/v3clidone ✓brevo login printed https://oauth-cli.brevo.com/login?port=…; consent 'Authorize Brevo-CLI' in browser; callback page posts {access_token, refresh_token, expires_in 3600, scope all} to http://localhost:<port>/callback; with that Bearer token GET /v3/account -> 200 (x-sib-ratelimit-limit 5000)
pay step: probe for agent payment rails and billing APIapifailed ✓api.brevo.com/v3 unauthenticated -> 401 JSON, no 402/PAYMENT-REQUIRED/WWW-Authenticate Payment; x402./mpp./agents.brevo.com have no DNS; no /.well-known/ucp (500 HTML); no x-payment-info in the 13 OpenAPI specs; Brevo absent from x402 Bazaar (CDP discovery) and mpp.dev/api/services; docs llms.txt has no x402/MPP/ACP/UCP/AP2/L402 terms; no billing/upgrade operation for the own account (only corporate sub-account plan updates, 403 'not a corporate user'); pricing FAQ: 'All payments are made by credit card, through our secure payment processor, Adyen, or by Paypal'
Sync products, categories and orders: activate eCommerce, create category, products and orders, read backapidone ✓MCP ecommerce_post_activate -> 'db creation in process, wait 5 minutes' (403 'not yet activated' until then); POST /categories 201, GET /categories/ad-cat-1 ok; POST /products 201, GET /products/ad-prod-2 ok; POST /orders/status/batch 202 batch_id, GET /orders lists ad-order-3 for contact 7
clean up created objects: delete every object we createdapipartial ✓deleted via REST/MCP and read back 404/empty: contacts (5), lists 3/4/5/9, folders, contact attributes AD_TEST/AD_CHOICE/AD_MULTI, CRM deals/companies/tasks/notes/file, CRM attribute, templates 2 and 3 (template 2 only after PUT isActive:false, as the 405 said), webhooks 2220072/2220090, domain brevo-drive.agentdrives.com, blocked domains
delete account: find a headless or browser route to close the accountbrowserblocked ✓no account-deletion operation in the OpenAPI specs, MCP tools or CLI; help article 'Permanently close your Brevo account': Settings > General > 'Definitively close your account' (web only); app.brevo.com/account/delete and settings redirect to the onboarding complete-profile address step for this account; help article: inactive Free accounts are deleted after 4 months
cancel plan: nothing to cancelnoneskippedfree plan, no paid plan started; help article 'Cancel your subscription' describes the web UI
refresh MCP credentials: refresh_token grant at https://mcp.brevo.com/oauth/tokenapidone ✓POST grant_type=refresh_token -> new access_token (3600 s) + rotated refresh_token; tools/call accounts_get_account works with it
Create and move a deal through pipeline stages: retry ~35 min after sign-up: create deal in stage New, move to Qualifyingmcpdone ✓create -> 6ac172346defcb8d316a1bd7; patch -> Success: 204 No Content; get deal_stage=Qualifying; GET /crm/attributes/deals now 200 (was 500); deleted after: Success: 204 No Content
Create and move a deal through pipeline stages: create deal in New, move to Qualifying, deletemcpdone ✓create -> 6ac1723c71c18c259415a2b2; patch -> Success: 204 No Content; get deal_stage=Qualifying; delete Success: 204 No Content
Create and move a deal through pipeline stages: create deal in New, move to Qualifying, deletemcpdone ✓create -> 6ac1723e71c18c259415a2b4; patch -> Success: 204 No Content; get deal_stage=Qualifying; delete Success: 204 No Content

Also in Email marketing.