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/v1

Requests 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
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' } })
Python
from goomzo import Goomzo

goomzo = Goomzo()  # reads GOOMZO_API_KEY
goomzo.messages.send_one({'to': '+255712345678', 'template': 'auth_1', 'variables': {'code': '482913'}})
PHP
use Goomzo\Goomzo;

$goomzo = new Goomzo(); // reads GOOMZO_API_KEY
$goomzo->messages->sendOne(['to' => '+255712345678', 'template' => 'auth_1', 'variables' => ['code' => '482913']]);
Go
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