{
  "data": {
    "a": {
      "slug": "databento",
      "name": "Databento",
      "vendor": "Databento, Inc.",
      "vendorUrl": "https://databento.com",
      "kind": "http-api",
      "category": "market-data",
      "summary": "Databento is a market data platform with historical and live tick, order book and bar data for US and European equities, futures, options and indices, through HTTP and streaming APIs with Python, C++ and Rust clients.",
      "url": "https://www.anchorterminal.com/tools/databento",
      "markdownUrl": "https://www.anchorterminal.com/tools/databento.md",
      "slimMarkdownUrl": "https://www.anchorterminal.com/tools/databento.min.md",
      "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/databento.json",
      "dns": "databento.grade.anchorterminal.com",
      "repo": "https://github.com/databento/databento-python",
      "license": "Apache-2.0 (clients)",
      "transports": [
        "http"
      ],
      "remoteUrl": "https://hist.databento.com",
      "packages": [
        {
          "registry": "pypi",
          "name": "databento"
        }
      ],
      "auth": "api-key",
      "authNotes": "API key (32 characters starting `db-`) created in the portal, up to 100 per account with unique names, rotated or deleted from the portal, and sent as the username in HTTP Basic auth (`-u $KEY:`). Team members can be given per-member permissions. The vendor revokes keys it finds published. No query-string option.",
      "pricing": "usage",
      "pricingNotes": "Historical data is metered per GB of uncompressed binary data at rates per dataset in the portal catalogue, with no subscription; batch jobs are billed once and streams per byte sent. New users get $125 of credits valid six months, one set per team, for historical data or the first month of a plan. Live data needs a plan, Standard at $199 a month (no licence fees), Plus $1,750 and Unlimited $4,500 a month in licence fees on annual contracts by sales. Metadata, symbology and account calls are free.",
      "priceSummary": "$199 / mo",
      "where": "hosted",
      "x402": {
        "level": "no",
        "evidence": "No x402, MPP or L402 in the docs, llms.txt, pricing page or release notes (checked 2026-11-03).",
        "endpoints": []
      },
      "toolCount": null,
      "popularity": {
        "githubStars": 309,
        "npmWeekly": null,
        "pypiWeekly": null,
        "asOf": "2026-11-03"
      },
      "docsUrl": "https://databento.com/docs/",
      "llmsTxt": "https://databento.com/docs/llms.txt",
      "capabilities": [
        "market.prices",
        "market.history",
        "market.indices",
        "data.markets"
      ],
      "tags": [
        "official",
        "hosted",
        "usage",
        "usage-priced",
        "free-tier",
        "llms-txt",
        "status-page",
        "pre-1.0",
        "python",
        "rust",
        "closed-source"
      ],
      "lastRelease": "2026-10-28",
      "graded": true,
      "anchor": {
        "graded": true,
        "score": 60.3,
        "grade": "C",
        "agentReady": false,
        "rank": 592,
        "ranked": true,
        "rankOf": 1349,
        "categoryRank": 4,
        "methodology": "0.7",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 80,
          "maintenance": 84,
          "payments": 22,
          "reliability": 50,
          "schema": 75,
          "security": 61,
          "transparency": 49
        },
        "pending": [
          "performance",
          "tasks"
        ],
        "assessment": {
          "confidence": "medium",
          "date": "2026-11-03"
        },
        "negative": 0,
        "verdict": "Exchange-level tick and order book data metered per GB, with published per-IP rate limits, Retry-After on 429, dated release notes and clients in three languages. The HTTP API is still at major version 0, the status page lists two critical and several major incidents in 90 days, there is no OpenAPI document, and the legal pages were unreadable.",
        "bestFor": "An agent that needs exchange-level trades, quotes, order book and bar data for US and European futures, options and equities, or corporate actions and a security master, and can budget per GB.",
        "strengths": [
          "Per-IP rate limits published with numbers, 429 with Retry-After, and a documented error format with a code, a message and a docs link",
          "`metadata.get_cost` quotes a request before it is billed, batch jobs are billed once with 30 days of re-download, and a monthly historical spending limit can be set in the portal",
          "Dated release notes per component with breaking changes and deprecations called out, and Python 0.85.0 to 0.89.0 released between 25 August and 28 October 2026",
          "Up to 100 named API keys per account with rotation, per-member permissions, and keys found in public revoked by the vendor",
          "$125 of credits at signup and metered historical pricing with no subscription; metadata and symbology calls are free"
        ],
        "weaknesses": [
          "Two critical and several major incidents on the status page in the 90 days to 3 November 2026, mostly Historical API outages and batch job delays",
          "The HTTP API is at major version 0 and the docs say it is not considered stable",
          "No OpenAPI document; per-GB rates sit in the portal catalogue behind a login, and the pricing page shows plans only",
          "The terms and privacy policy are drawn by script and could not be read, and no security.txt, SOC 2 or ISO 27001 was found",
          "Live data and the Plus and Unlimited plans need a subscription on an annual contract by sales, and signup is in a browser"
        ],
        "agentNotes": [
          "Call `metadata.get_cost` before `timeseries.get_range`, and set a monthly historical limit in the portal; a duplicate streaming request is charged twice",
          "Send the key as the Basic auth username (`-u $DATABENTO_API_KEY:`) to hist.databento.com/v0; never put it in the URL or source code",
          "On 429 wait for the Retry-After header; keep under 100 time series requests a second and 20 batch submissions a minute per IP",
          "Check status.databento.com before retrying a slow or 504 Historical request, since several incidents since August were API outages or batch delays",
          "Use batch download for requests over 5 GB, split by time range or `limit`, and read `schema` and `stype_in` from the dataset page before querying"
        ],
        "metrics": {
          "kind": "remote",
          "measured": false
        },
        "reviewCount": 0,
        "avgRating": 0,
        "history": [
          {
            "basis": "public evidence",
            "confidence": "medium",
            "grade": "C",
            "methodology": "0.7",
            "pending": [
              "performance",
              "tasks"
            ],
            "run": "2026-10-01",
            "runLabel": "October 2026 research run",
            "score": 60.3
          }
        ],
        "editorialScores": {
          "ergonomics": 80,
          "maintenance": 84,
          "payments": 22,
          "reliability": 50,
          "schema": 75,
          "security": 61,
          "transparency": 28
        },
        "provenanceScore": 70,
        "checked": {
          "categories": {
            "ergonomics": "2026-11-03",
            "maintenance": "2026-11-03",
            "payments": "2026-11-03",
            "reliability": "2026-11-03",
            "schema": "2026-11-03",
            "security": "2026-11-03",
            "transparency": "2026-11-03"
          },
          "last": "2026-11-03",
          "oldest": "2026-11-03",
          "stale": false,
          "staleAfterDays": 90
        }
      },
      "connect": {
        "install": "pip install databento",
        "http": "curl -G 'https://hist.databento.com/v0/metadata.list_datasets' -u $DATABENTO_API_KEY:"
      },
      "letme": {
        "capability": "https://letme.dev/market.prices",
        "tool": "https://letme.dev/databento"
      },
      "area": "domain-data",
      "unitPrices": [
        {
          "item": "Standard plan",
          "unit": "month",
          "usd": 199,
          "note": "live data, no licence fees, monthly"
        },
        {
          "item": "Plus plan licence fees",
          "unit": "month",
          "usd": 1750,
          "note": "annual contract, by sales"
        },
        {
          "item": "Unlimited plan licence fees",
          "unit": "month",
          "usd": 4500,
          "note": "annual contract, by sales"
        }
      ],
      "provenance": {
        "legalEntity": "Databento, Inc.",
        "domain": "databento.com",
        "domainRegistered": "",
        "endpointOnVendorDomain": true,
        "terms": "https://databento.com/legal/terms",
        "privacy": "https://databento.com/legal/privacy",
        "statusPage": "https://status.databento.com",
        "changelog": "https://databento.com/docs/release-notes",
        "securityTxt": "none",
        "checked": "2026-11-03",
        "notes": [
          "Databento, Inc. is named in the about page footer and as the GitHub organisation's name. The legal pages at databento.com/legal, /legal/terms and /legal/privacy answer 200 with a script shell and no text, so the terms, privacy policy, legal entity details and any automated-access clause are unread.",
          "databento.com/robots.txt disallows only /portal for all crawlers. status.databento.com and roadmap.databento.com allow reading.",
          "RDAP for databento.com was refused (403 from rdap.org), so the registration date is unchecked.",
          "/.well-known/security.txt returns 404.",
          "The status page is an Atlassian Statuspage at status.databento.com with Portal, Historical, FTP and seven live-feed components."
        ],
        "score": 70
      },
      "pageJsonUrl": "https://www.anchorterminal.com/tools/databento.json",
      "live": {
        "slug": "databento",
        "probe": {
          "target": "https://hist.databento.com",
          "method": "get",
          "lastAt": "2026-11-04T20:46:40.679288712Z",
          "lastOk": true,
          "lastStatus": 200,
          "lastMs": 445,
          "authRequired": false,
          "uptime24h": 100,
          "uptime30d": 100,
          "p50ms24h": 340,
          "p95ms24h": 1849,
          "samples24h": 55,
          "samples30d": 55,
          "days": [
            {
              "date": "2026-11-04",
              "probes": 55,
              "ok": 55
            }
          ]
        },
        "vendorStatus": {
          "page": "https://status.databento.com",
          "indicator": "minor",
          "summary": "Minor Service Outage",
          "checkedAt": "2026-11-04T20:39:03.984132447Z"
        },
        "versions": [
          {
            "registry": "github",
            "name": "databento/databento-python",
            "version": "v0.90.0",
            "released": "2026-11-03",
            "seenAt": "2026-11-04T20:10:26.351171807Z"
          },
          {
            "registry": "pypi",
            "name": "databento",
            "version": "0.90.0",
            "released": "2026-11-03",
            "seenAt": "2026-11-04T20:10:26.154676361Z"
          }
        ],
        "githubStars": 309,
        "pypiWeekly": 274335,
        "securityTxt": {
          "url": "https://databento.com/.well-known/security.txt",
          "state": "none",
          "checkedAt": "2026-11-04T15:54:13.184390241Z"
        },
        "updatedAt": "2026-11-04T20:46:40.679288712Z"
      }
    },
    "answer": "Databento scores 60.3 (C) on agent readiness against Finnhub's 45.1 (E), and leads in 6 of 7 scored categories. Finnhub leads on payments \u0026 pricing.",
    "b": {
      "slug": "finnhub",
      "name": "Finnhub",
      "vendor": "Finnhub",
      "vendorUrl": "https://finnhub.io",
      "kind": "http-api",
      "category": "market-data",
      "summary": "Finnhub is a market data API for stock quotes and candles, company fundamentals, estimates, filings, transcripts, news and alternative data, with forex, crypto and economic series. Agents call the REST API at finnhub.io/api/v1 or the hosted MCP server at mcp.finnhub.io.",
      "url": "https://www.anchorterminal.com/tools/finnhub",
      "markdownUrl": "https://www.anchorterminal.com/tools/finnhub.md",
      "slimMarkdownUrl": "https://www.anchorterminal.com/tools/finnhub.min.md",
      "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/finnhub.json",
      "dns": "finnhub.grade.anchorterminal.com",
      "repo": "https://github.com/Finnhub-Stock-API/finnhub-python",
      "transports": [
        "http",
        "streamable-http",
        "websocket"
      ],
      "remoteUrl": "https://finnhub.io/api/v1",
      "packages": [
        {
          "registry": "pypi",
          "name": "finnhub-python"
        },
        {
          "registry": "npm",
          "name": "finnhub"
        }
      ],
      "auth": "mixed",
      "authNotes": "One API key per account from the dashboard after a browser signup. The docs accept it as a `token=` query parameter or an `X-Finnhub-Token` header; the Swagger document declares only the query form. The hosted MCP server at mcp.finnhub.io/mcp uses OAuth with the Finnhub account and fixed client ids (`claude`, `chatgpt`) with no secret, so the assistant never sees the key. No scopes, expiry or rotation guidance found.",
      "pricing": "freemium",
      "pricingNotes": "Free key at 60 API calls a minute for personal use with no card, covering 29 of 116 documented operations; 87 are marked premium. Self-serve plans by dataset, read from the pricing page's script data, run from $49.99 a month (market data Basic, 150 calls a minute) and $50 (fundamentals) to $3,500 a month for All-In-One at 900 market data and 300 fundamental calls a minute, all personal use. Enterprise is priced by contact, with commercial use and redistribution (https://finnhub.io/pricing, checked 2026-11-03).",
      "priceSummary": "$49.99 / mo",
      "where": "hosted",
      "x402": {
        "level": "no",
        "evidence": "No x402, MPP or L402 in the Swagger document, the embedded docs, the pricing script data or the MCP page (checked 2026-11-03). A call without a key returns HTTP 401 with `{\"error\":\"Please use an API key.\"}`.",
        "endpoints": []
      },
      "toolCount": 70,
      "popularity": {
        "githubStars": 1095,
        "npmWeekly": null,
        "pypiWeekly": null,
        "asOf": "2026-11-03"
      },
      "docsUrl": "https://finnhub.io/docs/api",
      "openapi": "https://finnhub.io/static/swagger.json",
      "capabilities": [
        "market.prices",
        "market.fundamentals",
        "market.news",
        "market.filings",
        "market.history",
        "market.crypto",
        "market.indices",
        "data.markets",
        "data.company"
      ],
      "tags": [
        "hosted",
        "freemium",
        "api-key",
        "oauth",
        "mcp",
        "remote-mcp",
        "openapi",
        "no-card",
        "free-tier",
        "closed-source",
        "no-status-page",
        "python",
        "go",
        "typescript",
        "ruby",
        "php",
        "stocks",
        "forex",
        "crypto",
        "personal-use",
        "sla"
      ],
      "lastRelease": "2026-11-02",
      "graded": true,
      "anchor": {
        "graded": true,
        "score": 45.1,
        "grade": "E",
        "agentReady": false,
        "rank": 1127,
        "ranked": true,
        "rankOf": 1349,
        "categoryRank": 10,
        "methodology": "0.7",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 56,
          "maintenance": 60,
          "payments": 30,
          "reliability": 48,
          "schema": 58,
          "security": 32,
          "transparency": 27
        },
        "pending": [
          "performance",
          "tasks"
        ],
        "assessment": {
          "confidence": "low",
          "date": "2026-11-03"
        },
        "negative": 0,
        "verdict": "A public Swagger document covers 116 endpoints, six official client libraries exist, and a free key gives 60 calls a minute with no card. The key is documented in the query string, no status page, changelog, error reference or privacy policy was found, and robots.txt kept the terms from our reader.",
        "bestFor": "Agents that need one key across quotes, fundamentals, estimates, filings and transcripts with official libraries, and a free key for prototypes.",
        "strengths": [
          "Public Swagger 2.0 document with a description on every one of 116 operations and sample code in five languages",
          "Free key at 60 calls a minute with no card, and a documented 429 with a 30 calls a second ceiling",
          "Official libraries for Python, Go, JavaScript, Ruby, Kotlin and PHP, three updated on 2 November 2026",
          "Hosted MCP server with OAuth, 70 tools, and no key pasted into the client",
          "SLA stated as available for enterprise clients on the home page"
        ],
        "weaknesses": [
          "The Swagger document declares the key only as a `token` query parameter, and the examples carry it in the URL",
          "No status page, changelog, error reference or privacy policy was found, and the terms page is disallowed by robots.txt",
          "87 of 116 operations are marked premium, and self-serve plans are sold per dataset with a $3,500 a month All-In-One",
          "No legal entity, address or governing law was found on any readable page",
          "Parameters carry allowed values in prose only, and responses are documented for 200 alone"
        ],
        "agentNotes": [
          "Send the key as the `X-Finnhub-Token` header, not as `token=` in the URL, and keep under 30 calls a second on top of the plan's per-minute limit",
          "Check the `premium` marker before calling; a free key reaches 29 operations and the rest answer with an error",
          "Poll /quote sparingly; the docs say constant polling is not recommended and point to the websocket for real-time updates",
          "Expect 401 `{\"error\":\"Please use an API key.\"}` without a key and 429 over the limit; wait a minute before retrying, as the MCP page advises",
          "Self-serve plans are personal use; anything commercial needs the enterprise contact route"
        ],
        "metrics": {
          "kind": "remote",
          "measured": false
        },
        "reviewCount": 0,
        "avgRating": 0,
        "history": [
          {
            "basis": "public evidence",
            "confidence": "low",
            "grade": "E",
            "methodology": "0.7",
            "pending": [
              "performance",
              "tasks"
            ],
            "run": "2026-10-01",
            "runLabel": "October 2026 research run",
            "score": 45.1
          }
        ],
        "editorialScores": {
          "ergonomics": 56,
          "maintenance": 60,
          "payments": 30,
          "reliability": 48,
          "schema": 58,
          "security": 32,
          "transparency": 8
        },
        "provenanceScore": 45,
        "checked": {
          "categories": {
            "ergonomics": "2026-11-03",
            "maintenance": "2026-11-03",
            "payments": "2026-11-03",
            "reliability": "2026-11-03",
            "schema": "2026-11-03",
            "security": "2026-11-03",
            "transparency": "2026-11-03"
          },
          "last": "2026-11-03",
          "oldest": "2026-11-03",
          "stale": false,
          "staleAfterDays": 90
        }
      },
      "connect": {
        "install": "pip install finnhub-python",
        "http": "curl -H \"X-Finnhub-Token: $FINNHUB_API_KEY\" \"https://finnhub.io/api/v1/quote?symbol=AAPL\"",
        "config": {
          "mcpServers": {
            "finnhub": {
              "url": "https://mcp.finnhub.io/mcp"
            }
          }
        }
      },
      "letme": {
        "capability": "https://letme.dev/market.prices",
        "tool": "https://letme.dev/finnhub"
      },
      "area": "domain-data",
      "unitPrices": [
        {
          "item": "Market data Basic, 150 calls a minute",
          "unit": "month",
          "usd": 49.99,
          "note": "personal use, billed quarterly"
        },
        {
          "item": "Market data Standard, 300 calls a minute",
          "unit": "month",
          "usd": 129.99,
          "note": "personal use, billed quarterly"
        },
        {
          "item": "Market data Professional, 900 calls a minute",
          "unit": "month",
          "usd": 199.99,
          "note": "personal use, billed annually"
        },
        {
          "item": "Fundamentals, plan 1",
          "unit": "month",
          "usd": 50,
          "note": "personal use"
        },
        {
          "item": "All-In-One, 900 market data and 300 fundamental calls a minute",
          "unit": "month",
          "usd": 3500,
          "note": "personal use"
        }
      ],
      "provenance": {
        "legalEntity": "Finnhub",
        "domain": "finnhub.io",
        "domainRegistered": "",
        "endpointOnVendorDomain": true,
        "terms": "https://finnhub.io/terms-of-service",
        "privacy": "",
        "statusPage": "",
        "changelog": "",
        "securityTxt": "none",
        "checked": "2026-11-03",
        "notes": [
          "No legal entity, address or governing law was found. The site names only Finnhub; the GitHub organisation gives New York, NY; the Swagger document's license field says Apache-2.0, which describes the document, not the data.",
          "finnhub.io/robots.txt disallows /terms-of-service and /faq for every crawler, so the terms were not read. The pricing page says each self-serve plan is Personal Use with the terms applying.",
          "/privacy and /about return 302 to the home page. No privacy policy was found.",
          "/.well-known/security.txt and /security.txt return 302 to the home page, so none.",
          "No status page or changelog was found on the site, in the docs document or on the MCP page.",
          "RDAP for the .io domain answered without events, so the registration date is not recorded."
        ],
        "score": 45
      },
      "pageJsonUrl": "https://www.anchorterminal.com/tools/finnhub.json",
      "live": {
        "slug": "finnhub",
        "probe": {
          "target": "https://finnhub.io/api/v1",
          "method": "get",
          "lastAt": "2026-11-04T20:46:45.8456348Z",
          "lastOk": true,
          "lastStatus": 401,
          "lastMs": 130,
          "lastNote": "asks for credentials",
          "authRequired": true,
          "uptime24h": 100,
          "uptime30d": 100,
          "p50ms24h": 134,
          "p95ms24h": 413,
          "samples24h": 55,
          "samples30d": 55,
          "days": [
            {
              "date": "2026-11-04",
              "probes": 55,
              "ok": 55
            }
          ]
        },
        "versions": [
          {
            "registry": "npm",
            "name": "finnhub",
            "version": "2.0.16",
            "seenAt": "2026-11-04T20:16:14.680739643Z"
          },
          {
            "registry": "pypi",
            "name": "finnhub-python",
            "version": "2.4.29",
            "released": "2026-06-24",
            "seenAt": "2026-11-04T20:16:14.489761831Z"
          }
        ],
        "githubStars": 1097,
        "npmWeekly": 2613,
        "pypiWeekly": 47747,
        "securityTxt": {
          "url": "https://finnhub.io/.well-known/security.txt",
          "state": "none",
          "checkedAt": "2026-11-04T15:53:16.666096211Z"
        },
        "updatedAt": "2026-11-04T20:46:45.8456348Z"
      }
    },
    "edges": [
      {
        "by": 29,
        "category": "security",
        "leads": "databento",
        "name": "Security \u0026 auth",
        "reasons": {
          "a": "Named API keys, up to 100 per account, rotated or deleted in the portal, with per-member permissions, sent only as the Basic auth username; no scopes per key and no expiry (25 of 30). Every API call is a read, and a monthly historical limit caps what a leaked key can spend; live usage is not capped (14 of 20). The API returns market data and reference records, not free text from third parties (10). A data usage page in the portal and a billing page per cycle, with no per-key call log documented (8 of 15). The vendor revokes keys it finds in public and documents key hygiene; security.txt returns 404 and no bounty, SOC 2 or ISO 27001 was found on readable pages (4 of 20). Total 61.",
          "b": "One key per account with no scopes, documented as `token=` in the query string or an `X-Finnhub-Token` header, and the Swagger document declares only the query form. The MCP server uses OAuth with fixed public client ids and keeps the key from the assistant (20 less 10 for the query string, plus 2 for the MCP route, so 12). Every data operation is a read (15 of 20). News, transcripts and filings are third-party text and no guidance was found (5 of 15). No usage log for the key holder was found (0 of 15). security.txt redirects to the home page and no disclosure policy, bug bounty or certification was found (0 of 20). 12 + 15 + 5 + 0 + 0 = 32."
        },
        "scores": {
          "a": 61,
          "b": 32
        }
      },
      {
        "by": 24,
        "category": "ergonomics",
        "leads": "databento",
        "name": "Agent ergonomics",
        "reasons": {
          "a": "`limit`, time ranges to the nanosecond, schema choice from trades to daily bars, encoding choice and `metadata.get_cost` to size a request before paying (20 of 25). Symbol, date and schema filters, batch jobs listed and fetched by id, no cursor pagination because ranges are split by time (16 of 20). Errors carry an HTTP code, a named identifier, a message and a docs link, with 206 for partially resolved symbols (17 of 20). Reads only on the historical and reference APIs; a duplicate streaming request is charged twice, batch is billed once, and the portal can cap monthly spend (12 of 20). Few required parameters, and official clients in Python, C++ and Rust (15). Total 80.",
          "b": "The REST API is the surface graded. `from` and `to` on candles and news, and symbol-scoped calls, size responses; no field selection, and the MCP server lists 70 tools (12 of 25). Date filters but no pagination on most lists (10 of 20). Only the 429 is documented; a missing key answered 401 with a JSON `error` field in our one test call (5 of 20). All but one operation are GET reads; the MCP annotations were not read (14 of 20). Few required parameters and official libraries in six languages (15). 12 + 10 + 5 + 14 + 15 = 56."
        },
        "scores": {
          "a": 80,
          "b": 56
        }
      },
      {
        "by": 24,
        "category": "maintenance",
        "leads": "databento",
        "name": "Maintenance \u0026 community",
        "reasons": {
          "a": "Python 0.89.0 on 28 October 2026 and data release notes dated 20 October (30). Python 0.85.0 (25 August), 0.86.0 (1 September), 0.87.0 (22 September), 0.88.0 (21 October) and 0.89.0, plus Rust 0.64.0 and C++ 0.69.0 on 27 October and four dated data notes since 8 August (20). A Slack community, Intercom chat, support@databento.com, a public roadmap and a public issue tracker linked from the release notes; GitHub issue replies were not read because the GitHub API rate limit was reached (12 of 15). Official clients in Python, C++ and Rust released the same week as each other (15). The Python client is Apache-2.0 with releases on GitHub and PyPI; CI and dependency pins were not checked (7 of 10). Total 84.",
          "b": "Read as a closed service. The newest dated change is 2 November 2026, when finnhub-go, finnhub-ruby and finnhub-php gained a price target history endpoint; the MCP page is dated 6 August 2026 (30). Only that one dated change falls in the last 90 days, the previous library commits being 22 June 2026 (5 of 20). Support by email, with no public changelog or community channel found (5 of 15). Six official client libraries, finnhub-python at 2.4.29 of 24 June 2026 (15). The libraries are generated from the API document; no CI run was visible and the Python README names an older version than PyPI (5 of 10). 30 + 5 + 5 + 15 + 5 = 60."
        },
        "scores": {
          "a": 84,
          "b": 60
        }
      },
      {
        "by": 22,
        "category": "transparency",
        "leads": "databento",
        "name": "Transparency \u0026 trust",
        "reasons": {
          "a": "A closed service whose terms could not be read, because databento.com/legal and its /terms and /privacy pages are drawn by script; the client libraries are Apache-2.0 (10 of 30). The privacy policy was unread for the same reason, and the docs say nothing about retention of account data (0 of 30, unchecked). Dated release notes carry deprecations, and the versioning policy keeps a prior major version for a year after the next (18 of 20). No subprocessor list or data location statement was found on readable pages; the architecture docs name the company's own data centres (0 of 20). Total 28.",
          "b": "A closed service whose terms exist at a page that robots.txt disallows, so they were not read; the pricing page says every self-serve plan is personal use, and no legal entity or governing law was found (8 of 30). No privacy policy was found, /privacy redirecting to the home page (0 of 30). No deprecation policy or dated notices found (0 of 20). Stripe and Braintree scripts load on the site, but no processor list or data location is disclosed (0 of 20). 8 + 0 + 0 + 0 = 8."
        },
        "scores": {
          "a": 49,
          "b": 27
        }
      },
      {
        "by": 17,
        "category": "schema",
        "leads": "databento",
        "name": "Schema \u0026 documentation",
        "reasons": {
          "a": "No OpenAPI document was found. The contract is the per-endpoint reference with typed parameters, the DBN schemas with field tables and enums, and a .http.md variant of every page (8 of 25). llms.txt and a Markdown twin of every page with language variants (10). Endpoint pages say what each call returns and the basics pages say when to use streaming against batch (15 of 20). Typed parameters with enums for schema, encoding, symbology type and split duration (13 of 15). Code in Python, C++, Rust and curl on every page, and an error table with codes, named error identifiers and a docs link in each body (14 of 15). Semantic versioning with dated release notes per component, breaking changes and deprecations called out (15). Total 75.",
          "b": "A public Swagger 2.0 document covers 116 paths with a description on every operation, declaring the key as a query parameter and a 200 response only; the MCP tools were not read (20 of 25). /llms.txt returns the site's HTML shell and no Markdown docs exist (0 of 10). Each operation states its purpose, a premium marker and, on quote, advice against polling, with little on when not to use it (14 of 20). Required flags and types are set on 248 parameters, but allowed values such as news categories sit in description text and no enum is declared (8 of 15). Every operation has example URLs and sample code in five languages, while the only documented error is the 429 (9 of 15). The path carries v1 and no changelog or dated change notes were found (7 of 15). 20 + 0 + 14 + 8 + 9 + 7 = 58."
        },
        "scores": {
          "a": 75,
          "b": 58
        }
      },
      {
        "by": 8,
        "category": "payments",
        "leads": "finnhub",
        "name": "Payments \u0026 pricing",
        "reasons": {
          "a": "No x402, MPP or L402 (0). Plans are public ($199, $1,750 and $4,500 a month) and historical data is metered per GB, but the per-dataset rates are in the portal catalogue behind a login and the pricing page's estimator shows only an example (12 of 20). $125 of credits for every new user, expiring after six months; whether a card is needed at signup was not found on the pricing, credits or billing pages (10 of 20). A person signs up in a browser and creates keys in the portal; no key API (0). Total 22.",
          "b": "No x402, MPP or L402 (0). Plan prices are public without login, read from the pricing page's script data, sold per dataset by the month with calls a minute rather than per call (10). A free key at 60 calls a minute with no card, which the pricing FAQ says can be used forever (20). The key comes from a browser signup and no key API was found (0). 0 + 10 + 20 + 0 = 30."
        },
        "scores": {
          "a": 22,
          "b": 30
        }
      }
    ],
    "facts": [
      {
        "a": "HTTP API",
        "b": "HTTP API",
        "name": "Kind"
      },
      {
        "a": "Databento, Inc.",
        "b": "Finnhub",
        "name": "Vendor"
      },
      {
        "a": "https://hist.databento.com",
        "b": "https://finnhub.io/api/v1",
        "name": "Hosted endpoint"
      },
      {
        "a": "HTTP",
        "b": "HTTP, Streamable HTTP, websocket",
        "name": "Transports"
      },
      {
        "a": "API key",
        "b": "OAuth or key",
        "name": "Auth"
      },
      {
        "a": "Pay per use",
        "b": "Freemium",
        "name": "Pricing"
      },
      {
        "a": "no",
        "b": "no",
        "name": "x402"
      },
      {
        "a": "Apache-2.0 (clients)",
        "b": "none",
        "name": "Licence"
      },
      {
        "a": "none",
        "b": "70",
        "name": "Tools exposed"
      },
      {
        "a": "no",
        "b": "no",
        "name": "Read-only variant documented"
      },
      {
        "a": "yes",
        "b": "no",
        "name": "llms.txt"
      },
      {
        "a": "2026-10-28",
        "b": "2026-11-02",
        "name": "Last release"
      },
      {
        "a": "couldn't be read",
        "b": "couldn't be read",
        "name": "Terms last updated"
      },
      {
        "a": "couldn't be read",
        "b": "no document linked",
        "name": "Privacy policy last updated"
      },
      {
        "a": "couldn't be read",
        "b": "couldn't be read",
        "name": "Customer content may train models"
      },
      {
        "a": "couldn't be read",
        "b": "couldn't be read",
        "name": "Terms restrict automated access"
      },
      {
        "a": "couldn't be read",
        "b": "couldn't be read",
        "name": "Terms restrict benchmarking"
      },
      {
        "a": "couldn't be read",
        "b": "couldn't be read",
        "name": "Terms or service can change without notice"
      },
      {
        "a": "couldn't be read",
        "b": "couldn't be read",
        "name": "Arbitration or class-action waiver"
      },
      {
        "a": "309 stars",
        "b": "1.1k stars",
        "name": "Popularity"
      }
    ],
    "faq": [
      {
        "answer": "Databento scores 60.3 (C) on agent readiness against Finnhub's 45.1 (E), and leads in 6 of 7 scored categories. Finnhub leads on payments \u0026 pricing.",
        "question": "Which is better for AI agents, Databento or Finnhub?"
      },
      {
        "answer": "Databento needs an API key. Finnhub takes an API key or an OAuth sign-in.",
        "question": "Do Databento and Finnhub need an API key?"
      },
      {
        "answer": "Yes. Databento has a hosted endpoint at https://hist.databento.com and Finnhub at https://finnhub.io/api/v1.",
        "question": "Can an agent call Databento and Finnhub without installing anything?"
      }
    ],
    "goodFor": [
      {
        "aheadOn": [
          "Schema \u0026 documentation, 75 against 58",
          "Agent ergonomics, 80 against 56",
          "Security \u0026 auth, 61 against 32",
          "Maintenance \u0026 community, 84 against 60",
          "Transparency \u0026 trust, 49 against 27"
        ],
        "also": null,
        "goodFor": "An agent that needs exchange-level trades, quotes, order book and bar data for US and European futures, options and equities, or corporate actions and a security master, and can budget per GB.",
        "slug": "databento",
        "watchFor": "Two critical and several major incidents on the status page in the 90 days to 3 November 2026, mostly Historical API outages and batch job delays"
      },
      {
        "aheadOn": [
          "Payments \u0026 pricing, 30 against 22"
        ],
        "also": [
          "Free to start without a card"
        ],
        "goodFor": "Agents that need one key across quotes, fundamentals, estimates, filings and transcripts with official libraries, and a free key for prototypes.",
        "slug": "finnhub",
        "watchFor": "The Swagger document declares the key only as a `token` query parameter, and the examples carry it in the URL"
      }
    ],
    "history": null,
    "job": {
      "capability": "market.prices",
      "name": "Market prices"
    },
    "others": [
      {
        "json": "https://www.anchorterminal.com/compare/alpha-vantage-vs-databento.json",
        "title": "Alpha Vantage vs Databento",
        "url": "https://www.anchorterminal.com/compare/alpha-vantage-vs-databento"
      },
      {
        "json": "https://www.anchorterminal.com/compare/alpha-vantage-vs-finnhub.json",
        "title": "Alpha Vantage vs Finnhub",
        "url": "https://www.anchorterminal.com/compare/alpha-vantage-vs-finnhub"
      },
      {
        "json": "https://www.anchorterminal.com/compare/benzinga-vs-databento.json",
        "title": "Benzinga vs Databento",
        "url": "https://www.anchorterminal.com/compare/benzinga-vs-databento"
      },
      {
        "json": "https://www.anchorterminal.com/compare/databento-vs-eodhd.json",
        "title": "Databento vs EODHD",
        "url": "https://www.anchorterminal.com/compare/databento-vs-eodhd"
      },
      {
        "json": "https://www.anchorterminal.com/compare/databento-vs-financial-datasets.json",
        "title": "Databento vs Financial Datasets",
        "url": "https://www.anchorterminal.com/compare/databento-vs-financial-datasets"
      },
      {
        "json": "https://www.anchorterminal.com/compare/databento-vs-financial-modeling-prep.json",
        "title": "Databento vs Financial Modeling Prep",
        "url": "https://www.anchorterminal.com/compare/databento-vs-financial-modeling-prep"
      },
      {
        "json": "https://www.anchorterminal.com/compare/databento-vs-intrinio.json",
        "title": "Databento vs Intrinio",
        "url": "https://www.anchorterminal.com/compare/databento-vs-intrinio"
      },
      {
        "json": "https://www.anchorterminal.com/compare/databento-vs-massive.json",
        "title": "Databento vs Massive (formerly Polygon.io)",
        "url": "https://www.anchorterminal.com/compare/databento-vs-massive"
      },
      {
        "json": "https://www.anchorterminal.com/compare/databento-vs-tiingo.json",
        "title": "Databento vs Tiingo",
        "url": "https://www.anchorterminal.com/compare/databento-vs-tiingo"
      },
      {
        "json": "https://www.anchorterminal.com/compare/databento-vs-twelve-data.json",
        "title": "Databento vs Twelve Data",
        "url": "https://www.anchorterminal.com/compare/databento-vs-twelve-data"
      },
      {
        "json": "https://www.anchorterminal.com/compare/finnhub-vs-intrinio.json",
        "title": "Finnhub vs Intrinio",
        "url": "https://www.anchorterminal.com/compare/finnhub-vs-intrinio"
      },
      {
        "json": "https://www.anchorterminal.com/compare/finnhub-vs-massive.json",
        "title": "Finnhub vs Massive (formerly Polygon.io)",
        "url": "https://www.anchorterminal.com/compare/finnhub-vs-massive"
      },
      {
        "json": "https://www.anchorterminal.com/compare/finnhub-vs-tiingo.json",
        "title": "Finnhub vs Tiingo",
        "url": "https://www.anchorterminal.com/compare/finnhub-vs-tiingo"
      },
      {
        "json": "https://www.anchorterminal.com/compare/finnhub-vs-twelve-data.json",
        "title": "Finnhub vs Twelve Data",
        "url": "https://www.anchorterminal.com/compare/finnhub-vs-twelve-data"
      },
      {
        "json": "https://www.anchorterminal.com/compare/financial-datasets-vs-finnhub.json",
        "title": "Financial Datasets vs Finnhub",
        "url": "https://www.anchorterminal.com/compare/financial-datasets-vs-finnhub"
      },
      {
        "json": "https://www.anchorterminal.com/compare/financial-modeling-prep-vs-finnhub.json",
        "title": "Financial Modeling Prep vs Finnhub",
        "url": "https://www.anchorterminal.com/compare/financial-modeling-prep-vs-finnhub"
      },
      {
        "json": "https://www.anchorterminal.com/compare/eodhd-vs-finnhub.json",
        "title": "EODHD vs Finnhub",
        "url": "https://www.anchorterminal.com/compare/eodhd-vs-finnhub"
      },
      {
        "json": "https://www.anchorterminal.com/compare/benzinga-vs-finnhub.json",
        "title": "Benzinga vs Finnhub",
        "url": "https://www.anchorterminal.com/compare/benzinga-vs-finnhub"
      }
    ],
    "panel": null,
    "scores": [
      {
        "by": 2,
        "databento": 50,
        "edge": "databento",
        "finnhub": 48,
        "key": "reliability",
        "name": "Reliability",
        "weight": 16
      },
      {
        "key": "performance",
        "name": "Performance",
        "pending": true,
        "weight": 10
      },
      {
        "by": 17,
        "databento": 75,
        "edge": "databento",
        "finnhub": 58,
        "key": "schema",
        "name": "Schema \u0026 documentation",
        "weight": 13
      },
      {
        "by": 24,
        "databento": 80,
        "edge": "databento",
        "finnhub": 56,
        "key": "ergonomics",
        "name": "Agent ergonomics",
        "weight": 13
      },
      {
        "by": 29,
        "databento": 61,
        "edge": "databento",
        "finnhub": 32,
        "key": "security",
        "name": "Security \u0026 auth",
        "weight": 14
      },
      {
        "by": 8,
        "databento": 22,
        "edge": "finnhub",
        "finnhub": 30,
        "key": "payments",
        "name": "Payments \u0026 pricing",
        "weight": 10
      },
      {
        "key": "tasks",
        "name": "Task success",
        "pending": true,
        "weight": 10
      },
      {
        "by": 24,
        "databento": 84,
        "edge": "databento",
        "finnhub": 60,
        "key": "maintenance",
        "name": "Maintenance \u0026 community",
        "weight": 7
      },
      {
        "by": 22,
        "databento": 49,
        "edge": "databento",
        "finnhub": 27,
        "key": "transparency",
        "name": "Transparency \u0026 trust",
        "weight": 7
      }
    ],
    "summary": "Databento scores 60.3 (C) on agent readiness against Finnhub's 45.1 (E), and leads in 6 of 7 scored categories. Finnhub leads on payments \u0026 pricing. Both do market prices.",
    "tasks": null,
    "tutorials": [],
    "verdicts": {
      "databento": "Exchange-level tick and order book data metered per GB, with published per-IP rate limits, Retry-After on 429, dated release notes and clients in three languages. The HTTP API is still at major version 0, the status page lists two critical and several major incidents in 90 days, there is no OpenAPI document, and the legal pages were unreadable.",
      "finnhub": "A public Swagger document covers 116 endpoints, six official client libraries exist, and a free key gives 60 calls a minute with no card. The key is documented in the query string, no status page, changelog, error reference or privacy policy was found, and robots.txt kept the terms from our reader."
    }
  },
  "kind": "anchor.page",
  "links": {
    "api": "https://www.anchorterminal.com/api/v1/index.json",
    "html": "https://www.anchorterminal.com/compare/databento-vs-finnhub",
    "json": "https://www.anchorterminal.com/compare/databento-vs-finnhub.json",
    "llms": "https://www.anchorterminal.com/llms.txt",
    "markdown": "https://www.anchorterminal.com/compare/databento-vs-finnhub.md",
    "mcp": "https://www.anchorterminal.com/mcp",
    "slim": "https://www.anchorterminal.com/compare/databento-vs-finnhub.min.md"
  },
  "markdown": "Databento scores 60.3 (C) on agent readiness against Finnhub's 45.1 (E), and leads in 6 of 7 scored categories. Finnhub leads on payments \u0026 pricing. Both do market prices.\n\n- Databento: grade C, 60.3/100, rank #592 of 1349. Markdown https://www.anchorterminal.com/tools/databento.md · JSON https://www.anchorterminal.com/api/v1/tools/databento.json\n- Finnhub: grade E, 45.1/100, rank #1127 of 1349. Markdown https://www.anchorterminal.com/tools/finnhub.md · JSON https://www.anchorterminal.com/api/v1/tools/finnhub.json\n- Best financial market data APIs for AI agents: https://www.anchorterminal.com/best/market-data/index.md\n- All 55 markets comparisons: https://www.anchorterminal.com/compare/market-data/index.md\n\n## Which one, for what\n\n### Databento (C)\n\nGood for: An agent that needs exchange-level trades, quotes, order book and bar data for US and European futures, options and equities, or corporate actions and a security master, and can budget per GB.\n\nAhead on:\n- Schema \u0026 documentation, 75 against 58\n- Agent ergonomics, 80 against 56\n- Security \u0026 auth, 61 against 32\n- Maintenance \u0026 community, 84 against 60\n- Transparency \u0026 trust, 49 against 27\n\nWatch for: Two critical and several major incidents on the status page in the 90 days to 3 November 2026, mostly Historical API outages and batch job delays\n\n### Finnhub (E)\n\nGood for: Agents that need one key across quotes, fundamentals, estimates, filings and transcripts with official libraries, and a free key for prototypes.\n\nAhead on:\n- Payments \u0026 pricing, 30 against 22\n\nAlso in its favour:\n- Free to start without a card\n\nWatch for: The Swagger document declares the key only as a `token` query parameter, and the examples carry it in the URL\n\n\n## Why the edge\n\n### Security \u0026 auth: Databento +29\n\n- Databento (61): Named API keys, up to 100 per account, rotated or deleted in the portal, with per-member permissions, sent only as the Basic auth username; no scopes per key and no expiry (25 of 30). Every API call is a read, and a monthly historical limit caps what a leaked key can spend; live usage is not capped (14 of 20). The API returns market data and reference records, not free text from third parties (10). A data usage page in the portal and a billing page per cycle, with no per-key call log documented (8 of 15). The vendor revokes keys it finds in public and documents key hygiene; security.txt returns 404 and no bounty, SOC 2 or ISO 27001 was found on readable pages (4 of 20). Total 61.\n- Finnhub (32): One key per account with no scopes, documented as `token=` in the query string or an `X-Finnhub-Token` header, and the Swagger document declares only the query form. The MCP server uses OAuth with fixed public client ids and keeps the key from the assistant (20 less 10 for the query string, plus 2 for the MCP route, so 12). Every data operation is a read (15 of 20). News, transcripts and filings are third-party text and no guidance was found (5 of 15). No usage log for the key holder was found (0 of 15). security.txt redirects to the home page and no disclosure policy, bug bounty or certification was found (0 of 20). 12 + 15 + 5 + 0 + 0 = 32.\n\n### Agent ergonomics: Databento +24\n\n- Databento (80): `limit`, time ranges to the nanosecond, schema choice from trades to daily bars, encoding choice and `metadata.get_cost` to size a request before paying (20 of 25). Symbol, date and schema filters, batch jobs listed and fetched by id, no cursor pagination because ranges are split by time (16 of 20). Errors carry an HTTP code, a named identifier, a message and a docs link, with 206 for partially resolved symbols (17 of 20). Reads only on the historical and reference APIs; a duplicate streaming request is charged twice, batch is billed once, and the portal can cap monthly spend (12 of 20). Few required parameters, and official clients in Python, C++ and Rust (15). Total 80.\n- Finnhub (56): The REST API is the surface graded. `from` and `to` on candles and news, and symbol-scoped calls, size responses; no field selection, and the MCP server lists 70 tools (12 of 25). Date filters but no pagination on most lists (10 of 20). Only the 429 is documented; a missing key answered 401 with a JSON `error` field in our one test call (5 of 20). All but one operation are GET reads; the MCP annotations were not read (14 of 20). Few required parameters and official libraries in six languages (15). 12 + 10 + 5 + 14 + 15 = 56.\n\n### Maintenance \u0026 community: Databento +24\n\n- Databento (84): Python 0.89.0 on 28 October 2026 and data release notes dated 20 October (30). Python 0.85.0 (25 August), 0.86.0 (1 September), 0.87.0 (22 September), 0.88.0 (21 October) and 0.89.0, plus Rust 0.64.0 and C++ 0.69.0 on 27 October and four dated data notes since 8 August (20). A Slack community, Intercom chat, support@databento.com, a public roadmap and a public issue tracker linked from the release notes; GitHub issue replies were not read because the GitHub API rate limit was reached (12 of 15). Official clients in Python, C++ and Rust released the same week as each other (15). The Python client is Apache-2.0 with releases on GitHub and PyPI; CI and dependency pins were not checked (7 of 10). Total 84.\n- Finnhub (60): Read as a closed service. The newest dated change is 2 November 2026, when finnhub-go, finnhub-ruby and finnhub-php gained a price target history endpoint; the MCP page is dated 6 August 2026 (30). Only that one dated change falls in the last 90 days, the previous library commits being 22 June 2026 (5 of 20). Support by email, with no public changelog or community channel found (5 of 15). Six official client libraries, finnhub-python at 2.4.29 of 24 June 2026 (15). The libraries are generated from the API document; no CI run was visible and the Python README names an older version than PyPI (5 of 10). 30 + 5 + 5 + 15 + 5 = 60.\n\n### Transparency \u0026 trust: Databento +22\n\n- Databento (49): A closed service whose terms could not be read, because databento.com/legal and its /terms and /privacy pages are drawn by script; the client libraries are Apache-2.0 (10 of 30). The privacy policy was unread for the same reason, and the docs say nothing about retention of account data (0 of 30, unchecked). Dated release notes carry deprecations, and the versioning policy keeps a prior major version for a year after the next (18 of 20). No subprocessor list or data location statement was found on readable pages; the architecture docs name the company's own data centres (0 of 20). Total 28.\n- Finnhub (27): A closed service whose terms exist at a page that robots.txt disallows, so they were not read; the pricing page says every self-serve plan is personal use, and no legal entity or governing law was found (8 of 30). No privacy policy was found, /privacy redirecting to the home page (0 of 30). No deprecation policy or dated notices found (0 of 20). Stripe and Braintree scripts load on the site, but no processor list or data location is disclosed (0 of 20). 8 + 0 + 0 + 0 = 8.\n\n### Schema \u0026 documentation: Databento +17\n\n- Databento (75): No OpenAPI document was found. The contract is the per-endpoint reference with typed parameters, the DBN schemas with field tables and enums, and a .http.md variant of every page (8 of 25). llms.txt and a Markdown twin of every page with language variants (10). Endpoint pages say what each call returns and the basics pages say when to use streaming against batch (15 of 20). Typed parameters with enums for schema, encoding, symbology type and split duration (13 of 15). Code in Python, C++, Rust and curl on every page, and an error table with codes, named error identifiers and a docs link in each body (14 of 15). Semantic versioning with dated release notes per component, breaking changes and deprecations called out (15). Total 75.\n- Finnhub (58): A public Swagger 2.0 document covers 116 paths with a description on every operation, declaring the key as a query parameter and a 200 response only; the MCP tools were not read (20 of 25). /llms.txt returns the site's HTML shell and no Markdown docs exist (0 of 10). Each operation states its purpose, a premium marker and, on quote, advice against polling, with little on when not to use it (14 of 20). Required flags and types are set on 248 parameters, but allowed values such as news categories sit in description text and no enum is declared (8 of 15). Every operation has example URLs and sample code in five languages, while the only documented error is the 429 (9 of 15). The path carries v1 and no changelog or dated change notes were found (7 of 15). 20 + 0 + 14 + 8 + 9 + 7 = 58.\n\n### Payments \u0026 pricing: Finnhub +8\n\n- Databento (22): No x402, MPP or L402 (0). Plans are public ($199, $1,750 and $4,500 a month) and historical data is metered per GB, but the per-dataset rates are in the portal catalogue behind a login and the pricing page's estimator shows only an example (12 of 20). $125 of credits for every new user, expiring after six months; whether a card is needed at signup was not found on the pricing, credits or billing pages (10 of 20). A person signs up in a browser and creates keys in the portal; no key API (0). Total 22.\n- Finnhub (30): No x402, MPP or L402 (0). Plan prices are public without login, read from the pricing page's script data, sold per dataset by the month with calls a minute rather than per call (10). A free key at 60 calls a minute with no card, which the pricing FAQ says can be used forever (20). The key comes from a browser signup and no key API was found (0). 0 + 10 + 20 + 0 = 30.\n\n## Score by category\n\n| Category | Weight | Databento | Finnhub | Edge |\n| --- | --- | --- | --- | --- |\n| Reliability | 16% (20 this run) | 50 | 48 | Databento +2 |\n| Performance | 10%, pending | pending | pending | not scored in this run |\n| Schema \u0026 documentation | 13% (16.2 this run) | 75 | 58 | Databento +17 |\n| Agent ergonomics | 13% (16.2 this run) | 80 | 56 | Databento +24 |\n| Security \u0026 auth | 14% (17.5 this run) | 61 | 32 | Databento +29 |\n| Payments \u0026 pricing | 10% (12.5 this run) | 22 | 30 | Finnhub +8 |\n| Task success | 10%, pending | pending | pending | not scored in this run |\n| Maintenance \u0026 community | 7% (8.8 this run) | 84 | 60 | Databento +24 |\n| Transparency \u0026 trust | 7% (8.8 this run) | 49 | 27 | Databento +22 |\n| Negative events | ≤15 | 0 | 0 | |\n| **Total** | | **60.3 · C** | **45.1 · E** | |\n\n## Facts side by side\n\n| Fact | Databento | Finnhub |\n| --- | --- | --- |\n| Kind | HTTP API | HTTP API |\n| Vendor | Databento, Inc. | Finnhub |\n| Hosted endpoint | `https://hist.databento.com` | `https://finnhub.io/api/v1` |\n| Transports | HTTP | HTTP, Streamable HTTP, websocket |\n| Auth | API key | OAuth or key |\n| Pricing | Pay per use | Freemium |\n| x402 | no | no |\n| Licence | Apache-2.0 (clients) | none |\n| Tools exposed | none | 70 |\n| Read-only variant documented | no | no |\n| llms.txt | yes | no |\n| Last release | 2026-10-28 | 2026-11-02 |\n| Terms last updated | couldn't be read | couldn't be read |\n| Privacy policy last updated | couldn't be read | no document linked |\n| Customer content may train models | couldn't be read | couldn't be read |\n| Terms restrict automated access | couldn't be read | couldn't be read |\n| Terms restrict benchmarking | couldn't be read | couldn't be read |\n| Terms or service can change without notice | couldn't be read | couldn't be read |\n| Arbitration or class-action waiver | couldn't be read | couldn't be read |\n| Popularity | 309 stars | 1.1k stars |\n\n## Verdicts\n\n**Databento.** Exchange-level tick and order book data metered per GB, with published per-IP rate limits, Retry-After on 429, dated release notes and clients in three languages. The HTTP API is still at major version 0, the status page lists two critical and several major incidents in 90 days, there is no OpenAPI document, and the legal pages were unreadable.\n\n**Finnhub.** A public Swagger document covers 116 endpoints, six official client libraries exist, and a free key gives 60 calls a minute with no card. The key is documented in the query string, no status page, changelog, error reference or privacy policy was found, and robots.txt kept the terms from our reader.\n\n## Before you call either\n\n### Databento\n\n1. Call `metadata.get_cost` before `timeseries.get_range`, and set a monthly historical limit in the portal; a duplicate streaming request is charged twice\n2. Send the key as the Basic auth username (`-u $DATABENTO_API_KEY:`) to hist.databento.com/v0; never put it in the URL or source code\n3. On 429 wait for the Retry-After header; keep under 100 time series requests a second and 20 batch submissions a minute per IP\n4. Check status.databento.com before retrying a slow or 504 Historical request, since several incidents since August were API outages or batch delays\n5. Use batch download for requests over 5 GB, split by time range or `limit`, and read `schema` and `stype_in` from the dataset page before querying\n\n### Finnhub\n\n1. Send the key as the `X-Finnhub-Token` header, not as `token=` in the URL, and keep under 30 calls a second on top of the plan's per-minute limit\n2. Check the `premium` marker before calling; a free key reaches 29 operations and the rest answer with an error\n3. Poll /quote sparingly; the docs say constant polling is not recommended and point to the websocket for real-time updates\n4. Expect 401 `{\"error\":\"Please use an API key.\"}` without a key and 429 over the limit; wait a minute before retrying, as the MCP page advises\n5. Self-serve plans are personal use; anything commercial needs the enterprise contact route\n\n## Questions\n\n### Which is better for AI agents, Databento or Finnhub?\n\nDatabento scores 60.3 (C) on agent readiness against Finnhub's 45.1 (E), and leads in 6 of 7 scored categories. Finnhub leads on payments \u0026 pricing.\n\n### Do Databento and Finnhub need an API key?\n\nDatabento needs an API key. Finnhub takes an API key or an OAuth sign-in.\n\n### Can an agent call Databento and Finnhub without installing anything?\n\nYes. Databento has a hosted endpoint at https://hist.databento.com and Finnhub at https://finnhub.io/api/v1.\n\n\n## For agents\n\n- This comparison as JSON: https://www.anchorterminal.com/compare/databento-vs-finnhub.json, and with the fewest tokens: https://www.anchorterminal.com/compare/databento-vs-finnhub.min.md\n- Over MCP at https://www.anchorterminal.com/mcp (no key): `compare_tools {\"a\": \"databento\", \"b\": \"finnhub\"}`. From a terminal: `anchor compare databento finnhub`\n- Each listing in full: https://www.anchorterminal.com/api/v1/tools/databento.json and https://www.anchorterminal.com/api/v1/tools/finnhub.json\n\n## Other comparisons with Databento or Finnhub\n\n- [Alpha Vantage vs Databento](https://www.anchorterminal.com/compare/alpha-vantage-vs-databento.md)\n- [Alpha Vantage vs Finnhub](https://www.anchorterminal.com/compare/alpha-vantage-vs-finnhub.md)\n- [Benzinga vs Databento](https://www.anchorterminal.com/compare/benzinga-vs-databento.md)\n- [Databento vs EODHD](https://www.anchorterminal.com/compare/databento-vs-eodhd.md)\n- [Databento vs Financial Datasets](https://www.anchorterminal.com/compare/databento-vs-financial-datasets.md)\n- [Databento vs Financial Modeling Prep](https://www.anchorterminal.com/compare/databento-vs-financial-modeling-prep.md)\n- [Databento vs Intrinio](https://www.anchorterminal.com/compare/databento-vs-intrinio.md)\n- [Databento vs Massive (formerly Polygon.io)](https://www.anchorterminal.com/compare/databento-vs-massive.md)\n- [Databento vs Tiingo](https://www.anchorterminal.com/compare/databento-vs-tiingo.md)\n- [Databento vs Twelve Data](https://www.anchorterminal.com/compare/databento-vs-twelve-data.md)\n- [Finnhub vs Intrinio](https://www.anchorterminal.com/compare/finnhub-vs-intrinio.md)\n- [Finnhub vs Massive (formerly Polygon.io)](https://www.anchorterminal.com/compare/finnhub-vs-massive.md)\n- [Finnhub vs Tiingo](https://www.anchorterminal.com/compare/finnhub-vs-tiingo.md)\n- [Finnhub vs Twelve Data](https://www.anchorterminal.com/compare/finnhub-vs-twelve-data.md)\n- [Financial Datasets vs Finnhub](https://www.anchorterminal.com/compare/financial-datasets-vs-finnhub.md)\n- [Financial Modeling Prep vs Finnhub](https://www.anchorterminal.com/compare/financial-modeling-prep-vs-finnhub.md)\n- [EODHD vs Finnhub](https://www.anchorterminal.com/compare/eodhd-vs-finnhub.md)\n- [Benzinga vs Finnhub](https://www.anchorterminal.com/compare/benzinga-vs-finnhub.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-04",
    "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": "Databento vs Finnhub",
        "url": ""
      }
    ],
    "description": "Databento scores 60.3 (C) to Finnhub's 45.1 (E) for market prices. Prices, MCP, x402, uptime and agent notes side by side.",
    "facts": [
      "Databento C 60.3",
      "Finnhub E 45.1",
      "scores"
    ],
    "h1": "Databento vs Finnhub",
    "image": "https://www.anchorterminal.com/assets/og/default.png",
    "path": "/compare/databento-vs-finnhub",
    "published": "2026-10-01",
    "section": "tools",
    "title": "Databento vs Finnhub for AI agents in 2026: scores and prices",
    "toc": null,
    "updated": "2026-11-04",
    "url": "https://www.anchorterminal.com/compare/databento-vs-finnhub"
  },
  "tokens": {
    "markdown": 4300,
    "slim": 2530
  },
  "version": 1
}
