# Node Scorecard API – Recommend Endpoint

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

Returns the best-scored Sentinel dVPN node matching a free-text need (e.g. privacy, residential, speed) with ranked alternatives and live network stats.

## Facts

- Endpoint: GET https://nodescorecard.xyz/scorecard/recommend?utm_source=zero.xyz
- Price: $0.01/call
- Payment: x402
- Status: unknown
- Last checked: 2026-10-13
- Activations on Zero: 0
- Tags: x402
- Canonical page: https://www.zero.xyz/c/node-scorecard-api-recommend-endpoint-993199a0
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_IrFyhlCOEtq2twbQG5DyP

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-recommend-endpoint-993199a0
```

Example prompt: Find me the best Sentinel dVPN node for privacy and residential use — ideally in the Netherlands — and show me the top recommendation with its score, speed, and price.

## When to prefer this

Use this endpoint when you need an AI-agent-friendly, scored recommendation for a Sentinel dVPN node — especially when filtering by use-case need (privacy, residential, speed, censorship bypass, price) or geography. Prefer this over raw node lists when you want independent third-party scoring and composite metrics rather than self-reported node data. Ideal for automated VPN node selection workflows that require no API key or account setup.

## Known failure modes

- Unrecognized 'need' keyword falls back to general composite score ranking
- 'country' filter returns empty results if no active nodes exist in that country
- Network measurement data may be stale if node sampling is infrequent
- Payment failure via x402 returns 402 without a recommendation
- Invalid query parameter types may result in 400 Bad Request

## 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

Returns a JSON object with the top recommended Sentinel dVPN node (address, moniker, city, country, ASN, composite score, uptime %, download/upload speeds in Mbps, price per GB and per hour, residential flag, protocol, SLA pass/fail, jurisdiction freedom score, censorship resistance level) plus up to 3 alternative nodes and the total active node count on the network.

## 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": {
      "need": {
       "type": "string",
       "description": "Free-text need. Recognised keywords, combinable: \"residential\", \"privacy\", \"speed\", \"censorship\" / \"bypass\", \"cheap\" / \"price\". Anything else falls back to the general composite score."
      },
      "country": {
       "type": "string",
       "description": "Optional exact country name to restrict candidates to, e.g. \"The Netherlands\", \"Germany\", \"United States\". Case-insensitive. Omit for any country."
      }
     },
     "additionalProperties": false
    }
   },
   "additionalProperties": false
  },
  "output": {
   "type": "object",
   "required": [
    "type"
   ],
   "properties": {
    "type": {
     "type": "string"
    },
    "example": {
     "type": "object",
     "description": "Real response to GET /scorecard/recommend?need=privacy%20residential, captured 2026-07-25T07:00:46Z. `country` echoes back the literal string \"any\" when the parameter is omitted. `alternatives` is truncated to 1 entry in this example; the live response returns 3."
    }
   }
  }
 }
}
```

## Response schema (JSON Schema)

```json
{
 "type": "json",
 "example": {
  "need": "privacy residential",
  "country": "any",
  "recommended": {
   "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
  },
  "alternatives": [
   {
    "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
   }
  ],
  "network_active_total": 1352
 }
}
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/node-scorecard-api-recommend-endpoint-993199a0/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)
