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

Install

pip install goomzo

Make 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 customerId and sendAt. Each is a typed dict, so your editor completes and checks them.
  • Arguments are Python, such as limit=200 or if_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, 429 and 5xx are tried again, twice by default. Every POST carries an Idempotency-Key, the same on each try, so nothing is done twice.
  • Errors you can act on: a GoomzoError has the status, the code, the fields that were wrong and the request_id.

Next steps

Last updated