# Orbit x402 Picks API

> Orbit x402 Picks API is a paid API for AI agents from x402-picks.orbit-builder.workers.dev, paid per call via x402, $0.005/call, status unknown (last checked 2026-10-29).

Given a task description, returns the top 5 ranked paid x402 endpoints from the Coinbase Bazaar catalog that best match the task, scored by relevance, demand, recency, price, and liveness.

## Facts

- Endpoint: GET https://x402-picks.orbit-builder.workers.dev/recommend?utm_source=zero.xyz
- Price: $0.005/call
- Payment: x402
- Status: unknown
- Last checked: 2026-10-29
- Activations on Zero: 0
- Tags: x402
- Canonical page: https://www.zero.xyz/c/orbit-x402-picks-api-6720d520
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_WsNq4Ru2ITTDSSsp9D9AZ

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 orbit-x402-picks-api-6720d520
```

Example prompt: Find me the top 5 live x402 endpoints I can call to get real-time crypto token prices on Base, with a max price of $0.01 per call.

## When to prefer this

Use this endpoint when you need to dynamically discover which x402-compatible paid APIs to call for a given task, rather than hardcoding endpoint URLs. Ideal for agentic workflows that need to self-assemble tool chains, compare endpoint costs and popularity before committing to a call, or find alternatives when a primary endpoint is down. Prefer this over manual catalog browsing when you want demand-weighted, liveness-verified recommendations filtered by chain or price.

## Known failure modes

- Task query too short or too long (must be 2-300 chars) returns 400 error
- No matching endpoints found returns empty picks array
- Payment not provided or invalid returns HTTP 402 requiring x402 USDC payment
- Invalid chain filter value returns 400 or empty results
- max_price too low filters out all available endpoints returning empty picks
- Index temporarily stale if rebuild is in progress (rebuilt every 6h)

## How this service works

x402 endpoint recommender, $0.005 USDC per call: describe a task, get the top 5 paid x402 endpoints to call. BM25 relevance over the Coinbase Bazaar catalog, re-ranked by real demand (unique payers 30d), recency of last paid call, price and a liveness probe (402 seen); dead endpoints excluded, max 2 per host. Filters: chain, max_price, live, method. Each pick: url, method, price_usd, networks, payers, last_called_at, liveness, score. Free: /v1/preview?task= (top 1). Index of 9398 endpoints with recent paying users, rebuilt every 6h. Neutral ranking; no paid placement. By orbit-builder.

## Output

A JSON object containing: the task string echoed back, the number of picks returned, index metadata (build time, endpoint count), and an array of up to 5 ranked picks each with URL, method, price_usd, networks, demand stats (calls_30d, unique_payers_30d, last_called_at), liveness status (402_ok / reachable_no_402 / unknown), relevance score, service name, description, and how-to-call instructions. Also includes active filters and the number of endpoints considered.

## 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": [
      "task"
     ],
     "properties": {
      "live": {
       "type": "string",
       "description": "1 = only endpoints that answered our last probe with HTTP 402"
      },
      "task": {
       "type": "string",
       "description": "what the endpoint should do (2-300 chars); aliases need, q, query"
      },
      "view": {
       "type": "string",
       "description": "compact (default) | full (adds score_breakdown and input_example)"
      },
      "chain": {
       "type": "string",
       "description": "payment network filter: base, solana, polygon, arbitrum, ... or CAIP-2 (eip155:8453); comma list"
      },
      "limit": {
       "type": "integer",
       "maximum": 10,
       "minimum": 1,
       "description": "picks to return (default 5)"
      },
      "method": {
       "type": "string",
       "description": "GET | POST | MCP"
      },
      "max_price": {
       "type": "number",
       "description": "max price per call in USD (alias max_price_usd)"
      }
     }
    }
   },
   "additionalProperties": false
  },
  "output": {
   "type": "object",
   "required": [
    "type"
   ],
   "properties": {
    "type": {
     "type": "string"
    },
    "example": {
     "type": "object",
     "required": [
      "task",
      "picks"
     ],
     "properties": {
      "task": {
       "type": "string"
      },
      "count": {
       "type": "integer"
      },
      "index": {
       "type": "object"
      },
      "picks": {
       "type": "array",
       "items": {
        "type": "object",
        "properties": {
         "url": {
          "type": "string"
         },
         "rank": {
          "type": "integer"
         },
         "score": {
          "type": "number"
         },
         "demand": {
          "type": "object",
          "properties": {
           "calls_30d": {
            "type": "integer"
           },
           "last_called_at": {
            "type": "string"
           },
           "unique_payers_30d": {
            "type": "integer"
           }
          }
         },
         "
… (truncated)
```

## Response schema (JSON Schema)

```json
{
 "type": "json",
 "example": {
  "task": "get token price on base",
  "count": 1,
  "index": {
   "source": "CDP Bazaar discovery",
   "built_at": "2026-10-23T17:16:02.185Z",
   "endpoints": 9398
  },
  "picks": [
   {
    "url": "https://crypto.apitoll.cloud/v1/crypto/price",
    "rank": 1,
    "score": 0.874,
    "demand": {
     "calls_30d": 2100,
     "last_called_at": "2026-10-23T16:00:00.000Z",
     "unique_payers_30d": 69
    },
    "method": "GET",
    "service": "apitoll crypto",
    "liveness": "402_ok",
    "networks": [
     "eip155:8453"
    ],
    "price_usd": 0.001,
    "description": "Latest crypto token prices by ticker symbol, CoinGecko id, or chain:address",
    "how_to_call": "GET https://crypto.apitoll.cloud/v1/crypto/price -> HTTP 402 -> sign x402 payment -> retry with PAYMENT-SIGNATURE"
   }
  ],
  "filters": {
   "live": false,
   "chain": [
    "eip155:8453"
   ],
   "method": null,
   "max_price": 0.01
  },
  "considered": 3920
 }
}
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/orbit-x402-picks-api-6720d520/health.json
- [Zero catalog index](https://www.zero.xyz/llms.txt)
- [Other services from x402-picks.orbit-builder.workers.dev](https://www.zero.xyz/host/x402-picks.orbit-builder.workers.dev/llms.txt)
