About the Goomzo API
Connect your own systems to Goomzo.
The Goomzo API lets your own systems, such as your shop, app or point of sale, work with Goomzo. Your system can add customers as they buy, record their activity, and send them SMS and WhatsApp messages, without anyone copying data by hand.
Base URL
https://api.goomzo.africa/v1Requests and responses are JSON. Every request is made with an API key, and can only do what its permissions allow.
Core capabilities
- Messages: send a message to one customer, or a saved template with your own values, such as a verification code. See Send messages.
- Broadcasts: send one message to a segment, a list of numbers, or every customer. See Broadcasts.
- Templates: create SMS templates, and WhatsApp templates that Meta reviews. See Templates.
- Customers: add and update customers, segment them, and record their activity. See Customers.
- Webhooks: hear about deliveries, replies and new customers as they happen. See Webhooks.
Requirements
- A Goomzo account, with your business verified to send under your own sender ID.
- An API key with the permissions your system needs.
- SMS on your account to send texts. See SMS bundles.
- For WhatsApp, your number connected in Integrations → WhatsApp.
Phone numbers
Send every phone number with its country code, such as +255712345678. Spaces and dashes are fine. A local number
like 0712345678 is an error that says so. Answers always give numbers in this form.
Versions
Send Goomzo-Version with your requests to pin the API version your code is written for. Every answer says which
version served it. Changes that would break your code come as a new version, so requests pinned to an older one keep
working as they did. Without the header, you get the current version, 2026-11-08.
Lists
Lists come a page at a time: 50 by default, up to 200 with limit. To get the next page, send the nextCursor from
the last one as cursor. It's null on the last page. Customers, messages and broadcasts also return a total.
curl "https://api.goomzo.africa/v1/customers?limit=200&cursor=$NEXT_CURSOR" \
-H "Authorization: Bearer $GOOMZO_TOKEN"SDKs
The SDKs send messages, keep customers in step and check webhooks, with types, safe retries and lists that page themselves.
- TypeScript SDK:
npm install @goomzo/sdk - Python SDK:
pip install goomzo - PHP SDK:
composer require goomzo/goomzo-php - Go SDK:
go get github.com/goomzo/goomzo-go
import { Goomzo } from '@goomzo/sdk'
const goomzo = new Goomzo() // reads GOOMZO_API_KEY
await goomzo.messages.sendOne({ to: '+255712345678', template: 'auth_1', variables: { code: '482913' } })from goomzo import Goomzo
goomzo = Goomzo() # reads GOOMZO_API_KEY
goomzo.messages.send_one({'to': '+255712345678', 'template': 'auth_1', 'variables': {'code': '482913'}})use Goomzo\Goomzo;
$goomzo = new Goomzo(); // reads GOOMZO_API_KEY
$goomzo->messages->sendOne(['to' => '+255712345678', 'template' => 'auth_1', 'variables' => ['code' => '482913']]);client, _ := goomzo.NewClient() // reads GOOMZO_API_KEY
client.Messages.SendOne(ctx, goomzo.MessageInput{To: "+255712345678", Template: goomzo.SavedTemplate("auth_1"), Variables: map[string]string{"code": "482913"}})Next steps
Last updated