Skip to main content

rightos-sdk — RightOS Python SDK

Official Python SDK for RightOS — privacy-preserving rights verification infrastructure. Issue and verify digital QR tickets ("Right Tokens") for queues, reservations, EV charging, and package pickup, without ever collecting end users' names or phone numbers.

  • Zero dependencies (standard library only), Python ≥ 3.9
  • Machine-readable spec: openapi.json · AI-agent docs: llms-full.txt

Links: Sign up free · Pricing · MCP setup · Use cases · Usage insights

RightOS is not a taxi or ride-hailing service. It does not arrange vehicles, set fares, assign drivers, or broker dispatch.

Install

pip install rightos-sdk

Quickstart (60 seconds)

from rightos import RightOS

# 1. Register once (the apiKey is returned EXACTLY ONCE — store it securely)
pub = RightOS()
reg = pub.register_organization(name="My Shop", contact_email="you@example.com", plan_id="free")
api_key = reg["apiKey"]

# 2. Operator client
client = RightOS(api_key=api_key)

# 3. Issue a digital QR ticket
location = client.list_locations()[0]
issued = client.issue_token(location_id=location["id"], title="Queue ticket")
print("Hand this to your customer:", issued["walletUrl"])

# 4. Verify on arrival (no API key needed)
outcome = RightOS().verify_token(issued["token"]["id"], issued["verificationCode"])
print(outcome["result"])  # "success"

# 5. Mark as used after service
client.use_token(issued["token"]["id"])

Location policies (Policy Engine)

policy = client.get_location_policy(location["id"])["policy"]
# {"transferable": True, "maxTransfers": 3, "defaultValidityMinutes": 720, ...}

client.set_location_policy(location["id"], {"transferable": False})  # override
client.set_location_policy(location["id"], None)  # reset to industry preset

# The full knowledge base — industry presets and country overlays
# (JP/US/GB/KR/TW/FR/DE/IT/ES/AU, informed by local ticket-resale laws):
defs = client.list_policies()  # defaults, not legal advice

Webhooks (v0.4.0+)

Receive a signed HTTPS POST whenever a token is verified, used, cancelled, or transferred (up to 3 webhooks per organization):

from rightos import RightOS, verify_webhook_signature

client = RightOS(api_key="rk_live_...")

# Register — the signing secret is returned EXACTLY ONCE
created = client.create_webhook(
    "https://example.com/rightos/hook",
    events=["token.verified", "token.used"],  # defaults to all four
)
secret = created["secret"]  # "whsec_..."

# In your receiver: verify the x-rightos-signature header against the RAW body
ok = verify_webhook_signature(secret, request.headers["x-rightos-signature"], raw_body)
# respond 2xx immediately; process asynchronously

client.list_webhooks()  # never includes secrets
client.delete_webhook(created["webhook"]["id"])

Delivery is best-effort (3s timeout, no retries). Signature format: t=<unix seconds>,v1=<hex HMAC-SHA256(secret, f"{t}.{raw_body}")>.

Error handling

from rightos import RightOS, RightOSError

try:
    RightOS().transfer_token(token_id, code)
except RightOSError as e:
    if e.code == "policy_transfer_disabled":
        ...  # this location forbids transfers
    elif e.status == 429:
        ...  # rate limited; wait e.retry_after_sec

Common codes: missing_api_key / invalid_api_key (401), plan limits (402), policy_transfer_disabled / transfer_limit_reached (409), rate_limited (429).

Try it against the live demo

demo = RightOS(api_key="rk_demo_00000000000000000000")  # shared demo org
print(demo.list_locations())

License

MIT © I-S3 Inc.

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

rightos_sdk-0.4.4.tar.gz (6.8 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

rightos_sdk-0.4.4-py3-none-any.whl (7.0 kB view details)

Uploaded Python 3

File details

Details for the file rightos_sdk-0.4.4.tar.gz.

File metadata

  • Download URL: rightos_sdk-0.4.4.tar.gz
  • Upload date:
  • Size: 6.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for rightos_sdk-0.4.4.tar.gz
Algorithm Hash digest
SHA256 3456c14a59208c8a1b5c98ddeb8ed514544665c24deee849e68be1d3682a4e9a
MD5 f5302011f09ef04a60029ff05e0dbe4e
BLAKE2b-256 2be4074cb4863e118bbf8ece83977ed1cf52a205520c83b7b19c4c0d8f09ac76

See more details on using hashes here.

Provenance

The following attestation bundles were made for rightos_sdk-0.4.4.tar.gz:

Publisher: python-publish.yml on suomimasuda/rightos-sdk

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file rightos_sdk-0.4.4-py3-none-any.whl.

File metadata

  • Download URL: rightos_sdk-0.4.4-py3-none-any.whl
  • Upload date:
  • Size: 7.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for rightos_sdk-0.4.4-py3-none-any.whl
Algorithm Hash digest
SHA256 4b2fb8b7ec6d6a14b7bb0fa43bb64d52fe5480e9944e716f034c22af2c1b0de4
MD5 87b4f7282df3684d601d6582aeb6770b
BLAKE2b-256 ad83c80c4299859dcdb5db66f64fe0ac59896ca45820e89f3170acf8a2d90e6e

See more details on using hashes here.

Provenance

The following attestation bundles were made for rightos_sdk-0.4.4-py3-none-any.whl:

Publisher: python-publish.yml on suomimasuda/rightos-sdk

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Release history Release notifications | RSS feed

This release

0.4.4 This release

2 files

0.4.1

2 files

0.4.0

2 files

0.3.0

2 files

0.2.0

2 files

0.1.0

2 files

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page