Beaco Python SDK
Official dependency-free Python SDK for events, templates, notifications, scheduled events, and suppressions.
- SDK guide: every method, with examples
- API reference and events
- Source and issues
uv add beaco # or: pip install beaco
import os
from beaco import Beaco
beaco = Beaco(os.environ["BEACO_API_KEY"])
event = beaco.events.publish(
"user.welcome",
[{"channels": ["email"], "email": "user@example.com"}],
inline={"subject": "Welcome", "html": "<h1>Welcome, Alice</h1>"},
)
# Optional sender: inline={..., "from_local": "orders", "from_name": "Winwell Orders",
# "reply_to": "support@example.com"}
template = beaco.templates.create("welcome", "email", "Hi {{ name }}")
beaco.templates.upsert_by_name("welcome", "<h1>Hi {{ name }}</h1>")
notification = beaco.notifications.retrieve("ntf_123")
scheduled = beaco.scheduled_events.create(
"renewal.reminder",
[{"channels": ["email"], "email": "user@example.com"}],
"2026-10-02T09:00:00Z",
)
suppression = beaco.suppressions.create("email", "blocked@example.com")
Attachments
Attach files to an email event with attachments. Beaco never stores them: the email provider
downloads each url when sending, so the URL must stay reachable until delivery succeeds,
including retries. size_bytes is the size you declare; up to 10 files and 30 MB in total.
beaco.events.publish(
"invoice.issued",
[{"channels": ["email"], "email": "user@example.com"}],
inline={"subject": "Your invoice", "html": "<p>Invoice attached.</p>"},
attachments=[
{"filename": "invoice.pdf", "url": "https://files.example.com/a.pdf", "size_bytes": 48213}
],
)
Invalid attachments raise ValueError before any request is made. URLs must be publicly
reachable: private and internal addresses are refused.
Requires Python 3.9 or newer. This package is server-only: never expose a project API key in browser code.
Metadata
Release files for beaco 0.2.4
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| beaco-0.2.4.tar.gz | 13.4 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| beaco-0.2.4-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 27.9 kB
Release files / beaco-0.2.4.tar.gz
| Download URL | beaco-0.2.4.tar.gz |
|---|---|
| Size | 13.4 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
a9e217da24db2ccb6812649523d5f54324d9a34cc0fda89f1640d364c6c82ce4
|
|
BLAKE2b-256 checksum How to use checksums |
43492cd34962a1ea1c47912ceedcd4b8117206a94c955c217b95c7ee7f0fd58e
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.12.10 {"installer":{"name":"uv","version":"0.12.10","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
|
Release files / beaco-0.2.4-py3-none-any.whl
| Download URL | beaco-0.2.4-py3-none-any.whl |
|---|---|
| Size | 14.5 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
b5c359f673b851bac4a5a9e309c0de18030ba133697842b32d3fbc225a63435b
|
|
BLAKE2b-256 checksum How to use checksums |
0318da017206968a6e8ef81b33ad5cb757c61396ac3decf3cf0c7202dd7467c5
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.12.10 {"installer":{"name":"uv","version":"0.12.10","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
|