Skip to main content

The Python library

Reeds Engineering
Reeds Engineering
Developer platform

The official Python library is on PyPI as reeds-sdk. Import it as reeds.

pip install reeds-sdk
from reeds import Reeds

reeds = Reeds() # reads REEDS_CLIENT_ID and REEDS_CLIENT_SECRET
delivery = reeds.shipping.deliveries.create(quote_id="qt_2bX9Wn4K", reference="ORDER-10045")

What it does​

  • Every Shipping API call: coverage, quotes, deliveries (create, list, get, update, book, mark ready, cancel, label), the wallet, invoices and the sandbox.
  • Sync and async. Reeds for regular code, AsyncReeds for asyncio, with the same methods.
  • The access token. It fetches the token and refreshes it before it expires.
  • Safe retries. Every POST carries an Idempotency-Key, and a retry reuses it. It retries after 429, 503 and dropped connections, honouring Retry-After.
  • Pages and errors. for (or async for) walks every page of a list. Each kind of failure is its own exception class, carrying the API's code, fields, doc_url and request id.
  • Webhooks. It verifies the Reeds-Signature header (both secrets while you rotate one) and returns a typed event. The guide has handlers for FastAPI, Flask and Django.
  • Types. Responses are Pydantic models with the API's field names, generated from the OpenAPI file, and typed for mypy and pyright. They allow the values Reeds adds inside v1.

It needs Python 3.11 or later. See Libraries and plugins and the guide on GitHub.

What you need to change​

Nothing. The API is unchanged, and integrations that call it directly keep working.