usenadia
Python SDK for the UseNadia public API (/public/v1) — schedule posts,
manage channels, and drive the Instagram comment/story → DM machinery.
pip install usenadia
from usenadia import Nadia, NadiaError
nadia = Nadia(api_key=os.environ["USENADIA_API_KEY"])
channels = nadia.integrations()
try:
nadia.post({
"type": "schedule",
"date": "2026-10-01T09:00:00.000Z",
"shortLink": False,
"tags": [],
"posts": [{
"integration": {"id": channels[0]["id"]},
"value": [{"content": "Hello from the SDK", "image": []}],
"settings": {},
}],
})
except NadiaError as err:
print(err.status, err) # 402 You have reached your limit
The content board
Every card of the board in the app is reachable: create one from anywhere (a voice note, a Notion page, a DM), move it along, read its numbers once it is published.
card = nadia.create_content(
"Three mistakes when moving to Malta",
hook="Nobody told me about the third one.",
)
nadia.move_content(card["id"], "SCRIPT")
nadia.update_content(card["id"], script="…")
# Scheduled with nadia.post({..., "posts": [{"group": "g-42", ...}]}):
nadia.link_content_post(card["id"], "g-42") # → PUBLISHED when it goes live
numbers = nadia.contents_performance() # keyed by card id
Columns, in order: IDEA, SCRIPT, VALIDATED, TO_SHOOT, TO_EDIT,
TO_SCHEDULE, PUBLISHED.
How it is built
Two layers, and the split is deliberate.
usenadia/generated/— the transport. Generated fromopenapi.public.jsonbyopenapi-python-client(httpx + attrs), covers every operation, never edited by hand, not committed.usenadia/__init__.py— this SDK's own surface: theNadiaclass, sane defaults, typed errors, retries. Small, hand-written, reviewed.
Anything the facade does not wrap is reachable through nadia.raw, the
configured generated client.
Errors
Every response with a status ≥ 400 raises a NadiaError carrying status,
body and the API's msg. err.is_transient is true for 429 and 5xx — those
are retried automatically (twice by default, Nadia(key, retries=0) to turn
it off).
Regenerating
pnpm run sdk:generate # from the repo root — regenerates both SDKs
Plan: docs/roadmap/19-sdk-public-api.md.
Metadata
Release files for usenadia 0.1.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | |
|---|---|---|---|---|
| usenadia-0.1.0.tar.gz | 76.4 kB | Without provenance | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| usenadia-0.1.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 329.8 kB
Release files / usenadia-0.1.0.tar.gz
| Download URL | usenadia-0.1.0.tar.gz |
|---|---|
| Size | 76.4 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
e5ba51e6c9e4de07cb3bf9edd4b271ecdf0dda5489270f11a7135002f8f82207
|
|
BLAKE2b-256 checksum How to use checksums |
74d1d5f7b81930236a5fea46f0717788d269c1c42e5add99082027f0568a5919
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
uv/0.13.4 {"installer":{"name":"uv","version":"0.13.4","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
|
Release files / usenadia-0.1.0-py3-none-any.whl
| Download URL | usenadia-0.1.0-py3-none-any.whl |
|---|---|
| Size | 253.4 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
df1dc36e5e16211efb123688f474631979a85df68dc330561bade87db1bb9432
|
|
BLAKE2b-256 checksum How to use checksums |
76fe5e6cb5badad6ded04f86f0bc788074b198ea4308a02a3f94aa0b7a96642b
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
uv/0.13.4 {"installer":{"name":"uv","version":"0.13.4","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
|
Security for usenadia 0.1.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.
No provenance found
None of the files in this release were uploaded with provenance metadata.
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.