Avnology ID
SDKsPython SDK

Python SDK

Install and use the avnology-id Python package for server-side and async applications.

Python SDK

The avnology-id package provides a type-safe Python client with both sync and async support for the Avnology ID API. It uses httpx for HTTP requests, dataclasses for type definitions, and pydantic for validation.

Installation

pip install avnology-id

Requires Python 3.10 or later.

Quick start

Synchronous client

from avnology_id import AvnologyId

client = AvnologyId(
    base_url="https://api.id.avnology.com",
    api_key="ak_live_...",
)

# List users
users = client.admin.list_users(page_size=50)
for user in users.users:
    print(f"{user.id}: {user.email}")

Async client

from avnology_id import AsyncAvnologyId

client = AsyncAvnologyId(
    base_url="https://api.id.avnology.com",
    api_key="ak_live_...",
)

users = await client.admin.list_users(page_size=50)

Client initialization

# With API key (service account)
client = AvnologyId(
    base_url="https://api.id.avnology.com",
    api_key="ak_live_...",
)

# With client credentials (OAuth M2M)
client = AvnologyId(
    base_url="https://api.id.avnology.com",
    client_id="app_abc123",
    client_secret="sk_live_...",
)

# Full configuration
client = AvnologyId(
    base_url="https://api.id.avnology.com",
    api_key="ak_live_...",
    timeout=15.0,        # Seconds (default: 30.0)
    retries=5,           # Max retries (default: 3)
    retry_delay=0.5,     # Initial retry delay in seconds (default: 1.0)
)

Configuration reference

ParameterTypeDefaultDescription
base_urlstrrequiredAvnology ID instance URL
api_keystrNoneAPI key for service account auth
client_idstrNoneOAuth client ID
client_secretstrNoneOAuth client secret
timeoutfloat30.0Request timeout in seconds
retriesint3Maximum retry attempts
retry_delayfloat1.0Initial retry delay in seconds
headersdict[str, str]{}Additional headers for all requests

Namespace structure

client = AvnologyId(base_url="...")

# Authentication
client.login(...)
client.register(...)
client.get_session(...)

# OAuth 2.1
client.oauth.build_authorization_url(...)
client.oauth.exchange_code(...)

# Permissions
client.permissions.check(...)

# Admin API
client.admin.list_users(...)
client.admin.create_organization(...)

Next steps

On this page