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-idRequires 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
| Parameter | Type | Default | Description |
|---|---|---|---|
base_url | str | required | Avnology ID instance URL |
api_key | str | None | API key for service account auth |
client_id | str | None | OAuth client ID |
client_secret | str | None | OAuth client secret |
timeout | float | 30.0 | Request timeout in seconds |
retries | int | 3 | Maximum retry attempts |
retry_delay | float | 1.0 | Initial retry delay in seconds |
headers | dict[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
- Configuration -- Advanced configuration
- Authentication -- Login and sessions
- OAuth 2.1 -- Authorization flows
- Admin API -- User management
- Type Reference -- Dataclass types
- Error Reference -- Exception classes