fshy

Home / Data APIs

Tiingo

www.tiingo.com/about/pricingMarket data API (US and Chinese stocks, ETFs, mutual funds, end of day prices, IEX, crypto, forex, news)data-apis/tiingoJSONcomparereport an errorprovider JSON

Free allowance
Starter plan USD 0/month: 50 requests per hour, 1000 requests per day, 500 unique symbols per month and 1 GB of bandwidth per month; 30+ years of end-of-day price history
Verdict
caveatusable, with a named limit or an unprobed read path
Cost
free tier
Identity
emailno card, no phone
Binding limit
request-rate50 requests per hour on Starter; 1000 requests per day on Starter, reset at midnight EST
Evidence
documented36 sources; a first-party page was read and the sentence quoted
Freshness
stale on 2026-12-04checked 2026-11-03 (live); stale on 2026-12-04
Free tierStarter plan USD 0/month: 50 requests per hour, 1000 requests per day, 500 unique symbols per month and 1 GB of bandwidth per month; 30+ years of end-of-day price history
unit requests; metered on request-count; Hourly requests reset every hour, daily requests at midnight EST, and monthly bandwidth on the first of the month at midnight EST; there is no per-minute or per-second limit. The News API reaches 3 months of history. The Power plan is USD 30/month (or USD 300/year) for individuals with 10,000 requests per hour, 100,000 per day and 40 GB per month.
Pricenone stated
Limits
  • request-rate (binding) 50 requests per hour on Starter source
  • request-rate (binding) 1000 requests per day on Starter, reset at midnight EST source
  • volume-quota 1 GB of bandwidth per month on Starter, reset on the first of the month source
500 unique symbols per month on Starter (no limits kind counts symbols). Bulk path: no bulk path for prices; supported_tickers.zip (805453 bytes, keyless) is a daily ticker list, not prices.
Bindingrequest-rate Pulled steadily, the 1000 per day count binds before the 50 per hour; a burst meets the hourly 50 first.
Identityemail Every API call needs a token from an account. The registration form asks for a username, an email, a password entered twice and a terms checkbox, behind a Cloudflare Turnstile check; it has no card field. Card or PayPal is asked only when signing up for a paid plan.
Egress1 GB of API bandwidth per month on Starter, 40 GB on Power
free allowance: 1 GB per month
Per-object capnot stated per call; 1 GB of bandwidth per month bounds the Starter plan
Interfacerest GET https://api.tiingo.com/tiingo/daily/<ticker>/prices with the token as ?token= or an Authorization: Token header; JSON or CSV via format=; the documentation also describes a WebSocket API. A call with no token answered HTTP 403.
Toolingcurl or any HTTP client; supported_tickers.zip lists every ticker and is updated daily
Composes withDeep end-of-day history (30+ years) at 1000 calls a day for up to 500 symbols a month; it pairs with FRED for macro series. Marketstack's US end-of-day prices are licensed from Tiingo.
ReliabilityPast the hourly, daily or monthly bandwidth limit the API answers HTTP 429; an end-of-day call past the Starter unique-symbol limit answers HTTP 403.
NotesThe widest free end-of-day history of the market data records (30+ years at 1000 calls a day), against two caveats: 500 symbols a month and no persistent storage on Starter.
Evidence notedocumented The Starter quotas, reset times, storage rule and registration fields are documented on the pricing, documentation and terms pages and in the site's own script bundle. Probes measured that a call with no token answers HTTP 403 and that supported_tickers.zip is served with no key. The 429 and 403 statuses are documented; the bodies and exact reset moments of the cut-offs need a token to measure (unverified: behind a sign-up).
Parsed numbers
  • has-free-tier 1
  • request-rate 50 requests / hour
  • request-rate 1000 requests / day
  • volume-quota 1 GB
Evidence 36
datesourcewhat it proved
2026-10-31www.tiingo.com/about/pricingStarter is USD 0/month against Power at USD 30/month
2026-10-31www.tiingo.com/about/pricingStarter allows 50 requests per hour against 10,000 on Power
2026-10-31www.tiingo.com/about/pricingStarter allows 1000 requests per day against 100,000 on Power
2026-10-31www.tiingo.com/about/pricingStarter covers 500 unique symbols per month
2026-10-31www.tiingo.com/about/pricingStarter has 1 GB of bandwidth per month against 40 GB on Power
2026-10-31www.tiingo.com/about/pricingboth plans carry 30+ years of price history
2026-10-31www.tiingo.com/about/pricingthe individual paid plan is USD 30/month or USD 300/year
2026-10-31www.tiingo.com/about/pricingthe News API reaches 3 months of history
2026-10-31www.tiingo.com/about/pricingnot published
2026-10-31www.tiingo.com/documentation/general/overviewthe API needs an account
2026-10-31www.tiingo.com/documentation/general/overviewthere is no per-minute or per-second limit
2026-10-31www.tiingo.com/documentation/general/overviewhourly requests reset every hour
2026-10-31www.tiingo.com/documentation/general/overviewdaily requests reset at midnight EST
2026-10-31www.tiingo.com/documentation/general/overviewmonthly bandwidth resets on the first of the month
2026-10-31www.tiingo.com/documentation/general/connectingthe token is passed in the URL or in a header
2026-10-31www.tiingo.com/documentation/end-of-daysupported_tickers.zip is a ticker list, not a price file
2026-10-31www.tiingo.com/tosnot published
2026-10-31www.tiingo.com/tosnot published
2026-10-31www.tiingo.com/tosa card or PayPal account is asked when signing up for a paid plan
2026-10-31apimedia.tiingo.com/dist/main-es2015.2c2e67e72a8af52f39de.jsthe registration form fields are username, email, password twice, a mailing-list box and a terms box
2026-10-31apimedia.tiingo.com/dist/main-es2015.2c2e67e72a8af52f39de.jsregistration sends a Cloudflare Turnstile token
2026-10-31probe: https://api.tiingo.com/tiingo/daily/aapl/pricesa price call with no token answered HTTP 403
2026-10-31probe: https://api.tiingo.com/tiingo/daily/aapl/pricesthe API asks for a token
2026-10-31probe: https://apimedia.tiingo.com/docs/tiingo/daily/supported_tickers.zipthe ticker list is served with no key at 805453 bytes
2026-10-31marketstack.com/productMarketstack licenses its US end-of-day prices from Tiingo
2026-11-02www.tiingo.com/llms-full.txtHTTP 429 at the hourly, daily and bandwidth limits
2026-11-02www.tiingo.com/llms-full.txtHTTP 403 on end-of-day calls at the Starter unique-symbol limit
2026-11-02www.tiingo.com/llms-full.txtStarter allows 500 unique symbols a month
2026-11-02www.tiingo.com/llms-full.txtStarter allows 50 requests an hour
2026-11-02www.tiingo.com/llms-full.txtStarter allows 1,000 requests a day
2026-11-02www.tiingo.com/llms-full.txtStarter allows 1 GB of bandwidth a month
2026-11-02www.tiingo.com/llms-full.txtdaily requests reset at midnight EST
2026-11-02www.tiingo.com/llms-full.txtmonthly bandwidth resets on the first at midnight EST
2026-11-02ta-nuki.hatenablog.com/entry/2024/02/20/230000a Starter account received this JSON detail at the hourly limit
2026-11-02www.tiingo.com/llms-full.txtthe cut-off statuses are documented
2026-11-02www.tiingo.com/llms-full.txtthe Starter limits are unchanged
More fields 3
bulk pathno bulk path for prices; supported_tickers.zip is a daily ticker list
history depth30+ years of end-of-day prices; 3 months of news
cutoff body reportedStarter hourly limit, as shown in a third-party blog dated 2024-02-20: {'detail': 'Error: You have run over your hourly request allocation. Please upgrade at https://api.tiingo.com/pricing to have your limits increased.'}; the status of that answer is not in the source
Unknown values 1
  • retention stated: the field does not apply to this kind of offer