1.8 KiB
1.8 KiB
Conduit Python Client
Small synchronous Python client for the Conduit / Mega API gateway.
from conduit import Client
client = Client.from_env()
print(client.health())
print(client.auth.me())
print(client.keys.list())
Configure it with environment variables:
export MEGA_API_BASE_URL=https://api.cowtunnel.com
export MEGA_API_KEY='mega_sk_live_...'
Do not put raw API keys in source files. Mega API keys are shown once by the gateway and should live in environment variables, a secret manager, or a local ignored config file.
Common Calls
from conduit import Client
client = Client(base_url="https://api.cowtunnel.com", api_key="...")
client.services.list()
client.sms.history(limit=1)
client.dns.server_status()
client.compute.resources(type="vm")
client.media.library.search(term="matrix", limit=5)
client.media.ingest.jobs()
Key management:
created = client.keys.create(
display_name="automation",
scopes=["gateway:read", "sms:read"],
)
print(created["key"]) # shown only once
client.keys.revoke(created["key_prefix"])
Admin audit:
client.admin.audit(scope="sms:send", result="denied")
Errors
The library raises:
| Exception | Meaning |
|---|---|
MegaAPIConfigError |
Invalid/missing client configuration |
MegaAPIHTTPError |
Non-2xx response; includes status_code, detail, and body |
MegaAPIConnectionError |
Could not reach the gateway |
MegaAPIResponseError |
Gateway returned malformed JSON where JSON was expected |
Naming
The import package is conduit for the private package registry. The public PyPI
name conduit is already used by an unrelated project, so publish publicly as
conduit-client if this ever leaves the private registry. megaapi remains as a
compatibility import alias.