{"openapi":"3.1.0","info":{"title":"Beem Africa (BYOK) API","version":"0.1.0","description":"Beem Africa (BYOK) lets an AI assistant read your own Beem Africa data through the Beem Africa API with a key you supply (Beem API key). Read-only: 6 tools (get_sms_balance, list_sender_names, list_sms_templates, list_address_books, list_whatsapp_templates, get_credit_balance). The BYOK key travels with each request, is used for that one call only and is never stored, logged or cached; it is only...\n\nEvery operation is read-only or compute-only. The same tools are available over MCP (streamable HTTP) at https://byok-beem-africa.connectorbay.com/mcp.","contact":{"name":"Unify Dynamics LLC","email":"agent@connectorbay.com","url":"https://connectorbay.com/byok-beem-africa/docs"},"termsOfService":"https://connectorbay.com/byok-beem-africa/terms"},"servers":[{"url":"https://byok-beem-africa.connectorbay.com"}],"externalDocs":{"url":"https://connectorbay.com/byok-beem-africa/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/get_sms_balance":{"post":{"operationId":"get_sms_balance","summary":"Show the SMS credit balance of the account. Use for \"How many SMS credits are left on my Beem account\".","description":"Show the SMS credit balance of the account. Use for \"How many SMS credits are left on my Beem account\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"svc":{"const":"apisms","description":"Beem service host (SMS); keep the default.","title":"Svc","type":"string"}},"required":["svc"],"title":"get_sms_balanceArguments","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_sender_names":{"post":{"operationId":"list_sender_names","summary":"List the SMS sender names (sender IDs) with status, sample content and creation date. Use for \"Which sender names are ap","description":"List the SMS sender names (sender IDs) with status, sample content and creation date. Use for \"Which sender names are approved on my Beem account\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"svc":{"const":"apisms","description":"Beem service host (SMS); keep the default.","title":"Svc","type":"string"},"page":{"anyOf":[{"maximum":100000,"minimum":1,"type":"integer"},{"type":"null"}],"default":1,"description":"Page number, starting at 1.","title":"Page"},"limit":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":10,"description":"Items per page.","title":"Limit"},"status":{"anyOf":[{"maxLength":20,"type":"string"},{"type":"null"}],"default":null,"description":"Only sender names with this status, for example active or pending.","title":"Status"},"search":{"anyOf":[{"maxLength":60,"type":"string"},{"type":"null"}],"default":null,"description":"Search term to filter sender names.","title":"Search"}},"required":["svc"],"title":"list_sender_namesArguments","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 the saved SMS templates with title, text and creation date. Use for \"Which SMS templates have I saved on Beem\".","description":"List the saved SMS templates with title, text and creation date. Use for \"Which SMS templates have I saved on Beem\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"svc":{"const":"apisms","description":"Beem service host (SMS); keep the default.","title":"Svc","type":"string"},"page":{"anyOf":[{"maximum":100000,"minimum":1,"type":"integer"},{"type":"null"}],"default":1,"description":"Page number, starting at 1.","title":"Page"},"limit":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":10,"description":"Items per page.","title":"Limit"}},"required":["svc"],"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_address_books":{"post":{"operationId":"list_address_books","summary":"List the contact address books with description, creation date and number of contacts. Individual contacts are not retur","description":"List the contact address books with description, creation date and number of contacts. Individual contacts are not returned. Use for \"How many contacts are in each of my Beem address books\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"svc":{"const":"api-contact","description":"Beem service host (Contacts); keep the default.","title":"Svc","type":"string"},"page":{"anyOf":[{"maximum":100000,"minimum":1,"type":"integer"},{"type":"null"}],"default":1,"description":"Page number, starting at 1.","title":"Page"},"limit":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":10,"description":"Items per page.","title":"Limit"},"search":{"anyOf":[{"maxLength":60,"type":"string"},{"type":"null"}],"default":null,"description":"Only address books whose name contains this text.","title":"Search"},"start_date":{"anyOf":[{"maxLength":10,"type":"string"},{"type":"null"}],"default":null,"description":"Only address books created on or after this date (YYYY-MM-DD).","title":"Start Date"},"end_date":{"anyOf":[{"maxLength":10,"type":"string"},{"type":"null"}],"default":null,"description":"Only address books created on or before this date (YYYY-MM-DD).","title":"End Date"}},"required":["svc"],"title":"list_address_booksArguments","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 the WhatsApp (Moja) message templates with name, category, type, language, approval status, text, header, footer an","description":"List the WhatsApp (Moja) message templates with name, category, type, language, approval status, text, header, footer and buttons. Use for \"Which WhatsApp templates are approved on my Beem Moja account\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"svc":{"const":"apichatcore","description":"Beem service host (Moja chat); keep the default.","title":"Svc","type":"string"},"page":{"anyOf":[{"maximum":100000,"minimum":1,"type":"integer"},{"type":"null"}],"default":1,"description":"Page number, starting at 1.","title":"Page"},"limit":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":10,"description":"Items per page.","title":"Limit"},"search":{"anyOf":[{"maxLength":60,"type":"string"},{"type":"null"}],"default":null,"description":"Only templates matching this text.","title":"Search"},"category":{"anyOf":[{"enum":["AUTHENTICATION","UTILITY","MARKETING"],"type":"string"},{"type":"null"}],"default":null,"description":"Template category.","title":"Category"},"status":{"anyOf":[{"enum":["pending","enabled","rejected","failed"],"type":"string"},{"type":"null"}],"default":null,"description":"Template status.","title":"Status"}},"required":["svc"],"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_credit_balance":{"post":{"operationId":"get_credit_balance","summary":"Show the credit balance and low-balance reminder settings of one Beem product (SMS, OTP, airtime, USSD, Bpay, Moja and m","description":"Show the credit balance and low-balance reminder settings of one Beem product (SMS, OTP, airtime, USSD, Bpay, Moja and more). Use for \"How much airtime or USSD credit do I have left on Beem\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"svc":{"const":"apitopup","description":"Beem service host (top-up and credit); keep the default.","title":"Svc","type":"string"},"app_name":{"description":"Product to check.","enum":["AIRTIME","USSD","BPAY","SMS","OTP","CHAT","BROADCAST","EMG","MOJA"],"title":"App Name","type":"string"},"currency":{"anyOf":[{"maxLength":3,"type":"string"},{"type":"null"}],"default":null,"description":"Optional ISO currency code filter.","title":"Currency"},"country":{"anyOf":[{"maxLength":2,"type":"string"},{"type":"null"}],"default":null,"description":"Optional ISO country code filter.","title":"Country"}},"required":["svc","app_name"],"title":"get_credit_balanceArguments","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}}}}