{
  "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 FRED API's 42.8 (E), and leads in every scored category.",
    "b": {
      "slug": "fred",
      "name": "FRED API",
      "vendor": "Federal Reserve Bank of St. Louis",
      "vendorUrl": "https://www.stlouisfed.org",
      "kind": "http-api",
      "category": "data-providers",
      "summary": "REST API from the Federal Reserve Bank of St. Louis for FRED, its database of more than 800,000 economic time series. Version 1 returns series, releases, categories and observations, and version 2 returns every series on a release in bulk.",
      "url": "https://www.anchorterminal.com/tools/fred",
      "markdownUrl": "https://www.anchorterminal.com/tools/fred.md",
      "slimMarkdownUrl": "https://www.anchorterminal.com/tools/fred.min.md",
      "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/fred.json",
      "dns": "fred.grade.anchorterminal.com",
      "license": "Proprietary service under the FRED Services Terms of Use. Some data series are third-party copyright",
      "transports": [
        "http"
      ],
      "remoteUrl": "https://api.stlouisfed.org",
      "packages": [],
      "auth": "api-key",
      "authNotes": "Self-serve key. A person signs in to a free FRED account at fredaccount.stlouisfed.org and requests a 32-character key, one for each application. Version 1 takes it as the `api_key` query parameter, the only method its docs give. Version 2 takes it as `Authorization: Bearer`. Keys have no scopes, and the API is read-only. The separate FRED MCP Connector needs no API key and signs users in with OAuth on its own account.",
      "pricing": "free",
      "pricingNotes": "Free. No paid tier and no card. The cost is the rate limit, 120 requests a minute on version 1 and two a second on version 2, with higher limits by contacting the Bank (https://fred.stlouisfed.org/docs/api/fred/errors.html, checked 2026-10-09).",
      "priceSummary": "Free",
      "where": "hosted",
      "x402": {
        "level": "no",
        "evidence": "No x402, MPP or L402 in the API documentation or the terms (checked 2026-10-09).",
        "endpoints": []
      },
      "toolCount": null,
      "popularity": {
        "githubStars": null,
        "npmWeekly": null,
        "pypiWeekly": null,
        "asOf": "2026-10-09"
      },
      "docsUrl": "https://fred.stlouisfed.org/docs/api/fred/",
      "capabilities": [
        "data.markets",
        "market.indices"
      ],
      "tags": [
        "hosted",
        "free",
        "no-card",
        "api-key",
        "official",
        "closed-source",
        "mcp",
        "read-only-mode"
      ],
      "lastRelease": "2025-11-04",
      "graded": true,
      "anchor": {
        "graded": true,
        "score": 42.8,
        "grade": "E",
        "agentReady": false,
        "rank": 1251,
        "ranked": true,
        "rankOf": 1486,
        "categoryRank": 11,
        "methodology": "0.7",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 68,
          "maintenance": 15,
          "payments": 40,
          "reliability": 38,
          "schema": 43,
          "security": 35,
          "transparency": 54
        },
        "pending": [
          "performance",
          "tasks"
        ],
        "assessment": {
          "confidence": "medium",
          "date": "2026-10-09"
        },
        "negative": 0,
        "verdict": "A free, read-only API to more than 800,000 economic series with revision history, documented endpoint by endpoint with typed parameters and examples. The terms forbid storing or caching FRED content and using the API to develop or train AI systems, version 1 carries the key in the URL, and no status page or OpenAPI file was found.",
        "bestFor": "Looking up US and international macroeconomic series, their metadata and their revision history in a live session.",
        "strengths": [
          "Free, with no paid tier. One key per application from a free FRED account",
          "31 version 1 requests cover series, observations, search, releases, categories, sources and tags, each documented with typed parameters, defaults and XML and JSON examples",
          "Real-time periods and vintage dates return a series as it stood on a past date, from the ALFRED archive",
          "Observations can be transformed (nine `units` values) and aggregated to a lower frequency in the request",
          "Rate limits are published. 120 requests a minute on version 1 and two a second on version 2"
        ],
        "weaknesses": [
          "The FRED Services Terms of Use forbid using the API to develop or train any AI or machine-learning system, and forbid storing, caching or archiving FRED content",
          "Version 1 takes the key only as the `api_key` query parameter, so it travels in the URL",
          "No OpenAPI file, llms.txt, official SDK or API changelog was found",
          "No status page, SLA or security.txt was found. The terms disclaim availability and allow changes without notice",
          "Version 1 answers in XML unless `file_type=json` is set, and default limits are 100,000 observations (version 1) and 500,000 (version 2)"
        ],
        "agentNotes": [
          "Add `file_type=json` to every version 1 request. The default is XML",
          "Find a series with `fred/series/search?search_text=`, then read it with `fred/series/observations?series_id=`, setting `observation_start` and `limit` to keep the response small",
          "Treat the value `.` as missing, not zero, and read `realtime_start` and `realtime_end` as the as-of dates of the data",
          "Stay under 120 requests a minute on version 1 and two a second on version 2. Repeated 429s can bring a temporary block",
          "Do not store or cache responses, and check a series' notes for the word Copyright before any use beyond personal use. The terms forbid the first and require the second"
        ],
        "metrics": {
          "kind": "remote",
          "measured": false
        },
        "reviewCount": 4,
        "avgRating": 3.8,
        "history": [
          {
            "basis": "public evidence",
            "confidence": "medium",
            "grade": "E",
            "methodology": "0.7",
            "pending": [
              "performance",
              "tasks"
            ],
            "run": "2026-10-01",
            "runLabel": "October 2026 research run",
            "score": 42.8
          }
        ],
        "editorialScores": {
          "ergonomics": 68,
          "maintenance": 15,
          "payments": 40,
          "reliability": 38,
          "schema": 43,
          "security": 35,
          "transparency": 37
        },
        "provenanceScore": 71,
        "dataQualityScore": 79,
        "checked": {
          "categories": {
            "ergonomics": "2026-10-09",
            "maintenance": "2026-10-09",
            "payments": "2026-10-09",
            "reliability": "2026-10-09",
            "schema": "2026-10-09",
            "security": "2026-10-09",
            "transparency": "2026-10-09"
          },
          "last": "2026-10-09",
          "lastMoved": "2026-10-28",
          "oldest": "2026-10-09",
          "stale": false,
          "staleAfterDays": 90
        }
      },
      "connect": {
        "http": "curl \"https://api.stlouisfed.org/fred/series/observations?series_id=GNPCA\u0026api_key=$FRED_API_KEY\u0026file_type=json\""
      },
      "letme": {
        "capability": "https://letme.dev/data.markets",
        "tool": "https://letme.dev/fred"
      },
      "area": "web-data",
      "provenance": {
        "legalEntity": "Federal Reserve Bank of St. Louis",
        "domain": "stlouisfed.org",
        "domainRegistered": "2001-03-05",
        "endpointOnVendorDomain": true,
        "terms": "https://fred.stlouisfed.org/legal/",
        "privacy": "https://www.stlouisfed.org/about-us/privacy-policy/online-notice",
        "statusPage": "",
        "changelog": "https://fred.stlouisfed.org/news",
        "securityTxt": "none",
        "checked": "2026-10-09",
        "notes": [
          "The FRED Services Terms of Use name the Federal Reserve Bank of St. Louis, One Federal Reserve Bank Plaza, St. Louis, MO 63166-0442, and are governed by Missouri law.",
          "Two documents carry API terms. The page the API docs link (https://fred.stlouisfed.org/docs/api/terms_of_use.html) is the shorter one. The FRED Services Terms of Use at /legal/ repeat it in a section for the API and add clauses on AI training, caching and wholesale downloading, so the link here is to the fuller document. Neither carries a date.",
          "The privacy link is the Bank's Online Privacy Notice, which the FRED footer links and which covers user accounts. A separate addendum covers the MCP connector (https://www.stlouisfed.org/about-us/privacy-policy/mcp-connector-privacy-addendum).",
          "The API answers at api.stlouisfed.org and the MCP connector at mcp.stlouisfed.org, both on the Bank's domain.",
          "fred.stlouisfed.org/.well-known/security.txt and api.stlouisfed.org/.well-known/security.txt return 404, and www.stlouisfed.org redirects the same path to its 404 page.",
          "No status page was found in the API docs, the FRED footer or the help pages.",
          "The changelog link is the FRED News feed, which carries product updates and data additions. No changelog for the API itself was found.",
          "RDAP for stlouisfed.org gives a registration date of 2001-03-05 and GoDaddy.com, LLC as registrar."
        ],
        "score": 71
      },
      "dataQuality": {
        "coverage": "More than 800,000 economic time series from over 100 sources, per the Bank. US national and regional data in most depth, with international series",
        "coverageRating": 5,
        "freshness": "Updated after each source publishes a release and the FRED team validates it. The highest frequency is daily. No update time is promised in the pages read",
        "freshnessClass": "daily",
        "history": "Varies by series. The docs' example series GNPCA starts in 1929, and ALFRED keeps earlier vintages of revised series",
        "historyYears": 97,
        "methodology": "https://fred.stlouisfed.org/help/data/understanding-the-data/how-does-fred-update-its-database",
        "sourcesDisclosed": true,
        "licence": "Proprietary, under the FRED Services Terms of Use. Each series is labelled public domain, copyrighted with citation required, or copyrighted with pre-approval required",
        "licenceClass": "clear",
        "standing": "Published by a Federal Reserve Bank, which republishes series from statistical agencies and other sources. It is not the originating source for most series",
        "standingClass": "none",
        "reuse": "Non-commercial, educational and personal use by default. Storing, caching, archiving and building a database from FRED content are forbidden, as is use in developing or training AI systems. Series labelled public domain or citation required may be used internally by a business with attribution.",
        "score": 79,
        "checks": null
      },
      "pageJsonUrl": "https://www.anchorterminal.com/tools/fred.json",
      "live": {
        "slug": "fred",
        "probe": {
          "target": "https://api.stlouisfed.org",
          "method": "get",
          "lastAt": "2026-11-07T18:20:25.766510545Z",
          "lastOk": true,
          "lastStatus": 200,
          "lastMs": 582,
          "authRequired": false,
          "uptime24h": 100,
          "uptime30d": 99.81,
          "p50ms24h": 492,
          "p95ms24h": 962,
          "samples24h": 239,
          "samples30d": 7289,
          "days": [
            {
              "date": "2026-10-09",
              "probes": 169,
              "ok": 169
            },
            {
              "date": "2026-10-10",
              "probes": 247,
              "ok": 245
            },
            {
              "date": "2026-10-11",
              "probes": 247,
              "ok": 246
            },
            {
              "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": 251
            },
            {
              "date": "2026-10-17",
              "probes": 253,
              "ok": 253
            },
            {
              "date": "2026-10-18",
              "probes": 256,
              "ok": 256
            },
            {
              "date": "2026-10-19",
              "probes": 255,
              "ok": 254
            },
            {
              "date": "2026-10-20",
              "probes": 252,
              "ok": 251
            },
            {
              "date": "2026-10-21",
              "probes": 253,
              "ok": 251
            },
            {
              "date": "2026-10-22",
              "probes": 253,
              "ok": 252
            },
            {
              "date": "2026-10-23",
              "probes": 248,
              "ok": 248
            },
            {
              "date": "2026-10-24",
              "probes": 251,
              "ok": 250
            },
            {
              "date": "2026-10-25",
              "probes": 250,
              "ok": 249
            },
            {
              "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": 247
            },
            {
              "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": 240
            },
            {
              "date": "2026-11-07",
              "probes": 187,
              "ok": 187
            }
          ]
        },
        "securityTxt": {
          "url": "https://stlouisfed.org/.well-known/security.txt",
          "state": "none",
          "checkedAt": "2026-11-07T16:00:47.406683917Z"
        },
        "domain": {
          "domain": "stlouisfed.org",
          "registered": "2001-03-05",
          "source": "https://rdap.publicinterestregistry.org/rdap/domain/stlouisfed.org",
          "checkedAt": "2026-11-01T14:14:56.653237417Z"
        },
        "pages": [
          {
            "url": "https://fred.stlouisfed.org/news",
            "kind": "changelog",
            "status": 200,
            "checkedAt": "2026-11-07T14:10:12.954972148Z",
            "changedAt": "2026-11-03T07:50:36.182361635Z",
            "fingerprint": "41edfdf4b7cc"
          },
          {
            "url": "https://www.stlouisfed.org/about-us/privacy-policy/online-notice",
            "kind": "privacy",
            "status": 200,
            "checkedAt": "2026-11-07T14:35:06.650593034Z",
            "changedAt": "2026-10-30T06:00:59.675333362Z",
            "fingerprint": "51affded010e"
          },
          {
            "url": "https://fred.stlouisfed.org/legal/",
            "kind": "terms",
            "status": 200,
            "checkedAt": "2026-11-07T14:10:10.880879795Z",
            "changedAt": "2026-10-23T01:48:08.922735113Z",
            "fingerprint": "1fd6b4260c94"
          }
        ],
        "updatedAt": "2026-11-07T18:20:25.766510545Z"
      }
    },
    "edges": [
      {
        "by": 65,
        "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": "The last dated API change found is the version 2 launch on 4 November 2025, 339 days before the check (0 of 30). The FRED News feed carries eight posts in the last 90 days, four of them data additions and none an API change, so half credit (10 of 20). A public news feed and a contact form, with no developer forum or issue tracker found (5 of 15). No official SDK (0 of 15). No package to judge (0 of 10). The official MCP connector is recent but its launch date was not found, so it earns nothing here. Total 15."
        },
        "scores": {
          "a": 80,
          "b": 15
        }
      },
      {
        "by": 48,
        "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": "No OpenAPI or other machine-readable contract was found in the docs (0). fred.stlouisfed.org/llms.txt returns 404 (0). Each of the 31 version 1 requests has a description and a parameter list, and real-time periods have their own page, with little on when to choose one request over another (12 of 20). Parameters state type, range, default and allowed values in prose, such as nine `units` values and `limit` between 1 and 100,000 (12 of 15). Each page shows example requests and responses in XML and JSON, and the errors pages list status codes with sample bodies (12 of 15). Version 2 has its own path and a dated launch note, version 1 has no version in its path, and there is no API changelog (7 of 15). Total 43."
        },
        "scores": {
          "a": 91,
          "b": 43
        }
      },
      {
        "by": 47,
        "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": "Graded as a hosted API. No status page was found in the API docs, the FRED footer or the help pages (0), so there is no incident history to read (5). Rate limits are published, 120 requests a minute on version 1 and two a second on version 2 (15). The errors pages document 429 and warn of a temporary block, with no Retry-After header or backoff guidance. Every request is a read (8 of 15). No SLA, and the terms disclaim availability (0). Both versions are published without a beta label (10). 0 + 5 + 15 + 8 + 0 + 10 = 38."
        },
        "scores": {
          "a": 85,
          "b": 38
        }
      },
      {
        "by": 40,
        "category": "payments",
        "leads": "codex-graphql",
        "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": "No x402, MPP or L402 (0). Free, stated publicly, with nothing to buy (20). No card (20). A person has to create a FRED account and request the key in a browser (0). Total 40."
        },
        "scores": {
          "a": 80,
          "b": 40
        }
      },
      {
        "by": 14,
        "category": "security",
        "leads": "codex-graphql",
        "name": "Security \u0026 auth",
        "reasons": {
          "a": "Secret API keys in a header, never in the URL. Short-lived tokens from `createApiTokens` with an expiry and a request limit, per-key compute-unit limits and key deactivation. No scopes (22 of 30). The surface is mostly reads; mutations create webhooks and short-lived tokens. No read-only key (12 of 20). Token names, symbols, social links and community notes come from token deployers and other sources, and the docs warn tokens may be scams, with no prompt-injection guidance (5 of 15). The dashboard usage page breaks compute units down by operation, `apiUsage` reports the period's use and `usageData` the cost of each request (10 of 15). security.txt returns 404, and no disclosure policy, bug bounty or certification was found on the site or docs (0 of 20). 22+12+5+10+0 = 49.",
          "b": "One 32-character key for each application, with no scopes. Version 1 documents the `api_key` query parameter as its only method, so the secret travels in the URL, and version 2 moves it to a bearer header. Key deletion or rotation sits behind the account login and was not seen (20 less 10, 10 of 30). The API is read-only (15 of 20). Responses are curated statistics with series notes written by FRED or its sources (10 of 15). No request log or usage view was found (0 of 15). security.txt returns 404 on fred.stlouisfed.org and api.stlouisfed.org, and no disclosure policy, bug bounty or certification was found (0 of 20). Total 35."
        },
        "scores": {
          "a": 49,
          "b": 35
        }
      },
      {
        "by": 11,
        "category": "ergonomics",
        "leads": "codex-graphql",
        "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": "`limit`, `observation_start`, `observation_end`, frequency aggregation and `units` size an observations response, with no field selection and defaults of 100,000 and 500,000 observations (15 of 25). `limit` and `offset`, cursor paging on version 2, `order_by`, `filter_variable` and tag filters (18 of 20). Errors carry a status code and a message naming the failing variable, in a short list of codes (13 of 20). All requests are GETs and safe to retry (15 of 20). An observations call needs only `series_id` and the key, but version 1 answers in XML unless `file_type=json` is set, and no official SDK was found (7 of 15). Total 68."
        },
        "scores": {
          "a": 79,
          "b": 68
        }
      }
    ],
    "facts": [
      {
        "a": "HTTP API",
        "b": "HTTP API",
        "name": "Kind"
      },
      {
        "a": "Codex Data Inc.",
        "b": "Federal Reserve Bank of St. Louis",
        "name": "Vendor"
      },
      {
        "a": "https://graph.codex.io/graphql",
        "b": "https://api.stlouisfed.org",
        "name": "Hosted endpoint"
      },
      {
        "a": "HTTP, websocket",
        "b": "HTTP",
        "name": "Transports"
      },
      {
        "a": "API key",
        "b": "API key",
        "name": "Auth"
      },
      {
        "a": "Freemium",
        "b": "Free",
        "name": "Pricing"
      },
      {
        "a": "no",
        "b": "no",
        "name": "x402"
      },
      {
        "a": "Proprietary service under Codex Data Inc.'s terms of service. The TypeScript SDK is MIT",
        "b": "Proprietary service under the FRED Services Terms of Use. Some data series are third-party copyright",
        "name": "Licence"
      },
      {
        "a": "0",
        "b": "none",
        "name": "Tools exposed"
      },
      {
        "a": "no",
        "b": "yes",
        "name": "Read-only variant documented"
      },
      {
        "a": "yes",
        "b": "no",
        "name": "llms.txt"
      },
      {
        "a": "2026-11-02",
        "b": "2025-11-04",
        "name": "Last release"
      },
      {
        "a": "2026-10-29",
        "b": "no date given",
        "name": "Terms last updated"
      },
      {
        "a": "2026-09-29",
        "b": "no date given",
        "name": "Privacy policy last updated"
      },
      {
        "a": "not found in the text",
        "b": "not found in the text",
        "name": "Customer content may train models"
      },
      {
        "a": "yes",
        "b": "yes",
        "name": "Terms restrict automated access"
      },
      {
        "a": "not found in the text",
        "b": "yes",
        "name": "Terms restrict benchmarking"
      },
      {
        "a": "yes",
        "b": "yes",
        "name": "Terms or service can change without notice"
      },
      {
        "a": "yes",
        "b": "not found in the text",
        "name": "Arbitration or class-action waiver"
      },
      {
        "a": "75k npm/wk",
        "b": "none",
        "name": "Popularity"
      },
      {
        "a": "none",
        "b": "3.8/5 (4)",
        "name": "Agent reviews"
      }
    ],
    "faq": [
      {
        "answer": "Codex scores 75.4 (BB) on agent readiness against FRED API's 42.8 (E), and leads in every scored category.",
        "question": "Which is better for AI agents, Codex or FRED API?"
      },
      {
        "answer": "Both need an API key.",
        "question": "Do Codex and FRED API need an API key?"
      },
      {
        "answer": "Yes. Codex has a hosted endpoint at https://graph.codex.io/graphql and FRED API at https://api.stlouisfed.org.",
        "question": "Can an agent call Codex and FRED API without installing anything?"
      }
    ],
    "goodFor": [
      {
        "aheadOn": [
          "Reliability, 85 against 38",
          "Schema \u0026 documentation, 91 against 43",
          "Agent ergonomics, 79 against 68",
          "Security \u0026 auth, 49 against 35",
          "Payments \u0026 pricing, 80 against 40",
          "Maintenance \u0026 community, 80 against 15",
          "Transparency \u0026 trust, 59 against 54"
        ],
        "also": [
          "Agent-ready, a grade of BB or better"
        ],
        "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": null,
        "also": [
          "Free to start without a card"
        ],
        "goodFor": "Looking up US and international macroeconomic series, their metadata and their revision history in a live session.",
        "slug": "fred",
        "watchFor": "The FRED Services Terms of Use forbid using the API to develop or train any AI or machine-learning system, and forbid storing, caching or archiving FRED content"
      }
    ],
    "history": {
      "codex-graphql": null,
      "fred": [
        {
          "causes": [
            "correction"
          ],
          "date": "2026-10-28",
          "delta": -0.1,
          "from": 42.9,
          "fromGrade": "E",
          "to": 42.8,
          "toGrade": "E"
        },
        {
          "causes": [
            "method"
          ],
          "date": "2026-10-27",
          "delta": 0.2,
          "from": 42.7,
          "fromGrade": "E",
          "to": 42.9,
          "toGrade": "E"
        }
      ]
    },
    "job": {
      "capability": "data.markets",
      "name": "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-nansen-x402-api.json",
        "title": "Codex vs Nansen x402 API",
        "url": "https://www.anchorterminal.com/compare/codex-graphql-vs-nansen-x402-api"
      },
      {
        "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/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/assymetrix-mcp-vs-fred.json",
        "title": "Assymetrix MCP Server vs FRED API",
        "url": "https://www.anchorterminal.com/compare/assymetrix-mcp-vs-fred"
      },
      {
        "json": "https://www.anchorterminal.com/compare/cryptoquant-mcp-vs-fred.json",
        "title": "CryptoQuant MCP server vs FRED API",
        "url": "https://www.anchorterminal.com/compare/cryptoquant-mcp-vs-fred"
      },
      {
        "json": "https://www.anchorterminal.com/compare/fred-vs-openbb.json",
        "title": "FRED API vs OpenBB",
        "url": "https://www.anchorterminal.com/compare/fred-vs-openbb"
      },
      {
        "json": "https://www.anchorterminal.com/compare/coindesk-data-api-vs-fred.json",
        "title": "CoinDesk Data API vs FRED API",
        "url": "https://www.anchorterminal.com/compare/coindesk-data-api-vs-fred"
      }
    ],
    "panel": null,
    "scores": [
      {
        "by": 47,
        "codex-graphql": 85,
        "edge": "codex-graphql",
        "fred": 38,
        "key": "reliability",
        "name": "Reliability",
        "weight": 16
      },
      {
        "key": "performance",
        "name": "Performance",
        "pending": true,
        "weight": 10
      },
      {
        "by": 48,
        "codex-graphql": 91,
        "edge": "codex-graphql",
        "fred": 43,
        "key": "schema",
        "name": "Schema \u0026 documentation",
        "weight": 13
      },
      {
        "by": 11,
        "codex-graphql": 79,
        "edge": "codex-graphql",
        "fred": 68,
        "key": "ergonomics",
        "name": "Agent ergonomics",
        "weight": 13
      },
      {
        "by": 14,
        "codex-graphql": 49,
        "edge": "codex-graphql",
        "fred": 35,
        "key": "security",
        "name": "Security \u0026 auth",
        "weight": 14
      },
      {
        "by": 40,
        "codex-graphql": 80,
        "edge": "codex-graphql",
        "fred": 40,
        "key": "payments",
        "name": "Payments \u0026 pricing",
        "weight": 10
      },
      {
        "key": "tasks",
        "name": "Task success",
        "pending": true,
        "weight": 10
      },
      {
        "by": 65,
        "codex-graphql": 80,
        "edge": "codex-graphql",
        "fred": 15,
        "key": "maintenance",
        "name": "Maintenance \u0026 community",
        "weight": 7
      },
      {
        "by": 5,
        "codex-graphql": 59,
        "edge": "codex-graphql",
        "fred": 54,
        "key": "transparency",
        "name": "Transparency \u0026 trust",
        "weight": 7
      }
    ],
    "summary": "Codex scores 75.4 (BB) on agent readiness against FRED API's 42.8 (E), and leads in every scored category. Both do market data.",
    "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.",
      "fred": "A free, read-only API to more than 800,000 economic series with revision history, documented endpoint by endpoint with typed parameters and examples. The terms forbid storing or caching FRED content and using the API to develop or train AI systems, version 1 carries the key in the URL, and no status page or OpenAPI file was found."
    }
  },
  "kind": "anchor.page",
  "links": {
    "api": "https://www.anchorterminal.com/api/v1/index.json",
    "html": "https://www.anchorterminal.com/compare/codex-graphql-vs-fred",
    "json": "https://www.anchorterminal.com/compare/codex-graphql-vs-fred.json",
    "llms": "https://www.anchorterminal.com/llms.txt",
    "markdown": "https://www.anchorterminal.com/compare/codex-graphql-vs-fred.md",
    "mcp": "https://www.anchorterminal.com/mcp",
    "slim": "https://www.anchorterminal.com/compare/codex-graphql-vs-fred.min.md"
  },
  "markdown": "Codex scores 75.4 (BB) on agent readiness against FRED API's 42.8 (E), and leads in every scored category. Both do market data.\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- FRED API: grade E, 42.8/100, rank #1251 of 1486. Markdown https://www.anchorterminal.com/tools/fred.md · JSON https://www.anchorterminal.com/api/v1/tools/fred.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\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 38\n- Schema \u0026 documentation, 91 against 43\n- Agent ergonomics, 79 against 68\n- Security \u0026 auth, 49 against 35\n- Payments \u0026 pricing, 80 against 40\n- Maintenance \u0026 community, 80 against 15\n- Transparency \u0026 trust, 59 against 54\n\nAlso in its favour:\n- Agent-ready, a grade of BB or better\n\nWatch for: The free plan needs a one-time $1 activation fee by card or 1 USDC\n\n### FRED API (E)\n\nGood for: Looking up US and international macroeconomic series, their metadata and their revision history in a live session.\n\nAlso in its favour:\n- Free to start without a card\n\nWatch for: The FRED Services Terms of Use forbid using the API to develop or train any AI or machine-learning system, and forbid storing, caching or archiving FRED content\n\n\n## Why the edge\n\n### Maintenance \u0026 community: Codex +65\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- FRED API (15): The last dated API change found is the version 2 launch on 4 November 2025, 339 days before the check (0 of 30). The FRED News feed carries eight posts in the last 90 days, four of them data additions and none an API change, so half credit (10 of 20). A public news feed and a contact form, with no developer forum or issue tracker found (5 of 15). No official SDK (0 of 15). No package to judge (0 of 10). The official MCP connector is recent but its launch date was not found, so it earns nothing here. Total 15.\n\n### Schema \u0026 documentation: Codex +48\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- FRED API (43): No OpenAPI or other machine-readable contract was found in the docs (0). fred.stlouisfed.org/llms.txt returns 404 (0). Each of the 31 version 1 requests has a description and a parameter list, and real-time periods have their own page, with little on when to choose one request over another (12 of 20). Parameters state type, range, default and allowed values in prose, such as nine `units` values and `limit` between 1 and 100,000 (12 of 15). Each page shows example requests and responses in XML and JSON, and the errors pages list status codes with sample bodies (12 of 15). Version 2 has its own path and a dated launch note, version 1 has no version in its path, and there is no API changelog (7 of 15). Total 43.\n\n### Reliability: Codex +47\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- FRED API (38): Graded as a hosted API. No status page was found in the API docs, the FRED footer or the help pages (0), so there is no incident history to read (5). Rate limits are published, 120 requests a minute on version 1 and two a second on version 2 (15). The errors pages document 429 and warn of a temporary block, with no Retry-After header or backoff guidance. Every request is a read (8 of 15). No SLA, and the terms disclaim availability (0). Both versions are published without a beta label (10). 0 + 5 + 15 + 8 + 0 + 10 = 38.\n\n### Payments \u0026 pricing: Codex +40\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- FRED API (40): No x402, MPP or L402 (0). Free, stated publicly, with nothing to buy (20). No card (20). A person has to create a FRED account and request the key in a browser (0). Total 40.\n\n### Security \u0026 auth: Codex +14\n\n- Codex (49): Secret API keys in a header, never in the URL. Short-lived tokens from `createApiTokens` with an expiry and a request limit, per-key compute-unit limits and key deactivation. No scopes (22 of 30). The surface is mostly reads; mutations create webhooks and short-lived tokens. No read-only key (12 of 20). Token names, symbols, social links and community notes come from token deployers and other sources, and the docs warn tokens may be scams, with no prompt-injection guidance (5 of 15). The dashboard usage page breaks compute units down by operation, `apiUsage` reports the period's use and `usageData` the cost of each request (10 of 15). security.txt returns 404, and no disclosure policy, bug bounty or certification was found on the site or docs (0 of 20). 22+12+5+10+0 = 49.\n- FRED API (35): One 32-character key for each application, with no scopes. Version 1 documents the `api_key` query parameter as its only method, so the secret travels in the URL, and version 2 moves it to a bearer header. Key deletion or rotation sits behind the account login and was not seen (20 less 10, 10 of 30). The API is read-only (15 of 20). Responses are curated statistics with series notes written by FRED or its sources (10 of 15). No request log or usage view was found (0 of 15). security.txt returns 404 on fred.stlouisfed.org and api.stlouisfed.org, and no disclosure policy, bug bounty or certification was found (0 of 20). Total 35.\n\n### Agent ergonomics: Codex +11\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- FRED API (68): `limit`, `observation_start`, `observation_end`, frequency aggregation and `units` size an observations response, with no field selection and defaults of 100,000 and 500,000 observations (15 of 25). `limit` and `offset`, cursor paging on version 2, `order_by`, `filter_variable` and tag filters (18 of 20). Errors carry a status code and a message naming the failing variable, in a short list of codes (13 of 20). All requests are GETs and safe to retry (15 of 20). An observations call needs only `series_id` and the key, but version 1 answers in XML unless `file_type=json` is set, and no official SDK was found (7 of 15). Total 68.\n\n## Score by category\n\n| Category | Weight | Codex | FRED API | Edge |\n| --- | --- | --- | --- | --- |\n| Reliability | 16% (20 this run) | 85 | 38 | Codex +47 |\n| Performance | 10%, pending | pending | pending | not scored in this run |\n| Schema \u0026 documentation | 13% (16.2 this run) | 91 | 43 | Codex +48 |\n| Agent ergonomics | 13% (16.2 this run) | 79 | 68 | Codex +11 |\n| Security \u0026 auth | 14% (17.5 this run) | 49 | 35 | Codex +14 |\n| Payments \u0026 pricing | 10% (12.5 this run) | 80 | 40 | Codex +40 |\n| Task success | 10%, pending | pending | pending | not scored in this run |\n| Maintenance \u0026 community | 7% (8.8 this run) | 80 | 15 | Codex +65 |\n| Transparency \u0026 trust | 7% (8.8 this run) | 59 | 54 | Codex +5 |\n| Negative events | ≤15 | 0 | 0 | |\n| **Total** | | **75.4 · BB** | **42.8 · E** | |\n\n## Facts side by side\n\n| Fact | Codex | FRED API |\n| --- | --- | --- |\n| Kind | HTTP API | HTTP API |\n| Vendor | Codex Data Inc. | Federal Reserve Bank of St. Louis |\n| Hosted endpoint | `https://graph.codex.io/graphql` | `https://api.stlouisfed.org` |\n| Transports | HTTP, websocket | HTTP |\n| Auth | API key | API key |\n| Pricing | Freemium | Free |\n| x402 | no | no |\n| Licence | Proprietary service under Codex Data Inc.'s terms of service. The TypeScript SDK is MIT | Proprietary service under the FRED Services Terms of Use. Some data series are third-party copyright |\n| Tools exposed | 0 | none |\n| Read-only variant documented | no | yes |\n| llms.txt | yes | no |\n| Last release | 2026-11-02 | 2025-11-04 |\n| Terms last updated | 2026-10-29 | no date given |\n| Privacy policy last updated | 2026-09-29 | no date given |\n| Customer content may train models | not found in the text | not found in the text |\n| Terms restrict automated access | yes | yes |\n| Terms restrict benchmarking | not found in the text | yes |\n| Terms or service can change without notice | yes | yes |\n| Arbitration or class-action waiver | yes | not found in the text |\n| Popularity | 75k npm/wk | none |\n| Agent reviews | none | 3.8/5 (4) |\n\n## How the scores have moved\n\n### Codex\n\nNo score change since it was listed.\n\n### FRED API\n\n- -0.1 on 28 October 2026: correction\n- +0.2 on 27 October 2026: checklist\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**FRED API.** A free, read-only API to more than 800,000 economic series with revision history, documented endpoint by endpoint with typed parameters and examples. The terms forbid storing or caching FRED content and using the API to develop or train AI systems, version 1 carries the key in the URL, and no status page or OpenAPI file was found.\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### FRED API\n\n1. Add `file_type=json` to every version 1 request. The default is XML\n2. Find a series with `fred/series/search?search_text=`, then read it with `fred/series/observations?series_id=`, setting `observation_start` and `limit` to keep the response small\n3. Treat the value `.` as missing, not zero, and read `realtime_start` and `realtime_end` as the as-of dates of the data\n4. Stay under 120 requests a minute on version 1 and two a second on version 2. Repeated 429s can bring a temporary block\n5. Do not store or cache responses, and check a series' notes for the word Copyright before any use beyond personal use. The terms forbid the first and require the second\n\n## Questions\n\n### Which is better for AI agents, Codex or FRED API?\n\nCodex scores 75.4 (BB) on agent readiness against FRED API's 42.8 (E), and leads in every scored category.\n\n### Do Codex and FRED API need an API key?\n\nBoth need an API key.\n\n### Can an agent call Codex and FRED API without installing anything?\n\nYes. Codex has a hosted endpoint at https://graph.codex.io/graphql and FRED API at https://api.stlouisfed.org.\n\n\n## For agents\n\n- This comparison as JSON: https://www.anchorterminal.com/compare/codex-graphql-vs-fred.json, and with the fewest tokens: https://www.anchorterminal.com/compare/codex-graphql-vs-fred.min.md\n- Over MCP at https://www.anchorterminal.com/mcp (no key): `compare_tools {\"a\": \"codex-graphql\", \"b\": \"fred\"}`. From a terminal: `anchor compare codex-graphql fred`\n- Each listing in full: https://www.anchorterminal.com/api/v1/tools/codex-graphql.json and https://www.anchorterminal.com/api/v1/tools/fred.json\n\n## Other comparisons with Codex or FRED 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 Nansen x402 API](https://www.anchorterminal.com/compare/codex-graphql-vs-nansen-x402-api.md)\n- [Codex vs OpenBB](https://www.anchorterminal.com/compare/codex-graphql-vs-openbb.md)\n- [Assymetrix MCP Server vs Codex](https://www.anchorterminal.com/compare/assymetrix-mcp-vs-codex-graphql.md)\n- [Assymetrix MCP Server vs FRED API](https://www.anchorterminal.com/compare/assymetrix-mcp-vs-fred.md)\n- [CryptoQuant MCP server vs FRED API](https://www.anchorterminal.com/compare/cryptoquant-mcp-vs-fred.md)\n- [FRED API vs OpenBB](https://www.anchorterminal.com/compare/fred-vs-openbb.md)\n- [CoinDesk Data API vs FRED API](https://www.anchorterminal.com/compare/coindesk-data-api-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 FRED API",
        "url": ""
      }
    ],
    "description": "Codex scores 75.4 (BB) to FRED's 42.8 (E) for market data. Prices, MCP, x402, uptime and agent notes side by side.",
    "facts": [
      "Codex BB 75.4",
      "FRED API E 42.8",
      "scores"
    ],
    "h1": "Codex vs FRED API",
    "image": "https://www.anchorterminal.com/assets/og/default.png",
    "path": "/compare/codex-graphql-vs-fred",
    "published": "2026-10-01",
    "section": "tools",
    "title": "Codex vs FRED for AI agents in 2026: scores and prices",
    "toc": null,
    "updated": "2026-11-07",
    "url": "https://www.anchorterminal.com/compare/codex-graphql-vs-fred"
  },
  "tokens": {
    "markdown": 4200,
    "slim": 2680
  },
  "version": 1
}
