openbot-sdk
openbot-sdk is the thin Python client for the
OpenBot.ai platform API.
It handles API-key authentication, HTTP requests, timeouts, bounded retries, and typed errors. It does not process robot data and is not tied to a Hosted Data product.
Install
pip install openbot-sdk
Requires Python 3.9+.
Authentication
export OPENBOT_API_KEY="ob_..."
from openbot_sdk import Client
client = Client() # reads OPENBOT_API_KEY
status = client.request("GET", "/status")
print(status)
You can also pass the key explicitly:
client = Client(api_key="ob_...")
Call platform APIs
Use request for JSON APIs and request_bytes for byte responses:
payload = client.request(
"POST",
"/some-resource",
json={"name": "example"},
headers={"Idempotency-Key": "request-123"},
)
content = client.request_bytes("GET", "/some-artifact")
Only call routes published in the current OpenBot OpenAPI document. As the platform adds real APIs, the SDK may add small convenience wrappers for those same contracts.
The SDK intentionally has no Bench, Synth, or Hosted Data resource wrapper.
Convenience wrappers correspond to operations in the checked OpenAPI contract;
request(...) remains the forward-compatible escape hatch.
Errors, retries, and security
from openbot_sdk import APIError, NetworkError
try:
payload = client.request("GET", "/status")
except APIError as exc:
print(exc.status_code)
except NetworkError as exc:
print(exc)
The client retries idempotent methods on transport errors, 429, and
transient 5xx responses. Mutations carrying an Idempotency-Key are retried
with the same key only where that is safe: transport errors, 429, 503
(for example settlement_pending), 504, and 409 invocation_in_progress.
A 502 is returned immediately, because the gateway burns the key when the
upstream fails; retry that call with a new key. For POST /v1/invoke/:slug,
create the client with timeout (seconds) larger than the API's
x-openbot-timeout-ms, so a slow upstream is not mistaken for a network failure.
Plain HTTP base URLs are rejected by default; enable them only for explicit
local testing.
Development
pip install -e ".[dev]"
python scripts/check_version.py
python scripts/check_openapi_contract.py /path/to/openapi.json
pytest -v
ruff check src tests
mypy src
python -m build
VERSION is the package version source of truth. Release tags use v<version>.
Package boundaries
openbot-sdk: OpenBot platform API client.openbot-data: local robot/ego data processing library.- OpenBot platform: server-side API implementation and infrastructure.
License
MIT
Release files for openbot-sdk 0.3.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 | |
|---|---|---|---|
| openbot_sdk-0.3.0.tar.gz | 11.6 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| openbot_sdk-0.3.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 20.2 kB
Release files / openbot_sdk-0.3.0.tar.gz
| Download URL | openbot_sdk-0.3.0.tar.gz |
|---|---|
| Size | 11.6 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
5157dd6cd00968c4b5f3514a029e53329a4234af3be02849028bab788b281bde
|
|
BLAKE2b-256 checksum How to use checksums |
a43ea5d94679b4fcf56ca48a2a41095a4d95e79ba7e82abf83210168789fb0a2
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
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.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 25, 2026.
Transparency logRelease files / openbot_sdk-0.3.0-py3-none-any.whl
| Download URL | openbot_sdk-0.3.0-py3-none-any.whl |
|---|---|
| Size | 8.5 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
f441d8f1282742222f0c916a5ec7de586152b26918f54d2872cb8995b30c6ca1
|
|
BLAKE2b-256 checksum How to use checksums |
51938cb63af36272a6a0e6c858e2599ba27a7c7f6d440764418f3fabde35de32
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
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.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 25, 2026.
Transparency log