Skip to main content

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 --strict clean out of the box; ships py.typed.
  • Mandatory redaction. No password, token, refresh-token, cookie, or Authorization header ever reaches a log handler. There is no opt-out flag.
  • Live streaming. client.ws opens 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 (updatesave, no-arg start() / stop() returning bool) and the AssociationTagAssociation 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

rtls_sdk-0.6.2.tar.gz (112.0 kB view details)

Uploaded Source

Built Distribution

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

rtls_sdk-0.6.2-py3-none-any.whl (153.9 kB view details)

Uploaded Python 3

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

Hashes for rtls_sdk-0.6.2.tar.gz
Algorithm Hash digest
SHA256 b4e2cdf0f60c713080bd01e149e28a7422b0f12dd748d4ca79c779e3e7d1eba8
MD5 c5da9ee148af523f1fbf9e2bf7bd682c
BLAKE2b-256 06b52519f44678848f37f7673c2676654917ab8860d25da2de72e66ad98828e0

See more details on using hashes here.

Provenance

The following attestation bundles were made for rtls_sdk-0.6.2.tar.gz:

Publisher: release.yml on rpplabs/rtls-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 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

Hashes for rtls_sdk-0.6.2-py3-none-any.whl
Algorithm Hash digest
SHA256 43a27fa45e02b842d7124d85b2d2d93d4db040de50278fb94229c93373dd0204
MD5 5eee361fffda8b3dacd71fc9322cf246
BLAKE2b-256 ac641861b38de80c4ac53787d80834b5523d364eae3b984c2abf4135f592bf64

See more details on using hashes here.

Provenance

The following attestation bundles were made for rtls_sdk-0.6.2-py3-none-any.whl:

Publisher: release.yml on rpplabs/rtls-sdk

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

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