Skip to main content

regiondo

ci PyPI Python

A Python client for the Regiondo Booking API.

Implements the request signing scheme used by the Regiondo PHP/JS sample clients (HMAC-SHA256 over timestamp + public_key + http_build_query(params)), plus typed namespaces for every endpoint in the v1 spec.

Install

pip install py-regiondo

The distribution is py-regiondo, the import name is regiondo:

from regiondo import RegiondoClient

From source:

pip install -e ".[dev]"

Usage

from regiondo import RegiondoClient

client = RegiondoClient(
    public_key="YOUR_PUBLIC_KEY",
    private_key="YOUR_PRIVATE_KEY",
    sandbox=True,                # talks to https://sandbox-api.regiondo.com/v1/
    accept_language="de-DE",
)

# Catalog
categories = client.categories.list()
product = client.products.get(12345)
products = client.products.list(limit=20, active_only="true")
slots = client.products.timeslots(product_id=12345)

# Checkout flow
hold = client.checkout.create_hold(
    item={"product_id": 12345, "variation_id": 1, "qty": 2},
    currency="EUR",
)
totals = client.checkout.totals(input_data={"items": [...]})
order = client.checkout.purchase(
    input_data={"items": [...], "customer": {...}, "payment": {...}},
    currency="EUR",
)

# Partner / supplier
sales = client.partner.sold_items_list(date_from="2026-01-01", date_to="2026-01-31")

# Validation
client.validate.submit(item={"ticket_code": "ABC-123"})

Namespaces

Attribute Endpoints
client.account /account/locale, /account/currency
client.categories /categories, /categories/{id}
client.checkout hold / totals / purchase / cancel / permanent reservations
client.languages /languages, /languages/{id}
client.locations /locations, /locations/suggest, /locations/{id}
client.partner sold items, CRM customers, bookings
client.products listing, variations, timeslots, availabilities, widgets, …
client.reviews /reviews
client.supplier sold items, CRM customers, bookings, resources
client.tags /tags
client.validate /validate/submit

Calling an arbitrary endpoint

client.get("products/availabilities/42", date_from="2026-01-01")
client.post("checkout/cancel", params={"reference_ids": "1,2,3"})
client.put("checkout/hold", params={"reservation_code": "X", "reserve_minutes": 15})
client.delete("checkout/hold", reservation_code="X")

All four methods sign the request, send PHP-style http_build_query params, and return the parsed JSON body. JSON bodies passed via json=... are not included in the signature, matching the reference PHP implementation.

Errors

Non-2xx responses raise:

HTTP Exception
401/403 regiondo.AuthenticationError
404 regiondo.NotFoundError
429 regiondo.RateLimitError
Other 4xx regiondo.ValidationError
5xx regiondo.RegiondoAPIError (base class)

All of them carry .status_code, .payload (parsed JSON body), and .response (raw requests.Response).

Tests

pip install -e ".[dev]"
pytest

The signing tests pin output against PHP 7.2's http_build_query (captured live) so the wire format stays compatible with the upstream verifier.

Releasing

Releases are published to PyPI automatically by the publish workflow when a GitHub Release is created. Auth is via PyPI Trusted Publishing (OIDC) — no API token secrets in the repo.

One-time PyPI setup

  1. Sign in at https://pypi.org/manage/account/publishing/.
  2. Under Add a new pending publisher (works even before the project exists), fill in:
    • PyPI project name: py-regiondo
    • Owner: e-dway
    • Repository name: py-regiondo
    • Workflow filename: publish.yml
    • Environment name: pypi
  3. Create a matching GitHub Environment named pypi under Settings → Environments (optionally add required reviewers as a manual approval gate). Repeat for testpypi if you want to dry-run there.

Cutting a release

# 1. Bump the version in pyproject.toml
$EDITOR pyproject.toml          # version = "X.Y.Z"

# 2. Commit, tag, push
git commit -am "release: X.Y.Z"
git tag vX.Y.Z
git push origin main vX.Y.Z

# 3. Create the GitHub Release for tag vX.Y.Z
gh release create vX.Y.Z --generate-notes

The workflow verifies that the tag (minus the v prefix) matches the version in pyproject.toml before building and uploading. Dry-run uploads to TestPyPI are available via the workflow's Run workflow button (choose testpypi).

Notes

  • The sandbox URL is https://sandbox-api.regiondo.com/v1/; production is https://api.regiondo.com/v1/. There are also regional production hosts (e.g. api.regiondo.de); pass them via base_url=.
  • Regiondo limits API usage to 50,000 requests / 24 h (2,083 / h, 157 / 5 min). Prefer webhooks where possible.
  • /checkout/avaialableassignees is misspelled upstream; the wrapper client.checkout.available_assignees() uses the misspelled path on the wire.

Metadata

Release files for py-regiondo 0.2.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for py-regiondo 0.2.0
File Size Uploaded Provenance
py_regiondo-0.2.0.tar.gz 19.7 kB With provenance Details

Built distribution (wheel)

Table of built distributions (wheels) for py-regiondo 0.2.0
File Interpreter ABI Platform
py_regiondo-0.2.0-py3-none-any.whl Python 3 none any Details

Total release size: 32.8 kB

Release files / py_regiondo-0.2.0.tar.gz

Download URL py_regiondo-0.2.0.tar.gz
Size 19.7 kB
Tags Source
SHA-256 checksum
How to use checksums
85a760bf44615a6d7a45f52c53c086618cf03268f2213c31c64d201ae2d94e25
BLAKE2b-256 checksum
How to use checksums
988db1e7ef1e74e42f3925719bb6752f78542b53f85742503cd18a026a8abec4
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on May 26, 2026.

Transparency log

Release files / py_regiondo-0.2.0-py3-none-any.whl

Download URL py_regiondo-0.2.0-py3-none-any.whl
Size 13.1 kB
Tags Python 3
SHA-256 checksum
How to use checksums
8f0b1bfa7e9932e5efe5ef469add33505e08b624a50848512fb8e250cdf0b978
BLAKE2b-256 checksum
How to use checksums
f276058e43a95733378db549d220a66b048ca196afe7b07d0381c5ce7c5ff8b1
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on May 26, 2026.

Transparency log

Security for py-regiondo 0.2.0

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

Full provenance

All 2 files in this release have been uploaded with provenance metadata.

Select from 2 files

Attestation for py_regiondo-0.2.0.tar.gz

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on May 26, 2026.

Transparency log

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Release history Release notifications | RSS feed

This release

0.2.0 This release

2 release files Full provenance

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page