Skip to main content

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)

Source distribution for openbot-sdk 0.3.0
File Size Uploaded
openbot_sdk-0.3.0.tar.gz 11.6 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for openbot-sdk 0.3.0
File Interpreter ABI Platform
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 log

Release 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

Release history Release notifications | RSS feed

This release

0.3.0 This release

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page