Developers

Netrivo Indexer API

OpenAPI 1.0 · 57 operations across 19 groups

API key required on every request

All endpoints — including the Trial tier — require a key in theAuthorization: Bearer <key>header. Trial is rate-limited to 1 API/sec (60 req/min) with 250 total requests; Pro and Business packs raise the ceiling. Create a key at /account/api-keys · pricing on /pricing.

# Replace YOUR_KEY with the secret printed when you created it.
curl -H "Authorization: Bearer YOUR_KEY" \
     "https://api.netrivo.xyz/v1/parties?limit=5"

health

Liveness + readiness probes

GET/healthLiveness probe

Returns 200 if the process is up. Does not touch the DB.

No parameters.

Responses: 200

GET/readyReadiness probe

Verifies that PostgreSQL is reachable and Scan API is responding.

No parameters.

Responses: 200

stats

Network-wide totals + ingestion rate

GET/v1/statsNetwork-wide totals

All headline counters from agg_network_totals + agg_ledger_rate. Cached 15s in-memory.

No parameters.

Responses: 200

GET/v1/stats/syncIndexer sync status (cursor, lag, last seen)

No parameters.

Responses: 200

ledger

Raw v2/updates stream + per-template counts

GET/v1/ledgerList ledger updates from Scan v2/updates

Parameters

NameInTypeReq?Description
limitqueryinteger
offsetqueryinteger
cursorquerystringOpaque keyset cursor from a previous response's next_cursor. Wins over offset.
fromquerystringISO record_time lower bound (inclusive)
toquerystringISO record_time upper bound (exclusive)
has_rewardsqueryboolean
has_transfersqueryboolean
templatequerystringSubstring match on any template_id

Responses: 200

GET/v1/ledger/{updateId}Single ledger update with full raw payload

Parameters

NameInTypeReq?Description
updateIdpathstringyes

Responses: 200

transfers

On-chain CC transfers

GET/v1/allocations/{contractId}Single AmuletAllocation contract row

Parameters

NameInTypeReq?Description
contractIdpathstringyes

Responses: 200

GET/v1/token-transfersToken-standard transfers — TransferCommand (external party flow) + AmuletAllocation

Parameters

NameInTypeReq?Description
senderquerystring
receiverquerystring
partyquerystringMatch either sender or receiver
kindquery"command" | "allocation" | "all"
statusquerystring
limitqueryinteger

Responses: 200

GET/v1/token-transfers/summaryToken-standard transfer counts by status (commands + allocations)

No parameters.

Responses: 200

GET/v1/transfer-commands/{contractId}Single TransferCommand contract row

Parameters

NameInTypeReq?Description
contractIdpathstringyes

Responses: 200

GET/v1/transfersOn-chain CC transfers

Parameters

NameInTypeReq?Description
limitqueryinteger
offsetqueryinteger
cursorquerystringOpaque keyset cursor from a previous response's next_cursor. Wins over offset.
senderquerystring
receiverquerystring
partyquerystringMatch either sender or receiver
fromquerystring
toquerystring

Responses: 200

GET/v1/transfers/{updateId}All transfer events under one ledger update

Parameters

NameInTypeReq?Description
updateIdpathstringyes

Responses: 200

rewards

Reward coupons + timelines + leaderboard

GET/v1/rewardsList reward coupon events

Parameters

NameInTypeReq?Description
limitqueryinteger
offsetqueryinteger
cursorquerystringOpaque keyset cursor from a previous response's next_cursor. Wins over offset.
partyquerystring
templatequerystring
roundqueryinteger
fromquerystring
toquerystring

Responses: 200

GET/v1/rewards/by-typeRewards aggregated by template type

Parameters

NameInTypeReq?Description
windowquery"24h" | "7d" | "30d" | "all"

Responses: 200

GET/v1/rewards/leaderboardTop parties by total rewards earned

Parameters

NameInTypeReq?Description
limitqueryinteger
windowquery"24h" | "7d" | "30d" | "all"

Responses: 200

GET/v1/rewards/timelineReward totals per time bucket

Parameters

NameInTypeReq?Description
bucketquery"hour" | "day"
fromquerystring
toquerystring
limitqueryinteger

Responses: 200

offers

TransferOffer FSM

GET/v1/offersTransferOffer current-state listing

Parameters

NameInTypeReq?Description
limitqueryinteger
offsetqueryinteger
cursorquerystringOpaque keyset cursor from a previous response's next_cursor. Wins over offset.
senderquerystring
receiverquerystring
statusquery"created" | "accepted" | "rejected" | "expired" | "withdrawn"

Responses: 200

GET/v1/offers/{contractId}Single TransferOffer with optional FSM event trail

Parameters

NameInTypeReq?Description
include_eventsquery"true" | "false"
contractIdpathstringyes

Responses: 200

subscriptions

Wallet.Subscription state + payments

GET/v1/subscriptionsSubscription current-state listing

Parameters

NameInTypeReq?Description
limitqueryinteger
offsetqueryinteger
cursorquerystringOpaque keyset cursor from a previous response's next_cursor. Wins over offset.
payerquerystring
providerquerystring
statusquery"active" | "idle" | "terminated"

Responses: 200

GET/v1/subscriptions/{contractId}Single subscription detail

Parameters

NameInTypeReq?Description
contractIdpathstringyes

Responses: 200

GET/v1/subscriptions/{contractId}/paymentsPayment history for a subscription

Parameters

NameInTypeReq?Description
contractIdpathstringyes

Responses: 200

app-payments

Wallet.Payment AppPaymentRequest lifecycle

GET/v1/app-paymentsAppPaymentRequest listing

Parameters

NameInTypeReq?Description
limitqueryinteger
offsetqueryinteger
cursorquerystringOpaque keyset cursor from a previous response's next_cursor. Wins over offset.
payerquerystring
app_idquerystring
statusquery"requested" | "accepted" | "rejected" | "expired"

Responses: 200

GET/v1/app-payments/{contractId}Single app payment

Parameters

NameInTypeReq?Description
contractIdpathstringyes

Responses: 200

preapprovals

TransferPreapproval contracts

GET/v1/preapprovalsTransferPreapproval listing

Parameters

NameInTypeReq?Description
limitqueryinteger
offsetqueryinteger
cursorquerystringOpaque keyset cursor from a previous response's next_cursor. Wins over offset.
receiverquerystring
providerquerystring
statusquery"active" | "expired" | "revoked"

Responses: 200

GET/v1/preapprovals/{contractId}

Parameters

NameInTypeReq?Description
contractIdpathstringyes

Responses: 200

holdings

Per-party CC balances + top-N

GET/v1/holdings/{partyId}Current holdings for a single party

Parameters

NameInTypeReq?Description
partyIdpathstringyes

Responses: 200

GET/v1/holdings/{partyId}/historyPeriodic balance snapshots (for charting)

Parameters

NameInTypeReq?Description
limitqueryinteger
partyIdpathstringyes

Responses: 200

GET/v1/holdings/topTop holders by current balance

Parameters

NameInTypeReq?Description
limitqueryinteger

Responses: 200

parties

Universal party registry

GET/v1/partiesList parties with optional search & filters

Parameters

NameInTypeReq?Description
limitqueryinteger
offsetqueryinteger
cursorquerystringOpaque keyset cursor from a previous response's next_cursor. Wins over offset.
qquerystringSubstring search on party_id / display_name / cns_name
sortquery"balance" | "rewards" | "last_seen"
typequery"validator" | "super_validator" | "featured_app" | "external" | "regular"
has_cnsqueryboolean

Responses: 200

GET/v1/parties/{id}Single party with all aggregate counters

Parameters

NameInTypeReq?Description
idpathstringyes

Responses: 200

GET/v1/parties/{id}/activityUnified activity feed: transfers, transfer-offers, transfer-commands, subscriptions, app-payments and preapprovals where this party participates.

Parameters

NameInTypeReq?Description
kindquerystringComma-separated kinds to include; default = all
limitqueryinteger
beforequerystringCursor: ISO timestamp; rows with record_time < this are returned. Use the last row's record_time from the previous page.
counts_onlyquerystringIf 'true', returns only the kind-counts (skip data rows). Use to populate filter chips without paying for the row scan.
idpathstringyes

Responses: 200

GET/v1/parties/{id}/balance-historyBalance history from cached Scan ACS snapshots. Window: 24h | 7d | 30d | all (default all). Returns one point per snapshot the indexer has cached for this party in that window. Pass `?live=true` to opt into a live Scan walk for older points (adds latency, default is cache-only with cache_status hint).

Parameters

NameInTypeReq?Description
windowquery"24h" | "7d" | "30d" | "all"
max_pointsqueryinteger
livequeryboolean
idpathstringyes

Responses: 200

GET/v1/parties/{id}/rewardsRewards actually earned by this party

Parameters

NameInTypeReq?Description
idpathstringyes

Responses: 200

GET/v1/parties/{id}/transfersTransfers where this party is sender or receiver

Parameters

NameInTypeReq?Description
idpathstringyes

Responses: 200

validators

Validator metadata + uptime

GET/v1/validatorsList validators with metadata + cross-referenced party stats (rewards, balance, last seen).

Parameters

NameInTypeReq?Description
activequeryboolean
svquerybooleantrue → only SVs, false → exclude SVs
qquerystring
sortquery"name" | "rewards" | "last_seen" | "first_seen" | "version"
limitqueryinteger
offsetqueryinteger

Responses: 200

GET/v1/validators/{id}

Parameters

NameInTypeReq?Description
idpathstringyes

Responses: 200

GET/v1/validators/{id}/price-votesAmuletPriceVote history for a single SV (newest first)

Parameters

NameInTypeReq?Description
limitqueryinteger
idpathstringyes

Responses: 200

GET/v1/validators/{id}/rewards-by-templatePer-template breakdown of ALL reward coupons attributable to this validator (self-rewards + VRCs from hosted users). Aggregated over the full history, not the last-N rolling window.

Parameters

NameInTypeReq?Description
idpathstringyes

Responses: 200

GET/v1/validators/{id}/roundsPer-round liveness participation. Backed by `validator_rounds` (one row per (validator, round) where the validator emitted a ValidatorLivenessActivityRecord — the on-chain canonical signal for round-level uptime).

Parameters

NameInTypeReq?Description
idpathstringyes

Responses: 200

GET/v1/validators/{id}/trafficCumulative MemberTraffic snapshots over time + per-period deltas

Parameters

NameInTypeReq?Description
windowquery"24h" | "7d" | "30d" | "all"
idpathstringyes

Responses: 200

GET/v1/validators/summaryValidator counts + version histogram (cheap)

No parameters.

Responses: 200

super-validators

DSO super-validator set

GET/v1/amulet-rulesLatest AmuletRules snapshot

No parameters.

Responses: 200

GET/v1/dso-infoLatest DSO snapshot raw payload

No parameters.

Responses: 200

GET/v1/super-validatorsActive SV set with per-SV node state (scan URL, mediator, sequencer, voting power) parsed from dso_info_current.raw.sv_node_states

No parameters.

Responses: 200

GET/v1/super-validators/{id}Single SV node state pulled from dso_info_current

Parameters

NameInTypeReq?Description
idpathstringyes

Responses: 200

GET/v1/synchronizerNetwork topology — DSO + BFT sequencers, scheduled migration, instance names, active serial.

No parameters.

Responses: 200

governance

DsoRules choice exercises + vote tallies

GET/v1/governance/actionsDsoRules choice exercises (governance log)

Parameters

NameInTypeReq?Description
limitqueryinteger
offsetqueryinteger
cursorquerystringOpaque keyset cursor from a previous response's next_cursor. Wins over offset.
kindquerystringFilter by exact action_kind (choice name)
actorquerystring
fromquerystring
toquerystring

Responses: 200

GET/v1/governance/vote-requestsIn-flight DsoRules VoteRequest contracts (live votes per SV) plus recently-resolved ones

Parameters

NameInTypeReq?Description
statusquery"active" | "resolved" | "all"
limitqueryinteger

Responses: 200

GET/v1/governance/votesVote tallies from Lighthouse

No parameters.

Responses: 200

cns

Canton Name Service entries

GET/v1/cns

Parameters

NameInTypeReq?Description
limitqueryinteger
offsetqueryinteger
cursorquerystringOpaque keyset cursor from a previous response's next_cursor. Wins over offset.
qquerystring

Responses: 200

GET/v1/cns/{domain}

Parameters

NameInTypeReq?Description
domainpathstringyes

Responses: 200

contracts

Daml template registry

GET/v1/contracts/templatesAll Daml templates ever observed in ledger updates

Parameters

NameInTypeReq?Description
limitqueryinteger
qquerystring

Responses: 200

rounds

GET/v1/roundsList mining rounds (newest first)

Parameters

NameInTypeReq?Description
limitqueryinteger
offsetqueryinteger
statequery"open" | "issuing" | "completed"

Responses: 200

GET/v1/rounds/{number}Single mining round detail (rates + activity totals)

Parameters

NameInTypeReq?Description
numberpathstringyes

Responses: 200