# Node Scorecard API – Top Nodes Endpoint

> Node Scorecard API – Top Nodes Endpoint is a paid API for AI agents from nodescorecard.xyz, paid per call via x402, $0.005/call, status unknown (last checked 2026-10-11).

Returns the highest-scoring Sentinel dVPN nodes, filtered and ranked by composite quality score with ASN diversity controls.

## Facts

- Endpoint: GET https://nodescorecard.xyz/scorecard/nodes/top?utm_source=zero.xyz
- Price: $0.005/call
- Payment: x402
- Status: unknown
- Last checked: 2026-10-11
- Activations on Zero: 0
- Tags: x402
- Canonical page: https://www.zero.xyz/c/node-scorecard-api-top-nodes-endpoint-a0906f94
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_DRikA8Ro0GL2zfQ8m5q4C

Status and success rate cover calls made through Zero and Zero's own probes. Third-party monitors may report differently.

## How to call it through Zero

Zero handles the 402 payment challenge and records the run. With the Zero CLI installed (`npm i -g @zeroxyz/cli`):

```sh
zero fetch --capability node-scorecard-api-top-nodes-endpoint-a0906f94
```

Example prompt: Show me the top 10 Sentinel dVPN nodes in Germany that use WireGuard, passed the SLA speed test, and have a composite score of at least 75 — limit it to 2 nodes per ASN.

## When to prefer this

Choose this endpoint when you need independently measured, scored, and ranked Sentinel dVPN nodes with rich metadata (speed, uptime, jurisdiction, ASN diversity) rather than raw on-chain node listings. It is the right choice when node quality, SLA compliance, or geographic/protocol filtering matters — especially for automated node selection in dVPN clients, monitoring pipelines, or research workflows. Prefer it over direct Sentinel chain queries when you need composite quality signals beyond simple availability.

## Known failure modes

- Invalid or out-of-range 'n' parameter (must be integer 1–50) returns an error
- Unrecognized protocol string returns empty or error response
- Unrecognized country name returns zero matched nodes
- Payment failure over x402 prevents response
- Network unavailability of the scoring backend returns 5xx

## How this service works

Independent measurement and scoring of the Sentinel dVPN network. Pay per call in USDC over x402 — no account, no API key, no signup.

## Output

A JSON object with the total count of matched nodes, the network-wide active node total, and an array of top node objects each containing: composite score, uptime, reliability, SLA pass/fail and speed in Mbps, download/upload speeds, jurisdiction freedom score, censorship resistance level, residential flag, protocol, city, country, ASN, peers, leases, pricing per GB and per hour, and the node's Sentinel address and moniker.

## Request schema (JSON Schema)

```json
{
 "type": "object",
 "$schema": "https://json-schema.org/draft/2020-12/schema",
 "required": [
  "input"
 ],
 "properties": {
  "input": {
   "type": "object",
   "required": [
    "type",
    "method"
   ],
   "properties": {
    "type": {
     "type": "string",
     "const": "http"
    },
    "method": {
     "enum": [
      "GET"
     ],
     "type": "string"
    },
    "queryParams": {
     "type": "object",
     "required": [],
     "properties": {
      "n": {
       "type": "string",
       "description": "How many nodes to return. Integer 1-50, default 5."
      },
      "country": {
       "type": "string",
       "description": "Exact country name filter, case-insensitive, e.g. \"Germany\"."
      },
      "protocol": {
       "type": "string",
       "description": "Protocol filter, case-insensitive: wireguard, v2ray, xray, hysteria2, amneziawg, openvpn."
      },
      "sla_only": {
       "enum": [
        "true"
       ],
       "type": "string",
       "description": "Set to \"true\" to keep only nodes that passed the SLA speed test."
      },
      "min_score": {
       "type": "string",
       "description": "Minimum composite score, 0-100. Default 0 (no filter)."
      },
      "max_per_asn": {
       "type": "string",
       "description": "Max nodes allowed from the same ASN. Integer >= 1, default 2."
      }
     },
     "additionalProperties": false
    }
   },
   "additionalProperties": false
  },
  "output": {
   "type": "object",
   "required": [
    "type"
   ],
   "properties": {
    "type": {
     "type": "string"
    },
    "example": {
     "type": "object",
     "description": "Real response to GET /scorecard/nodes/top?n=5, captured 2026-07-25T07:00:46Z. `matched` is how many nodes passed the filters before the top-N + ASN-diversity cut. `nodes` is truncated to the first 2 of the 5 returned; node objects are complete and verbatim."
    }
   }
  }
 }
}
```

## Response schema (JSON Schema)

```json
{
 "type": "json",
 "example": {
  "count": 5,
  "nodes": [
   {
    "asn": "AS8218 Zayo Infrastructure France SA",
    "city": "Vienna",
    "peers": 11,
    "leases": 1,
    "uptime": 96.6,
    "address": "sentnode1nmse5z50klakvwuy68w4wdgdvwzfasl8ryu9wk",
    "country": "Austria",
    "moniker": "SuchNode-3UK1BLjFTpZo",
    "samples": 590,
    "price_gb": 40.15,
    "price_hr": 50,
    "protocol": "v2ray",
    "sla_mbps": 45.89,
    "sla_pass": true,
    "protocols": null,
    "api_status": "ok",
    "reliability": 100,
    "residential": true,
    "asn_saturated": false,
    "speed_dl_mbps": 8.66,
    "speed_ul_mbps": 641.01,
    "asn_node_count": 2,
    "sla_percentile": 96,
    "composite_score": 92.2,
    "jurisdiction_freedom": 76,
    "asn_network_share_pct": 0.1,
    "censorship_resistance": "basic",
    "jurisdiction_freedom_estimated": false
   },
   {
    "asn": "AS206075 Hollander & Jacobsen UG (haftungsbeschraenkt)",
    "city": "Amsterdam",
    "peers": 6,
    "leases": 1,
    "uptime": 99.9,
    "address": "sentnode1rhjtstxhwdwfqmgkgd3yyf3hhzl7s4z5td44ln",
    "country": "The Netherlands",
    "moniker": "0_Premium_Service_100G_Nibiru2",
    "samples": 1027,
    "price_gb": 40.15,
    "price_hr": 50,
    "protocol": "v2ray",
    "sla_mbps": 56.38,
    "sla_pass": true,
    "protocols": null,
    "api_status": "ok",
    "reliability": 100,
    "residential": true,
    "asn_saturated": false,
    "speed_dl_mbps": 23.69,
    "speed_ul_mbps": 874.69,
    "asn_node_count": 2,
    "sla_percentile": 98,
    "composite_score": 91.8,
    "jurisdiction_freedom": 80,
    "asn_network_share_pct": 0.1,
    "censorship_resistance": "basic",
    "jurisdiction_freedom_estimated": false
   }
  ],
  "matched": 1352,
  "network_active_total": 1352
 }
}
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/node-scorecard-api-top-nodes-endpoint-a0906f94/health.json
- [Zero catalog index](https://www.zero.xyz/llms.txt)
- [Other services from nodescorecard.xyz](https://www.zero.xyz/host/nodescorecard.xyz/llms.txt)
