API Reference

Read-only endpoints behind the Sentinel dVPN Live Node Explorer. Responses are JSON unless noted otherwise.

No auth required

The examples below are relative to this deployment. Use paths such as /?data from this host.

GET?

Serves the interactive node explorer HTML page.

GET?data

Returns active node table rows from the database, merged with current earning state from cached payout data.

  • Used by the main table.
  • Includes address, moniker, location, peers, bandwidth, service type, health, server type, and earning flags.
GET?node=sentnode1...

Returns a single node by Sentinel node address.

  • Validates that the address starts with sentnode1 and is 47 characters long.
  • Includes API URL, reachability, duplicate/residential state, session data, and earning state.
GET?stats

Returns aggregate live explorer stats for active nodes.

  • Includes active total, V2Ray, WireGuard, OpenVPN, unknown type, earning, not earning, healthy, unhealthy, unknown health, whitelisted, not whitelisted, hosting, residential, unknown server, version breakdown, online peers, active sessions, and observed 24h data use.
  • Cached briefly to keep database load predictable.
GET?inflow

Returns hourly total P2P inflow for the last 24 hours from the database.

  • Database denom is udvpn; API also exposes converted inflow_p2p.
  • Used by the P2P Inflow chart.
POST?filtered_inflow

Returns hourly P2P inflow for a filtered set of node addresses.

  • Accepts JSON body {"addresses":["sentnode1..."]}, dedupes addresses, and caps oversized requests.
  • Uses the node/time balance index and caches each filtered address set briefly.
GET?asn_saturation

Returns active ASNs with more than 50 nodes, plus cached provider names when the daily collector has populated them.

  • Uses the same active-node snapshot and ASN saturation rule as whitelist status.
  • Provider names are cached separately so the dashboard never calls the upstream ASN lookup API directly.
GET?country_saturation

Returns active countries with more than 300 nodes and active cities with more than 20 nodes for the Country & City Saturation card.

  • Uses the same active-node snapshot and coverage safeguards as the ASN saturation endpoint.
  • Includes area type, label, node count, active-node percentage, and the applicable limit.
GET?earnings&address=sentnode1...

Returns node-specific P2P inflow summaries and the cached Sentinel USD price.

  • Includes 24h inflow, 30d inflow, and a backward-compatible 24h earned field for the requested node.
  • CoinGecko price is cached for one minute; node summaries are cached for five minutes.
GET?api

Serves this developer reference page.