Python SDK
The Goomzo API for Python, sync and asyncio.
goomzo is the Goomzo API for Python. It types every request and answer, retries safely, and pages through lists
for you. It works the same way with or without asyncio.
Requirements
- Python 3.10 or later.
- An API key. See Authentication.
Install
pip install goomzoMake your first request
Set your API key's secret as GOOMZO_API_KEY, then send a message:
from goomzo import Goomzo
goomzo = Goomzo()
message = goomzo.messages.send_one({
'to': '+255712345678',
'channel': 'sms',
'content': {'text': 'Amina, order #1042 is ready.'},
})
print(message['id'], message['status'])With asyncio, use AsyncGoomzo and await each call:
from goomzo import AsyncGoomzo
goomzo = AsyncGoomzo()
message = await goomzo.messages.send_one({'to': '+255712345678', 'channel': 'sms', 'content': {'text': 'Hi'}})How it reads
- Requests and answers are dicts, with the API's own keys, exactly as in its JSON, such as
customerIdandsendAt. Each is a typed dict, so your editor completes and checks them. - Arguments are Python, such as
limit=200orif_exists='update'. - Lists of results come back as lists. Lists that can be long come as a page you can loop over.
What it does for you
- A fixed version: it pins the API version it was written for, so a new version never changes what your code gets.
- Safe retries: network errors,
429and5xxare tried again, twice by default. EveryPOSTcarries anIdempotency-Key, the same on each try, so nothing is done twice. - Errors you can act on: a
GoomzoErrorhas thestatus, thecode, thefieldsthat were wrong and therequest_id.
Next steps
Last updated