AAtlas API
Workflows

Fund Monitoring

Monitor fund disclosures, NAV updates, and manager activity through webhooks and event-feed reconciliation.

Use this workflow when you need to:

  • keep a fund catalog current across managers
  • refresh latest NAV or snapshot data in a product or internal workflow
  • detect new disclosures and holdings updates
  • trigger downstream notifications or review flows when a tracked fund changes

What Atlas gives you

The fund workflow package is built from:

  • GET /v1/funds
  • GET /v1/funds/{fund_id}
  • GET /v1/funds/{fund_id}/snapshots
  • GET /v1/funds/{fund_id}/events
  • GET /v1/events?type=fund.snapshot.updated&type=fund.disclosure.updated
  • webhook subscriptions filtered to fund.snapshot.updated and fund.disclosure.updated

In the portal, the matching preset is Fund monitoring.

Start with webhooks

Start with webhooks when fund updates should drive a customer-facing product, internal alert, or review workflow.

Catalog sync

Fetch the latest fund catalog:

curl -s "https://sandbox-api.rangler.co/v1/funds?limit=50" \
  -H "X-API-Key: atl_test_your_key_here" | python3 -m json.tool

Use this to bootstrap tracked fund IDs into your system.

Latest NAV refresh

Fetch one fund with its latest snapshot:

curl -s "https://sandbox-api.rangler.co/v1/funds/{fund_id}" \
  -H "X-API-Key: atl_test_your_key_here" | python3 -m json.tool

Read:

  • latest_snapshot
  • latest_holdings_snapshot
  • latest_snapshot.as_of_date
  • latest_snapshot.price

With ranglerpy:

from ranglerpy import RanglerClient

client = RanglerClient(api_key="atl_test_your_key_here", environment="sandbox")
fund = client.funds.get("fund_uuid_here")

print(fund["name"], fund["latest_snapshot"]["as_of_date"], fund["latest_snapshot"]["price"])

Latest disclosure update

Fetch historical snapshots for one fund:

curl -s "https://sandbox-api.rangler.co/v1/funds/{fund_id}/snapshots?limit=12" \
  -H "X-API-Key: atl_test_your_key_here" | python3 -m json.tool

Use this for disclosure history, not just the latest state.

With ranglerpy:

from ranglerpy import RanglerClient

client = RanglerClient(api_key="atl_test_your_key_here", environment="sandbox")
snapshots = client.funds.list_snapshots("fund_uuid_here", limit=12)

for snapshot in snapshots["items"]:
    print(snapshot["as_of_date"], snapshot["factsheet_title"], snapshot["disclosure_kind"])

Read the event feed for reconciliation

curl -s "https://sandbox-api.rangler.co/v1/events?type=fund.snapshot.updated&type=fund.disclosure.updated&limit=25" \
  -H "X-API-Key: atl_test_your_key_here" | python3 -m json.tool

Use ranglerpy for backfills and missed-delivery checks:

from ranglerpy import RanglerClient

client = RanglerClient(api_key="atl_test_your_key_here", environment="sandbox")

for event in client.v1.events.auto_paging_iter(
    event_types=["fund.snapshot.updated", "fund.disclosure.updated"],
    limit=100,
):
    print(event.type, event.fund_id, event.occurred_at.isoformat())

In the portal:

  1. Create a webhook endpoint
  2. Choose the Fund monitoring preset
  3. Keep event types:
    • fund.snapshot.updated
    • fund.disclosure.updated
  4. Add fund IDs if you want a narrowed rule
  5. Leave company IDs empty

Example webhook payload usage

Receiver flow:

  1. verifies the Atlas signature
  2. checks the event type
  3. stores event.id for idempotency
  4. fetches additional fund detail if needed
  5. updates downstream state or sends a human alert

See Webhooks for signature verification and SDKs for ranglerpy helpers.

Top-holdings change monitoring

Atlas does not yet ship a dedicated “holdings diff” event type.

For now:

  1. receive or read fund.disclosure.updated
  2. fetch the latest snapshot
  3. compare top_holdings or holdings-derived fields in your own workflow

For most teams:

  1. sync the fund catalog
  2. register a webhook endpoint and fund-monitoring subscription
  3. read event feeds periodically for reconciliation and backfill

See Webhooks and Event Feeds and Sandbox Testing before you go live.

On this page