{"openapi":"3.1.0","info":{"title":"Brevo SMS and WhatsApp (BYOK) API","version":"0.1.0","description":"Brevo SMS and WhatsApp (BYOK) lets an AI assistant read your own Brevo SMS and WhatsApp data through the Brevo SMS and WhatsApp API with a key you supply (API key). Read-only: 9 tools (list_sms_campaigns, get_sms_campaign, list_sms_templates, list_whatsapp_campaigns, get_whatsapp_campaign, list_whatsapp_templates, get_whatsapp_account_status, get_transactional_sms_summary,...\n\nEvery operation is read-only or compute-only. The same tools are available over MCP (streamable HTTP) at https://byok-brevo-sms-whatsapp.connectorbay.com/mcp.","contact":{"name":"Unify Dynamics LLC","email":"agent@connectorbay.com","url":"https://connectorbay.com/byok-brevo-sms-whatsapp/docs"},"termsOfService":"https://connectorbay.com/byok-brevo-sms-whatsapp/terms"},"servers":[{"url":"https://byok-brevo-sms-whatsapp.connectorbay.com"}],"externalDocs":{"url":"https://connectorbay.com/byok-brevo-sms-whatsapp/docs"},"security":[{"upstreamKey":[]}],"components":{"securitySchemes":{"bearer":{"type":"http","scheme":"bearer","description":"Optional. A Pro API key raises rate limits; no credentials are required."},"upstreamKey":{"type":"apiKey","in":"header","name":"X-Upstream-Key","description":"Your own key for the service this connector wraps (bring your own key). Used for that one call only; never stored, logged or cached."}},"schemas":{"Error":{"type":"object","properties":{"ok":{"const":false},"error":{"type":"object"}}}}},"paths":{"/v1/tools/list_sms_campaigns":{"post":{"operationId":"list_sms_campaigns","summary":"List SMS campaigns with name, status, sender, schedule and sent dates and delivery statistics (sent, delivered, bounces,","description":"List SMS campaigns with name, status, sender, schedule and sent dates and delivery statistics (sent, delivered, bounces, answers, unsubscriptions). Message text is not returned. Use for \"How did my last Brevo SMS campaigns perform\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"status":{"anyOf":[{"enum":["suspended","archive","sent","queued","draft","inProcess"],"type":"string"},{"type":"null"}],"default":null,"description":"Only campaigns with this status.","title":"Status"},"start_date":{"anyOf":[{"maxLength":40,"type":"string"},{"type":"null"}],"default":null,"description":"Start of the window, UTC date-time such as 2026-01-01T00:00:00.000Z. Required when end_date is used.","title":"Start Date"},"end_date":{"anyOf":[{"maxLength":40,"type":"string"},{"type":"null"}],"default":null,"description":"End of the window, UTC date-time such as 2026-02-01T00:00:00.000Z. Required when start_date is used.","title":"End Date"},"limit":{"anyOf":[{"maximum":50,"minimum":1,"type":"integer"},{"type":"null"}],"default":20,"description":"How many results to return (1 to 50).","title":"Limit"},"offset":{"anyOf":[{"maximum":1000000,"minimum":0,"type":"integer"},{"type":"null"}],"default":0,"description":"Index of the first result, starting at 0, for paging.","title":"Offset"},"sort":{"anyOf":[{"enum":["asc","desc"],"type":"string"},{"type":"null"}],"default":null,"description":"Sort order: desc (the default) or asc.","title":"Sort"}},"title":"list_sms_campaignsArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/get_sms_campaign":{"post":{"operationId":"get_sms_campaign","summary":"Get one SMS campaign with status, sender, dates, statistics, tags and the names of its recipient and exclusion lists. Me","description":"Get one SMS campaign with status, sender, dates, statistics, tags and the names of its recipient and exclusion lists. Message text is not returned. Use for \"Show Brevo SMS campaign 11 with its delivery statistics\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"campaign_id":{"description":"The SMS campaign id from list_sms_campaigns.","minimum":1,"title":"Campaign Id","type":"integer"}},"required":["campaign_id"],"title":"get_sms_campaignArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/list_sms_templates":{"post":{"operationId":"list_sms_templates","summary":"List SMS templates with id, name, creation and update dates, short-URL and Unicode flags. Template text is not returned.","description":"List SMS templates with id, name, creation and update dates, short-URL and Unicode flags. Template text is not returned. Use for \"Which SMS templates are in my Brevo account\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"limit":{"anyOf":[{"maximum":50,"minimum":1,"type":"integer"},{"type":"null"}],"default":20,"description":"How many results to return (1 to 50).","title":"Limit"},"offset":{"anyOf":[{"maximum":1000000,"minimum":0,"type":"integer"},{"type":"null"}],"default":0,"description":"Index of the first result, starting at 0, for paging.","title":"Offset"},"sort":{"anyOf":[{"enum":["asc","desc"],"type":"string"},{"type":"null"}],"default":null,"description":"Sort order: desc (the default) or asc.","title":"Sort"}},"title":"list_sms_templatesArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/list_whatsapp_campaigns":{"post":{"operationId":"list_whatsapp_campaigns","summary":"List WhatsApp campaigns with name, status, schedule, template id, read percentage and delivery statistics. Use for \"How ","description":"List WhatsApp campaigns with name, status, schedule, template id, read percentage and delivery statistics. Use for \"How did my Brevo WhatsApp campaigns perform\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"start_date":{"anyOf":[{"maxLength":40,"type":"string"},{"type":"null"}],"default":null,"description":"Start of the window, UTC date-time such as 2026-01-01T00:00:00.000Z. Required when end_date is used.","title":"Start Date"},"end_date":{"anyOf":[{"maxLength":40,"type":"string"},{"type":"null"}],"default":null,"description":"End of the window, UTC date-time such as 2026-02-01T00:00:00.000Z. Required when start_date is used.","title":"End Date"},"limit":{"anyOf":[{"maximum":50,"minimum":1,"type":"integer"},{"type":"null"}],"default":20,"description":"How many results to return (1 to 50).","title":"Limit"},"offset":{"anyOf":[{"maximum":1000000,"minimum":0,"type":"integer"},{"type":"null"}],"default":0,"description":"Index of the first result, starting at 0, for paging.","title":"Offset"},"sort":{"anyOf":[{"enum":["asc","desc"],"type":"string"},{"type":"null"}],"default":null,"description":"Sort order: desc (the default) or asc.","title":"Sort"}},"title":"list_whatsapp_campaignsArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/get_whatsapp_campaign":{"post":{"operationId":"get_whatsapp_campaign","summary":"Get one WhatsApp campaign: status, dates, sender number, recipient list and segment ids, statistics and template name, c","description":"Get one WhatsApp campaign: status, dates, sender number, recipient list and segment ids, statistics and template name, category and language. Use for \"Show Brevo WhatsApp campaign 21\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"campaign_id":{"description":"The WhatsApp campaign id from list_whatsapp_campaigns.","minimum":1,"title":"Campaign Id","type":"integer"}},"required":["campaign_id"],"title":"get_whatsapp_campaignArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/list_whatsapp_templates":{"post":{"operationId":"list_whatsapp_templates","summary":"List WhatsApp message templates with name, language, category, type, approval status and rejection reason, if any. Use f","description":"List WhatsApp message templates with name, language, category, type, approval status and rejection reason, if any. Use for \"Which WhatsApp templates are approved in Brevo\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"start_date":{"anyOf":[{"maxLength":40,"type":"string"},{"type":"null"}],"default":null,"description":"Start of the window, UTC date-time such as 2026-01-01T00:00:00.000Z. Required when end_date is used.","title":"Start Date"},"end_date":{"anyOf":[{"maxLength":40,"type":"string"},{"type":"null"}],"default":null,"description":"End of the window, UTC date-time such as 2026-02-01T00:00:00.000Z. Required when start_date is used.","title":"End Date"},"limit":{"anyOf":[{"maximum":50,"minimum":1,"type":"integer"},{"type":"null"}],"default":20,"description":"How many results to return (1 to 50).","title":"Limit"},"offset":{"anyOf":[{"maximum":1000000,"minimum":0,"type":"integer"},{"type":"null"}],"default":0,"description":"Index of the first result, starting at 0, for paging.","title":"Offset"},"sort":{"anyOf":[{"enum":["asc","desc"],"type":"string"},{"type":"null"}],"default":null,"description":"Sort order: desc (the default) or asc.","title":"Sort"},"source":{"anyOf":[{"enum":["Automation","Conversations"],"type":"string"},{"type":"null"}],"default":null,"description":"Template source: Automation or Conversations.","title":"Source"}},"title":"list_whatsapp_templatesArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/get_whatsapp_account_status":{"post":{"operationId":"get_whatsapp_account_status","summary":"Show the WhatsApp Business setup: business status, phone number quality and name status, sending limit and account statu","description":"Show the WhatsApp Business setup: business status, phone number quality and name status, sending limit and account status. Use for \"What is my Brevo WhatsApp sending limit and phone number quality\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{},"title":"get_whatsapp_account_statusArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/get_transactional_sms_summary":{"post":{"operationId":"get_transactional_sms_summary","summary":"Get aggregated transactional SMS counts (requests, delivered, bounces, blocked, replies, unsubscribes) for a date range ","description":"Get aggregated transactional SMS counts (requests, delivered, bounces, blocked, replies, unsubscribes) for a date range or the last days. Use for \"How many transactional SMS did Brevo deliver in the last 7 days\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"start_date":{"anyOf":[{"maxLength":10,"type":"string"},{"type":"null"}],"default":null,"description":"Start date YYYY-MM-DD. Required when end_date is used.","title":"Start Date"},"end_date":{"anyOf":[{"maxLength":10,"type":"string"},{"type":"null"}],"default":null,"description":"End date YYYY-MM-DD. Required when start_date is used.","title":"End Date"},"days":{"anyOf":[{"maximum":365,"minimum":1,"type":"integer"},{"type":"null"}],"default":null,"description":"Number of past days including today (cannot be combined with start_date and end_date).","title":"Days"},"tag":{"anyOf":[{"maxLength":100,"type":"string"},{"type":"null"}],"default":null,"description":"Only messages sent with this tag.","title":"Tag"}},"title":"get_transactional_sms_summaryArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/list_transactional_sms_daily":{"post":{"operationId":"list_transactional_sms_daily","summary":"Get day-by-day transactional SMS counts (requests, delivered, bounces, blocked, replies, unsubscribes) for a date range ","description":"Get day-by-day transactional SMS counts (requests, delivered, bounces, blocked, replies, unsubscribes) for a date range or the last days. Use for \"Show Brevo transactional SMS delivery per day last week\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"start_date":{"anyOf":[{"maxLength":10,"type":"string"},{"type":"null"}],"default":null,"description":"Start date YYYY-MM-DD. Required when end_date is used.","title":"Start Date"},"end_date":{"anyOf":[{"maxLength":10,"type":"string"},{"type":"null"}],"default":null,"description":"End date YYYY-MM-DD. Required when start_date is used.","title":"End Date"},"days":{"anyOf":[{"maximum":365,"minimum":1,"type":"integer"},{"type":"null"}],"default":null,"description":"Number of past days including today (cannot be combined with start_date and end_date).","title":"Days"},"tag":{"anyOf":[{"maxLength":100,"type":"string"},{"type":"null"}],"default":null,"description":"Only messages sent with this tag.","title":"Tag"},"sort":{"anyOf":[{"enum":["asc","desc"],"type":"string"},{"type":"null"}],"default":null,"description":"Sort by date: desc (the default) or asc.","title":"Sort"}},"title":"list_transactional_sms_dailyArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}}}}