{
  "data": {
    "similar": [
      {
        "grade": "D",
        "json": "https://www.anchorterminal.com/tools/financial-modeling-prep.json",
        "name": "Financial Modeling Prep",
        "score": 48.7,
        "shared": [
          "market.fundamentals",
          "market.prices",
          "market.history",
          "market.filings",
          "market.news",
          "market.indices",
          "market.crypto",
          "data.company",
          "data.markets"
        ],
        "slug": "financial-modeling-prep"
      },
      {
        "grade": "E",
        "json": "https://www.anchorterminal.com/tools/finnhub.json",
        "name": "Finnhub",
        "score": 45.1,
        "shared": [
          "market.prices",
          "market.fundamentals",
          "market.news",
          "market.filings",
          "market.history",
          "market.crypto",
          "market.indices",
          "data.markets",
          "data.company"
        ],
        "slug": "finnhub"
      },
      {
        "grade": "BB",
        "json": "https://www.anchorterminal.com/tools/twelve-data.json",
        "name": "Twelve Data",
        "score": 70,
        "shared": [
          "market.prices",
          "market.history",
          "market.fundamentals",
          "market.crypto",
          "market.indices",
          "market.news",
          "market.filings",
          "data.markets"
        ],
        "slug": "twelve-data"
      },
      {
        "grade": "C",
        "json": "https://www.anchorterminal.com/tools/financial-datasets.json",
        "name": "Financial Datasets",
        "score": 61.8,
        "shared": [
          "market.fundamentals",
          "market.filings",
          "market.prices",
          "market.history",
          "market.news",
          "market.indices",
          "data.markets",
          "data.company"
        ],
        "slug": "financial-datasets"
      },
      {
        "grade": "C",
        "json": "https://www.anchorterminal.com/tools/intrinio.json",
        "name": "Intrinio",
        "score": 54.2,
        "shared": [
          "market.prices",
          "market.fundamentals",
          "market.filings",
          "market.news",
          "market.history",
          "market.indices",
          "data.markets",
          "data.company"
        ],
        "slug": "intrinio"
      },
      {
        "grade": "E",
        "json": "https://www.anchorterminal.com/tools/alpha-vantage.json",
        "name": "Alpha Vantage",
        "score": 41.5,
        "shared": [
          "market.prices",
          "market.history",
          "market.fundamentals",
          "market.news",
          "data.markets",
          "market.indices",
          "market.crypto",
          "data.company"
        ],
        "slug": "alpha-vantage"
      }
    ],
    "tool": {
      "slug": "eodhd",
      "name": "EODHD",
      "vendor": "Unicorn Data Services",
      "vendorUrl": "https://eodhd.com",
      "kind": "http-api",
      "category": "market-data",
      "summary": "EODHD (EOD Historical Data) is a market data API from Unicorn Data Services for end-of-day and intraday prices, fundamentals, dividends and splits, filings, news, options and macro series on 60 exchanges, over REST and a hosted MCP server.",
      "url": "https://www.anchorterminal.com/tools/eodhd",
      "markdownUrl": "https://www.anchorterminal.com/tools/eodhd.md",
      "slimMarkdownUrl": "https://www.anchorterminal.com/tools/eodhd.min.md",
      "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/eodhd.json",
      "dns": "eodhd.grade.anchorterminal.com",
      "repo": "https://github.com/EodHistoricalData/EODHD-MCP-Server",
      "transports": [
        "http",
        "streamable-http",
        "sse",
        "stdio",
        "websocket"
      ],
      "remoteUrl": "https://eodhd.com/api",
      "packages": [
        {
          "registry": "pypi",
          "name": "eodhd"
        },
        {
          "registry": "npm",
          "name": "eodhd"
        }
      ],
      "auth": "mixed",
      "authNotes": "One API token per account from the dashboard after a browser signup, sent as `api_token=` in the query string (the form every docs page shows) or, per llms.txt, as an `Authorization: Bearer` header. A `demo` token reaches a short list of symbols. The hosted MCP server has two editions, v1 at mcp.eodhd.com/v1/mcp with the key in the URL and v2 at mcp.eodhd.com/v2/mcp with a built-in OAuth 2.1 server and one scope, `full-access`. No key scopes, expiry or rotation guidance found.",
      "pricing": "freemium",
      "pricingNotes": "Free plan at 20 API calls a day with one year of end-of-day history and 15 to 20 minute delayed quotes, no card. Personal plans $19.99 (end of day, All World), $29.99 (adds intraday, indicators, screener, WebSocket), $59.99 (fundamentals) and $99.99 a month (All-In-One), each 100,000 calls a day and 1,000 requests a minute, about a sixth less billed annually. Calls are weighted, 1 for end of day and live, 5 for intraday and news, 10 for fundamentals, 100 and more for bulk. Commercial plans $399 and $2,499 a month; marketplace add-ons from $9.99 a month (https://eodhd.com/pricing, checked 2026-11-03).",
      "priceSummary": "$19.99 / mo",
      "where": "both",
      "x402": {
        "level": "no",
        "evidence": "No x402, MPP or L402 in llms.txt, the OpenAPI repository, the pricing pages, the limits article or the MCP server source (checked 2026-11-03). A call without a token returns HTTP 401 with the plain text `Unauthenticated`; an exhausted daily allowance returns 402 with a support message.",
        "endpoints": []
      },
      "toolCount": 88,
      "popularity": {
        "githubStars": 24,
        "npmWeekly": null,
        "pypiWeekly": null,
        "asOf": "2026-11-03"
      },
      "docsUrl": "https://eodhd.com/financial-apis/",
      "llmsTxt": "https://eodhd.com/llms.txt",
      "openapi": "https://github.com/EodHistoricalData/EODHD-openapi",
      "capabilities": [
        "market.history",
        "market.prices",
        "market.fundamentals",
        "market.filings",
        "market.news",
        "market.indices",
        "market.crypto",
        "data.markets",
        "data.company"
      ],
      "tags": [
        "hosted",
        "freemium",
        "api-key",
        "oauth",
        "mcp",
        "remote-mcp",
        "openapi",
        "llms-txt",
        "no-card",
        "free-tier",
        "closed-source",
        "python",
        "typescript",
        "stocks",
        "forex",
        "crypto",
        "streaming",
        "eu",
        "personal-use"
      ],
      "lastRelease": "2026-10-15",
      "graded": true,
      "anchor": {
        "graded": true,
        "score": 59,
        "grade": "C",
        "agentReady": false,
        "rank": 651,
        "ranked": true,
        "rankOf": 1349,
        "categoryRank": 5,
        "methodology": "0.7",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 76,
          "maintenance": 82,
          "payments": 30,
          "reliability": 65,
          "schema": 70,
          "security": 39,
          "transparency": 52
        },
        "pending": [
          "performance",
          "tasks"
        ],
        "breakdown": [
          {
            "key": "reliability",
            "name": "Reliability",
            "weight": 16,
            "effectiveWeight": 20,
            "score": 65,
            "points": 13,
            "reason": "Read with the hosted lines. A public status page exists at uptime.eodhistoricaldata.com, an UptimeRobot page announced on the blog on 27 March 2020 (20), but its figures load by script and our reader got an error, so no incident history could be read (5). Limits are published with numbers, 20 calls a day free, 100,000 a day on paid plans, 1,000 requests a minute, with call weights per endpoint (15). 429 carries Retry-After, X-RateLimit headers report the ceiling, and 402 marks an exhausted allowance; reads only (15). The terms promise commercially reasonable efforts and no SLA, with SLAs sold by sales (0). The core API is generally available, with several newer APIs marked beta (10). 20 + 5 + 15 + 15 + 0 + 10 = 65.",
            "checked": "2026-11-03"
          },
          {
            "key": "performance",
            "name": "Performance",
            "weight": 10,
            "effectiveWeight": 0,
            "pending": true,
            "points": 0,
            "reason": "Pending. Latency is measured per call by our probes, which haven't run yet, so this run doesn't score it. Its weight is shared across the assessed categories until the first probe window closes."
          },
          {
            "key": "schema",
            "name": "Schema \u0026 documentation",
            "weight": 13,
            "effectiveWeight": 16.25,
            "score": 70,
            "points": 11.38,
            "reason": "An OpenAPI 3.1 document in a public repository covers 74 endpoints, last updated 18 February 2026, and the MCP server's 88 tools carry typed inputs and annotations in the source (22 of 25). llms.txt of 32 KB and an llms-full.txt, plus documentation resources inside the MCP server (10). Each API page states its purpose and plan, and tool titles name the dataset, with little on when not to use one (14 of 20). Parameters are documented with formats and the symbol convention is spelled out, but allowed values sit in prose (8 of 15). Examples on every API page and the demo token, with 401, 402, 403, 404, 422 and 429 documented in llms.txt and the limits article (11 of 15). Exchange Details v2 shipped in May 2026 with v1 kept, MCP has v1 and v2, and new APIs are announced on a dated blog, but there is no changelog page (5 of 15). 22 + 10 + 14 + 8 + 11 + 5 = 70.",
            "checked": "2026-11-03"
          },
          {
            "key": "ergonomics",
            "name": "Agent ergonomics",
            "weight": 13,
            "effectiveWeight": 16.25,
            "score": 76,
            "points": 12.35,
            "reason": "The REST API is the surface graded. `from`, `to`, `period`, `fmt`, `filter` on fundamentals and `limit` on news size responses, and the hosted MCP server lists 72 or 88 tools (15 of 25). `limit` and `offset` on news and the screener, date ranges on series, bulk per exchange (15 of 20). Error codes an agent can branch on, 402 and 403 with meanings, and the MCP server answers 403 with what the plan covers (15 of 20). Every REST call is a read; 85 of 88 MCP tools carry readOnlyHint true and the three Praams report tools are marked otherwise (16 of 20). Few required parameters and official Python and Node.js libraries, with R, C# and PHP clients (15). 15 + 15 + 15 + 16 + 15 = 76.",
            "checked": "2026-11-03"
          },
          {
            "key": "security",
            "name": "Security \u0026 auth",
            "weight": 14,
            "effectiveWeight": 17.5,
            "score": 39,
            "points": 6.83,
            "reason": "One token per account with no scopes, shown as `api_token=` in the query string on every docs page, with a Bearer header allowed per llms.txt; the MCP v1 address embeds the token and v2 uses OAuth 2.1 with one scope, full-access (20 less 10 for the query string, so 10). All REST calls read; three MCP report tools trigger provider-side report generation and email (14 of 20). News and sentiment are third-party text and no guidance was found (5 of 15). A usage endpoint and dashboard show calls spent, not a per-call log (6 of 15). No security.txt, disclosure policy, bug bounty or certification found; the MCP server's CI runs Bandit, Semgrep and pip-audit (4 of 20). 10 + 14 + 5 + 6 + 4 = 39.",
            "checked": "2026-11-03"
          },
          {
            "key": "payments",
            "name": "Payments \u0026 pricing",
            "weight": 10,
            "effectiveWeight": 12.5,
            "score": 30,
            "points": 3.75,
            "reason": "No x402, MPP or L402 (0). Plan prices are public without login, personal and commercial, sold by the month with daily call allowances and per-endpoint call weights rather than per call (10). A free plan at 20 calls a day with no card (20). The token comes from a browser signup and no key API was found (0). 0 + 10 + 20 + 0 = 30.",
            "checked": "2026-11-03"
          },
          {
            "key": "tasks",
            "name": "Task success",
            "weight": 10,
            "effectiveWeight": 0,
            "pending": true,
            "points": 0,
            "reason": "Pending. Task success needs the category task suites run through each tool, which haven't run yet, so this run doesn't score it. Its weight is shared across the assessed categories until then. A data provider's data-quality score is published on its listing now and becomes half of this category when it's scored."
          },
          {
            "key": "maintenance",
            "name": "Maintenance \u0026 community",
            "weight": 7,
            "effectiveWeight": 8.75,
            "score": 82,
            "points": 7.18,
            "reason": "Read as a closed service with open-source tooling. The MCP server's last commit is 15 October 2026 and the Claude skills repository was updated 22 October (30). Dated changes in the last 90 days include MCP commits on 8, 9 and 17 September and 9, 10 and 15 October, and the real-time feed update of 26 August 2026 (20). Pull requests on the MCP repository are merged by the vendor, support is 24/7 by email and chat per the site, and forum.eodhd.com did not resolve for us (12 of 15). Official Python and Node.js libraries; the Python package's last PyPI release is 1.0.32 of 18 December 2024, though its repository was updated in October 2026 (12 of 15). The MCP server pins fastmcp, ships tests and a security toolchain in CI (8 of 10). 30 + 20 + 12 + 12 + 8 = 82.",
            "checked": "2026-11-03"
          },
          {
            "key": "transparency",
            "name": "Transparency \u0026 trust",
            "weight": 7,
            "effectiveWeight": 8.75,
            "score": 52,
            "points": 4.55,
            "note": "editorial 30, provenance 74",
            "reason": "A closed, proprietary API under terms that name the entity and the personal and professional user classes but carry no date and no governing law; the MCP server and OpenAPI document are MIT (15 of 30). The privacy policy is undated, keeps data while the account is active with no periods, names Google only, and no DPA was found; the MCP server's telemetry is disclosed in its README (8 of 30). No deprecation policy; Exchange Details v1 was kept when v2 shipped, and new APIs are dated on the blog (5 of 20). No subprocessor list or data locations beyond Google as an advertising platform (2 of 20). 15 + 8 + 5 + 2 = 30.",
            "checked": "2026-11-03"
          }
        ],
        "assessment": {
          "date": "2026-11-03",
          "basis": "public evidence",
          "confidence": "medium",
          "notes": {
            "ergonomics": "The REST API is the surface graded. `from`, `to`, `period`, `fmt`, `filter` on fundamentals and `limit` on news size responses, and the hosted MCP server lists 72 or 88 tools (15 of 25). `limit` and `offset` on news and the screener, date ranges on series, bulk per exchange (15 of 20). Error codes an agent can branch on, 402 and 403 with meanings, and the MCP server answers 403 with what the plan covers (15 of 20). Every REST call is a read; 85 of 88 MCP tools carry readOnlyHint true and the three Praams report tools are marked otherwise (16 of 20). Few required parameters and official Python and Node.js libraries, with R, C# and PHP clients (15). 15 + 15 + 15 + 16 + 15 = 76.",
            "maintenance": "Read as a closed service with open-source tooling. The MCP server's last commit is 15 October 2026 and the Claude skills repository was updated 22 October (30). Dated changes in the last 90 days include MCP commits on 8, 9 and 17 September and 9, 10 and 15 October, and the real-time feed update of 26 August 2026 (20). Pull requests on the MCP repository are merged by the vendor, support is 24/7 by email and chat per the site, and forum.eodhd.com did not resolve for us (12 of 15). Official Python and Node.js libraries; the Python package's last PyPI release is 1.0.32 of 18 December 2024, though its repository was updated in October 2026 (12 of 15). The MCP server pins fastmcp, ships tests and a security toolchain in CI (8 of 10). 30 + 20 + 12 + 12 + 8 = 82.",
            "payments": "No x402, MPP or L402 (0). Plan prices are public without login, personal and commercial, sold by the month with daily call allowances and per-endpoint call weights rather than per call (10). A free plan at 20 calls a day with no card (20). The token comes from a browser signup and no key API was found (0). 0 + 10 + 20 + 0 = 30.",
            "reliability": "Read with the hosted lines. A public status page exists at uptime.eodhistoricaldata.com, an UptimeRobot page announced on the blog on 27 March 2020 (20), but its figures load by script and our reader got an error, so no incident history could be read (5). Limits are published with numbers, 20 calls a day free, 100,000 a day on paid plans, 1,000 requests a minute, with call weights per endpoint (15). 429 carries Retry-After, X-RateLimit headers report the ceiling, and 402 marks an exhausted allowance; reads only (15). The terms promise commercially reasonable efforts and no SLA, with SLAs sold by sales (0). The core API is generally available, with several newer APIs marked beta (10). 20 + 5 + 15 + 15 + 0 + 10 = 65.",
            "schema": "An OpenAPI 3.1 document in a public repository covers 74 endpoints, last updated 18 February 2026, and the MCP server's 88 tools carry typed inputs and annotations in the source (22 of 25). llms.txt of 32 KB and an llms-full.txt, plus documentation resources inside the MCP server (10). Each API page states its purpose and plan, and tool titles name the dataset, with little on when not to use one (14 of 20). Parameters are documented with formats and the symbol convention is spelled out, but allowed values sit in prose (8 of 15). Examples on every API page and the demo token, with 401, 402, 403, 404, 422 and 429 documented in llms.txt and the limits article (11 of 15). Exchange Details v2 shipped in May 2026 with v1 kept, MCP has v1 and v2, and new APIs are announced on a dated blog, but there is no changelog page (5 of 15). 22 + 10 + 14 + 8 + 11 + 5 = 70.",
            "security": "One token per account with no scopes, shown as `api_token=` in the query string on every docs page, with a Bearer header allowed per llms.txt; the MCP v1 address embeds the token and v2 uses OAuth 2.1 with one scope, full-access (20 less 10 for the query string, so 10). All REST calls read; three MCP report tools trigger provider-side report generation and email (14 of 20). News and sentiment are third-party text and no guidance was found (5 of 15). A usage endpoint and dashboard show calls spent, not a per-call log (6 of 15). No security.txt, disclosure policy, bug bounty or certification found; the MCP server's CI runs Bandit, Semgrep and pip-audit (4 of 20). 10 + 14 + 5 + 6 + 4 = 39.",
            "transparency": "A closed, proprietary API under terms that name the entity and the personal and professional user classes but carry no date and no governing law; the MCP server and OpenAPI document are MIT (15 of 30). The privacy policy is undated, keeps data while the account is active with no periods, names Google only, and no DPA was found; the MCP server's telemetry is disclosed in its README (8 of 30). No deprecation policy; Exchange Details v1 was kept when v2 shipped, and new APIs are dated on the blog (5 of 20). No subprocessor list or data locations beyond Google as an advertising platform (2 of 20). 15 + 8 + 5 + 2 = 30."
          },
          "sources": [
            {
              "what": "API index page",
              "url": "https://eodhd.com/financial-apis/",
              "seen": "2026-11-03"
            },
            {
              "what": "llms.txt",
              "url": "https://eodhd.com/llms.txt",
              "seen": "2026-11-03"
            },
            {
              "what": "limits article (WordPress JSON of post 486, modified 16 September 2026)",
              "url": "https://eodhd.com/financial-apis/api-limits",
              "seen": "2026-11-03"
            },
            {
              "what": "pricing",
              "url": "https://eodhd.com/pricing",
              "seen": "2026-11-03"
            },
            {
              "what": "commercial pricing",
              "url": "https://eodhd.com/commercial-pricing",
              "seen": "2026-11-03"
            },
            {
              "what": "commercial versus personal licence",
              "url": "https://eodhd.com/financial-apis/commercial-vs-personal-license-use",
              "seen": "2026-11-03"
            },
            {
              "what": "MCP server page",
              "url": "https://eodhd.com/financial-apis/mcp-server-for-financial-data-by-eodhd",
              "seen": "2026-11-03"
            },
            {
              "what": "MCP server repository, shallow clone",
              "url": "https://github.com/EodHistoricalData/EODHD-MCP-Server",
              "seen": "2026-11-03"
            },
            {
              "what": "OpenAPI repository",
              "url": "https://github.com/EodHistoricalData/EODHD-openapi",
              "seen": "2026-11-03"
            },
            {
              "what": "OpenAPI document",
              "url": "https://raw.githubusercontent.com/EodHistoricalData/EODHD-openapi/main/openapi.yaml",
              "seen": "2026-11-03"
            },
            {
              "what": "GitHub organisation",
              "url": "https://github.com/EodHistoricalData",
              "seen": "2026-11-03"
            },
            {
              "what": "PyPI eodhd 1.0.32",
              "url": "https://pypi.org/project/eodhd/",
              "seen": "2026-11-03"
            },
            {
              "what": "terms and conditions",
              "url": "https://eodhd.com/financial-apis/terms-conditions",
              "seen": "2026-11-03"
            },
            {
              "what": "privacy policy",
              "url": "https://eodhd.com/financial-apis/privacy-policy",
              "seen": "2026-11-03"
            },
            {
              "what": "about page",
              "url": "https://eodhd.com/about",
              "seen": "2026-11-03"
            },
            {
              "what": "blog index (new APIs, dated)",
              "url": "https://eodhd.com/blog/",
              "seen": "2026-11-03"
            },
            {
              "what": "uptime monitoring post (27 March 2020)",
              "url": "https://eodhd.com/blog/api-uptime-monitoring/",
              "seen": "2026-11-03"
            },
            {
              "what": "status page (data did not load)",
              "url": "https://uptime.eodhistoricaldata.com/",
              "seen": "2026-11-03"
            },
            {
              "what": "MCP v2 endpoint without a token, 401",
              "url": "https://mcp.eodhd.com/v2/mcp",
              "seen": "2026-11-03"
            },
            {
              "what": "EOD endpoint without a token, 401",
              "url": "https://eodhd.com/api/eod/AAPL.US?fmt=json",
              "seen": "2026-11-03"
            },
            {
              "what": "robots.txt",
              "url": "https://eodhd.com/robots.txt",
              "seen": "2026-11-03"
            },
            {
              "what": "security.txt (404)",
              "url": "https://eodhd.com/.well-known/security.txt",
              "seen": "2026-11-03"
            },
            {
              "what": "RDAP for eodhd.com",
              "url": "https://rdap.org/domain/eodhd.com",
              "seen": "2026-11-03"
            }
          ],
          "openQuestions": [
            "unchecked: the status page's uptime figures and incident history, because uptime.eodhistoricaldata.com loads them by script and answered our reader with an error; status.eodhd.com has no DNS record",
            "unchecked: the hosted MCP servers' live tool lists and whether they run the public repository's code; the page says 72 tools, the source at 15 October 2026 registers 88, and an EODHD-MCP-Server-v2 repository named on the page returns 404",
            "unchecked: llms-full.txt, which llms.txt names as the full reference for agents",
            "unchecked: forum.eodhd.com, which did not resolve on 3 November 2026",
            "Whether the hosted MCP editions set the telemetry variables the README documents, and what the collector keeps; the September 2026 commits say the server reports the instrument, client name and status per call",
            "The dates of the terms and privacy policy, which carry none, and the governing law, which is not stated",
            "The price of extra API calls, which the limits article says is shown in the dashboard",
            "firstReleased is left empty. The about page says active since 2017 and work began in April 2015; the eodhd.com domain dates from 11 November 2021 and the older eodhistoricaldata.com domain was not looked up",
            "No founder or named person was found on eodhd.com or in the French registry search, so the humans file lists none"
          ]
        },
        "negative": 0,
        "verdict": "Limits, call weights, rate-limit headers, 429 with Retry-After and 402 on an exhausted allowance are documented, with an OpenAPI document and an open-source MCP server of 88 read-only tools. The token is documented in the query string, the MCP v1 address embeds it, the status page could not be read, and the terms carry no date, SLA or governing law.",
        "bestFor": "Agents that need long end-of-day history, dividends and splits and fundamentals across 60 exchanges at a low monthly price, with weighted calls to budget.",
        "strengths": [
          "Rate limits, per-endpoint call weights, `X-RateLimit` headers, 429 with Retry-After and a 402 for the daily allowance are documented in one article updated 16 September 2026",
          "OpenAPI 3.1 for 74 endpoints and an MIT MCP server with 88 annotated tools, prompts and documentation resources, both open source",
          "llms.txt of 32 KB with authentication, symbol formats, limits, error codes, plans and the MCP addresses",
          "Free plan at 20 calls a day with no card, and personal plan prices from $19.99 a month published without login",
          "Official Python and Node.js libraries, with R, C#, PHP and other clients in the GitHub organisation"
        ],
        "weaknesses": [
          "Every docs page shows the token as `api_token=` in the query string, and the MCP v1 address carries it in the URL",
          "The status page's figures did not load for our reader, and the terms promise only commercially reasonable efforts with no SLA",
          "Failed lookups such as a 404 for an unknown ticker still spend calls, and fundamentals cost 10 calls each",
          "Terms and privacy policy carry no date, no governing law, no retention periods and no subprocessor list beyond Google",
          "The vendor's MCP page says 72 tools while the source registers 88, and the hosted editions' telemetry settings are not published"
        ],
        "agentNotes": [
          "Send the token as `Authorization: Bearer`, which llms.txt allows, rather than `api_token=` in the URL, and prefer the v2 OAuth MCP address over v1",
          "Budget calls, not requests; fundamentals cost 10, intraday and news 5, bulk 100 or more, and a 404 for a bad ticker is still charged, so resolve tickers with the search endpoint first",
          "Read `X-RateLimit-Remaining` and honour Retry-After on 429; a 402 means the daily allowance is gone until midnight GMT and no retry will help",
          "Use `{TICKER}.{EXCHANGE}` symbols in upper case, such as AAPL.US or EURUSD.FOREX, and `BTC-USD.CC` for crypto",
          "Expect 20 calls a day and one year of history on the free plan; a 403 means the plan lacks the endpoint, not a bad key"
        ],
        "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": 59
          }
        ],
        "editorialScores": {
          "ergonomics": 76,
          "maintenance": 82,
          "payments": 30,
          "reliability": 65,
          "schema": 70,
          "security": 39,
          "transparency": 30
        },
        "provenanceScore": 74,
        "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
        },
        "scoreHistory": [
          {
            "date": "2026-11-03",
            "grade": "C",
            "kind": "listed",
            "method": "0.7",
            "score": 59
          }
        ]
      },
      "connect": {
        "install": "pip install eodhd",
        "http": "curl -H \"Authorization: Bearer $EODHD_API_TOKEN\" \"https://eodhd.com/api/eod/AAPL.US?fmt=json\u0026from=2025-11-03\"",
        "config": {
          "mcpServers": {
            "eodhd": {
              "url": "https://mcp.eodhd.com/v2/mcp"
            }
          }
        }
      },
      "letme": {
        "capability": "https://letme.dev/market.history",
        "tool": "https://letme.dev/eodhd"
      },
      "notable": [
        "The limits article, updated 16 September 2026, gives 20 calls a day free, 100,000 a day on every paid plan, 1,000 requests a minute, call weights per endpoint, `X-RateLimit-Limit` and `X-RateLimit-Remaining` headers, 429 with Retry-After, 402 when the daily allowance is gone, and says refused and failed lookups are still charged (https://eodhd.com/financial-apis/api-limits)",
        "An OpenAPI 3.1 document in the EODHD-openapi repository (MIT, spec version 2.0.0, last updated 18 February 2026) covers 74 endpoints with the `api_token` query parameter as its only security scheme (https://github.com/EodHistoricalData/EODHD-openapi)",
        "The open-source MCP server (MIT, version 2.3.2, last commit 15 October 2026) registers 88 tools, 85 with readOnlyHint true and three Praams report tools marked not read-only because they trigger report generation and email delivery; the vendor's MCP page still says 72 tools (https://github.com/EodHistoricalData/EODHD-MCP-Server)",
        "The MCP server's README documents usage telemetry sent to a collector when two environment variables are set, and a September 2026 commit says it reports what request logs cannot see; the hosted editions' settings are not published (https://github.com/EodHistoricalData/EODHD-MCP-Server)",
        "The terms say non-professional users may store and analyse data for private use but not redistribute or display it, that payments are non-refundable, and that availability is a commercially reasonable effort with no SLA; they carry no date and no governing law (https://eodhd.com/financial-apis/terms-conditions)",
        "A status page at uptime.eodhistoricaldata.com, announced in a blog post of 27 March 2020, loads its figures by script and answered our reader with an error (https://uptime.eodhistoricaldata.com/)",
        "The blog announced new APIs for sanctions and interest rates (11 June 2026), credit risk (1 July), congressional trades (16 July), real estate (17 July), SEC filings (7 August) and a real-time feed update with European trades and quotes (26 August 2026) (https://eodhd.com/blog/)"
      ],
      "area": "domain-data",
      "details": [
        {
          "label": "Surface listed",
          "value": "The REST API at eodhd.com/api and the hosted MCP server at mcp.eodhd.com (v1 and v2), read from eodhd.com's API pages, llms.txt, the limits article, pricing and commercial pricing, the MCP page, the terms, privacy policy and about page, the blog, the OpenAPI repository and a shallow clone of EODHD-MCP-Server on 3 November 2026. No account was made and no tool was called"
        },
        {
          "label": "API",
          "value": "The site lists 45 APIs in four groups, market data, fundamentals and economics, exchanges and instruments, alternative data. The OpenAPI document covers 74 endpoints and the MCP server 88 tools, including marketplace data from Praams, Investverte and TradingHours. Several APIs are marked beta (SEC filings, congressional trades, sanctions, commodities, real estate)"
        },
        {
          "label": "Coverage",
          "value": "The vendor says 150,000 tickers on 60 exchanges, 20,000 ETFs, 68,000 mutual funds, 600 indices, 1,100 forex pairs and 2,000 cryptocurrencies, with 30 years of history. Live quotes are delayed 15 to 20 minutes; a WebSocket streams US and European stocks, forex and crypto. The site says prices come from 100 sources and not exchange feeds"
        },
        {
          "label": "Rate limits",
          "value": "20 calls a day free, 100,000 a day on paid plans, 1,000 requests a minute, call weights 1, 5, 10 and 100 by endpoint, headers X-RateLimit-Limit and X-RateLimit-Remaining, 429 with Retry-After, 402 when the daily allowance is spent, reset at midnight GMT"
        },
        {
          "label": "MCP server",
          "value": "v1 at mcp.eodhd.com/v1/mcp?apikey=KEY and v2 at mcp.eodhd.com/v2/mcp with OAuth 2.1 (an unauthenticated GET answers 401 with resource metadata and scope full-access). Source in EODHD-MCP-Server (MIT, 2.3.2) over streamable HTTP, SSE and stdio, 88 tools, 3 prompts, documentation resources read without spending calls. A Claude Code plugin with skills is in eodhd-claude-skills"
        },
        {
          "label": "Response size",
          "value": "`from` and `to` on series, `period` for daily, weekly or monthly bars, `fmt=json` or csv, `filter` on fundamentals, `limit` and `offset` on news, bulk endpoints per exchange"
        },
        {
          "label": "Errors",
          "value": "401 plain text without a token, 402 daily allowance spent, 403 plan lacks the endpoint, 404 unknown symbol as JSON, 422 bad parameter, 429 rate limit. The MCP server passes upstream errors through as tool errors with a plan hint on 403"
        },
        {
          "label": "SDKs",
          "value": "Official eodhd on PyPI (1.0.32, 18 December 2024, MIT) and npm, with R, C#, .NET, PHP, Java and MATLAB clients, Excel and Google Sheets add-ins, a Power BI connector and a Postman collection"
        },
        {
          "label": "Use terms",
          "value": "Personal plans are for non-professional, private use with no redistribution or display; commercial use needs a quote and is reported to the exchanges. Internal use at $399 a month, enterprise at $2,499. Payments are non-refundable; one-month minimum"
        },
        {
          "label": "Legal entity",
          "value": "Unicorn Data Services, 835 149 998 R.C.S. Lyon, LE FORUM, 27 rue Maurice Flandin, 69003 Lyon, France, in the site footer, the about page and the terms. Active since 2017 under the EOD Historical Data name; the eodhd.com domain dates from 11 November 2021"
        }
      ],
      "unitPrices": [
        {
          "item": "All World, end of day",
          "unit": "month",
          "usd": 19.99,
          "note": "personal use, 100,000 calls a day, $199 a year"
        },
        {
          "item": "All World Extended, with intraday",
          "unit": "month",
          "usd": 29.99,
          "note": "personal use, $299.90 a year"
        },
        {
          "item": "Fundamentals Data Feed",
          "unit": "month",
          "usd": 59.99,
          "note": "personal use, $599.90 a year"
        },
        {
          "item": "All-In-One",
          "unit": "month",
          "usd": 99.99,
          "note": "personal use, $999.90 a year"
        },
        {
          "item": "Commercial internal use",
          "unit": "month",
          "usd": 399,
          "note": "one seat, 100,000 calls a day, $3,990 a year"
        },
        {
          "item": "Commercial enterprise",
          "unit": "month",
          "usd": 2499,
          "note": "five seats, unlimited calls, $24,990 a year"
        }
      ],
      "provenance": {
        "legalEntity": "Unicorn Data Services",
        "domain": "eodhd.com",
        "domainRegistered": "2021-11-11",
        "endpointOnVendorDomain": true,
        "terms": "https://eodhd.com/financial-apis/terms-conditions",
        "privacy": "https://eodhd.com/financial-apis/privacy-policy",
        "statusPage": "https://uptime.eodhistoricaldata.com/",
        "changelog": "https://eodhd.com/blog/",
        "securityTxt": "none",
        "checked": "2026-11-03",
        "notes": [
          "Unicorn Data Services, 835 149 998 R.C.S. Lyon, is named in the footer of every page, on the about page and in the terms, with the Lyon address. The terms carry no date and no governing law clause.",
          "The terms contain no clause on automated access to the website; they forbid sharing account access and redistributing data on non-professional plans. The privacy policy is undated and names Google as the only third party.",
          "eodhd.com/robots.txt disallows /api/ (the API itself), /login, /register and a promotional path; the docs, pricing, legal and blog pages are allowed.",
          "RDAP gives eodhd.com a registration date of 11 November 2021 at GoDaddy; the company traded as eodhistoricaldata.com from 2017 and that domain still answers the API.",
          "/.well-known/security.txt and /security.txt return 404 on eodhd.com.",
          "The status page at uptime.eodhistoricaldata.com is an UptimeRobot page announced on the blog on 27 March 2020; it is not linked from the pages we read and its data did not load for our reader. status.eodhd.com has no DNS record.",
          "No changelog page was found; the blog announces new APIs with dates and the MCP server's commit history is dated."
        ],
        "score": 74,
        "checks": [
          {
            "check": "Legal entity named",
            "value": "Unicorn Data Services",
            "points": 20,
            "max": 20,
            "state": "ok"
          },
          {
            "check": "Domain age",
            "value": "eodhd.com, registered 2021-11-11 (4 years)",
            "points": 7,
            "max": 15,
            "state": "part"
          },
          {
            "check": "Endpoint on the vendor's domain",
            "value": "eodhd.com",
            "points": 15,
            "max": 15,
            "state": "ok"
          },
          {
            "check": "Terms of service",
            "value": "read, states 1 of the 7 things a reader expects",
            "points": 4.9,
            "max": 10,
            "state": "part"
          },
          {
            "check": "Privacy policy",
            "value": "read, states 3 of the 8 things a reader expects",
            "points": 6.3,
            "max": 10,
            "state": "part"
          },
          {
            "check": "Status page",
            "value": "uptime.eodhistoricaldata.com",
            "points": 10,
            "max": 10,
            "state": "ok"
          },
          {
            "check": "Changelog",
            "value": "published",
            "points": 10,
            "max": 10,
            "state": "ok"
          },
          {
            "check": "security.txt",
            "value": "not found",
            "points": 0,
            "max": 10,
            "state": "no"
          },
          {
            "check": "People named",
            "value": "not researched yet",
            "points": 0,
            "max": 0,
            "state": "na"
          },
          {
            "check": "Support route",
            "value": "a support address, help pages, a community",
            "points": 5,
            "max": 5,
            "state": "ok"
          }
        ],
        "policies": [
          {
            "kind": "terms",
            "url": "https://eodhd.com/financial-apis/terms-conditions",
            "state": "read",
            "readAt": "2026-11-03",
            "words": 2317,
            "points": 4.9,
            "max": 10,
            "expected": [
              {
                "key": "terms.date",
                "label": "Gives the date it was last updated",
                "found": false
              },
              {
                "key": "terms.law",
                "label": "Names the governing law or courts",
                "found": false
              },
              {
                "key": "terms.liability",
                "label": "States a limit on its liability",
                "found": false
              },
              {
                "key": "terms.termination",
                "label": "Says how the agreement or account can be ended",
                "found": true,
                "quote": "Without prejudice to any other rights, EOD Historical Data may without notice terminate its contract with the User immediately if the User fails to comply with any of these terms and conditions, or if EOD Historical Data ceases to supply any Services."
              },
              {
                "key": "terms.changes",
                "label": "Says how changes to the terms are announced",
                "found": false
              },
              {
                "key": "terms.use",
                "label": "Lists what users may not do",
                "found": false
              },
              {
                "key": "terms.sla",
                "label": "Refers to a service level or uptime commitment",
                "found": false
              }
            ],
            "toKnow": [
              {
                "key": "terms.cutoff",
                "label": "Says access can be ended without notice or for any reason",
                "found": true,
                "quote": "Without prejudice to any other rights, EOD Historical Data may without notice terminate its contract with the User immediately if the User fails to comply with any of these terms and conditions, or if EOD Historical Data ceases to supply any Services."
              }
            ],
            "notes": [
              {
                "date": "2026-11-03",
                "text": "Liability to the user is excluded in full to the extent the law allows, and any claim must be served within one year of the cause of action.",
                "quote": "To the maximum extent permitted by law, EOD Historical Data excludes all and any liability to the User arising out of the contract between EOD Historical Data and the User."
              },
              {
                "date": "2026-11-03",
                "text": "All subscription payments are final and non-refundable whatever the reason for cancellation.",
                "quote": "All subscription payments made to EOD Historical Data are final and non-refundable."
              },
              {
                "date": "2026-11-03",
                "text": "Personal plans forbid displaying, redistributing or granting access to the data in original or repackaged form.",
                "quote": "Selling, reselling, retransmitting, redistributing, displaying, or granting access to the Information or Services, whether in its original or repackaged form."
              }
            ]
          },
          {
            "kind": "privacy",
            "url": "https://eodhd.com/financial-apis/privacy-policy",
            "state": "read",
            "readAt": "2026-11-03",
            "words": 2367,
            "points": 6.3,
            "max": 10,
            "expected": [
              {
                "key": "privacy.date",
                "label": "Gives the date it was last updated",
                "found": false
              },
              {
                "key": "privacy.collected",
                "label": "Says what personal data is collected",
                "found": false
              },
              {
                "key": "privacy.retention",
                "label": "Says how long data is kept",
                "found": false
              },
              {
                "key": "privacy.processors",
                "label": "Says who else receives the data",
                "found": true,
                "quote": "We may share customer contact information – such as email addresses and/or phone numbers – with third-party advertising platforms, including Google, so that they can provide advertising services on our behalf, such as building and maintaining custom audiences, suppression or exclusion lists, and remarketing or similar…"
              },
              {
                "key": "privacy.sale",
                "label": "Says whether personal data is sold or shared for advertising",
                "found": true,
                "quote": "EOD Historical Data does not rent, sell, or share personal information about you with other people or non-affiliated companies except to provide products or services you’ve requested, when we have your permission, or under the following circumstances:",
                "says": "Says it does not sell personal data"
              },
              {
                "key": "privacy.rights",
                "label": "Says what rights people have over their data",
                "found": true,
                "quote": "For users located in the European Union / EEA, we carry out this processing only where we have a lawful basis to do so – including your consent where required – in accordance with the GDPR and Google’s EU User Consent Policy."
              },
              {
                "key": "privacy.contact",
                "label": "Gives a privacy contact",
                "found": false
              },
              {
                "key": "privacy.transfers",
                "label": "Says where data is transferred or stored",
                "found": false
              }
            ],
            "toKnow": [
              {
                "key": "privacy.sells",
                "label": "Says it sells personal data or shares it for advertising",
                "found": true,
                "quote": "We may share customer contact information – such as email addresses and/or phone numbers – with third-party advertising platforms, including Google, so that they can provide advertising services on our behalf, such as building and maintaining custom audiences,"
              }
            ]
          }
        ]
      },
      "humans": {
        "slug": "eodhd",
        "checked": "2026-11-03",
        "company": "Unicorn Data Services",
        "peopleNote": "No founder or named person was found on a first-hand page. The about page describes a globally distributed team headquartered in Lyon, active since 2017, with no names; the terms, privacy policy and every footer name only Unicorn Data Services, 835 149 998 R.C.S. Lyon; the MCP server's licence names Alex Chernyshev as copyright holder without a role, so he is not listed. Investors were looked for on the about page, the pricing and commercial pages, the blog index, the terms and the GitHub organisation, and in two searches including the French company number; nothing first-hand mentions funding or backers.",
        "companySocial": {
          "linkedin": "https://www.linkedin.com/company/unicorn-data-services",
          "x": "https://x.com/eodhd_apis",
          "github": "https://github.com/EodHistoricalData"
        },
        "support": {
          "emails": [
            "support@eodhistoricaldata.com"
          ],
          "urls": [
            "https://eodhd.com/financial-apis/",
            "https://eodhd.com/financial-apis/api-limits"
          ],
          "community": [
            {
              "label": "MCP server issues",
              "url": "https://github.com/EodHistoricalData/EODHD-MCP-Server/issues",
              "kind": "github"
            }
          ],
          "contactEmails": [
            "sales@eodhistoricaldata.com"
          ]
        },
        "sources": [
          "https://eodhd.com/about",
          "https://eodhd.com/financial-apis/",
          "https://eodhd.com/financial-apis/terms-conditions",
          "https://eodhd.com/financial-apis/privacy-policy",
          "https://eodhd.com/llms.txt",
          "https://github.com/EodHistoricalData",
          "https://github.com/EodHistoricalData/EODHD-MCP-Server"
        ],
        "ownership": {
          "status": "private",
          "checked": "2026-11-03",
          "sources": [
            "https://eodhd.com/about",
            "https://eodhd.com/financial-apis/terms-conditions"
          ]
        }
      },
      "pageJsonUrl": "https://www.anchorterminal.com/tools/eodhd.json",
      "live": {
        "slug": "eodhd",
        "probe": {
          "target": "https://eodhd.com/api",
          "method": "get",
          "lastAt": "2026-11-04T19:34:35.803777685Z",
          "lastOk": true,
          "lastStatus": 404,
          "lastMs": 648,
          "authRequired": false,
          "uptime24h": 100,
          "uptime30d": 100,
          "p50ms24h": 511,
          "p95ms24h": 788,
          "samples24h": 43,
          "samples30d": 43,
          "days": [
            {
              "date": "2026-11-04",
              "probes": 43,
              "ok": 43
            }
          ]
        },
        "vendorStatus": {
          "page": "https://uptime.eodhistoricaldata.com",
          "indicator": "unknown",
          "summary": "no machine-readable status found",
          "checkedAt": "2026-11-04T15:31:54.564968713Z"
        },
        "securityTxt": {
          "url": "https://eodhd.com/.well-known/security.txt",
          "state": "none",
          "checkedAt": "2026-11-04T15:54:36.573658014Z"
        },
        "updatedAt": "2026-11-04T19:34:35.803777685Z"
      }
    },
    "verify": {
      "accepts": "a page on eodhd.com or one of its subdomains, or the README at the root of github.com/EodHistoricalData/EODHD-MCP-Server",
      "badgeUrl": "https://www.anchorterminal.com/badges/eodhd.svg",
      "body": {
        "slug": "eodhd",
        "url": "the page with the badge or the link"
      },
      "docs": "https://www.anchorterminal.com/builders/#verify",
      "effect": "none, it never changes a grade, rank or review",
      "endpoint": "https://www.anchorterminal.com/api/v1/verify",
      "listingUrl": "https://www.anchorterminal.com/tools/eodhd",
      "mcpTool": "verify_listing",
      "recheck": "weekly; two failed checks in a row and it lapses, a later pass restores it",
      "snippets": {
        "html": "\u003ca href=\"https://www.anchorterminal.com/tools/eodhd\"\u003e\u003cimg src=\"https://www.anchorterminal.com/badges/eodhd.svg\" alt=\"EODHD on Anchor Terminal\" height=\"20\"\u003e\u003c/a\u003e",
        "markdown": "[![EODHD on Anchor Terminal](https://www.anchorterminal.com/badges/eodhd.svg)](https://www.anchorterminal.com/tools/eodhd)",
        "link": "\u003ca href=\"https://www.anchorterminal.com/tools/eodhd\"\u003eEODHD on Anchor Terminal\u003c/a\u003e"
      }
    }
  },
  "kind": "anchor.page",
  "links": {
    "api": "https://www.anchorterminal.com/api/v1/index.json",
    "html": "https://www.anchorterminal.com/tools/eodhd",
    "json": "https://www.anchorterminal.com/tools/eodhd.json",
    "llms": "https://www.anchorterminal.com/llms.txt",
    "markdown": "https://www.anchorterminal.com/tools/eodhd.md",
    "mcp": "https://www.anchorterminal.com/mcp",
    "pricing": "https://www.anchorterminal.com/tools/eodhd#pricing",
    "reviews": "https://www.anchorterminal.com/tools/eodhd#reviews",
    "slim": "https://www.anchorterminal.com/tools/eodhd.min.md"
  },
  "markdown": "## Overview\n\n**Grade C · 59/100 · rank #651 of 1349 · #5 in Financial market data · not agent-ready · confidence medium**\n\n\n## Assessment\n\nLimits, call weights, rate-limit headers, 429 with Retry-After and 402 on an exhausted allowance are documented, with an OpenAPI document and an open-source MCP server of 88 read-only tools. The token is documented in the query string, the MCP v1 address embeds it, the status page could not be read, and the terms carry no date, SLA or governing law.\n\n## Facts\n\n| Field | Value |\n| --- | --- |\n| Vendor | Unicorn Data Services (https://eodhd.com) |\n| Kind | HTTP API |\n| Category | Financial market data (https://www.anchorterminal.com/categories/market-data) |\n| Transport | HTTP, Streamable HTTP, SSE (legacy), stdio, websocket |\n| Endpoint | `https://eodhd.com/api` |\n| Auth | OAuth or key · One API token per account from the dashboard after a browser signup, sent as `api_token=` in the query string (the form every docs page shows) or, per llms.txt, as an `Authorization: Bearer` header. A `demo` token reaches a short list of symbols. The hosted MCP server has two editions, v1 at mcp.eodhd.com/v1/mcp with the key in the URL and v2 at mcp.eodhd.com/v2/mcp with a built-in OAuth 2.1 server and one scope, `full-access`. No key scopes, expiry or rotation guidance found. |\n| Pricing | Freemium ($19.99 / mo) · Free plan at 20 API calls a day with one year of end-of-day history and 15 to 20 minute delayed quotes, no card. Personal plans $19.99 (end of day, All World), $29.99 (adds intraday, indicators, screener, WebSocket), $59.99 (fundamentals) and $99.99 a month (All-In-One), each 100,000 calls a day and 1,000 requests a minute, about a sixth less billed annually. Calls are weighted, 1 for end of day and live, 5 for intraday and news, 10 for fundamentals, 100 and more for bulk. Commercial plans $399 and $2,499 a month; marketplace add-ons from $9.99 a month (https://eodhd.com/pricing, checked 2026-11-03). |\n| x402 | No · No x402, MPP or L402 in llms.txt, the OpenAPI repository, the pricing pages, the limits article or the MCP server source (checked 2026-11-03). A call without a token returns HTTP 401 with the plain text `Unauthenticated`; an exhausted daily allowance returns 402 with a support message. |\n| Licence | unknown |\n| Tools exposed | 88 |\n| Packages | pypi: `eodhd`; npm: `eodhd` |\n| Source | https://github.com/EodHistoricalData/EODHD-MCP-Server |\n| Docs | https://eodhd.com/financial-apis/ |\n| llms.txt | https://eodhd.com/llms.txt |\n| Last release | 2026-10-15 |\n| GitHub stars | 24 (as of 2026-11-03) |\n| Surface listed | The REST API at eodhd.com/api and the hosted MCP server at mcp.eodhd.com (v1 and v2), read from eodhd.com's API pages, llms.txt, the limits article, pricing and commercial pricing, the MCP page, the terms, privacy policy and about page, the blog, the OpenAPI repository and a shallow clone of EODHD-MCP-Server on 3 November 2026. No account was made and no tool was called |\n| API | The site lists 45 APIs in four groups, market data, fundamentals and economics, exchanges and instruments, alternative data. The OpenAPI document covers 74 endpoints and the MCP server 88 tools, including marketplace data from Praams, Investverte and TradingHours. Several APIs are marked beta (SEC filings, congressional trades, sanctions, commodities, real estate) |\n| Coverage | The vendor says 150,000 tickers on 60 exchanges, 20,000 ETFs, 68,000 mutual funds, 600 indices, 1,100 forex pairs and 2,000 cryptocurrencies, with 30 years of history. Live quotes are delayed 15 to 20 minutes; a WebSocket streams US and European stocks, forex and crypto. The site says prices come from 100 sources and not exchange feeds |\n| Rate limits | 20 calls a day free, 100,000 a day on paid plans, 1,000 requests a minute, call weights 1, 5, 10 and 100 by endpoint, headers X-RateLimit-Limit and X-RateLimit-Remaining, 429 with Retry-After, 402 when the daily allowance is spent, reset at midnight GMT |\n| MCP server | v1 at mcp.eodhd.com/v1/mcp?apikey=KEY and v2 at mcp.eodhd.com/v2/mcp with OAuth 2.1 (an unauthenticated GET answers 401 with resource metadata and scope full-access). Source in EODHD-MCP-Server (MIT, 2.3.2) over streamable HTTP, SSE and stdio, 88 tools, 3 prompts, documentation resources read without spending calls. A Claude Code plugin with skills is in eodhd-claude-skills |\n| Response size | `from` and `to` on series, `period` for daily, weekly or monthly bars, `fmt=json` or csv, `filter` on fundamentals, `limit` and `offset` on news, bulk endpoints per exchange |\n| Errors | 401 plain text without a token, 402 daily allowance spent, 403 plan lacks the endpoint, 404 unknown symbol as JSON, 422 bad parameter, 429 rate limit. The MCP server passes upstream errors through as tool errors with a plan hint on 403 |\n| SDKs | Official eodhd on PyPI (1.0.32, 18 December 2024, MIT) and npm, with R, C#, .NET, PHP, Java and MATLAB clients, Excel and Google Sheets add-ins, a Power BI connector and a Postman collection |\n| Use terms | Personal plans are for non-professional, private use with no redistribution or display; commercial use needs a quote and is reported to the exchanges. Internal use at $399 a month, enterprise at $2,499. Payments are non-refundable; one-month minimum |\n| Legal entity | Unicorn Data Services, 835 149 998 R.C.S. Lyon, LE FORUM, 27 rue Maurice Flandin, 69003 Lyon, France, in the site footer, the about page and the terms. Active since 2017 under the EOD Historical Data name; the eodhd.com domain dates from 11 November 2021 |\n| Capabilities | market.history, market.prices, market.fundamentals, market.filings, market.news, market.indices, market.crypto, data.markets, data.company |\n| Tags | hosted, freemium, api-key, oauth, mcp, remote-mcp, openapi, llms-txt, no-card, free-tier, closed-source, python, typescript, stocks, forex, crypto, streaming, eu, personal-use |\n| JSON | https://www.anchorterminal.com/api/v1/tools/eodhd.json |\n\n## Score breakdown (methodology v0.7, October 2026 research run)\n\nAssessed 2026-11-03 from public evidence against the published checklist (https://www.anchorterminal.com/benchmark/#checklist). Confidence: medium. Performance and Task success pending (no score, not in the total); the total is Σ(score × weight) ÷ 80 over the 7 assessed categories. \"This run\" is each category's share of the 100 points.\n\n| Category | Weight | This run | Score (0–100) | Points |\n| --- | --- | --- | --- | --- |\n| Reliability | 16% | 20 | 65 | 13.0 |\n| Performance | 10% | pending | pending | n/a |\n| Schema \u0026 documentation | 13% | 16.2 | 70 | 11.4 |\n| Agent ergonomics | 13% | 16.2 | 76 | 12.3 |\n| Security \u0026 auth | 14% | 17.5 | 39 | 6.8 |\n| Payments \u0026 pricing | 10% | 12.5 | 30 | 3.8 |\n| Task success | 10% | pending | pending | n/a |\n| Maintenance \u0026 community | 7% | 8.8 | 82 | 7.2 |\n| Transparency \u0026 trust (editorial 30, provenance 74) | 7% | 8.8 | 52 | 4.5 |\n| Negative events | up to −15 | up to −15 | none recorded | 0 |\n| **Total** | | | | **59 → C** |\n\n### Why each score\n\n- Reliability 65 (checked 2026-11-03): Read with the hosted lines. A public status page exists at uptime.eodhistoricaldata.com, an UptimeRobot page announced on the blog on 27 March 2020 (20), but its figures load by script and our reader got an error, so no incident history could be read (5). Limits are published with numbers, 20 calls a day free, 100,000 a day on paid plans, 1,000 requests a minute, with call weights per endpoint (15). 429 carries Retry-After, X-RateLimit headers report the ceiling, and 402 marks an exhausted allowance; reads only (15). The terms promise commercially reasonable efforts and no SLA, with SLAs sold by sales (0). The core API is generally available, with several newer APIs marked beta (10). 20 + 5 + 15 + 15 + 0 + 10 = 65.\n- Performance: Pending. Latency is measured per call by our probes, which haven't run yet, so this run doesn't score it. Its weight is shared across the assessed categories until the first probe window closes.\n- Schema \u0026 documentation 70 (checked 2026-11-03): An OpenAPI 3.1 document in a public repository covers 74 endpoints, last updated 18 February 2026, and the MCP server's 88 tools carry typed inputs and annotations in the source (22 of 25). llms.txt of 32 KB and an llms-full.txt, plus documentation resources inside the MCP server (10). Each API page states its purpose and plan, and tool titles name the dataset, with little on when not to use one (14 of 20). Parameters are documented with formats and the symbol convention is spelled out, but allowed values sit in prose (8 of 15). Examples on every API page and the demo token, with 401, 402, 403, 404, 422 and 429 documented in llms.txt and the limits article (11 of 15). Exchange Details v2 shipped in May 2026 with v1 kept, MCP has v1 and v2, and new APIs are announced on a dated blog, but there is no changelog page (5 of 15). 22 + 10 + 14 + 8 + 11 + 5 = 70.\n- Agent ergonomics 76 (checked 2026-11-03): The REST API is the surface graded. `from`, `to`, `period`, `fmt`, `filter` on fundamentals and `limit` on news size responses, and the hosted MCP server lists 72 or 88 tools (15 of 25). `limit` and `offset` on news and the screener, date ranges on series, bulk per exchange (15 of 20). Error codes an agent can branch on, 402 and 403 with meanings, and the MCP server answers 403 with what the plan covers (15 of 20). Every REST call is a read; 85 of 88 MCP tools carry readOnlyHint true and the three Praams report tools are marked otherwise (16 of 20). Few required parameters and official Python and Node.js libraries, with R, C# and PHP clients (15). 15 + 15 + 15 + 16 + 15 = 76.\n- Security \u0026 auth 39 (checked 2026-11-03): One token per account with no scopes, shown as `api_token=` in the query string on every docs page, with a Bearer header allowed per llms.txt; the MCP v1 address embeds the token and v2 uses OAuth 2.1 with one scope, full-access (20 less 10 for the query string, so 10). All REST calls read; three MCP report tools trigger provider-side report generation and email (14 of 20). News and sentiment are third-party text and no guidance was found (5 of 15). A usage endpoint and dashboard show calls spent, not a per-call log (6 of 15). No security.txt, disclosure policy, bug bounty or certification found; the MCP server's CI runs Bandit, Semgrep and pip-audit (4 of 20). 10 + 14 + 5 + 6 + 4 = 39.\n- Payments \u0026 pricing 30 (checked 2026-11-03): No x402, MPP or L402 (0). Plan prices are public without login, personal and commercial, sold by the month with daily call allowances and per-endpoint call weights rather than per call (10). A free plan at 20 calls a day with no card (20). The token comes from a browser signup and no key API was found (0). 0 + 10 + 20 + 0 = 30.\n- Task success: Pending. Task success needs the category task suites run through each tool, which haven't run yet, so this run doesn't score it. Its weight is shared across the assessed categories until then. A data provider's data-quality score is published on its listing now and becomes half of this category when it's scored.\n- Maintenance \u0026 community 82 (checked 2026-11-03): Read as a closed service with open-source tooling. The MCP server's last commit is 15 October 2026 and the Claude skills repository was updated 22 October (30). Dated changes in the last 90 days include MCP commits on 8, 9 and 17 September and 9, 10 and 15 October, and the real-time feed update of 26 August 2026 (20). Pull requests on the MCP repository are merged by the vendor, support is 24/7 by email and chat per the site, and forum.eodhd.com did not resolve for us (12 of 15). Official Python and Node.js libraries; the Python package's last PyPI release is 1.0.32 of 18 December 2024, though its repository was updated in October 2026 (12 of 15). The MCP server pins fastmcp, ships tests and a security toolchain in CI (8 of 10). 30 + 20 + 12 + 12 + 8 = 82.\n- Transparency \u0026 trust 52 (checked 2026-11-03): A closed, proprietary API under terms that name the entity and the personal and professional user classes but carry no date and no governing law; the MCP server and OpenAPI document are MIT (15 of 30). The privacy policy is undated, keeps data while the account is active with no periods, names Google only, and no DPA was found; the MCP server's telemetry is disclosed in its README (8 of 30). No deprecation policy; Exchange Details v1 was kept when v2 shipped, and new APIs are dated on the blog (5 of 20). No subprocessor list or data locations beyond Google as an advertising platform (2 of 20). 15 + 8 + 5 + 2 = 30.\n\nFix list, everything this grade says the listing lacks, the biggest gain first (20 items). What it covers is at https://www.anchorterminal.com/fixes/eodhd.md (JSON https://www.anchorterminal.com/fixes/eodhd.json). The whole list for a coding agent comes from `POST https://www.anchorterminal.com/api/v1/fix-list` with `{\"listing\": \"eodhd\", \"plan\": \"read\"}`, free while the beta runs\n\n### What we couldn't check\n\n- unchecked: the status page's uptime figures and incident history, because uptime.eodhistoricaldata.com loads them by script and answered our reader with an error; status.eodhd.com has no DNS record\n- unchecked: the hosted MCP servers' live tool lists and whether they run the public repository's code; the page says 72 tools, the source at 15 October 2026 registers 88, and an EODHD-MCP-Server-v2 repository named on the page returns 404\n- unchecked: llms-full.txt, which llms.txt names as the full reference for agents\n- unchecked: forum.eodhd.com, which did not resolve on 3 November 2026\n- Whether the hosted MCP editions set the telemetry variables the README documents, and what the collector keeps; the September 2026 commits say the server reports the instrument, client name and status per call\n- The dates of the terms and privacy policy, which carry none, and the governing law, which is not stated\n- The price of extra API calls, which the limits article says is shown in the dashboard\n- firstReleased is left empty. The about page says active since 2017 and work began in April 2015; the eodhd.com domain dates from 11 November 2021 and the older eodhistoricaldata.com domain was not looked up\n- No founder or named person was found on eodhd.com or in the French registry search, so the humans file lists none\n\n### Sources\n\n- API index page: \u003chttps://eodhd.com/financial-apis/\u003e (seen 2026-11-03)\n- llms.txt: \u003chttps://eodhd.com/llms.txt\u003e (seen 2026-11-03)\n- limits article (WordPress JSON of post 486, modified 16 September 2026): \u003chttps://eodhd.com/financial-apis/api-limits\u003e (seen 2026-11-03)\n- pricing: \u003chttps://eodhd.com/pricing\u003e (seen 2026-11-03)\n- commercial pricing: \u003chttps://eodhd.com/commercial-pricing\u003e (seen 2026-11-03)\n- commercial versus personal licence: \u003chttps://eodhd.com/financial-apis/commercial-vs-personal-license-use\u003e (seen 2026-11-03)\n- MCP server page: \u003chttps://eodhd.com/financial-apis/mcp-server-for-financial-data-by-eodhd\u003e (seen 2026-11-03)\n- MCP server repository, shallow clone: \u003chttps://github.com/EodHistoricalData/EODHD-MCP-Server\u003e (seen 2026-11-03)\n- OpenAPI repository: \u003chttps://github.com/EodHistoricalData/EODHD-openapi\u003e (seen 2026-11-03)\n- OpenAPI document: \u003chttps://raw.githubusercontent.com/EodHistoricalData/EODHD-openapi/main/openapi.yaml\u003e (seen 2026-11-03)\n- GitHub organisation: \u003chttps://github.com/EodHistoricalData\u003e (seen 2026-11-03)\n- PyPI eodhd 1.0.32: \u003chttps://pypi.org/project/eodhd/\u003e (seen 2026-11-03)\n- terms and conditions: \u003chttps://eodhd.com/financial-apis/terms-conditions\u003e (seen 2026-11-03)\n- privacy policy: \u003chttps://eodhd.com/financial-apis/privacy-policy\u003e (seen 2026-11-03)\n- about page: \u003chttps://eodhd.com/about\u003e (seen 2026-11-03)\n- blog index (new APIs, dated): \u003chttps://eodhd.com/blog/\u003e (seen 2026-11-03)\n- uptime monitoring post (27 March 2020): \u003chttps://eodhd.com/blog/api-uptime-monitoring/\u003e (seen 2026-11-03)\n- status page (data did not load): \u003chttps://uptime.eodhistoricaldata.com/\u003e (seen 2026-11-03)\n- MCP v2 endpoint without a token, 401: \u003chttps://mcp.eodhd.com/v2/mcp\u003e (seen 2026-11-03)\n- EOD endpoint without a token, 401: \u003chttps://eodhd.com/api/eod/AAPL.US?fmt=json\u003e (seen 2026-11-03)\n- robots.txt: \u003chttps://eodhd.com/robots.txt\u003e (seen 2026-11-03)\n- security.txt (404): \u003chttps://eodhd.com/.well-known/security.txt\u003e (seen 2026-11-03)\n- RDAP for eodhd.com: \u003chttps://rdap.org/domain/eodhd.com\u003e (seen 2026-11-03)\n\n## Score history\n\nEvery move of a score since the listing was graded, newest first, with its cause. A score can't move without an entry here. JSON: https://www.anchorterminal.com/api/v1/tools/eodhd/history.json\n\n- 2026-11-03: graded 59 C (methodology 0.7)\n\n## Who's behind it (provenance 74/100, checked 2026-11-03)\n\n| Check | Finding | Points |\n| --- | --- | --- |\n| Legal entity named | Unicorn Data Services | 20/20 |\n| Domain age | eodhd.com, registered 2021-11-11 (4 years) | 7/15 |\n| Endpoint on the vendor's domain | eodhd.com | 15/15 |\n| Terms of service | read, states 1 of the 7 things a reader expects | 4.9/10 |\n| Privacy policy | read, states 3 of the 8 things a reader expects | 6.3/10 |\n| Status page | uptime.eodhistoricaldata.com | 10/10 |\n| Changelog | published | 10/10 |\n| security.txt | not found | 0/10 |\n| People named | not researched yet | n/a |\n| Support route | a support address, help pages, a community | 5/5 |\n\nUnicorn Data Services, 835 149 998 R.C.S. Lyon, is named in the footer of every page, on the about page and in the terms, with the Lyon address. The terms carry no date and no governing law clause.\n\nThe terms contain no clause on automated access to the website; they forbid sharing account access and redistributing data on non-professional plans. The privacy policy is undated and names Google as the only third party.\n\neodhd.com/robots.txt disallows /api/ (the API itself), /login, /register and a promotional path; the docs, pricing, legal and blog pages are allowed.\n\nRDAP gives eodhd.com a registration date of 11 November 2021 at GoDaddy; the company traded as eodhistoricaldata.com from 2017 and that domain still answers the API.\n\n/.well-known/security.txt and /security.txt return 404 on eodhd.com.\n\nThe status page at uptime.eodhistoricaldata.com is an UptimeRobot page announced on the blog on 27 March 2020; it is not linked from the pages we read and its data did not load for our reader. status.eodhd.com has no DNS record.\n\nNo changelog page was found; the blog announces new APIs with dates and the MCP server's commit history is dated.\n\n### Terms and privacy, as read\n\nA reading by a fixed set of rules, each answered with the vendor's own sentence. Not legal advice.\n\n**Terms of service** (https://eodhd.com/financial-apis/terms-conditions), read 2026-11-03, gives no date, states 1 of the 7 things a reader expects.\n\n- To know. Says access can be ended without notice or for any reason. \"Without prejudice to any other rights, EOD Historical Data may without notice terminate its contract with the User immediately if the User fails to comply with any of these terms and conditions, or if EOD Historical Data ceases to supply any Services.\"\n- Not found in the text. Gives the date it was last updated.\n- Not found in the text. Names the governing law or courts.\n- Not found in the text. States a limit on its liability.\n- Not found in the text. Says how changes to the terms are announced.\n- Not found in the text. Lists what users may not do.\n- Not found in the text. Refers to a service level or uptime commitment.\n- Also in the text (2026-11-03). Liability to the user is excluded in full to the extent the law allows, and any claim must be served within one year of the cause of action. \"To the maximum extent permitted by law, EOD Historical Data excludes all and any liability to the User arising out of the contract between EOD Historical Data and the User.\"\n- Also in the text (2026-11-03). All subscription payments are final and non-refundable whatever the reason for cancellation. \"All subscription payments made to EOD Historical Data are final and non-refundable.\"\n- Also in the text (2026-11-03). Personal plans forbid displaying, redistributing or granting access to the data in original or repackaged form. \"Selling, reselling, retransmitting, redistributing, displaying, or granting access to the Information or Services, whether in its original or repackaged form.\"\n\n**Privacy policy** (https://eodhd.com/financial-apis/privacy-policy), read 2026-11-03, gives no date, states 3 of the 8 things a reader expects.\n\n- To know. Says it sells personal data or shares it for advertising. \"We may share customer contact information – such as email addresses and/or phone numbers – with third-party advertising platforms, including Google, so that they can provide advertising services on our behalf, such as building and maintaining custom audiences,\"\n- Not found in the text. Gives the date it was last updated.\n- Not found in the text. Says what personal data is collected.\n- Not found in the text. Says how long data is kept.\n- Says whether personal data is sold or shared for advertising. Says it does not sell personal data.\n- Not found in the text. Gives a privacy contact.\n- Not found in the text. Says where data is transferred or stored.\n\n## Humans behind the project (researched 2026-11-03 from public pages, not part of the grade)\n\n### Key people\n\n- No people named yet.\n- Note: No founder or named person was found on a first-hand page. The about page describes a globally distributed team headquartered in Lyon, active since 2017, with no names; the terms, privacy policy and every footer name only Unicorn Data Services, 835 149 998 R.C.S. Lyon; the MCP server's licence names Alex Chernyshev as copyright holder without a role, so he is not listed. Investors were looked for on the about page, the pricing and commercial pages, the blog index, the terms and the GitHub organisation, and in two searches including the French company number; nothing first-hand mentions funding or backers.\n- Unicorn Data Services: LinkedIn https://www.linkedin.com/company/unicorn-data-services X https://x.com/eodhd_apis GitHub https://github.com/EodHistoricalData\n\n### Getting support\n\n- Support email: support@eodhistoricaldata.com\n- Help: https://eodhd.com/financial-apis/\n- Help: https://eodhd.com/financial-apis/api-limits\n- Community (MCP server issues): https://github.com/EodHistoricalData/EODHD-MCP-Server/issues\n- Sources: https://eodhd.com/about, https://eodhd.com/financial-apis/, https://eodhd.com/financial-apis/terms-conditions, https://eodhd.com/financial-apis/privacy-policy, https://eodhd.com/llms.txt, https://github.com/EodHistoricalData, https://github.com/EodHistoricalData/EODHD-MCP-Server\n\n## Live (updated 2026-11-04 19:34 UTC)\n\n- Right now: up, HTTP 404, 648 ms, checked 2026-11-04 19:34 UTC (get on `https://eodhd.com/api`)\n- Uptime 24h 100.0% (43 probes) · 30 days 100.0% (43 probes) · p50 511 ms · p95 788 ms\n- Vendor status page: unknown, no machine-readable status found\n- security.txt: none\n- Always current: https://www.anchorterminal.com/api/v1/live/eodhd.json\n\n## Probe metrics\n\nNot measured yet. Our benchmark probes haven't run, so there's no availability, latency or error rate from a run and Performance is pending. Live uptime, where we poll the endpoint, is under Live and doesn't change the score.\n\n## Prices\n\n| Item | Price | Unit | Note |\n| --- | --- | --- | --- |\n| All World, end of day | $19.99 | per month (plan) | personal use, 100,000 calls a day, $199 a year |\n| All World Extended, with intraday | $29.99 | per month (plan) | personal use, $299.90 a year |\n| Fundamentals Data Feed | $59.99 | per month (plan) | personal use, $599.90 a year |\n| All-In-One | $99.99 | per month (plan) | personal use, $999.90 a year |\n| Commercial internal use | $399 | per month (plan) | one seat, 100,000 calls a day, $3,990 a year |\n| Commercial enterprise | $2499 | per month (plan) | five seats, unlimited calls, $24,990 a year |\n\nAcross all listings: https://www.anchorterminal.com/prices/index.md\n\n## Strengths\n\n- Rate limits, per-endpoint call weights, `X-RateLimit` headers, 429 with Retry-After and a 402 for the daily allowance are documented in one article updated 16 September 2026\n- OpenAPI 3.1 for 74 endpoints and an MIT MCP server with 88 annotated tools, prompts and documentation resources, both open source\n- llms.txt of 32 KB with authentication, symbol formats, limits, error codes, plans and the MCP addresses\n- Free plan at 20 calls a day with no card, and personal plan prices from $19.99 a month published without login\n- Official Python and Node.js libraries, with R, C#, PHP and other clients in the GitHub organisation\n\n## Weaknesses\n\n- Every docs page shows the token as `api_token=` in the query string, and the MCP v1 address carries it in the URL\n- The status page's figures did not load for our reader, and the terms promise only commercially reasonable efforts with no SLA\n- Failed lookups such as a 404 for an unknown ticker still spend calls, and fundamentals cost 10 calls each\n- Terms and privacy policy carry no date, no governing law, no retention periods and no subprocessor list beyond Google\n- The vendor's MCP page says 72 tools while the source registers 88, and the hosted editions' telemetry settings are not published\n\n\n\n## Before you call it (notes for agents)\n\n1. Send the token as `Authorization: Bearer`, which llms.txt allows, rather than `api_token=` in the URL, and prefer the v2 OAuth MCP address over v1\n2. Budget calls, not requests; fundamentals cost 10, intraday and news 5, bulk 100 or more, and a 404 for a bad ticker is still charged, so resolve tickers with the search endpoint first\n3. Read `X-RateLimit-Remaining` and honour Retry-After on 429; a 402 means the daily allowance is gone until midnight GMT and no retry will help\n4. Use `{TICKER}.{EXCHANGE}` symbols in upper case, such as AAPL.US or EURUSD.FOREX, and `BTC-USD.CC` for crypto\n5. Expect 20 calls a day and one year of history on the free plan; a 403 means the plan lacks the endpoint, not a bad key\n\n## Connect\n\nInstall:\n\n```bash\npip install eodhd\n```\n\nFirst request:\n\n```bash\ncurl -H \"Authorization: Bearer $EODHD_API_TOKEN\" \"https://eodhd.com/api/eod/AAPL.US?fmt=json\u0026from=2025-11-03\"\n```\n\nMCP client configuration:\n\n```json\n{\n  \"mcpServers\": {\n    \"eodhd\": {\n      \"url\": \"https://mcp.eodhd.com/v2/mcp\"\n    }\n  }\n}\n```\n\nThrough letme: https://letme.dev/eodhd. letme answers with the pick and how to call it direct. How it works: https://www.anchorterminal.com/letme/index.md\n\n## Similar tools\n\nRanked by shared capabilities, then score. Same-category tools with no shared capability key are listed last.\n\n| Tool | Grade | Score | Rank | Shared capabilities | x402 | Markdown |\n| --- | --- | --- | --- | --- | --- | --- |\n| Financial Modeling Prep | D | 48.7 | 1056 | market.fundamentals, market.prices, market.history, market.filings, market.news, market.indices, market.crypto, data.company, data.markets | no | https://www.anchorterminal.com/tools/financial-modeling-prep.md |\n| Finnhub | E | 45.1 | 1140 | market.prices, market.fundamentals, market.news, market.filings, market.history, market.crypto, market.indices, data.markets, data.company | no | https://www.anchorterminal.com/tools/finnhub.md |\n| Twelve Data | BB | 70 | 197 | market.prices, market.history, market.fundamentals, market.crypto, market.indices, market.news, market.filings, data.markets | no | https://www.anchorterminal.com/tools/twelve-data.md |\n| Financial Datasets | C | 61.8 | 492 | market.fundamentals, market.filings, market.prices, market.history, market.news, market.indices, data.markets, data.company | yes | https://www.anchorterminal.com/tools/financial-datasets.md |\n| Intrinio | C | 54.2 | 879 | market.prices, market.fundamentals, market.filings, market.news, market.history, market.indices, data.markets, data.company | no | https://www.anchorterminal.com/tools/intrinio.md |\n| Alpha Vantage | E | 41.5 | 1197 | market.prices, market.history, market.fundamentals, market.news, data.markets, market.indices, market.crypto, data.company | no | https://www.anchorterminal.com/tools/alpha-vantage.md |\n\n## Panel reviews (0)\n\nReviewed by the Anchor panel (https://www.anchorterminal.com/reviewers/index.md): .\n\nDesk reviews, written from public documentation, pricing, terms, source and status history on 1 October 2026. No calls made. For a desk review, the outcome says whether the reviewer's questions could be answered from public material: success, partial or failure. How reviews work: https://www.anchorterminal.com/reviews/how-it-works.md\n\n## Notable\n\n- The limits article, updated 16 September 2026, gives 20 calls a day free, 100,000 a day on every paid plan, 1,000 requests a minute, call weights per endpoint, `X-RateLimit-Limit` and `X-RateLimit-Remaining` headers, 429 with Retry-After, 402 when the daily allowance is gone, and says refused and failed lookups are still charged (source: \u003chttps://eodhd.com/financial-apis/api-limits\u003e)\n- An OpenAPI 3.1 document in the EODHD-openapi repository (MIT, spec version 2.0.0, last updated 18 February 2026) covers 74 endpoints with the `api_token` query parameter as its only security scheme (source: \u003chttps://github.com/EodHistoricalData/EODHD-openapi\u003e)\n- The open-source MCP server (MIT, version 2.3.2, last commit 15 October 2026) registers 88 tools, 85 with readOnlyHint true and three Praams report tools marked not read-only because they trigger report generation and email delivery; the vendor's MCP page still says 72 tools (source: \u003chttps://github.com/EodHistoricalData/EODHD-MCP-Server\u003e)\n- The MCP server's README documents usage telemetry sent to a collector when two environment variables are set, and a September 2026 commit says it reports what request logs cannot see; the hosted editions' settings are not published (source: \u003chttps://github.com/EodHistoricalData/EODHD-MCP-Server\u003e)\n- The terms say non-professional users may store and analyse data for private use but not redistribute or display it, that payments are non-refundable, and that availability is a commercially reasonable effort with no SLA; they carry no date and no governing law (source: \u003chttps://eodhd.com/financial-apis/terms-conditions\u003e)\n- A status page at uptime.eodhistoricaldata.com, announced in a blog post of 27 March 2020, loads its figures by script and answered our reader with an error (source: \u003chttps://uptime.eodhistoricaldata.com/\u003e)\n- The blog announced new APIs for sanctions and interest rates (11 June 2026), credit risk (1 July), congressional trades (16 July), real estate (17 July), SEC filings (7 August) and a real-time feed update with European trades and quotes (26 August 2026) (source: \u003chttps://eodhd.com/blog/\u003e)\n\n- #5 of 11 in 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## Compare\n\n- [Alpha Vantage vs EODHD](https://www.anchorterminal.com/compare/alpha-vantage-vs-eodhd.md): E 41.5 vs C 59\n- [Databento vs EODHD](https://www.anchorterminal.com/compare/databento-vs-eodhd.md): C 60.3 vs C 59\n- [EODHD vs Financial Datasets](https://www.anchorterminal.com/compare/eodhd-vs-financial-datasets.md): C 59 vs C 61.8\n- [EODHD vs Financial Modeling Prep](https://www.anchorterminal.com/compare/eodhd-vs-financial-modeling-prep.md): C 59 vs D 48.7\n- [EODHD vs Finnhub](https://www.anchorterminal.com/compare/eodhd-vs-finnhub.md): C 59 vs E 45.1\n- [EODHD vs Intrinio](https://www.anchorterminal.com/compare/eodhd-vs-intrinio.md): C 59 vs C 54.2\n- [EODHD vs Massive (formerly Polygon.io)](https://www.anchorterminal.com/compare/eodhd-vs-massive.md): C 59 vs BB 73.1\n- [EODHD vs Tiingo](https://www.anchorterminal.com/compare/eodhd-vs-tiingo.md): C 59 vs D 46.2\n- [EODHD vs Twelve Data](https://www.anchorterminal.com/compare/eodhd-vs-twelve-data.md): C 59 vs BB 70\n- [Benzinga vs EODHD](https://www.anchorterminal.com/compare/benzinga-vs-eodhd.md): D 49.2 vs C 59\n\n## Verify this listing\n\nFor the vendor. The badge or a plain link to this page verifies the listing, from a page on eodhd.com or one of its subdomains, or the README at the root of github.com/EodHistoricalData/EODHD-MCP-Server. It shows the listing is the vendor's and that the vendor knows it's here, and it never changes a grade, rank or review. The vendor sends the page's address to `POST https://www.anchorterminal.com/api/v1/verify` as `{\"slug\": \"eodhd\", \"url\": \"…\"}`, or calls the `verify_listing` tool at https://www.anchorterminal.com/mcp. We fetch the page once, then again every week; two failed checks in a row and the verification lapses, and a later pass restores it. What we check: https://www.anchorterminal.com/builders/index.md#verify\n\nHTML badge:\n\n```html\n\u003ca href=\"https://www.anchorterminal.com/tools/eodhd\"\u003e\u003cimg src=\"https://www.anchorterminal.com/badges/eodhd.svg\" alt=\"EODHD on Anchor Terminal\" height=\"20\"\u003e\u003c/a\u003e\n```\n\nMarkdown badge, for a README:\n\n```markdown\n[![EODHD on Anchor Terminal](https://www.anchorterminal.com/badges/eodhd.svg)](https://www.anchorterminal.com/tools/eodhd)\n```\n\nPlain link:\n\n```html\n\u003ca href=\"https://www.anchorterminal.com/tools/eodhd\"\u003eEODHD on Anchor Terminal\u003c/a\u003e\n```\n\n## Share this listing\n\nFor the vendor. Sharing assets for social media, two PNGs of 1200 × 630 that say EODHD is listed on Anchor Terminal, with the vendor's logo and this page's address and no grade or score.\n\n- Dark: https://www.anchorterminal.com/assets/share/eodhd-dark.png\n- Light: https://www.anchorterminal.com/assets/share/eodhd-light.png\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": "Terminal",
        "url": "https://www.anchorterminal.com/tools/"
      },
      {
        "name": "Financial market data",
        "url": "https://www.anchorterminal.com/categories/market-data"
      },
      {
        "name": "EODHD",
        "url": ""
      }
    ],
    "description": "EODHD (EOD Historical Data) is a market data API from Unicorn Data Services for end-of-day and intraday prices, fundamentals, dividends and splits, filings, news, options and macro series on 60 exchanges, over REST and a hosted MCP server.",
    "facts": [
      "rank #651 of 1349",
      "OAuth or key auth",
      "0 desk reviews"
    ],
    "h1": "EODHD",
    "image": "https://www.anchorterminal.com/assets/og/tools-eodhd.png",
    "path": "/tools/eodhd",
    "published": "2026-10-01",
    "section": "tools",
    "title": "EODHD review (2026): pricing, alternatives and grade C",
    "toc": null,
    "updated": "2026-11-04",
    "url": "https://www.anchorterminal.com/tools/eodhd"
  },
  "tokens": {
    "markdown": 8550,
    "slim": 2180
  },
  "version": 1
}
