Skip to main content

sendmux-sdk

PyPI version Python versions PyPI downloads Licence

Optional umbrella package for the Sendmux Python SDK.

Documentation

Requirements

  • Python 3.10 or newer.
  • A send-capable smx_mbx_* key or owner-approved Sending-resource smx_agent_* token for Sending clients.
  • A mailbox-scoped smx_mbx_* key or scoped smx_agent_* token for Mailbox clients.
  • A root smx_root_* key for Management clients.

For OAuth, use a REST access token with the scopes and mailbox access required by the operation. See OAuth for REST APIs.

Installation

pip install sendmux-sdk

Connection checks

Check a Management credential without creating resources:

import os

from sendmux_sdk import management

with management.create_management_client(
    api_key=os.environ["SENDMUX_MANAGEMENT_API_KEY"]
) as client:
    connection = management.ConnectionApi(client).management_get_connection()
    print(connection.data.label, connection.data.team.id)

Use data.label for the connection name and data.team.id for its stable team identifier. Each API surface has its own connection operation:

Surface API class Method
Management management.ConnectionApi management_get_connection()
Mailbox mailbox.MailboxAPIApi mailbox_get_connection()
Sending sending.MetaApi sending_get_connection()

Create each client with the credential for that surface.

OAuth access tokens

Pass either api_key or access_token. access_token accepts a bare token string or a synchronous callable; the callable is evaluated for each authenticated request. Your application owns token storage, expiry checks and refresh coordination.

import os

from sendmux_sdk import management

client = management.create_management_client(
    access_token=lambda: os.environ["SENDMUX_ACCESS_TOKEN"]
)

Usage

import os

from sendmux_sdk import sending

client = sending.create_sending_client(api_key=os.environ["SENDMUX_SENDING_API_KEY"])
api = sending.EmailsApi(client)

response = api.sending_send_email(
    sending.EmailSendRequest(
        var_from=sending.Address(email="sender@example.com"),
        to=sending.Address(email="recipient@example.com"),
        subject="Hello from Sendmux",
        html_body="<p>Hello.</p>",
        text_body="Hello.",
    ),
    idempotency_key="email_123",
)

print(response.data.message_id)

The umbrella package lazy-loads:

  • core from sendmux_core
  • sending from sendmux_sending
  • mailbox from sendmux_mailbox
  • management from sendmux_management

Use the per-surface packages directly when an integration only needs one API surface.

Version 2.0.0 migration

The umbrella's mailbox module adopts the thread-specific list response: thread-message results require meta.thread_id and expose optional typed meta.sync_state, while ordinary message-list results remain thread-independent. Other Mailbox list families expose typed state metadata where applicable.

Update sendmux-sdk, sendmux-mailbox, the lockfile, and affected annotations or fixtures together. To roll back, restore the previous package requirements, lockfile, and call sites together.

Support

Open an issue in Sendmux/sendmux-sdk with the package name, version, and request ID from any API error.

Licence

MIT. See the licence file.

Metadata

Release files for sendmux-sdk 2.0.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 sendmux-sdk 2.0.0
File Size Uploaded
sendmux_sdk-2.0.0.tar.gz 4.7 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for sendmux-sdk 2.0.0
File Interpreter ABI Platform
sendmux_sdk-2.0.0-py3-none-any.whl Python 3 none any Details

Total release size: 8.5 kB

Release files / sendmux_sdk-2.0.0.tar.gz

Download URL sendmux_sdk-2.0.0.tar.gz
Size 4.7 kB
Tags Source
SHA-256 checksum
How to use checksums
004b54b61e3b5aace33987ca8dd9a41c7c5e7c7db370dd9dc6111f75b101079e
BLAKE2b-256 checksum
How to use checksums
58c927a33dcf90a4bc07029cc2453d6165091e9d41b0dec3955b18a46e2ee434
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.13

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 Sep 15, 2026.

Transparency log

Release files / sendmux_sdk-2.0.0-py3-none-any.whl

Download URL sendmux_sdk-2.0.0-py3-none-any.whl
Size 3.9 kB
Tags Python 3
SHA-256 checksum
How to use checksums
0f6ad04015ad58a5b726db571371ec96455883ff3c71b246680712d52fdc2871
BLAKE2b-256 checksum
How to use checksums
96027e26379da52804dcefc4029441c1fb4840c235be3de5f641ab5778fa6a58
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.13

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 Sep 15, 2026.

Transparency log

Release history Release notifications | RSS feed

3.0.1

2 release files

3.0.0

2 release files

This release

2.0.0 This release

2 release files

1.2.0

2 release files

1.1.1

2 release files

1.1.0

2 release files

1.0.4

2 release files

1.0.3

2 release files

1.0.2

2 release files

1.0.1

2 release files

1.0.0

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