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/fundsGET /v1/funds/{fund_id}GET /v1/funds/{fund_id}/snapshotsGET /v1/funds/{fund_id}/eventsGET /v1/events?type=fund.snapshot.updated&type=fund.disclosure.updated- webhook subscriptions filtered to
fund.snapshot.updatedandfund.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.toolUse 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.toolRead:
latest_snapshotlatest_holdings_snapshotlatest_snapshot.as_of_datelatest_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.toolUse 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.toolUse 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())Recommended rule
In the portal:
- Create a webhook endpoint
- Choose the Fund monitoring preset
- Keep event types:
fund.snapshot.updatedfund.disclosure.updated
- Add fund IDs if you want a narrowed rule
- Leave company IDs empty
Example webhook payload usage
Receiver flow:
- verifies the Atlas signature
- checks the event type
- stores
event.idfor idempotency - fetches additional fund detail if needed
- 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:
- receive or read
fund.disclosure.updated - fetch the latest snapshot
- compare
top_holdingsor holdings-derived fields in your own workflow
Recommended first production path
For most teams:
- sync the fund catalog
- register a webhook endpoint and fund-monitoring subscription
- read event feeds periodically for reconciliation and backfill
See Webhooks and Event Feeds and Sandbox Testing before you go live.