Skip to main content

Official Python SDK for RightOS - privacy-preserving rights verification API (digital QR tickets for queues, reservations, EV charging, package pickup).

Project description

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

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.

Project details


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.1.tar.gz (6.9 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.1-py3-none-any.whl (6.9 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: rightos_sdk-0.4.1.tar.gz
  • Upload date:
  • Size: 6.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.6

File hashes

Hashes for rightos_sdk-0.4.1.tar.gz
Algorithm Hash digest
SHA256 e510eb7865870d5f3816c672ac1cfbf200d9b7530ca88f26c0496983f0bd3031
MD5 fae4e7020d7091d708726f71392bce0e
BLAKE2b-256 45dc7782e0d214fbb33bfc29b7ca11eccaf1a79d3d8fbb0c3548a0ee62bee6ab

See more details on using hashes here.

File details

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

File metadata

  • Download URL: rightos_sdk-0.4.1-py3-none-any.whl
  • Upload date:
  • Size: 6.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.6

File hashes

Hashes for rightos_sdk-0.4.1-py3-none-any.whl
Algorithm Hash digest
SHA256 313b7ef1888829b494b35f7e32ff9ccab1b63c216cd5c3e2b32f351850233157
MD5 53eb207ac1007affbdb483d6fe1ce153
BLAKE2b-256 44a20f5e90ca666cf91308c756dd097bb060102f0d54d53956d5f73ce3d15a47

See more details on using hashes here.

Supported by

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