Skip to main content

zoplio (Python SDK)

Official Zoplio Python SDK for the Zoplio API v1. MIT licensed.

Zoplio schedules meetings for you: you say who and roughly when, Zoplio negotiates with every participant over WhatsApp/email and confirms a slot.

Requires Python >= 3.10. Depends on httpx.

Install

Not yet published to PyPI — install from this monorepo:

pip install -e packages/sdk-python

Usage

from zoplio import ZoplioClient, ZoplioError

zoplio = ZoplioClient(api_key="zpl_...")  # base_url defaults to https://api.zoplio.com

# Create a meeting — Zoplio reaches out to participants and negotiates.
created = zoplio.schedule_meeting(
    participants=[
        {"email": "petr@example.com", "name": "Petr"},
        {"phone": "+420777123456", "name": "Jana"},
    ],
    title="Intro call",
    duration_minutes=30,
    preferred_date="2026-06-15",
    preferred_time="14:00",
    timezone="Europe/Prague",
    idempotency_key="order-42-intro-call",  # optional, safe retries
)
print(created["meetingId"], created["status"], created["proposedSlots"])

# Poll status (or use webhooks instead).
meeting = zoplio.get_meeting(created["meetingId"])

# List / reschedule / cancel.
zoplio.list_meetings(status="confirmed", limit=10)
zoplio.reschedule_meeting(
    created["meetingId"],
    preferred_date="2026-06-16",
    preferred_time="10:00",
    timezone="Europe/Prague",
)
zoplio.cancel_meeting(created["meetingId"])

Errors

Every non-2xx response raises ZoplioError with the contract envelope:

try:
    zoplio.get_meeting("nope")
except ZoplioError as err:
    err.status_code  # 404
    err.code         # 'not_found' | 'unauthorized' | 'rate_limited' | 'validation_failed' | 'conflict' | 'upstream_error'
    str(err)         # human-readable message
    err.details      # [{"field", "message"}] on validation_failed

Webhooks

# Subscribe — the secret is returned exactly once.
hook = zoplio.create_webhook(
    url="https://example.com/zoplio-hook",
    events=["meeting.confirmed", "meeting.cancelled"],
)
save_secret(hook["secret"])  # whsec_...

zoplio.list_webhooks()
zoplio.delete_webhook(hook["id"])

Verify deliveries with the static helper — pass the RAW request body:

# e.g. Flask
@app.post("/zoplio-hook")
def zoplio_hook():
    ok = ZoplioClient.verify_webhook_signature(
        request.get_data(),                          # raw bytes
        request.headers.get("X-Zoplio-Signature", ""),
        os.environ["ZOPLIO_WEBHOOK_SECRET"],         # whsec_...
    )
    if not ok:
        return "", 401
    delivery = request.get_json()  # {"event", "payload", "timestamp"}
    return "", 200

Metadata

Release files for zoplio 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 zoplio 0.2.0
File Size Uploaded
zoplio-0.2.0.tar.gz 8.3 kB Details

Built distribution (wheel)

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

Total release size: 15.7 kB

Release files / zoplio-0.2.0.tar.gz

Download URL zoplio-0.2.0.tar.gz
Size 8.3 kB
Tags Source
SHA-256 checksum
How to use checksums
9e49ddbac943eabb98c5fb23a14f6b89cdad75eba4f14d6a89f9ac33a3ed15d8
BLAKE2b-256 checksum
How to use checksums
4211de87b1a3d7b5fb5dab8545def09a5b915b8693f4fc1fd1c81b20a15004e3
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.11.15

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

Download URL zoplio-0.2.0-py3-none-any.whl
Size 7.4 kB
Tags Python 3
SHA-256 checksum
How to use checksums
56d5cd67f63a02f4d1d7a90f9fb664adb44b85592a5bca069193e73a61be3fc2
BLAKE2b-256 checksum
How to use checksums
411443562adbb26d1a1b660adb3c8ddc75d08b1cf2eed84dbae138d7b560328c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.11.15

Release history Release notifications | RSS feed

0.3.1

2 release files

0.3.0

2 release files

This release

0.2.0 This release

2 release files

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