Python SDK
The OpenApp Python SDK (openapp-sdk) is the official async-first Python
client. It ships prebuilt native wheels for common platforms, with a
pure-Python fallback based on
httpx when no native wheel is available.
Package & source
Section titled “Package & source”| Package registry | PyPI openapp-sdk |
| Source code | GitHub (python/) |
| README | README.md on GitHub |
| Changelog | CHANGELOG.md |
| Issues | GitHub issues |
Install
Section titled “Install”pip install openapp-sdkRequires Python 3.10+. Prebuilt wheels are published for:
- Linux: manylinux2014 x86_64, aarch64
- macOS: 13+ x86_64, 14+ arm64
- Windows: x86_64
If no wheel exists for your platform, pip installs the sdist and the SDK
transparently falls back to the pure-Python transport. Everything still
works; you may see reduced throughput compared to the native wheel.
Minimal example
Section titled “Minimal example”from openapp_sdk import Client
client = Client.connect( api_key="https://api.openapp.house/api/v1_openapp_YOUR_SECRET",)
print(client.status.get())
for org in client.orgs.list(): print(org["id"], org["name"])For async code:
import asynciofrom openapp_sdk import AsyncClient
async def main(): async with await AsyncClient.connect(api_key="...") as client: print(await client.status.get())
asyncio.run(main())Both clients expose the same sub-clients and semantics; the sync one is a thin façade that runs the async one on a private event loop.
Next steps
Section titled “Next steps”- Authentication — API keys and base URLs.
- Resources — the 15 sub-clients (orgs, devices,
entities, OpenApp Scripting via
client.scripting, …). - Errors — the typed exception hierarchy.
- Async usage —
AsyncClient, context managers, and cancellation. - Typing & Pydantic — using the optional Pydantic models.
- Observability — logging and tracing integration.
- Migration — versioning policy and upgrade notes.
HTTP contract: API reference · OpenAPI JSON