PyOutlineAPI
Enterprise-grade async Python client for Outline VPN Server Management API
Overview
PyOutlineAPI is a modern, production-ready Python library for managing Outline VPN servers. It is async-first, type-safe, and designed for reliable operation in production.
Highlights:
- Async-first client built on aiohttp
- Certificate pinning + sensitive data protection
- Circuit breaker, health monitoring, retries with backoff
- Typed models (Pydantic v2) + rich validation
- Batch operations and rate limiting
Installation
Requirements: Python 3.10+
Using pip:
pip install pyoutlineapi
Using uv (recommended):
uv add pyoutlineapi
Optional dependencies:
# Development tools
pip install pyoutlineapi[dev]
Quick Start
1) Setup configuration
# Generate .env template
python -c "from pyoutlineapi import quick_setup; quick_setup()"
# Edit .env.example → .env
OUTLINE_API_URL=https://your-server.com:12345/your-secret-path
OUTLINE_CERT_SHA256=your-64-character-sha256-fingerprint
2) Minimal usage
from pyoutlineapi import AsyncOutlineClient
import asyncio
async def main():
async with AsyncOutlineClient.from_env() as client:
server = await client.get_server_info()
print(f"Server: {server.name} (v{server.version})")
key = await client.create_access_key(name="Alice")
print(f"Access URL: {key.access_url}")
keys = await client.get_access_keys()
print(f"Total keys: {keys.count}")
asyncio.run(main())
Documentation
Detailed examples and guides are in docs/guides/. Start with the index:
- Guides index (full list)
- Access keys
- Server management
- Metrics
- Enterprise features
- Configuration
- Error handling
- Best practices
License
MIT. See LICENSE.
Metadata
Release files for pyoutlineapi 0.4.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 | Actions |
|---|---|---|---|---|
| pyoutlineapi-0.4.0.tar.gz | 102.5 kB | Without provenance | Details for pyoutlineapi-0.4.0.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| pyoutlineapi-0.4.0-py3-none-any.whl | Python 3 | none | any | Details for pyoutlineapi-0.4.0-py3-none-any.whl |
Total release size: 183.5 kB
Release files / pyoutlineapi-0.4.0.tar.gz
| Download URL | pyoutlineapi-0.4.0.tar.gz |
|---|---|
| Size | 102.5 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
fcd5dea7e4952277a6e8b3f6710fdb1d1cde9f06635ed1fb91bf06992545ee11
|
|
BLAKE2b-256 checksum How to use checksums |
de47a3464b5f4215fc2bdecedeed8519673d348031dc7000200c6e9388927093
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.13.11
|
Release files / pyoutlineapi-0.4.0-py3-none-any.whl
| Download URL | pyoutlineapi-0.4.0-py3-none-any.whl |
|---|---|
| Size | 81.1 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
70bd406558957dcb5997aada587a0e217c7b9a4b9ffe73b3948fadd7635fd994
|
|
BLAKE2b-256 checksum How to use checksums |
2982f4f4926f42dd38e01deb7114107c06c05af78878023ecae05311dd4887ba
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.13.11
|
Security for pyoutlineapi 0.4.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.
To learn more about protecting yourself from malicious actors, visit our package security documentation.