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
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
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file rightos_sdk-0.1.0.tar.gz.
File metadata
- Download URL: rightos_sdk-0.1.0.tar.gz
- Upload date:
- Size: 5.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.14.6
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
c0ee8337ddaf4d457c4340b69fdad290b6732e2cca243b15ea7e5079b206090a
|
|
| MD5 |
d1f89c65aa3e1307ac6eabc134344cc2
|
|
| BLAKE2b-256 |
84b09ecaf95c4608bc810b8d20bad56f83762530e492e6b9c8be1dfcc838abf3
|
File details
Details for the file rightos_sdk-0.1.0-py3-none-any.whl.
File metadata
- Download URL: rightos_sdk-0.1.0-py3-none-any.whl
- Upload date:
- Size: 5.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.14.6
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
6b2ad6862b6d53da2623849d4327431a0b85c10878f82892ec439a589a9e4c2d
|
|
| MD5 |
ab166cf73cd2a3888669a5d166a3eb96
|
|
| BLAKE2b-256 |
9c74f82f05348ec1a8f9057b1b80d1de1ca1f146e362a209968dcb2e0d5ee344
|