Files
2026-07-05 17:41:15 +00:00
..
2026-07-05 17:41:15 +00:00
2026-07-05 17:41:15 +00:00
2026-07-05 17:41:15 +00:00

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.