AAtlas API
Integrate

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 ranglerpy

Use pip.

pip install ranglerpy

Publish 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 publish

For 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.

On this page