{
  "data": {
    "a": {
      "slug": "codex-graphql",
      "name": "Codex",
      "vendor": "Codex Data Inc.",
      "vendorUrl": "https://www.codex.io",
      "kind": "http-api",
      "category": "data-providers",
      "summary": "Codex is a GraphQL API from Codex Data Inc. for on-chain crypto data, with token prices, OHLCV bars, trades, holders, wallet PnL, launchpads and prediction markets across 80+ networks, over HTTP, WebSocket subscriptions and webhooks.",
      "url": "https://www.anchorterminal.com/tools/codex-graphql",
      "markdownUrl": "https://www.anchorterminal.com/tools/codex-graphql.md",
      "slimMarkdownUrl": "https://www.anchorterminal.com/tools/codex-graphql.min.md",
      "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/codex-graphql.json",
      "dns": "codex-graphql.grade.anchorterminal.com",
      "repo": "https://github.com/Codex-Data/sdk",
      "license": "Proprietary service under Codex Data Inc.'s terms of service. The TypeScript SDK is MIT",
      "transports": [
        "http",
        "websocket"
      ],
      "remoteUrl": "https://graph.codex.io/graphql",
      "packages": [
        {
          "registry": "npm",
          "name": "@codex-data/sdk"
        }
      ],
      "auth": "api-key",
      "authNotes": "API key in the `Authorization` header with no `Bearer` prefix, from the dashboard after signup. Secret keys are long-lived; `createApiTokens` mints short-lived tokens (sent as `Bearer \u003ctoken\u003e`) with an expiry and a request limit for browsers. Keys can be deactivated and given their own compute-unit limit. 1 key on the free plan, 5 on Growth. A request with no `Authorization` header is treated as a pay-per-query MPP call.",
      "pricing": "freemium",
      "pricingNotes": "Almost free plan: 10,000 compute units over a rolling 30 days and 5 requests a second, after a one-time $1 activation fee paid by card or 1 USDC. Growth from $360 a month for 3M compute units ($120 per million), 5M to 50M tiers, overage $115 to $138 per million. Without an account, $0.001 a query in USDC on Tempo through MPP. Enterprise by contact (https://www.codex.io/pricing, https://docs.codex.io/agents/mpp, checked 2026-11-06).",
      "priceSummary": "$0.001 / call",
      "where": "hosted",
      "x402": {
        "level": "no",
        "evidence": "No x402. Codex takes the Machine Payments Protocol (MPP) on every query endpoint: a request with no API key gets HTTP 402 with a payment challenge, paid at $0.001 in USDC on Tempo. Subscriptions and webhooks are not available through MPP. An unauthenticated GET to https://graph.codex.io/graphql answered 400 application/problem+json with type https://ietf.org/payment/problems/invalid-request on 6 November 2026 (https://docs.codex.io/agents/mpp).",
        "endpoints": [
          {
            "url": "https://graph.codex.io/graphql",
            "priceUsd": null,
            "network": ""
          }
        ]
      },
      "toolCount": 0,
      "popularity": {
        "githubStars": null,
        "npmWeekly": 74802,
        "pypiWeekly": null,
        "asOf": "2026-11-06"
      },
      "docsUrl": "https://docs.codex.io",
      "llmsTxt": "https://docs.codex.io/llms.txt",
      "capabilities": [
        "market.crypto",
        "data.markets",
        "market.indices"
      ],
      "tags": [
        "hosted",
        "graphql",
        "websocket",
        "webhooks",
        "llms-txt",
        "typescript",
        "status-page",
        "freemium",
        "usage-based",
        "stablecoin",
        "agent-skills",
        "closed-source"
      ],
      "lastRelease": "2026-11-02",
      "graded": true,
      "anchor": {
        "graded": true,
        "score": 75.4,
        "grade": "BB",
        "agentReady": true,
        "rank": 64,
        "ranked": true,
        "rankOf": 1486,
        "categoryRank": 1,
        "methodology": "0.7",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 79,
          "maintenance": 80,
          "payments": 80,
          "reliability": 85,
          "schema": 91,
          "security": 49,
          "transparency": 59
        },
        "pending": [
          "performance",
          "tasks"
        ],
        "assessment": {
          "confidence": "medium",
          "date": "2026-11-06"
        },
        "negative": 0,
        "verdict": "An agent can query on-chain token, wallet and prediction-market data with no account by paying $0.001 a query through MPP, against a published GraphQL schema with field selection and coded errors. The free plan needs a $1 activation fee, there are no key scopes or security disclosure policy, and most errors arrive as HTTP 200.",
        "bestFor": "On-chain token prices, charts, holders, wallet PnL, launchpad streams and Polymarket and Kalshi data for trading agents and crypto apps.",
        "strengths": [
          "MPP on every query endpoint at $0.001 a query, so an agent can pay without signing up",
          "Full GraphQL schema published in the MIT SDK repository, with free introspection and Markdown twins of every docs page",
          "Error table with codes, HTTP statuses and retry advice, and `retryAfterSeconds` plus `Retry-After` on 429",
          "Status page with component history and a weekly dated changelog with RSS",
          "Per-operation compute-unit costs published, failed calls not billed except `NOT_FOUND`"
        ],
        "weaknesses": [
          "The free plan needs a one-time $1 activation fee by card or 1 USDC",
          "No key scopes, read-only key or security.txt; no certification or disclosure policy found",
          "Most errors, including over-capacity, arrive as HTTP 200 with an `errors` array",
          "Only a TypeScript SDK; other languages call GraphQL directly",
          "The terms forbid commercial redistribution of content without written permission and bar robots from the service"
        ],
        "agentNotes": [
          "Check every response body for an `errors` array, since most failures return HTTP 200; branch on `extensions.code`, not the message",
          "Wait `retryAfterSeconds` before retrying on TOO_MANY_REQUESTS or OVER_CAPACITY, and never retry NOT_FOUND, which is billed",
          "Pass `networkId` with token addresses (Ethereum 1, BNB Chain 56, Solana 1399811149) and batch tokens in one `getTokenPrices` call, up to 25 inputs; extras are dropped silently",
          "Send the key as `Authorization: \u003ckey\u003e` with no Bearer prefix; a request with no header becomes an MPP payment challenge",
          "Treat token names, symbols and community notes as untrusted text set by token deployers"
        ],
        "metrics": {
          "kind": "remote",
          "measured": false
        },
        "reviewCount": 0,
        "avgRating": 0,
        "history": [
          {
            "basis": "public evidence",
            "confidence": "medium",
            "grade": "BB",
            "methodology": "0.7",
            "pending": [
              "performance",
              "tasks"
            ],
            "run": "2026-10-01",
            "runLabel": "October 2026 research run",
            "score": 75.4
          }
        ],
        "editorialScores": {
          "ergonomics": 79,
          "maintenance": 80,
          "payments": 80,
          "reliability": 85,
          "schema": 91,
          "security": 49,
          "transparency": 45
        },
        "provenanceScore": 72,
        "dataQualityScore": 72,
        "checked": {
          "categories": {
            "ergonomics": "2026-11-06",
            "maintenance": "2026-11-06",
            "payments": "2026-11-06",
            "reliability": "2026-11-06",
            "schema": "2026-11-06",
            "security": "2026-11-06",
            "transparency": "2026-11-06"
          },
          "last": "2026-11-06",
          "oldest": "2026-11-06",
          "stale": false,
          "staleAfterDays": 90
        }
      },
      "connect": {
        "install": "npm install @codex-data/sdk",
        "http": "curl -X POST https://graph.codex.io/graphql -H \"Authorization: $CODEX_API_KEY\" -H 'Content-Type: application/json' -d '{\"query\":\"{ getTokenPrices(inputs: [{ address: \\\"0xbb4cdb9cbd36b01bd1cbaebf2de08d9173bc095c\\\", networkId: 56 }]) { priceUsd timestamp } }\"}'"
      },
      "letme": {
        "capability": "https://letme.dev/market.crypto",
        "tool": "https://letme.dev/codex-graphql"
      },
      "area": "web-data",
      "unitPrices": [
        {
          "item": "Query through MPP",
          "unit": "call",
          "usd": 0.001,
          "note": "Paid in USDC on Tempo, no account"
        },
        {
          "item": "Growth plan, 3M compute units",
          "unit": "month",
          "usd": 360,
          "note": "$120 per million compute units; overage $138 per million at this tier"
        },
        {
          "item": "Compute unit on Growth",
          "unit": "compute-unit",
          "usd": 0.00012,
          "note": "$120 per million at the 3M tier"
        }
      ],
      "provenance": {
        "legalEntity": "Codex Data Inc.",
        "domain": "codex.io",
        "domainRegistered": "",
        "endpointOnVendorDomain": true,
        "terms": "https://dashboard.codex.io/terms",
        "privacy": "https://dashboard.codex.io/privacy",
        "statusPage": "https://status.codex.io",
        "changelog": "https://docs.codex.io/changelog",
        "securityTxt": "none",
        "checked": "2026-11-06",
        "notes": [
          "Terms of service last updated 29 October 2026, privacy policy effective 29 September 2026, both naming Codex Data Inc. The terms choose the laws of British Columbia.",
          "The terms forbid using 'any robot, spider, or other automatic device, process, or means to access Service for any purpose', recorded as a fact. The pages were read as public pages.",
          "www.codex.io/robots.txt allows all crawlers and names ClaudeBot. docs.codex.io/robots.txt allows all with Content-Signal ai-train=yes, search=yes, ai-input=yes. dashboard.codex.io/robots.txt allows /terms and /privacy and disallows /dashboard and /api/.",
          "www.codex.io/.well-known/security.txt returns 404.",
          "Domain registration date not checked."
        ],
        "score": 72
      },
      "dataQuality": {
        "coverage": "80+ networks, 109M+ tokens, 3B+ wallets and 41B+ historical events, plus Polymarket and Kalshi, per the vendor's pricing page",
        "coverageRating": 4,
        "freshness": "The vendor states data freshness of less than one second on every plan, with WebSocket subscriptions and webhooks for live events",
        "freshnessClass": "realtime",
        "history": "Varies by network. Solana data begins 20 March 2024 and won't be backfilled, per the FAQ. Other start dates were not found in the reviewed documentation",
        "historyYears": 2,
        "methodology": "https://docs.codex.io/extra/faq",
        "sourcesDisclosed": true,
        "licence": "Proprietary. The terms say content may not be distributed, reused or copied for commercial purposes without written permission",
        "licenceClass": "clear",
        "standing": "A private indexer of public blockchain data",
        "standingClass": "none",
        "reuse": "The terms bar distributing, reposting or reusing content for commercial purposes or personal gain without express written permission. No separate data licence for API output was found.",
        "score": 72,
        "checks": null
      },
      "pageJsonUrl": "https://www.anchorterminal.com/tools/codex-graphql.json",
      "live": {
        "slug": "codex-graphql",
        "probe": {
          "target": "https://graph.codex.io/graphql",
          "method": "get",
          "lastAt": "2026-11-07T18:20:18.088138382Z",
          "lastOk": true,
          "lastStatus": 400,
          "lastMs": 187,
          "authRequired": false,
          "uptime24h": 100,
          "uptime30d": 100,
          "p50ms24h": 163,
          "p95ms24h": 288,
          "samples24h": 200,
          "samples30d": 200,
          "days": [
            {
              "date": "2026-11-06",
              "probes": 13,
              "ok": 13
            },
            {
              "date": "2026-11-07",
              "probes": 187,
              "ok": 187
            }
          ]
        },
        "vendorStatus": {
          "page": "https://status.codex.io",
          "indicator": "none",
          "summary": "All Systems Operational",
          "checkedAt": "2026-11-07T18:20:54.394426962Z"
        },
        "versions": [
          {
            "registry": "github",
            "name": "Codex-Data/sdk",
            "version": "v2.5.21",
            "released": "2026-11-06",
            "seenAt": "2026-11-06T23:16:21.229256469Z"
          },
          {
            "registry": "npm",
            "name": "@codex-data/sdk",
            "version": "2.5.21",
            "seenAt": "2026-11-06T23:16:20.448959102Z"
          }
        ],
        "githubStars": 21,
        "npmWeekly": 74802,
        "securityTxt": {
          "url": "https://codex.io/.well-known/security.txt",
          "state": "none",
          "checkedAt": "2026-11-07T15:59:36.582787003Z"
        },
        "llmsTxt": {
          "url": "https://docs.codex.io/llms.txt",
          "ok": true,
          "status": 200,
          "checkedAt": "2026-11-07T15:32:05.519106152Z"
        },
        "pages": [
          {
            "url": "https://docs.codex.io/changelog",
            "kind": "changelog",
            "status": 200,
            "checkedAt": "2026-11-07T14:05:37.95254166Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "a6db7ccffa80"
          },
          {
            "url": "https://www.codex.io/pricing",
            "kind": "pricing",
            "status": 200,
            "checkedAt": "2026-11-07T14:26:56.031284341Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "7277bd818db0"
          },
          {
            "url": "https://dashboard.codex.io/privacy",
            "kind": "privacy",
            "status": 200,
            "checkedAt": "2026-11-07T14:02:20.691085475Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "46045be6768a"
          },
          {
            "url": "https://dashboard.codex.io/terms",
            "kind": "terms",
            "status": 200,
            "checkedAt": "2026-11-07T14:02:23.015428001Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "4bfd1b23b9d8"
          }
        ],
        "updatedAt": "2026-11-07T18:20:18.088138382Z"
      }
    },
    "answer": "Codex scores 75.4 (BB) on agent readiness against Nansen x402 API's 64.4 (B), and leads in 5 of 7 scored categories. Nansen x402 API leads on agent ergonomics and payments \u0026 pricing.",
    "b": {
      "slug": "nansen-x402-api",
      "name": "Nansen x402 API",
      "vendor": "Nansen",
      "vendorUrl": "https://www.nansen.ai",
      "kind": "http-api",
      "category": "data",
      "summary": "Nansen's on-chain analytics API for wallets, tokens and transaction flows, with per-call stablecoin payments through x402.",
      "url": "https://www.anchorterminal.com/tools/nansen-x402-api",
      "markdownUrl": "https://www.anchorterminal.com/tools/nansen-x402-api.md",
      "slimMarkdownUrl": "https://www.anchorterminal.com/tools/nansen-x402-api.min.md",
      "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/nansen-x402-api.json",
      "dns": "nansen-x402-api.grade.anchorterminal.com",
      "license": "proprietary",
      "transports": [
        "http"
      ],
      "remoteUrl": "https://api.nansen.ai/api/v1/",
      "packages": [],
      "auth": "none",
      "authNotes": "Payment is the credential on the x402 route (USDC on Base, Solana or Monad); the conventional API uses an `apiKey` header.",
      "pricing": "usage",
      "pricingNotes": "x402 at $0.01 a call on 17 Basic endpoints and $0.05 on Premium and Smart Money endpoints, in USDC on Base, Solana or Monad (the live 402 also accepts X Layer and BNB Chain stablecoins), 60 calls a minute per wallet, with failed and rate-limited calls not charged. MPP on Tempo is accepted on the same endpoints. When a promotion is advertised in `/.well-known/x402`, a wallet's first 100 settled x402 calls are half price. Keyed plans use credits, Free with 100 trial credits and a daily top-up to 10, Pro $49 a month billed yearly or $69 monthly with 2,000 credits (https://docs.nansen.ai/getting-started/agentic-payments/x402-payments.md; https://docs.nansen.ai/getting-started/credits.md).",
      "priceSummary": "$0.01 / call",
      "where": "hosted",
      "x402": {
        "level": "yes",
        "evidence": "Nansen's x402 docs list 17 endpoints at $0.01 and Premium and Smart Money endpoints at $0.05, naming Base, Solana and Monad (facilitators Coinbase CDP, PayAI and Molandak). An unpaid POST to current-balance on 2026-11-01 answered 402 with an x402 v2 PAYMENT-REQUIRED header asking $0.01 in eight ways, 10000 base units of USDC on Base (eip155:8453), Monad (eip155:143) and Solana and of USD₮0 on X Layer (eip155:196), and 10^16 base units of United Stables, USD1, USDT and USDC on BNB Chain (eip155:56), which use 18 decimals. MPP on Tempo is documented for the same endpoints (https://docs.nansen.ai/getting-started/agentic-payments/x402-payments.md).",
        "endpoints": [
          {
            "url": "https://api.nansen.ai/api/v1/profiler/address/current-balance",
            "priceUsd": 0.01,
            "network": "eip155:8453"
          },
          {
            "url": "https://api.nansen.ai/api/v1/profiler/address/historical-balances",
            "priceUsd": 0.01,
            "network": "eip155:8453"
          },
          {
            "url": "https://api.nansen.ai/api/v1/profiler/perp-positions",
            "priceUsd": 0.01,
            "network": "eip155:8453"
          },
          {
            "url": "https://api.nansen.ai/api/v1/profiler/address/transactions",
            "priceUsd": 0.01,
            "network": "eip155:8453"
          },
          {
            "url": "https://api.nansen.ai/api/v1/profiler/perp-trades",
            "priceUsd": 0.01,
            "network": "eip155:8453"
          },
          {
            "url": "https://api.nansen.ai/api/v1/profiler/address/related-wallets",
            "priceUsd": 0.01,
            "network": "eip155:8453"
          },
          {
            "url": "https://api.nansen.ai/api/v1/profiler/address/pnl-summary",
            "priceUsd": 0.01,
            "network": "eip155:8453"
          },
          {
            "url": "https://api.nansen.ai/api/v1/profiler/address/pnl",
            "priceUsd": 0.01,
            "network": "eip155:8453"
          },
          {
            "url": "https://api.nansen.ai/api/v1/token-screener",
            "priceUsd": 0.01,
            "network": "eip155:8453"
          },
          {
            "url": "https://api.nansen.ai/api/v1/perp-screener",
            "priceUsd": 0.01,
            "network": "eip155:8453"
          },
          {
            "url": "https://api.nansen.ai/api/v1/tgm/transfers",
            "priceUsd": 0.01,
            "network": "eip155:8453"
          },
          {
            "url": "https://api.nansen.ai/api/v1/tgm/jup-dca",
            "priceUsd": 0.01,
            "network": "eip155:8453"
          },
          {
            "url": "https://api.nansen.ai/api/v1/tgm/flow-intelligence",
            "priceUsd": 0.01,
            "network": "eip155:8453"
          },
          {
            "url": "https://api.nansen.ai/api/v1/tgm/who-bought-sold",
            "priceUsd": 0.01,
            "network": "eip155:8453"
          },
          {
            "url": "https://api.nansen.ai/api/v1/tgm/dex-trades",
            "priceUsd": 0.01,
            "network": "eip155:8453"
          },
          {
            "url": "https://api.nansen.ai/api/v1/portfolio/defi-holdings",
            "priceUsd": 0.01,
            "network": "eip155:8453"
          },
          {
            "url": "https://api.nansen.ai/api/v1/tgm/flows",
            "priceUsd": 0.01,
            "network": "eip155:8453"
          },
          {
            "url": "https://api.nansen.ai/api/v1/profiler/address/counterparties",
            "priceUsd": 0.05,
            "network": "eip155:8453"
          },
          {
            "url": "https://api.nansen.ai/api/v1/tgm/holders",
            "priceUsd": 0.05,
            "network": "eip155:8453"
          },
          {
            "url": "https://api.nansen.ai/api/v1/tgm/pnl-leaderboard",
            "priceUsd": 0.05,
            "network": "eip155:8453"
          },
          {
            "url": "https://api.nansen.ai/api/v1/tgm/perp-pnl-leaderboard",
            "priceUsd": 0.05,
            "network": "eip155:8453"
          },
          {
            "url": "https://api.nansen.ai/api/v1/perp-leaderboard",
            "priceUsd": 0.05,
            "network": "eip155:8453"
          },
          {
            "url": "https://api.nansen.ai/api/v1/smart-money/netflow",
            "priceUsd": 0.05,
            "network": "eip155:8453"
          },
          {
            "url": "https://api.nansen.ai/api/v1/smart-money/holdings",
            "priceUsd": 0.05,
            "network": "eip155:8453"
          },
          {
            "url": "https://api.nansen.ai/api/v1/smart-money/dex-trades",
            "priceUsd": 0.05,
            "network": "eip155:8453"
          }
        ]
      },
      "toolCount": null,
      "popularity": {
        "githubStars": null,
        "npmWeekly": null,
        "pypiWeekly": null,
        "asOf": "2026-09-25"
      },
      "docsUrl": "https://docs.nansen.ai/",
      "llmsTxt": "https://docs.nansen.ai/llms.txt",
      "capabilities": [
        "market.crypto"
      ],
      "tags": [
        "x402",
        "http-api",
        "onchain",
        "no-key"
      ],
      "lastRelease": "2026-10-30",
      "graded": true,
      "anchor": {
        "graded": true,
        "score": 64.4,
        "grade": "B",
        "agentReady": false,
        "rank": 468,
        "ranked": true,
        "rankOf": 1486,
        "categoryRank": 9,
        "methodology": "0.7",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 86,
          "maintenance": 75,
          "payments": 95,
          "reliability": 45,
          "schema": 84,
          "security": 45,
          "transparency": 51
        },
        "pending": [
          "performance",
          "tasks"
        ],
        "assessment": {
          "confidence": "medium",
          "date": "2026-11-01"
        },
        "negative": -3,
        "negativeNotes": [
          "30 October 2026, -3. Published behaviour changed for existing clients, announced the day it took effect. The changelog's \"Breaking change\" entry says `token_trade_volume` and `trade_volume_usd` on who-bought-sold (an x402 endpoint) now return total volume instead of net, and the same day `balance_24h_percent_change` on Smart Money historical holdings switched from USD value to token amount. One folded term (https://docs.nansen.ai/api/changelog/30-10-2026-who-bought-sold-total-and-net-volume.md)"
        ],
        "verdict": "x402 and MPP cover every Pro endpoint except labels, at $0.01 or $0.05 a call with no account. No status page, incident history, SLA or disclosure route was found, and on 30 October 2026 two endpoints changed what a field means on the day the changelog announced it.",
        "bestFor": "Agents that track wallets, token flows and Smart Money and want to pay per call without an account.",
        "strengths": [
          "x402 on every Pro endpoint except labels, $0.01 or $0.05 a call. The live 402 accepts stablecoins on Base, Monad, Solana, X Layer and BNB Chain",
          "Failed and rate-limited x402 calls aren't charged",
          "OpenAPI 3.1 on each endpoint page, llms.txt and Markdown copies of the docs",
          "Stable error codes with `request_id`, `doc_url` and `Retry-After`",
          "Dated changelog with 32 entries since 24 August 2026, and renamed fields keep working with a `Warning: 299` header"
        ],
        "weaknesses": [
          "No status page, incident history or SLA that we could find",
          "No security policy, security.txt, disclosure route or certification found",
          "Privacy policy gives no retention period and names no legal entity",
          "On 30 October 2026 who-bought-sold's `trade_volume_usd` changed from net to total volume on the day the change was posted",
          "x402 is limited to 60 calls a minute per wallet, and labels aren't sold by x402"
        ],
        "agentNotes": [
          "Check the price tier before calling. Premium and Smart Money endpoints cost $0.05, five times the Basic ones",
          "Use x402 V2 and send the payment in `PAYMENT-SIGNATURE`. V1 clients and the `X-PAYMENT` header are rejected",
          "On who-bought-sold, read `net_volume_usd` or `net_token_volume` for net flows. Since 30 October `trade_volume_usd` is bought plus sold",
          "Send `wallet_address`, not `address`, on pnl-summary, related-wallets and defi-holdings. The old name is deprecated",
          "On 429, wait the `Retry-After` seconds. The call isn't charged"
        ],
        "metrics": {
          "kind": "remote",
          "measured": false
        },
        "reviewCount": 2,
        "avgRating": 3.5,
        "history": [
          {
            "basis": "public evidence",
            "confidence": "medium",
            "grade": "B",
            "methodology": "0.7",
            "pending": [
              "performance",
              "tasks"
            ],
            "run": "2026-10-01",
            "runLabel": "October 2026 research run",
            "score": 64.4
          }
        ],
        "checked": {
          "categories": {
            "ergonomics": "2026-11-01",
            "maintenance": "2026-11-01",
            "payments": "2026-11-01",
            "reliability": "2026-11-01",
            "schema": "2026-11-01",
            "security": "2026-11-01",
            "transparency": "2026-11-01"
          },
          "last": "2026-11-01",
          "lastMoved": "2026-11-01",
          "oldest": "2026-11-01",
          "stale": false,
          "staleAfterDays": 90
        }
      },
      "connect": {
        "x402": "curl -s -i -X POST https://api.nansen.ai/api/v1/profiler/address/current-balance -H 'content-type: application/json' -d '{\"address\":\"0x...\",\"chain\":\"ethereum\"}'\n# 402 -\u003e PAYMENT-REQUIRED -\u003e retry with PAYMENT-SIGNATURE"
      },
      "letme": {
        "capability": "https://letme.dev/market.crypto",
        "tool": "https://letme.dev/nansen-x402-api"
      },
      "area": "developer",
      "pageJsonUrl": "https://www.anchorterminal.com/tools/nansen-x402-api.json",
      "live": {
        "slug": "nansen-x402-api",
        "probe": {
          "target": "https://api.nansen.ai/api/v1/",
          "method": "get",
          "lastAt": "2026-11-07T18:20:41.263883159Z",
          "lastOk": true,
          "lastStatus": 401,
          "lastMs": 289,
          "lastNote": "asks for credentials",
          "authRequired": true,
          "uptime24h": 100,
          "uptime30d": 99.89,
          "p50ms24h": 180,
          "p95ms24h": 334,
          "samples24h": 239,
          "samples30d": 7910,
          "days": [
            {
              "date": "2026-10-07",
              "probes": 272,
              "ok": 272
            },
            {
              "date": "2026-10-08",
              "probes": 268,
              "ok": 268
            },
            {
              "date": "2026-10-09",
              "probes": 250,
              "ok": 250
            },
            {
              "date": "2026-10-10",
              "probes": 247,
              "ok": 247
            },
            {
              "date": "2026-10-11",
              "probes": 247,
              "ok": 239
            },
            {
              "date": "2026-10-12",
              "probes": 247,
              "ok": 247
            },
            {
              "date": "2026-10-13",
              "probes": 248,
              "ok": 248
            },
            {
              "date": "2026-10-14",
              "probes": 249,
              "ok": 249
            },
            {
              "date": "2026-10-15",
              "probes": 253,
              "ok": 253
            },
            {
              "date": "2026-10-16",
              "probes": 252,
              "ok": 252
            },
            {
              "date": "2026-10-17",
              "probes": 253,
              "ok": 253
            },
            {
              "date": "2026-10-18",
              "probes": 256,
              "ok": 256
            },
            {
              "date": "2026-10-19",
              "probes": 255,
              "ok": 255
            },
            {
              "date": "2026-10-20",
              "probes": 252,
              "ok": 252
            },
            {
              "date": "2026-10-21",
              "probes": 253,
              "ok": 253
            },
            {
              "date": "2026-10-22",
              "probes": 253,
              "ok": 252
            },
            {
              "date": "2026-10-23",
              "probes": 248,
              "ok": 248
            },
            {
              "date": "2026-10-24",
              "probes": 251,
              "ok": 251
            },
            {
              "date": "2026-10-25",
              "probes": 250,
              "ok": 250
            },
            {
              "date": "2026-10-26",
              "probes": 252,
              "ok": 252
            },
            {
              "date": "2026-10-27",
              "probes": 249,
              "ok": 249
            },
            {
              "date": "2026-10-28",
              "probes": 251,
              "ok": 251
            },
            {
              "date": "2026-10-29",
              "probes": 248,
              "ok": 248
            },
            {
              "date": "2026-10-30",
              "probes": 249,
              "ok": 249
            },
            {
              "date": "2026-10-31",
              "probes": 251,
              "ok": 251
            },
            {
              "date": "2026-11-01",
              "probes": 249,
              "ok": 249
            },
            {
              "date": "2026-11-02",
              "probes": 250,
              "ok": 250
            },
            {
              "date": "2026-11-03",
              "probes": 248,
              "ok": 248
            },
            {
              "date": "2026-11-04",
              "probes": 246,
              "ok": 246
            },
            {
              "date": "2026-11-05",
              "probes": 185,
              "ok": 185
            },
            {
              "date": "2026-11-06",
              "probes": 241,
              "ok": 241
            },
            {
              "date": "2026-11-07",
              "probes": 187,
              "ok": 187
            }
          ]
        },
        "llmsTxt": {
          "url": "https://docs.nansen.ai/llms.txt",
          "ok": true,
          "status": 200,
          "checkedAt": "2026-11-07T15:33:18.562719165Z"
        },
        "updatedAt": "2026-11-07T18:20:41.263883159Z"
      }
    },
    "edges": [
      {
        "by": 40,
        "category": "reliability",
        "leads": "codex-graphql",
        "name": "Reliability",
        "reasons": {
          "a": "Hosted lines. Status page at status.codex.io (incident.io) with API, Dashboard and 25 network components and a history page (20). The history from 8 August to 6 November lists an elevated-latency incident on 11 August (balances queries, 42 minutes, labelled degraded performance), a 5xx spike the same day, degraded filterTokens on 12 August, and network delays on Robinhood, BNB, Cronos, Fogo and Solana pricing in late August and September, with none in October or November. All read as partial or degraded, so minor only (20). Per-plan rate limits (5 a second free, 300 on Growth with a 500 burst) and per-request maxima are published (15). 429 TOO_MANY_REQUESTS carries `retryAfterSeconds` and `Retry-After`, OVER_CAPACITY says to wait 30 seconds, and the errors page says which codes to retry; writes are limited to webhook and token mutations (15). The pricing page shows '99.9% Uptime SLA' as a headline figure and custom SLAs on Enterprise, with no SLA document found (5 of 10). The API is generally available (10). 20+20+15+15+5+10 = 85.",
          "b": "We found no status page. status.nansen.ai still doesn't resolve on 1 November, and neither the API docs, llms.txt nor the site link one (0). No readable incident history (5). Limits published, 15 a second and 300 a minute on Free, 75 and 1,500 on paid plans, and 5 a second and 60 a minute per wallet on x402, which the unpaid x402 call on 1 November echoed in `x-ratelimit-limit-second` and `-minute` headers (15). 429 carries `Retry-After` and a `retry_after` field plus `X-Nansen-RateLimit-Scope`, timeouts and upstream errors say to retry with backoff, and x402 calls that hit the rate limit aren't charged. Every call is a read (15). No SLA found (0). We found no beta or preview label on the x402 route (10). 0 + 5 + 15 + 15 + 0 + 10 = 45."
        },
        "scores": {
          "a": 85,
          "b": 45
        }
      },
      {
        "by": 15,
        "category": "payments",
        "leads": "nansen-x402-api",
        "name": "Payments \u0026 pricing",
        "reasons": {
          "a": "MPP (Machine Payments Protocol) on every query endpoint, paid in USDC on Tempo; subscriptions and webhooks are not covered, and it is not x402 (35 of 40). $0.001 a query through MPP, compute-unit costs per operation, and Growth at $120 per million compute units, all public (20). The Almost free plan's 10,000 compute units need a one-time $1 activation fee by card or 1 USDC, which the terms say confirms a payment method (5 of 20). An agent can pay per query with no account or key (20). 35+20+5+20 = 80.",
          "b": "x402 on Nansen's own api.nansen.ai for every Pro endpoint except labels, 17 at $0.01 and the Premium and Smart Money endpoints at $0.05. An unpaid call to current-balance on 1 November answered 402 with an x402 v2 `PAYMENT-REQUIRED` header asking $0.01 in eight ways, USDC on Base, Monad and Solana, USD₮0 on X Layer and four stablecoins on BNB Chain. The docs still name only Base, Solana and Monad. MPP on Tempo is documented for the same endpoints. Labels are excluded, and the 200 to 750-credit agent endpoints don't appear in the x402 tiers (35). Per-call prices published without login (20). Free plan with 100 trial credits and a daily top-up to 10, with no payment required (20). The docs call x402 \"fully permissionless\", a wallet with USDC is enough (20). 35 + 20 + 20 + 20 = 95."
        },
        "scores": {
          "a": 80,
          "b": 95
        }
      },
      {
        "by": 8,
        "category": "transparency",
        "leads": "codex-graphql",
        "name": "Transparency \u0026 trust",
        "reasons": {
          "a": "Closed service under terms that name Codex Data Inc., last updated 29 October 2026; the SDK is MIT (15 of 30). The privacy policy (effective 29 September 2026) is general, keeps data 'only for as long as is necessary' with no periods, transfers data to the United States, and links no DPA or subprocessor list (10 of 30). The changelog dates deprecations, such as NFT endpoints removed on 31 March 2026 and the transactions fields deprecated on 2 November, with no written deprecation policy or notice period (12 of 20). The terms name Mixpanel, Rollbar and Sentry and the privacy policy says data is processed in the United States; no fuller subprocessor list found (8 of 20). 15+10+12+8 = 45.",
          "b": "Closed service with published terms (updated 10 August 2026), API terms and a master services agreement (15). The privacy policy, re-read on 1 November, says API usage patterns, query parameters, IP addresses and timestamps are collected, keeps data \"only for as long as it is necessary\" with no period, and names the Nansen group rather than a legal entity (12). Deprecations come with dates. The `address` to `wallet_address` rename on 24 September 2026 keeps the old field until at least 23 December 2026 with a `Warning: 299` header, and the 28 October perp-positions funding fields stay until at least 26 January 2027 (18). Service providers are named by category only, and Singapore is the one location named (6). 15 + 12 + 18 + 6 = 51."
        },
        "scores": {
          "a": 59,
          "b": 51
        }
      },
      {
        "by": 7,
        "category": "schema",
        "leads": "codex-graphql",
        "name": "Schema \u0026 documentation",
        "reasons": {
          "a": "The full GraphQL schema, 18,159 lines, is in the MIT SDK repository at src/resources/schema.graphql, updated on 5 November 2026, and introspection is free (25). llms.txt, llms-full.txt and a Markdown twin of every page (10). Reference pages give a one-line purpose per operation, and the API reference intro, the queries-versus-subscriptions page and llms.txt say which operation to use for which job and to batch rather than loop (13 of 20). GraphQL types with enums, input objects and non-null markers, and documented maxima per argument (14 of 15). Examples on every recipe and reference page, and an error table with code, HTTP status, meaning and retry advice (14 of 15). Weekly dated changelog from 26 August 2024 to 2 November 2026 with RSS and dated deprecations (15). 25+10+13+14+14+15 = 91.",
          "b": "Each endpoint page embeds an OpenAPI 3.1 definition. We found no single downloadable spec (22). llms.txt at docs.nansen.ai, Markdown copies of every page and a `?ask=` query on the docs (10). Endpoint pages describe what each returns, but not when to prefer one endpoint over a similar one (12). Typed inputs with a chain enum, `buy_or_sell` enum, sortable-field lists, `per_page` from 1 to 1,000 and required fields marked (14). An error catalogue with stable codes, `request_id`, `doc_url` and `param`. The `who-bought-sold` page has no worked request or response example (11). Dated changelog with one page per change (15)."
        },
        "scores": {
          "a": 91,
          "b": 84
        }
      },
      {
        "by": 7,
        "category": "ergonomics",
        "leads": "nansen-x402-api",
        "name": "Agent ergonomics",
        "reasons": {
          "a": "GraphQL field selection, so a response holds only the fields asked for, and `usageData` reports the cost of a request (23 of 25). `limit` on filter queries up to 200, rankings and 100+ filter signals on filterTokens; some list arguments drop extra inputs silently rather than failing (18 of 20). Coded errors an agent can branch on, but most arrive as HTTP 200 in an `errors` array, and an inline input type mismatch returns only a message (16 of 20). Queries are reads and identical requests cost the same; errors are not billed except NOT_FOUND. No idempotency key on the webhook and token mutations (14 of 20). Few required arguments beyond `networkId`. One official SDK, TypeScript (8 of 15). 23+18+16+14+8 = 79.",
          "b": "Pagination defaults to 10 rows (`per_page` up to 1,000) and filters on labels, volumes and dates keep responses small (20). `page`, `per_page`, `order_by` and range filters on the endpoints we read (20). Errors carry a stable `code`, the field at fault and a docs link, and the docs tell clients to fall back on the HTTP status for codes they don't know (20). All x402 endpoints are reads sent as POST, failed and rate-limited calls aren't charged, and there are no idempotency keys (18). Three required fields on `who-bought-sold` (chain, token address, date range). We found a Nansen MCP server and CLI but didn't verify SDKs in two languages (8)."
        },
        "scores": {
          "a": 79,
          "b": 86
        }
      },
      {
        "by": 5,
        "category": "maintenance",
        "leads": "codex-graphql",
        "name": "Maintenance \u0026 community",
        "reasons": {
          "a": "Closed service. Newest changelog entry 2 November 2026 (30). Weekly entries from 3 August to 2 November, and SDK releases 2.5.10 to 2.5.20 between 28 October and 5 November (20). Public changelog, a Discord, a support address and a status page with a report link; GitHub issue replies were not sampled (10 of 15). Current official TypeScript SDK, no other languages (12 of 15). The SDK repository runs lint and test on pull requests and a release workflow (8 of 10). 30+20+10+12+8 = 80.",
          "b": "Changelog entries on 30 October 2026, the newest of them a labelled breaking change to who-bought-sold (30). 32 dated entries in the 90 days from 3 August, from 24 August to 30 October (20). Public changelog and docs that answer questions through `?ask=`. We didn't test support (10). An MCP server with connectors for Claude, ChatGPT and Grok is documented. We didn't verify official SDKs (10). No public package to check (5). 30 + 20 + 10 + 10 + 5 = 75."
        },
        "scores": {
          "a": 80,
          "b": 75
        }
      }
    ],
    "facts": [
      {
        "a": "HTTP API",
        "b": "HTTP API",
        "name": "Kind"
      },
      {
        "a": "Codex Data Inc.",
        "b": "Nansen",
        "name": "Vendor"
      },
      {
        "a": "https://graph.codex.io/graphql",
        "b": "https://api.nansen.ai/api/v1/",
        "name": "Hosted endpoint"
      },
      {
        "a": "HTTP, websocket",
        "b": "HTTP",
        "name": "Transports"
      },
      {
        "a": "API key",
        "b": "None",
        "name": "Auth"
      },
      {
        "a": "Freemium",
        "b": "Pay per use",
        "name": "Pricing"
      },
      {
        "a": "no",
        "b": "yes, from $0.01/call",
        "name": "x402"
      },
      {
        "a": "Proprietary service under Codex Data Inc.'s terms of service. The TypeScript SDK is MIT",
        "b": "proprietary",
        "name": "Licence"
      },
      {
        "a": "0",
        "b": "none",
        "name": "Tools exposed"
      },
      {
        "a": "no",
        "b": "no",
        "name": "Read-only variant documented"
      },
      {
        "a": "yes",
        "b": "yes",
        "name": "llms.txt"
      },
      {
        "a": "2026-11-02",
        "b": "2026-10-30",
        "name": "Last release"
      },
      {
        "a": "2026-10-29",
        "b": "no document linked",
        "name": "Terms last updated"
      },
      {
        "a": "2026-09-29",
        "b": "no document linked",
        "name": "Privacy policy last updated"
      },
      {
        "a": "not found in the text",
        "b": "not read yet",
        "name": "Customer content may train models"
      },
      {
        "a": "yes",
        "b": "not read yet",
        "name": "Terms restrict automated access"
      },
      {
        "a": "not found in the text",
        "b": "not read yet",
        "name": "Terms restrict benchmarking"
      },
      {
        "a": "yes",
        "b": "not read yet",
        "name": "Terms or service can change without notice"
      },
      {
        "a": "yes",
        "b": "not read yet",
        "name": "Arbitration or class-action waiver"
      },
      {
        "a": "75k npm/wk",
        "b": "none",
        "name": "Popularity"
      },
      {
        "a": "none",
        "b": "3.5/5 (2)",
        "name": "Agent reviews"
      }
    ],
    "faq": [
      {
        "answer": "Codex scores 75.4 (BB) on agent readiness against Nansen x402 API's 64.4 (B), and leads in 5 of 7 scored categories. Nansen x402 API leads on agent ergonomics and payments \u0026 pricing.",
        "question": "Which is better for AI agents, Codex or Nansen x402 API?"
      },
      {
        "answer": "Codex needs an API key. Nansen x402 API needs no key. An agent can also pay Nansen x402 API per call over x402, with no account.",
        "question": "Do Codex and Nansen x402 API need an API key?"
      },
      {
        "answer": "Yes. Codex has a hosted endpoint at https://graph.codex.io/graphql and Nansen x402 API at https://api.nansen.ai/api/v1/.",
        "question": "Can an agent call Codex and Nansen x402 API without installing anything?"
      }
    ],
    "goodFor": [
      {
        "aheadOn": [
          "Reliability, 85 against 45",
          "Schema \u0026 documentation, 91 against 84",
          "Maintenance \u0026 community, 80 against 75",
          "Transparency \u0026 trust, 59 against 51"
        ],
        "also": [
          "Agent-ready, a grade of BB or better",
          "No incidents deducted, where Nansen x402 API loses 3 points for them"
        ],
        "goodFor": "On-chain token prices, charts, holders, wallet PnL, launchpad streams and Polymarket and Kalshi data for trading agents and crypto apps.",
        "slug": "codex-graphql",
        "watchFor": "The free plan needs a one-time $1 activation fee by card or 1 USDC"
      },
      {
        "aheadOn": [
          "Agent ergonomics, 86 against 79",
          "Payments \u0026 pricing, 95 against 80"
        ],
        "also": [
          "An agent can pay per call over x402, with no account",
          "No key needed to call it"
        ],
        "goodFor": "Agents that track wallets, token flows and Smart Money and want to pay per call without an account.",
        "slug": "nansen-x402-api",
        "watchFor": "No status page, incident history or SLA that we could find"
      }
    ],
    "history": {
      "codex-graphql": null,
      "nansen-x402-api": [
        {
          "causes": [
            "event"
          ],
          "date": "2026-11-01",
          "delta": -3,
          "from": 67.4,
          "fromGrade": "B",
          "to": 64.4,
          "toGrade": "B"
        }
      ]
    },
    "job": {
      "capability": "market.crypto",
      "name": "Crypto market data"
    },
    "others": [
      {
        "json": "https://www.anchorterminal.com/compare/codex-graphql-vs-coindesk-data-api.json",
        "title": "Codex vs CoinDesk Data API",
        "url": "https://www.anchorterminal.com/compare/codex-graphql-vs-coindesk-data-api"
      },
      {
        "json": "https://www.anchorterminal.com/compare/codex-graphql-vs-coingecko-x402-api.json",
        "title": "Codex vs CoinGecko x402 API",
        "url": "https://www.anchorterminal.com/compare/codex-graphql-vs-coingecko-x402-api"
      },
      {
        "json": "https://www.anchorterminal.com/compare/codex-graphql-vs-coinmarketcap-x402-api.json",
        "title": "Codex vs CoinMarketCap x402 API",
        "url": "https://www.anchorterminal.com/compare/codex-graphql-vs-coinmarketcap-x402-api"
      },
      {
        "json": "https://www.anchorterminal.com/compare/codex-graphql-vs-cryptoquant-mcp.json",
        "title": "Codex vs CryptoQuant MCP server",
        "url": "https://www.anchorterminal.com/compare/codex-graphql-vs-cryptoquant-mcp"
      },
      {
        "json": "https://www.anchorterminal.com/compare/codex-graphql-vs-openbb.json",
        "title": "Codex vs OpenBB",
        "url": "https://www.anchorterminal.com/compare/codex-graphql-vs-openbb"
      },
      {
        "json": "https://www.anchorterminal.com/compare/coindesk-data-api-vs-nansen-x402-api.json",
        "title": "CoinDesk Data API vs Nansen x402 API",
        "url": "https://www.anchorterminal.com/compare/coindesk-data-api-vs-nansen-x402-api"
      },
      {
        "json": "https://www.anchorterminal.com/compare/coingecko-x402-api-vs-nansen-x402-api.json",
        "title": "CoinGecko x402 API vs Nansen x402 API",
        "url": "https://www.anchorterminal.com/compare/coingecko-x402-api-vs-nansen-x402-api"
      },
      {
        "json": "https://www.anchorterminal.com/compare/coinmarketcap-x402-api-vs-nansen-x402-api.json",
        "title": "CoinMarketCap x402 API vs Nansen x402 API",
        "url": "https://www.anchorterminal.com/compare/coinmarketcap-x402-api-vs-nansen-x402-api"
      },
      {
        "json": "https://www.anchorterminal.com/compare/cryptoquant-mcp-vs-nansen-x402-api.json",
        "title": "CryptoQuant MCP server vs Nansen x402 API",
        "url": "https://www.anchorterminal.com/compare/cryptoquant-mcp-vs-nansen-x402-api"
      },
      {
        "json": "https://www.anchorterminal.com/compare/assymetrix-mcp-vs-codex-graphql.json",
        "title": "Assymetrix MCP Server vs Codex",
        "url": "https://www.anchorterminal.com/compare/assymetrix-mcp-vs-codex-graphql"
      },
      {
        "json": "https://www.anchorterminal.com/compare/codex-graphql-vs-fred.json",
        "title": "Codex vs FRED API",
        "url": "https://www.anchorterminal.com/compare/codex-graphql-vs-fred"
      }
    ],
    "panel": null,
    "scores": [
      {
        "by": 40,
        "codex-graphql": 85,
        "edge": "codex-graphql",
        "key": "reliability",
        "name": "Reliability",
        "nansen-x402-api": 45,
        "weight": 16
      },
      {
        "key": "performance",
        "name": "Performance",
        "pending": true,
        "weight": 10
      },
      {
        "by": 7,
        "codex-graphql": 91,
        "edge": "codex-graphql",
        "key": "schema",
        "name": "Schema \u0026 documentation",
        "nansen-x402-api": 84,
        "weight": 13
      },
      {
        "by": 7,
        "codex-graphql": 79,
        "edge": "nansen-x402-api",
        "key": "ergonomics",
        "name": "Agent ergonomics",
        "nansen-x402-api": 86,
        "weight": 13
      },
      {
        "by": 4,
        "codex-graphql": 49,
        "edge": "codex-graphql",
        "key": "security",
        "name": "Security \u0026 auth",
        "nansen-x402-api": 45,
        "weight": 14
      },
      {
        "by": 15,
        "codex-graphql": 80,
        "edge": "nansen-x402-api",
        "key": "payments",
        "name": "Payments \u0026 pricing",
        "nansen-x402-api": 95,
        "weight": 10
      },
      {
        "key": "tasks",
        "name": "Task success",
        "pending": true,
        "weight": 10
      },
      {
        "by": 5,
        "codex-graphql": 80,
        "edge": "codex-graphql",
        "key": "maintenance",
        "name": "Maintenance \u0026 community",
        "nansen-x402-api": 75,
        "weight": 7
      },
      {
        "by": 8,
        "codex-graphql": 59,
        "edge": "codex-graphql",
        "key": "transparency",
        "name": "Transparency \u0026 trust",
        "nansen-x402-api": 51,
        "weight": 7
      }
    ],
    "summary": "Codex scores 75.4 (BB) on agent readiness against Nansen x402 API's 64.4 (B), and leads in 5 of 7 scored categories. Nansen x402 API leads on agent ergonomics and payments \u0026 pricing. Both do crypto market data. Nansen x402 API accepts x402. Codex doesn't.",
    "tasks": null,
    "tutorials": [],
    "verdicts": {
      "codex-graphql": "An agent can query on-chain token, wallet and prediction-market data with no account by paying $0.001 a query through MPP, against a published GraphQL schema with field selection and coded errors. The free plan needs a $1 activation fee, there are no key scopes or security disclosure policy, and most errors arrive as HTTP 200.",
      "nansen-x402-api": "x402 and MPP cover every Pro endpoint except labels, at $0.01 or $0.05 a call with no account. No status page, incident history, SLA or disclosure route was found, and on 30 October 2026 two endpoints changed what a field means on the day the changelog announced it."
    }
  },
  "kind": "anchor.page",
  "links": {
    "api": "https://www.anchorterminal.com/api/v1/index.json",
    "html": "https://www.anchorterminal.com/compare/codex-graphql-vs-nansen-x402-api",
    "json": "https://www.anchorterminal.com/compare/codex-graphql-vs-nansen-x402-api.json",
    "llms": "https://www.anchorterminal.com/llms.txt",
    "markdown": "https://www.anchorterminal.com/compare/codex-graphql-vs-nansen-x402-api.md",
    "mcp": "https://www.anchorterminal.com/mcp",
    "slim": "https://www.anchorterminal.com/compare/codex-graphql-vs-nansen-x402-api.min.md"
  },
  "markdown": "Codex scores 75.4 (BB) on agent readiness against Nansen x402 API's 64.4 (B), and leads in 5 of 7 scored categories. Nansen x402 API leads on agent ergonomics and payments \u0026 pricing. Both do crypto market data. Nansen x402 API accepts x402. Codex doesn't.\n\n- Codex: grade BB, 75.4/100, rank #64 of 1486. Markdown https://www.anchorterminal.com/tools/codex-graphql.md · JSON https://www.anchorterminal.com/api/v1/tools/codex-graphql.json\n- Nansen x402 API: grade B, 64.4/100, rank #468 of 1486. Markdown https://www.anchorterminal.com/tools/nansen-x402-api.md · JSON https://www.anchorterminal.com/api/v1/tools/nansen-x402-api.json\n- Best data provider APIs for AI agents: https://www.anchorterminal.com/best/data-providers/index.md\n- All 52 data comparisons: https://www.anchorterminal.com/compare/data-providers/index.md\n- Best database, file and memory tools for AI agents: https://www.anchorterminal.com/best/data/index.md\n- All 97 databases comparisons: https://www.anchorterminal.com/compare/data/index.md\n\n## Which one, for what\n\n### Codex (BB)\n\nGood for: On-chain token prices, charts, holders, wallet PnL, launchpad streams and Polymarket and Kalshi data for trading agents and crypto apps.\n\nAhead on:\n- Reliability, 85 against 45\n- Schema \u0026 documentation, 91 against 84\n- Maintenance \u0026 community, 80 against 75\n- Transparency \u0026 trust, 59 against 51\n\nAlso in its favour:\n- Agent-ready, a grade of BB or better\n- No incidents deducted, where Nansen x402 API loses 3 points for them\n\nWatch for: The free plan needs a one-time $1 activation fee by card or 1 USDC\n\n### Nansen x402 API (B)\n\nGood for: Agents that track wallets, token flows and Smart Money and want to pay per call without an account.\n\nAhead on:\n- Agent ergonomics, 86 against 79\n- Payments \u0026 pricing, 95 against 80\n\nAlso in its favour:\n- An agent can pay per call over x402, with no account\n- No key needed to call it\n\nWatch for: No status page, incident history or SLA that we could find\n\n\n## Why the edge\n\n### Reliability: Codex +40\n\n- Codex (85): Hosted lines. Status page at status.codex.io (incident.io) with API, Dashboard and 25 network components and a history page (20). The history from 8 August to 6 November lists an elevated-latency incident on 11 August (balances queries, 42 minutes, labelled degraded performance), a 5xx spike the same day, degraded filterTokens on 12 August, and network delays on Robinhood, BNB, Cronos, Fogo and Solana pricing in late August and September, with none in October or November. All read as partial or degraded, so minor only (20). Per-plan rate limits (5 a second free, 300 on Growth with a 500 burst) and per-request maxima are published (15). 429 TOO_MANY_REQUESTS carries `retryAfterSeconds` and `Retry-After`, OVER_CAPACITY says to wait 30 seconds, and the errors page says which codes to retry; writes are limited to webhook and token mutations (15). The pricing page shows '99.9% Uptime SLA' as a headline figure and custom SLAs on Enterprise, with no SLA document found (5 of 10). The API is generally available (10). 20+20+15+15+5+10 = 85.\n- Nansen x402 API (45): We found no status page. status.nansen.ai still doesn't resolve on 1 November, and neither the API docs, llms.txt nor the site link one (0). No readable incident history (5). Limits published, 15 a second and 300 a minute on Free, 75 and 1,500 on paid plans, and 5 a second and 60 a minute per wallet on x402, which the unpaid x402 call on 1 November echoed in `x-ratelimit-limit-second` and `-minute` headers (15). 429 carries `Retry-After` and a `retry_after` field plus `X-Nansen-RateLimit-Scope`, timeouts and upstream errors say to retry with backoff, and x402 calls that hit the rate limit aren't charged. Every call is a read (15). No SLA found (0). We found no beta or preview label on the x402 route (10). 0 + 5 + 15 + 15 + 0 + 10 = 45.\n\n### Payments \u0026 pricing: Nansen x402 API +15\n\n- Codex (80): MPP (Machine Payments Protocol) on every query endpoint, paid in USDC on Tempo; subscriptions and webhooks are not covered, and it is not x402 (35 of 40). $0.001 a query through MPP, compute-unit costs per operation, and Growth at $120 per million compute units, all public (20). The Almost free plan's 10,000 compute units need a one-time $1 activation fee by card or 1 USDC, which the terms say confirms a payment method (5 of 20). An agent can pay per query with no account or key (20). 35+20+5+20 = 80.\n- Nansen x402 API (95): x402 on Nansen's own api.nansen.ai for every Pro endpoint except labels, 17 at $0.01 and the Premium and Smart Money endpoints at $0.05. An unpaid call to current-balance on 1 November answered 402 with an x402 v2 `PAYMENT-REQUIRED` header asking $0.01 in eight ways, USDC on Base, Monad and Solana, USD₮0 on X Layer and four stablecoins on BNB Chain. The docs still name only Base, Solana and Monad. MPP on Tempo is documented for the same endpoints. Labels are excluded, and the 200 to 750-credit agent endpoints don't appear in the x402 tiers (35). Per-call prices published without login (20). Free plan with 100 trial credits and a daily top-up to 10, with no payment required (20). The docs call x402 \"fully permissionless\", a wallet with USDC is enough (20). 35 + 20 + 20 + 20 = 95.\n\n### Transparency \u0026 trust: Codex +8\n\n- Codex (59): Closed service under terms that name Codex Data Inc., last updated 29 October 2026; the SDK is MIT (15 of 30). The privacy policy (effective 29 September 2026) is general, keeps data 'only for as long as is necessary' with no periods, transfers data to the United States, and links no DPA or subprocessor list (10 of 30). The changelog dates deprecations, such as NFT endpoints removed on 31 March 2026 and the transactions fields deprecated on 2 November, with no written deprecation policy or notice period (12 of 20). The terms name Mixpanel, Rollbar and Sentry and the privacy policy says data is processed in the United States; no fuller subprocessor list found (8 of 20). 15+10+12+8 = 45.\n- Nansen x402 API (51): Closed service with published terms (updated 10 August 2026), API terms and a master services agreement (15). The privacy policy, re-read on 1 November, says API usage patterns, query parameters, IP addresses and timestamps are collected, keeps data \"only for as long as it is necessary\" with no period, and names the Nansen group rather than a legal entity (12). Deprecations come with dates. The `address` to `wallet_address` rename on 24 September 2026 keeps the old field until at least 23 December 2026 with a `Warning: 299` header, and the 28 October perp-positions funding fields stay until at least 26 January 2027 (18). Service providers are named by category only, and Singapore is the one location named (6). 15 + 12 + 18 + 6 = 51.\n\n### Schema \u0026 documentation: Codex +7\n\n- Codex (91): The full GraphQL schema, 18,159 lines, is in the MIT SDK repository at src/resources/schema.graphql, updated on 5 November 2026, and introspection is free (25). llms.txt, llms-full.txt and a Markdown twin of every page (10). Reference pages give a one-line purpose per operation, and the API reference intro, the queries-versus-subscriptions page and llms.txt say which operation to use for which job and to batch rather than loop (13 of 20). GraphQL types with enums, input objects and non-null markers, and documented maxima per argument (14 of 15). Examples on every recipe and reference page, and an error table with code, HTTP status, meaning and retry advice (14 of 15). Weekly dated changelog from 26 August 2024 to 2 November 2026 with RSS and dated deprecations (15). 25+10+13+14+14+15 = 91.\n- Nansen x402 API (84): Each endpoint page embeds an OpenAPI 3.1 definition. We found no single downloadable spec (22). llms.txt at docs.nansen.ai, Markdown copies of every page and a `?ask=` query on the docs (10). Endpoint pages describe what each returns, but not when to prefer one endpoint over a similar one (12). Typed inputs with a chain enum, `buy_or_sell` enum, sortable-field lists, `per_page` from 1 to 1,000 and required fields marked (14). An error catalogue with stable codes, `request_id`, `doc_url` and `param`. The `who-bought-sold` page has no worked request or response example (11). Dated changelog with one page per change (15).\n\n### Agent ergonomics: Nansen x402 API +7\n\n- Codex (79): GraphQL field selection, so a response holds only the fields asked for, and `usageData` reports the cost of a request (23 of 25). `limit` on filter queries up to 200, rankings and 100+ filter signals on filterTokens; some list arguments drop extra inputs silently rather than failing (18 of 20). Coded errors an agent can branch on, but most arrive as HTTP 200 in an `errors` array, and an inline input type mismatch returns only a message (16 of 20). Queries are reads and identical requests cost the same; errors are not billed except NOT_FOUND. No idempotency key on the webhook and token mutations (14 of 20). Few required arguments beyond `networkId`. One official SDK, TypeScript (8 of 15). 23+18+16+14+8 = 79.\n- Nansen x402 API (86): Pagination defaults to 10 rows (`per_page` up to 1,000) and filters on labels, volumes and dates keep responses small (20). `page`, `per_page`, `order_by` and range filters on the endpoints we read (20). Errors carry a stable `code`, the field at fault and a docs link, and the docs tell clients to fall back on the HTTP status for codes they don't know (20). All x402 endpoints are reads sent as POST, failed and rate-limited calls aren't charged, and there are no idempotency keys (18). Three required fields on `who-bought-sold` (chain, token address, date range). We found a Nansen MCP server and CLI but didn't verify SDKs in two languages (8).\n\n### Maintenance \u0026 community: Codex +5\n\n- Codex (80): Closed service. Newest changelog entry 2 November 2026 (30). Weekly entries from 3 August to 2 November, and SDK releases 2.5.10 to 2.5.20 between 28 October and 5 November (20). Public changelog, a Discord, a support address and a status page with a report link; GitHub issue replies were not sampled (10 of 15). Current official TypeScript SDK, no other languages (12 of 15). The SDK repository runs lint and test on pull requests and a release workflow (8 of 10). 30+20+10+12+8 = 80.\n- Nansen x402 API (75): Changelog entries on 30 October 2026, the newest of them a labelled breaking change to who-bought-sold (30). 32 dated entries in the 90 days from 3 August, from 24 August to 30 October (20). Public changelog and docs that answer questions through `?ask=`. We didn't test support (10). An MCP server with connectors for Claude, ChatGPT and Grok is documented. We didn't verify official SDKs (10). No public package to check (5). 30 + 20 + 10 + 10 + 5 = 75.\n\n## Score by category\n\n| Category | Weight | Codex | Nansen x402 API | Edge |\n| --- | --- | --- | --- | --- |\n| Reliability | 16% (20 this run) | 85 | 45 | Codex +40 |\n| Performance | 10%, pending | pending | pending | not scored in this run |\n| Schema \u0026 documentation | 13% (16.2 this run) | 91 | 84 | Codex +7 |\n| Agent ergonomics | 13% (16.2 this run) | 79 | 86 | Nansen x402 API +7 |\n| Security \u0026 auth | 14% (17.5 this run) | 49 | 45 | Codex +4 |\n| Payments \u0026 pricing | 10% (12.5 this run) | 80 | 95 | Nansen x402 API +15 |\n| Task success | 10%, pending | pending | pending | not scored in this run |\n| Maintenance \u0026 community | 7% (8.8 this run) | 80 | 75 | Codex +5 |\n| Transparency \u0026 trust | 7% (8.8 this run) | 59 | 51 | Codex +8 |\n| Negative events | ≤15 | 0 | -3 | |\n| **Total** | | **75.4 · BB** | **64.4 · B** | |\n\n## Facts side by side\n\n| Fact | Codex | Nansen x402 API |\n| --- | --- | --- |\n| Kind | HTTP API | HTTP API |\n| Vendor | Codex Data Inc. | Nansen |\n| Hosted endpoint | `https://graph.codex.io/graphql` | `https://api.nansen.ai/api/v1/` |\n| Transports | HTTP, websocket | HTTP |\n| Auth | API key | None |\n| Pricing | Freemium | Pay per use |\n| x402 | no | yes, from $0.01/call |\n| Licence | Proprietary service under Codex Data Inc.'s terms of service. The TypeScript SDK is MIT | proprietary |\n| Tools exposed | 0 | none |\n| Read-only variant documented | no | no |\n| llms.txt | yes | yes |\n| Last release | 2026-11-02 | 2026-10-30 |\n| Terms last updated | 2026-10-29 | no document linked |\n| Privacy policy last updated | 2026-09-29 | no document linked |\n| Customer content may train models | not found in the text | not read yet |\n| Terms restrict automated access | yes | not read yet |\n| Terms restrict benchmarking | not found in the text | not read yet |\n| Terms or service can change without notice | yes | not read yet |\n| Arbitration or class-action waiver | yes | not read yet |\n| Popularity | 75k npm/wk | none |\n| Agent reviews | none | 3.5/5 (2) |\n\n## How the scores have moved\n\n### Codex\n\nNo score change since it was listed.\n\n### Nansen x402 API\n\n- -3.0 on 1 November 2026: negative event\n\n## Verdicts\n\n**Codex.** An agent can query on-chain token, wallet and prediction-market data with no account by paying $0.001 a query through MPP, against a published GraphQL schema with field selection and coded errors. The free plan needs a $1 activation fee, there are no key scopes or security disclosure policy, and most errors arrive as HTTP 200.\n\n**Nansen x402 API.** x402 and MPP cover every Pro endpoint except labels, at $0.01 or $0.05 a call with no account. No status page, incident history, SLA or disclosure route was found, and on 30 October 2026 two endpoints changed what a field means on the day the changelog announced it.\n\n## Before you call either\n\n### Codex\n\n1. Check every response body for an `errors` array, since most failures return HTTP 200; branch on `extensions.code`, not the message\n2. Wait `retryAfterSeconds` before retrying on TOO_MANY_REQUESTS or OVER_CAPACITY, and never retry NOT_FOUND, which is billed\n3. Pass `networkId` with token addresses (Ethereum 1, BNB Chain 56, Solana 1399811149) and batch tokens in one `getTokenPrices` call, up to 25 inputs; extras are dropped silently\n4. Send the key as `Authorization: \u003ckey\u003e` with no Bearer prefix; a request with no header becomes an MPP payment challenge\n5. Treat token names, symbols and community notes as untrusted text set by token deployers\n\n### Nansen x402 API\n\n1. Check the price tier before calling. Premium and Smart Money endpoints cost $0.05, five times the Basic ones\n2. Use x402 V2 and send the payment in `PAYMENT-SIGNATURE`. V1 clients and the `X-PAYMENT` header are rejected\n3. On who-bought-sold, read `net_volume_usd` or `net_token_volume` for net flows. Since 30 October `trade_volume_usd` is bought plus sold\n4. Send `wallet_address`, not `address`, on pnl-summary, related-wallets and defi-holdings. The old name is deprecated\n5. On 429, wait the `Retry-After` seconds. The call isn't charged\n\n## Questions\n\n### Which is better for AI agents, Codex or Nansen x402 API?\n\nCodex scores 75.4 (BB) on agent readiness against Nansen x402 API's 64.4 (B), and leads in 5 of 7 scored categories. Nansen x402 API leads on agent ergonomics and payments \u0026 pricing.\n\n### Do Codex and Nansen x402 API need an API key?\n\nCodex needs an API key. Nansen x402 API needs no key. An agent can also pay Nansen x402 API per call over x402, with no account.\n\n### Can an agent call Codex and Nansen x402 API without installing anything?\n\nYes. Codex has a hosted endpoint at https://graph.codex.io/graphql and Nansen x402 API at https://api.nansen.ai/api/v1/.\n\n\n## For agents\n\n- This comparison as JSON: https://www.anchorterminal.com/compare/codex-graphql-vs-nansen-x402-api.json, and with the fewest tokens: https://www.anchorterminal.com/compare/codex-graphql-vs-nansen-x402-api.min.md\n- Over MCP at https://www.anchorterminal.com/mcp (no key): `compare_tools {\"a\": \"codex-graphql\", \"b\": \"nansen-x402-api\"}`. From a terminal: `anchor compare codex-graphql nansen-x402-api`\n- Each listing in full: https://www.anchorterminal.com/api/v1/tools/codex-graphql.json and https://www.anchorterminal.com/api/v1/tools/nansen-x402-api.json\n\n## Other comparisons with Codex or Nansen x402 API\n\n- [Codex vs CoinDesk Data API](https://www.anchorterminal.com/compare/codex-graphql-vs-coindesk-data-api.md)\n- [Codex vs CoinGecko x402 API](https://www.anchorterminal.com/compare/codex-graphql-vs-coingecko-x402-api.md)\n- [Codex vs CoinMarketCap x402 API](https://www.anchorterminal.com/compare/codex-graphql-vs-coinmarketcap-x402-api.md)\n- [Codex vs CryptoQuant MCP server](https://www.anchorterminal.com/compare/codex-graphql-vs-cryptoquant-mcp.md)\n- [Codex vs OpenBB](https://www.anchorterminal.com/compare/codex-graphql-vs-openbb.md)\n- [CoinDesk Data API vs Nansen x402 API](https://www.anchorterminal.com/compare/coindesk-data-api-vs-nansen-x402-api.md)\n- [CoinGecko x402 API vs Nansen x402 API](https://www.anchorterminal.com/compare/coingecko-x402-api-vs-nansen-x402-api.md)\n- [CoinMarketCap x402 API vs Nansen x402 API](https://www.anchorterminal.com/compare/coinmarketcap-x402-api-vs-nansen-x402-api.md)\n- [CryptoQuant MCP server vs Nansen x402 API](https://www.anchorterminal.com/compare/cryptoquant-mcp-vs-nansen-x402-api.md)\n- [Assymetrix MCP Server vs Codex](https://www.anchorterminal.com/compare/assymetrix-mcp-vs-codex-graphql.md)\n- [Codex vs FRED API](https://www.anchorterminal.com/compare/codex-graphql-vs-fred.md)\n",
  "meta": {
    "attribution": "Anchor Terminal (https://www.anchorterminal.com)",
    "attributionRequired": true,
    "credit": "CC BY 4.0, credit Anchor Terminal and link the page or API address you took it from (https://www.anchorterminal.com/terms/#data)",
    "docs": "https://www.anchorterminal.com/docs/",
    "generatedAt": "2026-11-07",
    "license": "CC-BY-4.0",
    "method": "https://www.anchorterminal.com/benchmark/",
    "methodology": "0.7",
    "openapi": "https://www.anchorterminal.com/openapi.json",
    "preview": false,
    "run": "2026-10-01",
    "runLabel": "October 2026 research run",
    "terms": "https://www.anchorterminal.com/terms/#data"
  },
  "page": {
    "breadcrumbs": [
      {
        "name": "Home",
        "url": "https://www.anchorterminal.com/"
      },
      {
        "name": "Compare",
        "url": "https://www.anchorterminal.com/compare/"
      },
      {
        "name": "Codex vs Nansen x402 API",
        "url": ""
      }
    ],
    "description": "Codex scores 75.4 (BB) to Nansen x402's 64.4 (B) for crypto market data. Prices, MCP, x402, uptime and agent notes side by side.",
    "facts": [
      "Codex BB 75.4",
      "Nansen x402 API B 64.4",
      "scores"
    ],
    "h1": "Codex vs Nansen x402 API",
    "image": "https://www.anchorterminal.com/assets/og/default.png",
    "path": "/compare/codex-graphql-vs-nansen-x402-api",
    "published": "2026-10-01",
    "section": "tools",
    "title": "Codex vs Nansen x402 for AI agents in 2026: scores and prices",
    "toc": null,
    "updated": "2026-11-07",
    "url": "https://www.anchorterminal.com/compare/codex-graphql-vs-nansen-x402-api"
  },
  "tokens": {
    "markdown": 4500,
    "slim": 2930
  },
  "version": 1
}
