Python SDK for the RTLS REST API
Project description
RTLS SDK
A Python SDK for the RTLS REST API.
📖 Documentation: https://rtls-sdk.pages.dev
Three-step usage:
from rtls_sdk import RtlsClient
client = RtlsClient.from_env()
tags = client.tags.list()
That's it — token, refresh, scoping headers, 401 re-login are all internal. The first method call performs a lazy login; subsequent calls reuse the session.
What you get
- Compound workflows. One Python call replaces the multi-call
REST sagas the JS reference client makes you script — e.g.
tags.create(name="X", attached_zone="Z", groups=[...])runs the three-step create-and-attach with rollback on partial failure. - One exception hierarchy. Everything under
RtlsError:NotFound,ValidationError,RateLimited,ServerError,PartialFailureError,ReportFailed/ReportTimeout, … - Typed models. Pydantic v2 under the hood;
mypy --strictclean out of the box; shipspy.typed. - Mandatory redaction. No password, token, refresh-token, cookie,
or
Authorizationheader ever reaches a log handler. There is no opt-out flag. - Live streaming.
client.wsopens a WebSocket subscription and yields typed channel messages (positions, alarms, zone events, …). - Sync-only for v1. The async surface is on the v2 roadmap.
Install
pip install rtls-sdk
Python 3.10+ supported. See docs/install.md for
dev install and verification.
Quickstart
export RTLS_USERNAME="qa@example.com"
export RTLS_PASSWORD="hunter2"
export RTLS_BASE_URL="https://rtls.example.com"
from rtls_sdk import RtlsClient
with RtlsClient.from_env() as client:
for tag in client.tags.list():
print(tag.uid, tag.name)
For the full 5-minute walkthrough see
docs/quickstart.md.
Documentation
Full documentation: https://rtls-sdk.pages.dev
- Install · Quickstart
- Entity catalog — one page per entity (tags, sites, areas, floorplans, anchors, zones, nodes, users, reports, …) with methods, examples, and model fields.
- Guides — compound workflows, error handling, pagination, rate limiting, scope switching, timestamps, reports, floorplans, credential rotation.
- Advanced — BYO token, raw REST methods, logging, HTTP client override, security.
- Migrating from the JS client, plus an API reference auto-generated from docstrings.
Status
v0.6.2. See CHANGELOG.md for the full release history —
including the 0.6.0 breaking changes to the LSB orchestration surface
(update → save, no-arg start() / stop() returning bool) and the
Association → TagAssociation rename (client.associations is now
client.tag_associations).
License
MIT — see LICENSE.
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 rtls_sdk-0.6.2.tar.gz.
File metadata
- Download URL: rtls_sdk-0.6.2.tar.gz
- Upload date:
- Size: 112.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b4e2cdf0f60c713080bd01e149e28a7422b0f12dd748d4ca79c779e3e7d1eba8
|
|
| MD5 |
c5da9ee148af523f1fbf9e2bf7bd682c
|
|
| BLAKE2b-256 |
06b52519f44678848f37f7673c2676654917ab8860d25da2de72e66ad98828e0
|
Provenance
The following attestation bundles were made for rtls_sdk-0.6.2.tar.gz:
Publisher:
release.yml on rpplabs/rtls-sdk
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
rtls_sdk-0.6.2.tar.gz -
Subject digest:
b4e2cdf0f60c713080bd01e149e28a7422b0f12dd748d4ca79c779e3e7d1eba8 - Sigstore transparency entry: 2138599562
- Sigstore integration time:
-
Permalink:
rpplabs/rtls-sdk@fb8650087638f7f7309eae8fbf1d0a6dbdae0ff0 -
Branch / Tag:
refs/heads/master - Owner: https://github.com/rpplabs
-
Access:
private
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@fb8650087638f7f7309eae8fbf1d0a6dbdae0ff0 -
Trigger Event:
workflow_dispatch
-
Statement type:
File details
Details for the file rtls_sdk-0.6.2-py3-none-any.whl.
File metadata
- Download URL: rtls_sdk-0.6.2-py3-none-any.whl
- Upload date:
- Size: 153.9 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
43a27fa45e02b842d7124d85b2d2d93d4db040de50278fb94229c93373dd0204
|
|
| MD5 |
5eee361fffda8b3dacd71fc9322cf246
|
|
| BLAKE2b-256 |
ac641861b38de80c4ac53787d80834b5523d364eae3b984c2abf4135f592bf64
|
Provenance
The following attestation bundles were made for rtls_sdk-0.6.2-py3-none-any.whl:
Publisher:
release.yml on rpplabs/rtls-sdk
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
rtls_sdk-0.6.2-py3-none-any.whl -
Subject digest:
43a27fa45e02b842d7124d85b2d2d93d4db040de50278fb94229c93373dd0204 - Sigstore transparency entry: 2138599572
- Sigstore integration time:
-
Permalink:
rpplabs/rtls-sdk@fb8650087638f7f7309eae8fbf1d0a6dbdae0ff0 -
Branch / Tag:
refs/heads/master - Owner: https://github.com/rpplabs
-
Access:
private
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@fb8650087638f7f7309eae8fbf1d0a6dbdae0ff0 -
Trigger Event:
workflow_dispatch
-
Statement type: