OpenApp SDKs

Typed SDKs for your stack. Same wire, same behavior.

Idiomatic clients that handle authentication, retries, and telemetry for you. Full coverage of the public OpenApp API, generated from the same contract that powers the reference — so the types in your code match the wire, always.

Available SDKs

All SDKs share the same wire contract, error model, and authentication scheme as the public OpenApp API.

Python
Available

Async-first client (AsyncClient) plus a synchronous facade (Client), typed via py.typed, with optional Pydantic v2 integration.

  • Prebuilt wheels for Linux, macOS, and Windows
  • Pure-Python fallback for exotic platforms
  • Full OpenAPI coverage (15 resource groups)
Coming soon
Roadmap

More languages are on the way. Under active consideration:

  • Go
  • TypeScript / Node
  • .NET (C#)
  • Ruby

Need another language? Tell us which one.

What you get

Every OpenApp SDK is designed around the same principles, so you can reach for whichever language fits your stack without giving up ergonomics or safety.

  • Batteries included
    Authentication, automatic retries with backoff, and structured telemetry are handled for you out of the box.
  • Typed, always current
    Idiomatic types for every resource and response, generated from the same contract that powers our API reference — so your editor's autocomplete is never behind the API.
  • Consistent across languages
    The same authentication, retry, and error-handling behavior across every official SDK. Learn one, know them all.
python · sync example
10 LOC end-to-end
from openapp_sdk import Client
from openapp_sdk.errors import ApiError

client = Client.connect(api_key="https://api.openapp.house/api/v1_openapp_YOUR_SECRET")

try:
    whoami = client.auth.whoami()
    print(whoami["email"])
    for org in client.orgs.list():
        print(org["id"], org["name"])
except ApiError as err:
    print(f"{err.status} {err.code}: {err.message}")

Ready to build?

Grab an API key from the dashboard, install the SDK, and you're shipping. Questions, roadmap feedback, or want early access to a new language binding? Get in touch.