---
title: "About the Goomzo API"
description: "Connect your own systems to Goomzo."
url: "https://docs.goomzo.africa/docs/developers"
docs_index: /llms.txt
lastUpdated: 2026-11-12
section: "Overview"
related:
  - /docs/developers/authentication
  - /docs/developers/idempotency
  - /docs/developers/rate-limits
  - /docs/developers/errors
---

> For an index of all documentation, see [/llms.txt](https://docs.goomzo.africa/llms.txt). Any page is also available as Markdown by adding .md to its URL.

# 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

```text
https://api.goomzo.africa/v1
```

Requests and responses are JSON. Every request is made with an [API key](https://docs.goomzo.africa/docs/developers/authentication?utm_source=llms&utm_medium=ai), and can
only do what its permissions allow.

## Core capabilities

- **Messages:** send a message to one customer, or a saved [template](https://docs.goomzo.africa/docs/developers/messages/templates?utm_source=llms&utm_medium=ai) with your
  own values, such as a verification code. See [Send messages](https://docs.goomzo.africa/docs/developers/messages/send?utm_source=llms&utm_medium=ai).
- **Broadcasts:** send one message to a segment, a list of numbers, or every customer.
  See [Broadcasts](https://docs.goomzo.africa/docs/developers/messages/broadcasts?utm_source=llms&utm_medium=ai).
- **Templates:** create SMS templates, and WhatsApp templates that Meta reviews.
  See [Templates](https://docs.goomzo.africa/docs/developers/templates?utm_source=llms&utm_medium=ai).
- **Customers:** add and update customers, segment them, and record their activity.
  See [Customers](https://docs.goomzo.africa/docs/developers/customers?utm_source=llms&utm_medium=ai).
- **Webhooks:** hear about deliveries, replies and new customers as they happen.
  See [Webhooks](https://docs.goomzo.africa/docs/developers/webhooks?utm_source=llms&utm_medium=ai).

## Requirements

- A Goomzo account, with your business [verified](https://docs.goomzo.africa/docs/help/business-verification?utm_source=llms&utm_medium=ai) to send under your own sender ID.
- An [API key](https://docs.goomzo.africa/docs/developers/authentication?utm_source=llms&utm_medium=ai#create-an-api-key) with the permissions your system needs.
- SMS on your account to send texts. See [SMS bundles](https://docs.goomzo.africa/docs/help/sms-bundles?utm_source=llms&utm_medium=ai).
- 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`.

```bash
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](https://docs.goomzo.africa/docs/developers/ts-sdk?utm_source=llms&utm_medium=ai): `npm install @goomzo/sdk`
- [Python SDK](https://docs.goomzo.africa/docs/developers/python-sdk?utm_source=llms&utm_medium=ai): `pip install goomzo`
- [PHP SDK](https://docs.goomzo.africa/docs/developers/php-sdk?utm_source=llms&utm_medium=ai): `composer require goomzo/goomzo-php`
- [Go SDK](https://docs.goomzo.africa/docs/developers/go-sdk?utm_source=llms&utm_medium=ai): `go get github.com/goomzo/goomzo-go`

```ts title="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 title="Python"
from goomzo import Goomzo

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

```php title="PHP"
use Goomzo\Goomzo;

$goomzo = new Goomzo(); // reads GOOMZO_API_KEY
$goomzo->messages->sendOne(['to' => '+255712345678', 'template' => 'auth_1', 'variables' => ['code' => '482913']]);
```

```go title="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

<Cards>
  <Card title="Get started" href="/docs/developers/get-started" description="From an API key to your first message, step by step." />
  <Card title="Authentication" href="/docs/developers/authentication" description="API keys, secrets and permissions." />
  <Card title="Send messages" href="/docs/developers/messages/send" description="Send SMS and WhatsApp messages." />
</Cards>

---

For an index of all available documentation, see [/llms.txt](https://docs.goomzo.africa/llms.txt)
