{
  "data": {
    "similar": [
      {
        "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.news",
          "data.markets"
        ],
        "slug": "twelve-data"
      },
      {
        "grade": "C",
        "json": "https://www.anchorterminal.com/tools/eodhd.json",
        "name": "EODHD",
        "score": 59,
        "shared": [
          "market.history",
          "market.prices",
          "market.fundamentals",
          "market.news",
          "market.crypto",
          "data.markets"
        ],
        "slug": "eodhd"
      },
      {
        "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.news",
          "market.crypto",
          "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.history",
          "market.crypto",
          "data.markets"
        ],
        "slug": "finnhub"
      },
      {
        "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.crypto"
        ],
        "slug": "alpha-vantage"
      },
      {
        "grade": "C",
        "json": "https://www.anchorterminal.com/tools/financial-datasets.json",
        "name": "Financial Datasets",
        "score": 61.8,
        "shared": [
          "market.fundamentals",
          "market.prices",
          "market.history",
          "market.news",
          "data.markets"
        ],
        "slug": "financial-datasets"
      }
    ],
    "tool": {
      "slug": "tiingo",
      "name": "Tiingo",
      "vendor": "Tiingo Inc.",
      "vendorUrl": "https://www.tiingo.com",
      "kind": "http-api",
      "category": "market-data",
      "summary": "Tiingo is a market data API from Tiingo Inc. for end-of-day and real-time US equity prices, fund fees, fundamentals, dividends and splits, news, crypto and forex, over REST and WebSocket. Agents call api.tiingo.com with an account token.",
      "url": "https://www.anchorterminal.com/tools/tiingo",
      "markdownUrl": "https://www.anchorterminal.com/tools/tiingo.md",
      "slimMarkdownUrl": "https://www.anchorterminal.com/tools/tiingo.min.md",
      "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/tiingo.json",
      "dns": "tiingo.grade.anchorterminal.com",
      "transports": [
        "http",
        "websocket"
      ],
      "remoteUrl": "https://api.tiingo.com",
      "packages": [],
      "auth": "api-key",
      "authNotes": "One API token of about 75 characters per account, from the account page after a browser signup. The connecting guide accepts it as `?token=` in the URL or as an `Authorization: Token \u003ctoken\u003e` header; WebSocket subscriptions carry it as `authToken` in the subscribe message. The token can be rotated on the account token page (added per the changelog of 12 May 2026). No scopes or expiry found.",
      "pricing": "freemium",
      "pricingNotes": "Starter plan free at 50 requests an hour, 1,000 a day, 1 GB a month and 500 unique symbols a month, internal use only; no card requirement stated. Power plan $30 a month at 10,000 requests an hour, 100,000 a day, 40 GB and all 110,424 symbols, also internal use only. Fundamentals are a separate add-on through a third-party provider, priced by email; commercial, redistribution and white-label licences by contact (https://www.tiingo.com/pricing, checked 2026-11-03).",
      "priceSummary": "$30 / mo",
      "where": "hosted",
      "x402": {
        "level": "no",
        "evidence": "No x402, MPP or L402 in the documentation, llms.txt or pricing (checked 2026-11-03). A call without a token returns HTTP 403 with `{\"detail\":\"Please supply a token\"}`.",
        "endpoints": []
      },
      "toolCount": null,
      "popularity": {
        "githubStars": null,
        "npmWeekly": null,
        "pypiWeekly": null,
        "asOf": "2026-11-03"
      },
      "docsUrl": "https://www.tiingo.com/documentation/general/overview",
      "llmsTxt": "https://www.tiingo.com/llms.txt",
      "capabilities": [
        "market.prices",
        "market.history",
        "market.news",
        "market.fundamentals",
        "market.crypto",
        "data.markets"
      ],
      "tags": [
        "hosted",
        "freemium",
        "api-key",
        "llms-txt",
        "status-page",
        "free-tier",
        "closed-source",
        "stocks",
        "crypto",
        "forex",
        "streaming",
        "personal-use"
      ],
      "lastRelease": "2026-10-09",
      "graded": true,
      "anchor": {
        "graded": true,
        "score": 46.2,
        "grade": "D",
        "agentReady": false,
        "rank": 1118,
        "ranked": true,
        "rankOf": 1349,
        "categoryRank": 9,
        "methodology": "0.7",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 56,
          "maintenance": 50,
          "payments": 30,
          "reliability": 60,
          "schema": 39,
          "security": 32,
          "transparency": 57
        },
        "pending": [
          "performance",
          "tasks"
        ],
        "breakdown": [
          {
            "key": "reliability",
            "name": "Reliability",
            "weight": 16,
            "effectiveWeight": 20,
            "score": 60,
            "points": 12,
            "reason": "Read with the hosted lines. A public status page on Instatus at status.tiingo.com lists 13 components with a notice history (20). The history in the 90 days to 3 November 2026 shows a 9 hour 59 minute outage of the Blue Ocean ATS endpoints on 21 October, a WebSocket issue on 21 September and two maintenance windows, with nothing recorded before 21 September; a long outage of one niche feed rather than the core price API (15). Limits are published with numbers, 50 and 10,000 requests an hour, 1,000 and 100,000 a day and 1 GB and 40 GB a month (15). No 429, Retry-After or backoff guidance was found (0). No SLA found (0). The end-of-day, news, crypto and forex APIs are generally available, while Equity Realtime and BOATS are in beta (10). 20 + 15 + 15 + 0 + 0 + 10 = 60.",
            "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": 39,
            "points": 6.34,
            "reason": "No OpenAPI document or MCP server was found (0 of 25). llms.txt and llms-full.txt are served, with product routing and licence notes (10). Each documentation page states the endpoint's purpose and timing, such as prices after 5.30 pm ET with corrections to 8 pm, with little on when not to use it (12 of 20). Parameters and response fields are tabled with names and meanings, but types, defaults and allowed values are partly in prose (8 of 15). Examples in Python, Node and PHP on every page; no error responses documented (7 of 15). A changelog dated by entry since 2017 and a one-year support commitment after breaking changes, with no version in the path (12 of 15). 0 + 10 + 12 + 8 + 7 + 12 = 39.",
            "checked": "2026-11-03"
          },
          {
            "key": "ergonomics",
            "name": "Agent ergonomics",
            "weight": 13,
            "effectiveWeight": 16.25,
            "score": 56,
            "points": 9.1,
            "reason": "`startDate`, `endDate`, `resampleFreq`, `format=csv` and column selection on some endpoints size responses; no field selection on end-of-day prices (15 of 25). Date ranges throughout and limit and offset on news, no cursor (15 of 20). Errors are undocumented; a missing token answered 403 with a JSON `detail` field in our one test call (3 of 20). Every call is a read (16 of 20). Few required parameters, but no official SDK; the docs point to third-party packages (7 of 15). 15 + 15 + 3 + 16 + 7 = 56.",
            "checked": "2026-11-03"
          },
          {
            "key": "security",
            "name": "Security \u0026 auth",
            "weight": 14,
            "effectiveWeight": 17.5,
            "score": 32,
            "points": 5.6,
            "reason": "One token per account with no scopes, documented as `?token=` in the URL or an Authorization header, with rotation on the account page since May 2026 (20 less 10 for the query string, plus 2 for rotation, so 12). Every endpoint is a read (15 of 20). News is third-party text and no guidance was found (5 of 15). A usage page shows hourly and daily requests and bandwidth, not a per-call log (0 of 15, no log). security.txt redirects on www and is absent on api, and no disclosure policy, bug bounty or certification was found (0 of 20). 12 + 15 + 5 + 0 + 0 = 32.",
            "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). Two plan prices public without login, $0 and $30 a month, sold by requests an hour and a day rather than per call; fundamentals and commercial licences by email (10). A free Starter plan at 1,000 requests a day with no card requirement stated (20). The token comes from a browser signup, and the developer programme forbids programmatic registration (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": 50,
            "points": 4.38,
            "reason": "Read as a closed service. The changelog's newest entry is 9 October 2026 (30). Entries dated 9 October and 8 September 2026 fall in the last 90 days, with 21 July just outside, and the status page adds a maintenance window on 28 September (12 of 20). A dated changelog, a support address and a blog, with the developer programme promising priority email support (8 of 15). No official SDK (0 of 15). No package to assess (0 of 10). 30 + 12 + 8 + 0 + 0 = 50.",
            "checked": "2026-11-03"
          },
          {
            "key": "transparency",
            "name": "Transparency \u0026 trust",
            "weight": 7,
            "effectiveWeight": 8.75,
            "score": 57,
            "points": 4.99,
            "note": "editorial 28, provenance 86",
            "reason": "A closed service whose terms sit on app.tiingo.com, which answered 403 to every request, so they were not read; the pricing and documentation pages define internal, commercial and redistribution licences (8 of 30). The privacy policy is on the same host and was not read (0 of 30). The developer programme commits to a year of continued support after a breaking change, with changes posted in the changelog and emailed to registered developers, and the changelog's 9 October 2026 entry describes a changed default for prevClose (16 of 20). Equinix hosting is named on the about page, with no processor list or data location (4 of 20). 8 + 0 + 16 + 4 = 28.",
            "checked": "2026-11-03"
          }
        ],
        "assessment": {
          "date": "2026-11-03",
          "basis": "public evidence",
          "confidence": "low",
          "notes": {
            "ergonomics": "`startDate`, `endDate`, `resampleFreq`, `format=csv` and column selection on some endpoints size responses; no field selection on end-of-day prices (15 of 25). Date ranges throughout and limit and offset on news, no cursor (15 of 20). Errors are undocumented; a missing token answered 403 with a JSON `detail` field in our one test call (3 of 20). Every call is a read (16 of 20). Few required parameters, but no official SDK; the docs point to third-party packages (7 of 15). 15 + 15 + 3 + 16 + 7 = 56.",
            "maintenance": "Read as a closed service. The changelog's newest entry is 9 October 2026 (30). Entries dated 9 October and 8 September 2026 fall in the last 90 days, with 21 July just outside, and the status page adds a maintenance window on 28 September (12 of 20). A dated changelog, a support address and a blog, with the developer programme promising priority email support (8 of 15). No official SDK (0 of 15). No package to assess (0 of 10). 30 + 12 + 8 + 0 + 0 = 50.",
            "payments": "No x402, MPP or L402 (0). Two plan prices public without login, $0 and $30 a month, sold by requests an hour and a day rather than per call; fundamentals and commercial licences by email (10). A free Starter plan at 1,000 requests a day with no card requirement stated (20). The token comes from a browser signup, and the developer programme forbids programmatic registration (0). 0 + 10 + 20 + 0 = 30.",
            "reliability": "Read with the hosted lines. A public status page on Instatus at status.tiingo.com lists 13 components with a notice history (20). The history in the 90 days to 3 November 2026 shows a 9 hour 59 minute outage of the Blue Ocean ATS endpoints on 21 October, a WebSocket issue on 21 September and two maintenance windows, with nothing recorded before 21 September; a long outage of one niche feed rather than the core price API (15). Limits are published with numbers, 50 and 10,000 requests an hour, 1,000 and 100,000 a day and 1 GB and 40 GB a month (15). No 429, Retry-After or backoff guidance was found (0). No SLA found (0). The end-of-day, news, crypto and forex APIs are generally available, while Equity Realtime and BOATS are in beta (10). 20 + 15 + 15 + 0 + 0 + 10 = 60.",
            "schema": "No OpenAPI document or MCP server was found (0 of 25). llms.txt and llms-full.txt are served, with product routing and licence notes (10). Each documentation page states the endpoint's purpose and timing, such as prices after 5.30 pm ET with corrections to 8 pm, with little on when not to use it (12 of 20). Parameters and response fields are tabled with names and meanings, but types, defaults and allowed values are partly in prose (8 of 15). Examples in Python, Node and PHP on every page; no error responses documented (7 of 15). A changelog dated by entry since 2017 and a one-year support commitment after breaking changes, with no version in the path (12 of 15). 0 + 10 + 12 + 8 + 7 + 12 = 39.",
            "security": "One token per account with no scopes, documented as `?token=` in the URL or an Authorization header, with rotation on the account page since May 2026 (20 less 10 for the query string, plus 2 for rotation, so 12). Every endpoint is a read (15 of 20). News is third-party text and no guidance was found (5 of 15). A usage page shows hourly and daily requests and bandwidth, not a per-call log (0 of 15, no log). security.txt redirects on www and is absent on api, and no disclosure policy, bug bounty or certification was found (0 of 20). 12 + 15 + 5 + 0 + 0 = 32.",
            "transparency": "A closed service whose terms sit on app.tiingo.com, which answered 403 to every request, so they were not read; the pricing and documentation pages define internal, commercial and redistribution licences (8 of 30). The privacy policy is on the same host and was not read (0 of 30). The developer programme commits to a year of continued support after a breaking change, with changes posted in the changelog and emailed to registered developers, and the changelog's 9 October 2026 entry describes a changed default for prevClose (16 of 20). Equinix hosting is named on the about page, with no processor list or data location (4 of 20). 8 + 0 + 16 + 4 = 28."
          },
          "sources": [
            {
              "what": "documentation overview (limits, formats, permitted use)",
              "url": "https://www.tiingo.com/documentation/general/overview",
              "seen": "2026-11-03"
            },
            {
              "what": "connecting guide (token in URL or header, WebSocket)",
              "url": "https://www.tiingo.com/documentation/general/connecting",
              "seen": "2026-11-03"
            },
            {
              "what": "end-of-day documentation",
              "url": "https://www.tiingo.com/documentation/end-of-day",
              "seen": "2026-11-03"
            },
            {
              "what": "fundamentals documentation (third-party add-on)",
              "url": "https://www.tiingo.com/documentation/fundamentals",
              "seen": "2026-11-03"
            },
            {
              "what": "developer programme (deprecation commitment)",
              "url": "https://www.tiingo.com/documentation/appendix/developers",
              "seen": "2026-11-03"
            },
            {
              "what": "changelog",
              "url": "https://www.tiingo.com/documentation/general/changelog",
              "seen": "2026-11-03"
            },
            {
              "what": "llms.txt",
              "url": "https://www.tiingo.com/llms.txt",
              "seen": "2026-11-03"
            },
            {
              "what": "pricing",
              "url": "https://www.tiingo.com/pricing",
              "seen": "2026-11-03"
            },
            {
              "what": "about page",
              "url": "https://www.tiingo.com/about",
              "seen": "2026-11-03"
            },
            {
              "what": "blog index and data quality post (formed in 2014)",
              "url": "https://www.tiingo.com/blog/",
              "seen": "2026-11-03"
            },
            {
              "what": "status page",
              "url": "https://status.tiingo.com/",
              "seen": "2026-11-03"
            },
            {
              "what": "status history",
              "url": "https://status.tiingo.com/history/1",
              "seen": "2026-11-03"
            },
            {
              "what": "uptime page (data did not load)",
              "url": "https://uptime.tiingo.com/",
              "seen": "2026-11-03"
            },
            {
              "what": "prices endpoint without a token, 403",
              "url": "https://api.tiingo.com/tiingo/daily/aapl/prices",
              "seen": "2026-11-03"
            },
            {
              "what": "privacy policy (403 on app.tiingo.com)",
              "url": "https://app.tiingo.com/privacy",
              "seen": "2026-11-03"
            },
            {
              "what": "robots.txt",
              "url": "https://www.tiingo.com/robots.txt",
              "seen": "2026-11-03"
            },
            {
              "what": "RDAP for tiingo.com",
              "url": "https://rdap.org/domain/tiingo.com",
              "seen": "2026-11-03"
            }
          ],
          "openQuestions": [
            "unchecked: the terms of service and privacy policy, because app.tiingo.com answered 403 to every request from our reader and from curl; www.tiingo.com and api.tiingo.com answered normally, so the listing stands on the documentation and pricing pages",
            "unchecked: the uptime figures on uptime.tiingo.com, an UptimeRobot page whose data did not load",
            "unchecked: llms-full.txt, named in llms.txt as the complete reference",
            "Whether the Starter plan needs a card; the pricing page lists $0 and says nothing about a card",
            "The price of the fundamentals add-on and the identity of its third-party provider, which the documentation does not name",
            "Judgement call on reliability. The 21 October 2026 outage lasted about 10 hours but hit the Blue Ocean ATS endpoints only, so it was scored between minor and major (15 of 30)",
            "Judgement call, not a deduction. The changelog of 9 October 2026 says prevClose on Equity Realtime and BOATS now defaults to the prior official close, a changed default announced the same day on beta APIs",
            "firstReleased is left empty. The blog says Tiingo was formed in 2014, the changelog begins 5 July 2017 and the domain dates from 4 March 2011",
            "The founder's surname. Every blog post is by Rishi S., who writes that he formed Tiingo in 2014; no first-hand page gives the full name, so the humans file records what the site shows"
          ]
        },
        "negative": 0,
        "verdict": "A dated changelog since 2017, a one-year support commitment after breaking changes, an Instatus status page and a free token at 1,000 requests a day. The token is documented in the URL, no OpenAPI document, error reference, SDK or MCP server exists, and the terms and privacy policy sit on a host that refused our reader.",
        "bestFor": "Agents that need clean US end-of-day composites with dividend and split adjustments, fund fees and news on a cheap plan, and anyone who values a long changelog.",
        "strengths": [
          "Changelog dated by entry from 2017 to 9 October 2026, and a stated one-year support window after a breaking change",
          "Status page on Instatus with 13 components and a notice history",
          "Limits in requests an hour, a day and bandwidth a month, with no per-second throttle, and token rotation on the account page",
          "Free Starter token at 1,000 requests a day, and a $30 a month Power plan published without login",
          "llms.txt and llms-full.txt served for agents, with product routing notes"
        ],
        "weaknesses": [
          "The connecting guide documents the token as `?token=` in the URL alongside the header",
          "No OpenAPI document, no documented error responses, no official SDK and no MCP server",
          "Terms and privacy policy on app.tiingo.com answered 403 to every request, so neither was read",
          "Both self-serve plans are internal use only; display, redistribution and white-label need a negotiated licence",
          "Blue Ocean ATS endpoints were down for about 10 hours on 21 October 2026, and the status history starts on 21 September 2026"
        ],
        "agentNotes": [
          "Send the token as `Authorization: Token \u003ctoken\u003e`, not as `?token=` in the URL",
          "Ask for `format=csv` on large price pulls; the docs say CSV is 4 to 5 times faster than JSON, and bandwidth counts against the monthly cap",
          "Count requests an hour and a day, not per second; 50 an hour on Starter, 10,000 on Power, reset on the hour and at midnight ET",
          "Expect 403 `{\"detail\":\"Please supply a token\"}` without a token; other error shapes are undocumented, so log the body",
          "Use dashes in share classes (BRK-A), and fetch supported_tickers.zip rather than guessing symbols"
        ],
        "metrics": {
          "kind": "remote",
          "measured": false
        },
        "reviewCount": 0,
        "avgRating": 0,
        "history": [
          {
            "basis": "public evidence",
            "confidence": "low",
            "grade": "D",
            "methodology": "0.7",
            "pending": [
              "performance",
              "tasks"
            ],
            "run": "2026-10-01",
            "runLabel": "October 2026 research run",
            "score": 46.2
          }
        ],
        "editorialScores": {
          "ergonomics": 56,
          "maintenance": 50,
          "payments": 30,
          "reliability": 60,
          "schema": 39,
          "security": 32,
          "transparency": 28
        },
        "provenanceScore": 86,
        "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": "D",
            "kind": "listed",
            "method": "0.7",
            "score": 46.2
          }
        ]
      },
      "connect": {
        "http": "curl -H \"Authorization: Token $TIINGO_TOKEN\" \"https://api.tiingo.com/tiingo/daily/aapl/prices?startDate=2025-11-03\u0026format=csv\""
      },
      "letme": {
        "capability": "https://letme.dev/market.prices",
        "tool": "https://letme.dev/tiingo"
      },
      "notable": [
        "The overview documents three limit types, requests an hour, requests a day and bandwidth a month, with the numbers on the pricing page, and says there is no per-minute or per-second limit (https://www.tiingo.com/documentation/general/overview)",
        "A dated changelog runs from 5 July 2017 to 9 October 2026, with 2026 entries on 31 January, 20 March, 12 May, 7 July (Equity Realtime API in beta), 21 July (BOATS Overnight in beta), 8 September and 9 October (https://www.tiingo.com/documentation/general/changelog)",
        "The developer programme page commits to keeping current functionality supported for at least one year after a breaking change, to posting changes in the changelog and emailing registered developers, and forbids programmatic registration or login (https://www.tiingo.com/documentation/appendix/developers)",
        "The status page at status.tiingo.com (Instatus) lists 13 components; its history shows a 9 hour 59 minute outage of the Blue Ocean ATS endpoints on 21 October 2026, two maintenance windows and a WebSocket notice, with nothing before 21 September 2026 (https://status.tiingo.com/history/1)",
        "The terms and privacy policy live on app.tiingo.com, which answered every request with 403, so neither was read; the docs and pricing state the licence tiers (internal use, commercial, redistribution) (https://app.tiingo.com/privacy)",
        "No MCP server, OpenAPI document or official SDK was found; llms.txt and llms-full.txt are served, and the docs point to third-party packages"
      ],
      "area": "domain-data",
      "details": [
        {
          "label": "Surface listed",
          "value": "The REST API at api.tiingo.com and its WebSocket, read from the documentation on www.tiingo.com (overview, connecting, end-of-day, fundamentals, developer programme, changelog), llms.txt, the pricing and about pages, the blog and the status page on 3 November 2026. No account was made and no call beyond an unauthenticated test was sent"
        },
        {
          "label": "Reader note",
          "value": "www.tiingo.com and api.tiingo.com answered normally. app.tiingo.com, which holds the terms and privacy policy, answered 403 to every request, so those two documents are unread"
        },
        {
          "label": "API",
          "value": "REST groups for end of day, news, crypto, forex, equity real time (beta), IEX, BOATS overnight (beta), fundamentals, fund fees, dividends and splits, plus search; WebSocket streams for crypto, forex, equity real time, IEX and BOATS. Share classes use dashes (BRK-A)"
        },
        {
          "label": "Coverage",
          "value": "The pricing page counts 110,424 securities, 49,621 US and Chinese stocks and 60,803 ETFs and mutual funds, with 30 years of price history and 5 or 15 years of fundamentals; the fundamentals page says 5,500 US equities and ADRs over 20 years. News keeps 3 months of queryable history on self-serve plans"
        },
        {
          "label": "Rate limits",
          "value": "Starter 50 requests an hour, 1,000 a day, 1 GB a month, 500 unique symbols; Power 10,000 an hour, 100,000 a day, 40 GB. No per-minute or per-second limit. No 429 documentation found"
        },
        {
          "label": "Response size",
          "value": "`startDate` and `endDate`, `resampleFreq` (daily, weekly, monthly), `format=json` or csv, and a `columns` selection on some endpoints"
        },
        {
          "label": "Errors",
          "value": "403 with a JSON `detail` field without a token in our one test call. No error reference in the documentation we read"
        },
        {
          "label": "SDKs",
          "value": "None official. The docs name third-party packages, and the developer programme lists integrations that bring their own token"
        },
        {
          "label": "Use terms",
          "value": "Starter and Power are internal use only, defined on the pricing page as personal use with no display or sharing; commercial accounts are licensed for internal commercial use; redistribution and white-label need separate licences by contact. The terms themselves were not read"
        },
        {
          "label": "Status",
          "value": "status.tiingo.com on Instatus with 13 components and RSS, plus an UptimeRobot page at uptime.tiingo.com whose data did not load for our reader"
        },
        {
          "label": "Legal entity",
          "value": "Tiingo Inc. per the copyright line, Alexandria, Virginia per the about page, which says the company was formed about ten years ago; the blog says Tiingo was formed in 2014"
        }
      ],
      "unitPrices": [
        {
          "item": "Power, 10,000 requests an hour",
          "unit": "month",
          "usd": 30,
          "note": "internal use only, 100,000 requests a day, 40 GB a month"
        }
      ],
      "provenance": {
        "legalEntity": "Tiingo Inc.",
        "domain": "tiingo.com",
        "domainRegistered": "2011-03-04",
        "endpointOnVendorDomain": true,
        "terms": "https://app.tiingo.com/terms",
        "privacy": "https://app.tiingo.com/privacy",
        "statusPage": "https://status.tiingo.com",
        "changelog": "https://www.tiingo.com/documentation/general/changelog",
        "securityTxt": "none",
        "checked": "2026-11-03",
        "notes": [
          "Tiingo Inc. appears in the copyright line of the about page, which gives Alexandria, VA. No registration number or address was found on a page we could read.",
          "www.tiingo.com/privacy redirects to app.tiingo.com/privacy, and app.tiingo.com/terms is the terms address; app.tiingo.com answered 403 to every request from our reader and from curl, so neither document was read.",
          "www.tiingo.com/robots.txt disallows only /admin. The developer programme page forbids programmatic registration or login and wrapping the login form; nothing read forbids reading the website.",
          "RDAP gives tiingo.com a registration date of 4 March 2011 at GoDaddy.",
          "/.well-known/security.txt on www.tiingo.com redirects (301) and api.tiingo.com returns 404, so none.",
          "The status page is Instatus at status.tiingo.com, named in llms.txt with uptime.tiingo.com as an audited uptime page."
        ],
        "score": 86,
        "checks": [
          {
            "check": "Legal entity named",
            "value": "Tiingo Inc.",
            "points": 20,
            "max": 20,
            "state": "ok"
          },
          {
            "check": "Domain age",
            "value": "tiingo.com, registered 2011-03-04 (15 years)",
            "points": 15,
            "max": 15,
            "state": "ok"
          },
          {
            "check": "Endpoint on the vendor's domain",
            "value": "api.tiingo.com",
            "points": 15,
            "max": 15,
            "state": "ok"
          },
          {
            "check": "Terms of service",
            "value": "published, but our reader couldn't read it",
            "points": 7,
            "max": 10,
            "state": "part"
          },
          {
            "check": "Privacy policy",
            "value": "read, states 5 of the 8 things a reader expects",
            "points": 7.8,
            "max": 10,
            "state": "part"
          },
          {
            "check": "Status page",
            "value": "status.tiingo.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": "1 named with their role, none with a public profile",
            "points": 7,
            "max": 10,
            "state": "part"
          },
          {
            "check": "Support route",
            "value": "a support address, help pages",
            "points": 5,
            "max": 5,
            "state": "ok"
          }
        ],
        "policies": [
          {
            "kind": "terms",
            "url": "https://app.tiingo.com/terms",
            "state": "unreadable",
            "reason": "the page answered HTTP 404 to our reader",
            "readAt": "2026-11-03",
            "points": 7,
            "max": 10
          },
          {
            "kind": "privacy",
            "url": "https://app.tiingo.com/privacy",
            "state": "read",
            "readAt": "2026-11-03",
            "statedDate": "2026-02-18",
            "words": 4319,
            "points": 7.8,
            "max": 10,
            "expected": [
              {
                "key": "privacy.date",
                "label": "Gives the date it was last updated",
                "found": true,
                "quote": "Last Revised: February 18th, 2026",
                "says": "Last updated 2026-02-18"
              },
              {
                "key": "privacy.collected",
                "label": "Says what personal data is collected",
                "found": true,
                "quote": "…this Privacy Policy to describe to you our practices regarding the Personal Data (as defined below) we collect from users of our website, located at https://www.tiingo.com, https://api.tiingo.com, and http://blog.tiingo.com (the \"Websites(s)\") our mobile application (“Application(s)”), and our widgets (collectively, w…"
              },
              {
                "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": "When connecting to our Services via a service provider that uniquely identifies your mobile device, we may receive this identification and use it to offer extended services and/or functionality."
              },
              {
                "key": "privacy.sale",
                "label": "Says whether personal data is sold or shared for advertising",
                "found": false
              },
              {
                "key": "privacy.rights",
                "label": "Says what rights people have over their data",
                "found": false
              },
              {
                "key": "privacy.contact",
                "label": "Gives a privacy contact",
                "found": true,
                "quote": "If you believe that we might have any Personal Data from a child under 13, please contact us at [email protected].",
                "says": "Gives an email address, hidden from our reader by the page"
              },
              {
                "key": "privacy.transfers",
                "label": "Says where data is transferred or stored",
                "found": true,
                "quote": "If you are located anywhere outside of the United States, please be aware that information we collect, including Personal Data, will be transferred to, processed and stored in the United States.",
                "says": "Data goes to the United States"
              }
            ],
            "notes": [
              {
                "date": "2026-11-03",
                "text": "Accounts registered with a company email domain are treated as business accounts, and Tiingo may display the company's name and logo in marketing materials and client lists.",
                "quote": "We may use and publicly display that entity’s name, trade names, trademarks, service marks, and logos in Tiingo marketing materials, customer or client lists, sales materials, presentations, and other public-facing communications"
              },
              {
                "date": "2026-11-03",
                "text": "Removing a logo from marketing requires closing all accounts on the company's domain or entering an enterprise licence agreement at additional cost.",
                "quote": "If a business does not want its logo used, its authorized representative may request closure of all Accounts using its domain, after which Tiingo will remove the logo from public marketing and client-list materials within a commercially reasonable time"
              },
              {
                "date": "2026-11-03",
                "text": "Certain user data may be reported to stock exchanges where the SEC or other law requires it, and personal data may be disclosed in some circumstances.",
                "quote": "Certain User Data may be reported to the stock exchanges (e.g. NASDAQ, NYSE, IEX, etc.) as is required by the Securities Exchange Commission (“SEC”) or other applicable governing law."
              }
            ]
          }
        ]
      },
      "humans": {
        "slug": "tiingo",
        "checked": "2026-11-03",
        "company": "Tiingo Inc.",
        "people": [
          {
            "name": "Rishi S.",
            "role": "Founder",
            "founder": true,
            "bio": "Rishi S. writes every post on the Tiingo blog and says in the data quality post of 24 August 2026 that he formed Tiingo in 2014. The site gives no surname, title or personal account.",
            "bioSources": [
              "https://www.tiingo.com/blog/",
              "https://www.tiingo.com/blog/tiingo-data-quality-how-we-find-and-fix-market-data-errors/"
            ],
            "page": "/people/rishi-s/"
          }
        ],
        "peopleNote": "The only person named on a first-hand page is the blog author Rishi S., who writes that he formed Tiingo in 2014 and has run it since; the blog gives no surname or title, and the about page, which says the company was formed about ten years ago in Alexandria, VA, names no one. Third-party pages give a full name and the CEO title, but none is first-hand, so they are not used. Investors were looked for on the about page, the pricing page, the blog index and about-us page, and llms.txt, and in two searches; no first-hand page mentions funding or backers.",
        "companySocial": {
          "linkedin": "https://www.linkedin.com/company/tiingo",
          "x": "https://x.com/tiingofinance"
        },
        "support": {
          "emails": [
            "support@tiingo.com"
          ],
          "urls": [
            "https://www.tiingo.com/products/contact",
            "https://www.tiingo.com/documentation/general/overview"
          ],
          "contactEmails": [
            "support@tiingo.com"
          ]
        },
        "sources": [
          "https://www.tiingo.com/about",
          "https://www.tiingo.com/blog/",
          "https://www.tiingo.com/blog/about-us/",
          "https://www.tiingo.com/blog/tiingo-data-quality-how-we-find-and-fix-market-data-errors/",
          "https://www.tiingo.com/llms.txt",
          "https://www.tiingo.com/documentation/appendix/developers"
        ],
        "ownership": {
          "status": "private",
          "checked": "2026-11-03",
          "sources": [
            "https://www.tiingo.com/about",
            "https://www.tiingo.com/blog/"
          ]
        }
      },
      "pageJsonUrl": "https://www.anchorterminal.com/tools/tiingo.json",
      "live": {
        "slug": "tiingo",
        "probe": {
          "target": "https://api.tiingo.com",
          "method": "get",
          "lastAt": "2026-11-04T19:35:15.798153605Z",
          "lastOk": true,
          "lastStatus": 200,
          "lastMs": 584,
          "authRequired": false,
          "uptime24h": 100,
          "uptime30d": 100,
          "p50ms24h": 494,
          "p95ms24h": 587,
          "samples24h": 43,
          "samples30d": 43,
          "days": [
            {
              "date": "2026-11-04",
              "probes": 43,
              "ok": 43
            }
          ]
        },
        "vendorStatus": {
          "page": "https://status.tiingo.com",
          "indicator": "unknown",
          "summary": "no machine-readable status found",
          "checkedAt": "2026-11-04T15:32:39.454553229Z"
        },
        "securityTxt": {
          "url": "https://tiingo.com/.well-known/security.txt",
          "state": "none",
          "checkedAt": "2026-11-04T15:54:24.456607715Z"
        },
        "updatedAt": "2026-11-04T19:35:15.798153605Z"
      }
    },
    "verify": {
      "accepts": "a page on tiingo.com or one of its subdomains",
      "badgeUrl": "https://www.anchorterminal.com/badges/tiingo.svg",
      "body": {
        "slug": "tiingo",
        "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/tiingo",
      "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/tiingo\"\u003e\u003cimg src=\"https://www.anchorterminal.com/badges/tiingo.svg\" alt=\"Tiingo on Anchor Terminal\" height=\"20\"\u003e\u003c/a\u003e",
        "markdown": "[![Tiingo on Anchor Terminal](https://www.anchorterminal.com/badges/tiingo.svg)](https://www.anchorterminal.com/tools/tiingo)",
        "link": "\u003ca href=\"https://www.anchorterminal.com/tools/tiingo\"\u003eTiingo 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/tiingo",
    "json": "https://www.anchorterminal.com/tools/tiingo.json",
    "llms": "https://www.anchorterminal.com/llms.txt",
    "markdown": "https://www.anchorterminal.com/tools/tiingo.md",
    "mcp": "https://www.anchorterminal.com/mcp",
    "pricing": "https://www.anchorterminal.com/tools/tiingo#pricing",
    "reviews": "https://www.anchorterminal.com/tools/tiingo#reviews",
    "slim": "https://www.anchorterminal.com/tools/tiingo.min.md"
  },
  "markdown": "## Overview\n\n**Grade D · 46.2/100 · rank #1118 of 1349 · #9 in Financial market data · not agent-ready · confidence low**\n\n\n## Assessment\n\nA dated changelog since 2017, a one-year support commitment after breaking changes, an Instatus status page and a free token at 1,000 requests a day. The token is documented in the URL, no OpenAPI document, error reference, SDK or MCP server exists, and the terms and privacy policy sit on a host that refused our reader.\n\n## Facts\n\n| Field | Value |\n| --- | --- |\n| Vendor | Tiingo Inc. (https://www.tiingo.com) |\n| Kind | HTTP API |\n| Category | Financial market data (https://www.anchorterminal.com/categories/market-data) |\n| Transport | HTTP, websocket |\n| Endpoint | `https://api.tiingo.com` |\n| Auth | API key · One API token of about 75 characters per account, from the account page after a browser signup. The connecting guide accepts it as `?token=` in the URL or as an `Authorization: Token \u003ctoken\u003e` header; WebSocket subscriptions carry it as `authToken` in the subscribe message. The token can be rotated on the account token page (added per the changelog of 12 May 2026). No scopes or expiry found. |\n| Pricing | Freemium ($30 / mo) · Starter plan free at 50 requests an hour, 1,000 a day, 1 GB a month and 500 unique symbols a month, internal use only; no card requirement stated. Power plan $30 a month at 10,000 requests an hour, 100,000 a day, 40 GB and all 110,424 symbols, also internal use only. Fundamentals are a separate add-on through a third-party provider, priced by email; commercial, redistribution and white-label licences by contact (https://www.tiingo.com/pricing, checked 2026-11-03). |\n| x402 | No · No x402, MPP or L402 in the documentation, llms.txt or pricing (checked 2026-11-03). A call without a token returns HTTP 403 with `{\"detail\":\"Please supply a token\"}`. |\n| Licence | unknown |\n| Docs | https://www.tiingo.com/documentation/general/overview |\n| llms.txt | https://www.tiingo.com/llms.txt |\n| Last release | 2026-10-09 |\n| Surface listed | The REST API at api.tiingo.com and its WebSocket, read from the documentation on www.tiingo.com (overview, connecting, end-of-day, fundamentals, developer programme, changelog), llms.txt, the pricing and about pages, the blog and the status page on 3 November 2026. No account was made and no call beyond an unauthenticated test was sent |\n| Reader note | www.tiingo.com and api.tiingo.com answered normally. app.tiingo.com, which holds the terms and privacy policy, answered 403 to every request, so those two documents are unread |\n| API | REST groups for end of day, news, crypto, forex, equity real time (beta), IEX, BOATS overnight (beta), fundamentals, fund fees, dividends and splits, plus search; WebSocket streams for crypto, forex, equity real time, IEX and BOATS. Share classes use dashes (BRK-A) |\n| Coverage | The pricing page counts 110,424 securities, 49,621 US and Chinese stocks and 60,803 ETFs and mutual funds, with 30 years of price history and 5 or 15 years of fundamentals; the fundamentals page says 5,500 US equities and ADRs over 20 years. News keeps 3 months of queryable history on self-serve plans |\n| Rate limits | Starter 50 requests an hour, 1,000 a day, 1 GB a month, 500 unique symbols; Power 10,000 an hour, 100,000 a day, 40 GB. No per-minute or per-second limit. No 429 documentation found |\n| Response size | `startDate` and `endDate`, `resampleFreq` (daily, weekly, monthly), `format=json` or csv, and a `columns` selection on some endpoints |\n| Errors | 403 with a JSON `detail` field without a token in our one test call. No error reference in the documentation we read |\n| SDKs | None official. The docs name third-party packages, and the developer programme lists integrations that bring their own token |\n| Use terms | Starter and Power are internal use only, defined on the pricing page as personal use with no display or sharing; commercial accounts are licensed for internal commercial use; redistribution and white-label need separate licences by contact. The terms themselves were not read |\n| Status | status.tiingo.com on Instatus with 13 components and RSS, plus an UptimeRobot page at uptime.tiingo.com whose data did not load for our reader |\n| Legal entity | Tiingo Inc. per the copyright line, Alexandria, Virginia per the about page, which says the company was formed about ten years ago; the blog says Tiingo was formed in 2014 |\n| Capabilities | market.prices, market.history, market.news, market.fundamentals, market.crypto, data.markets |\n| Tags | hosted, freemium, api-key, llms-txt, status-page, free-tier, closed-source, stocks, crypto, forex, streaming, personal-use |\n| JSON | https://www.anchorterminal.com/api/v1/tools/tiingo.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: low. 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 | 60 | 12.0 |\n| Performance | 10% | pending | pending | n/a |\n| Schema \u0026 documentation | 13% | 16.2 | 39 | 6.3 |\n| Agent ergonomics | 13% | 16.2 | 56 | 9.1 |\n| Security \u0026 auth | 14% | 17.5 | 32 | 5.6 |\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 | 50 | 4.4 |\n| Transparency \u0026 trust (editorial 28, provenance 86) | 7% | 8.8 | 57 | 5.0 |\n| Negative events | up to −15 | up to −15 | none recorded | 0 |\n| **Total** | | | | **46.2 → D** |\n\n### Why each score\n\n- Reliability 60 (checked 2026-11-03): Read with the hosted lines. A public status page on Instatus at status.tiingo.com lists 13 components with a notice history (20). The history in the 90 days to 3 November 2026 shows a 9 hour 59 minute outage of the Blue Ocean ATS endpoints on 21 October, a WebSocket issue on 21 September and two maintenance windows, with nothing recorded before 21 September; a long outage of one niche feed rather than the core price API (15). Limits are published with numbers, 50 and 10,000 requests an hour, 1,000 and 100,000 a day and 1 GB and 40 GB a month (15). No 429, Retry-After or backoff guidance was found (0). No SLA found (0). The end-of-day, news, crypto and forex APIs are generally available, while Equity Realtime and BOATS are in beta (10). 20 + 15 + 15 + 0 + 0 + 10 = 60.\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 39 (checked 2026-11-03): No OpenAPI document or MCP server was found (0 of 25). llms.txt and llms-full.txt are served, with product routing and licence notes (10). Each documentation page states the endpoint's purpose and timing, such as prices after 5.30 pm ET with corrections to 8 pm, with little on when not to use it (12 of 20). Parameters and response fields are tabled with names and meanings, but types, defaults and allowed values are partly in prose (8 of 15). Examples in Python, Node and PHP on every page; no error responses documented (7 of 15). A changelog dated by entry since 2017 and a one-year support commitment after breaking changes, with no version in the path (12 of 15). 0 + 10 + 12 + 8 + 7 + 12 = 39.\n- Agent ergonomics 56 (checked 2026-11-03): `startDate`, `endDate`, `resampleFreq`, `format=csv` and column selection on some endpoints size responses; no field selection on end-of-day prices (15 of 25). Date ranges throughout and limit and offset on news, no cursor (15 of 20). Errors are undocumented; a missing token answered 403 with a JSON `detail` field in our one test call (3 of 20). Every call is a read (16 of 20). Few required parameters, but no official SDK; the docs point to third-party packages (7 of 15). 15 + 15 + 3 + 16 + 7 = 56.\n- Security \u0026 auth 32 (checked 2026-11-03): One token per account with no scopes, documented as `?token=` in the URL or an Authorization header, with rotation on the account page since May 2026 (20 less 10 for the query string, plus 2 for rotation, so 12). Every endpoint is a read (15 of 20). News is third-party text and no guidance was found (5 of 15). A usage page shows hourly and daily requests and bandwidth, not a per-call log (0 of 15, no log). security.txt redirects on www and is absent on api, and no disclosure policy, bug bounty or certification was found (0 of 20). 12 + 15 + 5 + 0 + 0 = 32.\n- Payments \u0026 pricing 30 (checked 2026-11-03): No x402, MPP or L402 (0). Two plan prices public without login, $0 and $30 a month, sold by requests an hour and a day rather than per call; fundamentals and commercial licences by email (10). A free Starter plan at 1,000 requests a day with no card requirement stated (20). The token comes from a browser signup, and the developer programme forbids programmatic registration (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 50 (checked 2026-11-03): Read as a closed service. The changelog's newest entry is 9 October 2026 (30). Entries dated 9 October and 8 September 2026 fall in the last 90 days, with 21 July just outside, and the status page adds a maintenance window on 28 September (12 of 20). A dated changelog, a support address and a blog, with the developer programme promising priority email support (8 of 15). No official SDK (0 of 15). No package to assess (0 of 10). 30 + 12 + 8 + 0 + 0 = 50.\n- Transparency \u0026 trust 57 (checked 2026-11-03): A closed service whose terms sit on app.tiingo.com, which answered 403 to every request, so they were not read; the pricing and documentation pages define internal, commercial and redistribution licences (8 of 30). The privacy policy is on the same host and was not read (0 of 30). The developer programme commits to a year of continued support after a breaking change, with changes posted in the changelog and emailed to registered developers, and the changelog's 9 October 2026 entry describes a changed default for prevClose (16 of 20). Equinix hosting is named on the about page, with no processor list or data location (4 of 20). 8 + 0 + 16 + 4 = 28.\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/tiingo.md (JSON https://www.anchorterminal.com/fixes/tiingo.json). The whole list for a coding agent comes from `POST https://www.anchorterminal.com/api/v1/fix-list` with `{\"listing\": \"tiingo\", \"plan\": \"read\"}`, free while the beta runs\n\n### What we couldn't check\n\n- unchecked: the terms of service and privacy policy, because app.tiingo.com answered 403 to every request from our reader and from curl; www.tiingo.com and api.tiingo.com answered normally, so the listing stands on the documentation and pricing pages\n- unchecked: the uptime figures on uptime.tiingo.com, an UptimeRobot page whose data did not load\n- unchecked: llms-full.txt, named in llms.txt as the complete reference\n- Whether the Starter plan needs a card; the pricing page lists $0 and says nothing about a card\n- The price of the fundamentals add-on and the identity of its third-party provider, which the documentation does not name\n- Judgement call on reliability. The 21 October 2026 outage lasted about 10 hours but hit the Blue Ocean ATS endpoints only, so it was scored between minor and major (15 of 30)\n- Judgement call, not a deduction. The changelog of 9 October 2026 says prevClose on Equity Realtime and BOATS now defaults to the prior official close, a changed default announced the same day on beta APIs\n- firstReleased is left empty. The blog says Tiingo was formed in 2014, the changelog begins 5 July 2017 and the domain dates from 4 March 2011\n- The founder's surname. Every blog post is by Rishi S., who writes that he formed Tiingo in 2014; no first-hand page gives the full name, so the humans file records what the site shows\n\n### Sources\n\n- documentation overview (limits, formats, permitted use): \u003chttps://www.tiingo.com/documentation/general/overview\u003e (seen 2026-11-03)\n- connecting guide (token in URL or header, WebSocket): \u003chttps://www.tiingo.com/documentation/general/connecting\u003e (seen 2026-11-03)\n- end-of-day documentation: \u003chttps://www.tiingo.com/documentation/end-of-day\u003e (seen 2026-11-03)\n- fundamentals documentation (third-party add-on): \u003chttps://www.tiingo.com/documentation/fundamentals\u003e (seen 2026-11-03)\n- developer programme (deprecation commitment): \u003chttps://www.tiingo.com/documentation/appendix/developers\u003e (seen 2026-11-03)\n- changelog: \u003chttps://www.tiingo.com/documentation/general/changelog\u003e (seen 2026-11-03)\n- llms.txt: \u003chttps://www.tiingo.com/llms.txt\u003e (seen 2026-11-03)\n- pricing: \u003chttps://www.tiingo.com/pricing\u003e (seen 2026-11-03)\n- about page: \u003chttps://www.tiingo.com/about\u003e (seen 2026-11-03)\n- blog index and data quality post (formed in 2014): \u003chttps://www.tiingo.com/blog/\u003e (seen 2026-11-03)\n- status page: \u003chttps://status.tiingo.com/\u003e (seen 2026-11-03)\n- status history: \u003chttps://status.tiingo.com/history/1\u003e (seen 2026-11-03)\n- uptime page (data did not load): \u003chttps://uptime.tiingo.com/\u003e (seen 2026-11-03)\n- prices endpoint without a token, 403: \u003chttps://api.tiingo.com/tiingo/daily/aapl/prices\u003e (seen 2026-11-03)\n- privacy policy (403 on app.tiingo.com): \u003chttps://app.tiingo.com/privacy\u003e (seen 2026-11-03)\n- robots.txt: \u003chttps://www.tiingo.com/robots.txt\u003e (seen 2026-11-03)\n- RDAP for tiingo.com: \u003chttps://rdap.org/domain/tiingo.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/tiingo/history.json\n\n- 2026-11-03: graded 46.2 D (methodology 0.7)\n\n## Who's behind it (provenance 86/100, checked 2026-11-03)\n\n| Check | Finding | Points |\n| --- | --- | --- |\n| Legal entity named | Tiingo Inc. | 20/20 |\n| Domain age | tiingo.com, registered 2011-03-04 (15 years) | 15/15 |\n| Endpoint on the vendor's domain | api.tiingo.com | 15/15 |\n| Terms of service | published, but our reader couldn't read it | 7/10 |\n| Privacy policy | read, states 5 of the 8 things a reader expects | 7.8/10 |\n| Status page | status.tiingo.com | 10/10 |\n| Changelog | published | 10/10 |\n| security.txt | not found | 0/10 |\n| People named | 1 named with their role, none with a public profile | 7/10 |\n| Support route | a support address, help pages | 5/5 |\n\nTiingo Inc. appears in the copyright line of the about page, which gives Alexandria, VA. No registration number or address was found on a page we could read.\n\nwww.tiingo.com/privacy redirects to app.tiingo.com/privacy, and app.tiingo.com/terms is the terms address; app.tiingo.com answered 403 to every request from our reader and from curl, so neither document was read.\n\nwww.tiingo.com/robots.txt disallows only /admin. The developer programme page forbids programmatic registration or login and wrapping the login form; nothing read forbids reading the website.\n\nRDAP gives tiingo.com a registration date of 4 March 2011 at GoDaddy.\n\n/.well-known/security.txt on www.tiingo.com redirects (301) and api.tiingo.com returns 404, so none.\n\nThe status page is Instatus at status.tiingo.com, named in llms.txt with uptime.tiingo.com as an audited uptime page.\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://app.tiingo.com/terms), read 2026-11-03. Our reader couldn't read it (the page answered HTTP 404 to our reader).\n\n\n**Privacy policy** (https://app.tiingo.com/privacy), read 2026-11-03, dated 2026-02-18, states 5 of the 8 things a reader expects.\n\n- Gives the date it was last updated. Last updated 2026-02-18.\n- Not found in the text. Says how long data is kept.\n- Not found in the text. Says whether personal data is sold or shared for advertising.\n- Not found in the text. Says what rights people have over their data.\n- Gives a privacy contact. Gives an email address, hidden from our reader by the page.\n- Says where data is transferred or stored. Data goes to the United States.\n- Also in the text (2026-11-03). Accounts registered with a company email domain are treated as business accounts, and Tiingo may display the company's name and logo in marketing materials and client lists. \"We may use and publicly display that entity’s name, trade names, trademarks, service marks, and logos in Tiingo marketing materials, customer or client lists, sales materials, presentations, and other public-facing communications\"\n- Also in the text (2026-11-03). Removing a logo from marketing requires closing all accounts on the company's domain or entering an enterprise licence agreement at additional cost. \"If a business does not want its logo used, its authorized representative may request closure of all Accounts using its domain, after which Tiingo will remove the logo from public marketing and client-list materials within a commercially reasonable time\"\n- Also in the text (2026-11-03). Certain user data may be reported to stock exchanges where the SEC or other law requires it, and personal data may be disclosed in some circumstances. \"Certain User Data may be reported to the stock exchanges (e.g. NASDAQ, NYSE, IEX, etc.) as is required by the Securities Exchange Commission (“SEC”) or other applicable governing law.\"\n\n## Humans behind the project (researched 2026-11-03 from public pages, not part of the grade)\n\n### Key people\n\n- Rishi S., Founder\n- Note: The only person named on a first-hand page is the blog author Rishi S., who writes that he formed Tiingo in 2014 and has run it since; the blog gives no surname or title, and the about page, which says the company was formed about ten years ago in Alexandria, VA, names no one. Third-party pages give a full name and the CEO title, but none is first-hand, so they are not used. Investors were looked for on the about page, the pricing page, the blog index and about-us page, and llms.txt, and in two searches; no first-hand page mentions funding or backers.\n- Tiingo Inc.: LinkedIn https://www.linkedin.com/company/tiingo X https://x.com/tiingofinance\n\n### Getting support\n\n- Support email: support@tiingo.com\n- Help: https://www.tiingo.com/products/contact\n- Help: https://www.tiingo.com/documentation/general/overview\n- Sources: https://www.tiingo.com/about, https://www.tiingo.com/blog/, https://www.tiingo.com/blog/about-us/, https://www.tiingo.com/blog/tiingo-data-quality-how-we-find-and-fix-market-data-errors/, https://www.tiingo.com/llms.txt, https://www.tiingo.com/documentation/appendix/developers\n\n## Live (updated 2026-11-04 19:35 UTC)\n\n- Right now: up, HTTP 200, 584 ms, checked 2026-11-04 19:35 UTC (get on `https://api.tiingo.com`)\n- Uptime 24h 100.0% (43 probes) · 30 days 100.0% (43 probes) · p50 494 ms · p95 587 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/tiingo.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| Power, 10,000 requests an hour | $30 | per month (plan) | internal use only, 100,000 requests a day, 40 GB a month |\n\nAcross all listings: https://www.anchorterminal.com/prices/index.md\n\n## Strengths\n\n- Changelog dated by entry from 2017 to 9 October 2026, and a stated one-year support window after a breaking change\n- Status page on Instatus with 13 components and a notice history\n- Limits in requests an hour, a day and bandwidth a month, with no per-second throttle, and token rotation on the account page\n- Free Starter token at 1,000 requests a day, and a $30 a month Power plan published without login\n- llms.txt and llms-full.txt served for agents, with product routing notes\n\n## Weaknesses\n\n- The connecting guide documents the token as `?token=` in the URL alongside the header\n- No OpenAPI document, no documented error responses, no official SDK and no MCP server\n- Terms and privacy policy on app.tiingo.com answered 403 to every request, so neither was read\n- Both self-serve plans are internal use only; display, redistribution and white-label need a negotiated licence\n- Blue Ocean ATS endpoints were down for about 10 hours on 21 October 2026, and the status history starts on 21 September 2026\n\n\n\n## Before you call it (notes for agents)\n\n1. Send the token as `Authorization: Token \u003ctoken\u003e`, not as `?token=` in the URL\n2. Ask for `format=csv` on large price pulls; the docs say CSV is 4 to 5 times faster than JSON, and bandwidth counts against the monthly cap\n3. Count requests an hour and a day, not per second; 50 an hour on Starter, 10,000 on Power, reset on the hour and at midnight ET\n4. Expect 403 `{\"detail\":\"Please supply a token\"}` without a token; other error shapes are undocumented, so log the body\n5. Use dashes in share classes (BRK-A), and fetch supported_tickers.zip rather than guessing symbols\n\n## Connect\n\nFirst request:\n\n```bash\ncurl -H \"Authorization: Token $TIINGO_TOKEN\" \"https://api.tiingo.com/tiingo/daily/aapl/prices?startDate=2025-11-03\u0026format=csv\"\n```\n\nThrough letme: https://letme.dev/tiingo. 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| Twelve Data | BB | 70 | 197 | market.prices, market.history, market.fundamentals, market.crypto, market.news, data.markets | no | https://www.anchorterminal.com/tools/twelve-data.md |\n| EODHD | C | 59 | 651 | market.history, market.prices, market.fundamentals, market.news, market.crypto, data.markets | no | https://www.anchorterminal.com/tools/eodhd.md |\n| Financial Modeling Prep | D | 48.7 | 1056 | market.fundamentals, market.prices, market.history, market.news, market.crypto, 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.history, market.crypto, data.markets | no | https://www.anchorterminal.com/tools/finnhub.md |\n| Alpha Vantage | E | 41.5 | 1197 | market.prices, market.history, market.fundamentals, market.news, data.markets, market.crypto | no | https://www.anchorterminal.com/tools/alpha-vantage.md |\n| Financial Datasets | C | 61.8 | 492 | market.fundamentals, market.prices, market.history, market.news, data.markets | yes | https://www.anchorterminal.com/tools/financial-datasets.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 overview documents three limit types, requests an hour, requests a day and bandwidth a month, with the numbers on the pricing page, and says there is no per-minute or per-second limit (source: \u003chttps://www.tiingo.com/documentation/general/overview\u003e)\n- A dated changelog runs from 5 July 2017 to 9 October 2026, with 2026 entries on 31 January, 20 March, 12 May, 7 July (Equity Realtime API in beta), 21 July (BOATS Overnight in beta), 8 September and 9 October (source: \u003chttps://www.tiingo.com/documentation/general/changelog\u003e)\n- The developer programme page commits to keeping current functionality supported for at least one year after a breaking change, to posting changes in the changelog and emailing registered developers, and forbids programmatic registration or login (source: \u003chttps://www.tiingo.com/documentation/appendix/developers\u003e)\n- The status page at status.tiingo.com (Instatus) lists 13 components; its history shows a 9 hour 59 minute outage of the Blue Ocean ATS endpoints on 21 October 2026, two maintenance windows and a WebSocket notice, with nothing before 21 September 2026 (source: \u003chttps://status.tiingo.com/history/1\u003e)\n- The terms and privacy policy live on app.tiingo.com, which answered every request with 403, so neither was read; the docs and pricing state the licence tiers (internal use, commercial, redistribution) (source: \u003chttps://app.tiingo.com/privacy\u003e)\n- No MCP server, OpenAPI document or official SDK was found; llms.txt and llms-full.txt are served, and the docs point to third-party packages\n\n- #9 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 Tiingo](https://www.anchorterminal.com/compare/alpha-vantage-vs-tiingo.md): E 41.5 vs D 46.2\n- [Databento vs Tiingo](https://www.anchorterminal.com/compare/databento-vs-tiingo.md): C 60.3 vs D 46.2\n- [Finnhub vs Tiingo](https://www.anchorterminal.com/compare/finnhub-vs-tiingo.md): E 45.1 vs D 46.2\n- [Intrinio vs Tiingo](https://www.anchorterminal.com/compare/intrinio-vs-tiingo.md): C 54.2 vs D 46.2\n- [Massive (formerly Polygon.io) vs Tiingo](https://www.anchorterminal.com/compare/massive-vs-tiingo.md): BB 73.1 vs D 46.2\n- [Tiingo vs Twelve Data](https://www.anchorterminal.com/compare/tiingo-vs-twelve-data.md): D 46.2 vs BB 70\n- [Financial Datasets vs Tiingo](https://www.anchorterminal.com/compare/financial-datasets-vs-tiingo.md): C 61.8 vs D 46.2\n- [Financial Modeling Prep vs Tiingo](https://www.anchorterminal.com/compare/financial-modeling-prep-vs-tiingo.md): D 48.7 vs D 46.2\n- [EODHD vs Tiingo](https://www.anchorterminal.com/compare/eodhd-vs-tiingo.md): C 59 vs D 46.2\n- [Benzinga vs Tiingo](https://www.anchorterminal.com/compare/benzinga-vs-tiingo.md): D 49.2 vs D 46.2\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 tiingo.com or one of its subdomains. 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\": \"tiingo\", \"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/tiingo\"\u003e\u003cimg src=\"https://www.anchorterminal.com/badges/tiingo.svg\" alt=\"Tiingo on Anchor Terminal\" height=\"20\"\u003e\u003c/a\u003e\n```\n\nMarkdown badge, for a README:\n\n```markdown\n[![Tiingo on Anchor Terminal](https://www.anchorterminal.com/badges/tiingo.svg)](https://www.anchorterminal.com/tools/tiingo)\n```\n\nPlain link:\n\n```html\n\u003ca href=\"https://www.anchorterminal.com/tools/tiingo\"\u003eTiingo 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 Tiingo 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/tiingo-dark.png\n- Light: https://www.anchorterminal.com/assets/share/tiingo-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": "Tiingo",
        "url": ""
      }
    ],
    "description": "Tiingo is a market data API from Tiingo Inc. for end-of-day and real-time US equity prices, fund fees, fundamentals, dividends and splits, news, crypto and forex, over REST and WebSocket. Agents call api.tiingo.com with an account token.",
    "facts": [
      "rank #1118 of 1349",
      "API key auth",
      "0 desk reviews"
    ],
    "h1": "Tiingo",
    "image": "https://www.anchorterminal.com/assets/og/tools-tiingo.png",
    "path": "/tools/tiingo",
    "published": "2026-10-01",
    "section": "tools",
    "title": "Tiingo review (2026): pricing, alternatives and grade D",
    "toc": null,
    "updated": "2026-11-04",
    "url": "https://www.anchorterminal.com/tools/tiingo"
  },
  "tokens": {
    "markdown": 7250,
    "slim": 1830
  },
  "version": 1
}
