SDKs
Rangler SDKs give your team one integration surface across webhooks, event reads, and control plane workflows.
Rangler SDKs cover webhook verification, event parsing, API reads, and control plane helpers.
Install Python
Use uv.
uv add ranglerpyUse pip.
pip install ranglerpyPublish Python
uv add ranglerpy works after the ranglerpy distribution exists on PyPI.
Reserve the package name on PyPI before the first release. Use a PyPI API token for manual releases, or trusted publishing from GitHub Actions once release automation is ready.
Run this from the package repo.
python scripts/update_version.py 0.1.1
python -m unittest discover -s tests -v
uv build --no-sources
UV_PUBLISH_TOKEN=pypi-your-project-token uv publishFor a dry run, publish to TestPyPI first.
UV_PUBLISH_TOKEN=pypi-your-test-token uv publish \
--publish-url https://test.pypi.org/legacy/ \
--check-url https://test.pypi.org/simple/ranglerpy/Verify install from a clean project.
uv init rangler-install-check
cd rangler-install-check
uv add ranglerpy
uv run python -c "import ranglerpy; print(ranglerpy.__version__)"Current SDK
ranglerpy is first because Python is the shortest path for fintech backends, internal automation, research workflows, and compliance tooling.
It ships with these pieces.
- sync and async API clients
client.v1.*resources for the current public API- list responses with
data - dynamic response objects with dict and attribute access
- webhook signature verification
- webhook idempotency helpers
- event feed helpers for backfills and reconciliation
- developer control plane helpers for organizations, API keys, subscriptions, usage, and webhook endpoints
Auth Model
Rangler has two auth modes.
- data plane resources use
api_key - developer control plane resources use
bearer_token
Pass both credentials when one process uses both surfaces.
from ranglerpy import RanglerClient
client = RanglerClient(
api_key="rgl_test_your_key_here",
bearer_token="your_portal_bearer_token",
environment="sandbox",
)An API key alone is not enough for portal backed control plane helpers.
Webhooks
Use Webhook.construct_event as the canonical receiver entry point.
from ranglerpy import InMemoryIdempotencyStore, Webhook
event = Webhook.construct_event(
headers=headers,
raw_body=raw_body,
secret=webhook_secret,
idempotency_store=InMemoryIdempotencyStore(),
)
print(event.id)
print(event.type)
print(event.display.title)
print(event.data.object.id)Rangler webhook events follow an event envelope with a resource inside data.object.
{
"id": "evt_...",
"object": "event",
"api_version": "v1",
"type": "filing.new",
"display": {
"title": "MAY & BAKER NIGERIA PLC published an AGM notice"
},
"data": {
"object": {
"id": "filing_...",
"object": "filing"
}
}
}display is for humans. data.object is for code. If an enriched signal is attached, read it from event.data.signal.
Read events for backfill
Use client.v1.events when you need market wide, issuer scoped, or fund scoped reads for backfill and reconciliation.
from ranglerpy import RanglerClient
client = RanglerClient(api_key="rgl_test_your_key_here", environment="sandbox")
for event in client.v1.events.auto_paging_iter(
event_types=["filing.new", "dividend.declared"],
limit=100,
):
print(event.id, event.type, event.company_id)Metadata
Rangler does not currently expose customer writable metadata on public API resources.
When metadata is added, use it only for customer controlled key value data that helps your own system reconcile Rangler resources.
Do not use future metadata for secrets, credentials, access decisions, or values that should be visible in the Rangler product.
Example use cases.
- store your internal company identifier on a watchlist entry
- store your internal workflow identifier on a webhook subscription
- store a reconciliation key that lets your job connect Rangler events to your own records
See Metadata.
Integration Choice
Use the SDK when you want webhook verification, typed event parsing, and API helpers.
Use direct HTTP when you need total control or want to inspect the API quickly.
Start with webhooks for product workflows. Use event reads for backfill, reconciliation, and initial data loading.
See Webhooks and Event Feeds and Quickstart.