Near real-time, low-latency finance API for the stock market, cryptocurrencies and currency exchange.
YH-compatible quotes, charts, options and 30+ fundamentals modules behind one key. A stale symbol refreshes from the source the moment you request it — any stock, crypto pair or currency cross, with daily history back to 1970. Create a free key and make your first call in minutes.
- quote age in market hours
- ≤ 1 min
- daily bars, back to 1970
- 13M+
- endpoints on every plan
- 12
$ curl -H "x-api-key: sk_live_••••••••" -G \
https://api.stockdataapi.com/v6/finance/quote \
-d symbols=AAPL,BTC-USD,EURUSD=X
HTTP/1.1 200 · x-ratelimit-remaining: 99982
{
"quoteResponse": { "result": [
{ "symbol": "AAPL",
"quoteType": "EQUITY",
"regularMarketPrice": 316.83,
"regularMarketChangePercent": 2.19,
… 84 more fields },
{ "symbol": "BTC-USD",
"quoteType": "CRYPTOCURRENCY",
"regularMarketPrice": 69464.0,
"regularMarketChangePercent": 8.04,
… 64 more fields },
{ "symbol": "EURUSD=X",
"quoteType": "CURRENCY",
"regularMarketPrice": 1.1679515,
"regularMarketChangePercent": -0.02,
… 55 more fields }
], "error": null }
}
$ Every market, one symbol format
Symbols follow the YH conventions your code already uses, so a stock, an index, a coin and a currency pair all go through the same endpoints with the same key.
- Stocks & ETFs
AAPLMSFTSPYQuotes, history, options chains and fundamentals - Indices
^GSPC^DJI^VIXQuotes and history - Crypto
BTC-USDETH-USDQuotes and history - Currencies
EURUSD=XUSDJPY=XQuotes and history - Futures
ES=FNQ=FQuotes and history, delayed about 10 minutes at the source
From signup to first call in minutes
Create a free key
Sign up and confirm your email with a 6-digit code. Add a card on Stripe's page — nothing is charged unless you upgrade — then create your key from the dashboard.
Send it in a header
Every request carries the key in x-api-key. Batch up to 50 symbols in one quote call, depending on your plan.
Watch where you stand
Each response reports your remaining allowance in X-RateLimit headers, and the dashboard shows the same counters live with 14 days of history.
curl -H "x-api-key: $KEY" \
"https://api.stockdataapi.com/v6/finance/quote?symbols=AAPL,BTC-USD,EURUSD=X"One request, three asset classes. Unknown symbols are left out of the result rather than failing the call.
Endpoints
Every plan gets every endpoint. Responses match YH envelope shapes (quoteResponse, chart, optionChain…), so existing clients work unchanged.
Prices and history
Options and company data
- /v11/finance/quoteSummary/{symbol}30+ fundamentals modules: profile, financials, holders
- /v7/finance/options/{symbol}Full option chains with strikes, IV and open interest
- /ws/insights/v1/finance/insightsResearch insights, technical events, sig. developments
- /v6/finance/recommendationsbysymbol/{symbol}Similar symbols with scores
Search and discovery
Pricing
Start free — a card on file is required, and you are only charged if you upgrade. Paid plans raise the monthly ceiling; the per-minute limit is the same on every tier.
Payments are handled by Stripe. A new tier applies to the key you already hold; cancelling keeps paid access until the period ends.
Questions
Anything not answered here is covered in the documentation.
Do I need a card for the free plan?
Yes. A card on file is required before your first key is issued. Saving it costs nothing and you are only charged if you upgrade. The card is entered on Stripe's own page and never reaches this site.
How fresh is the data?
Quotes and charts refresh from the source at the moment you request them, so in market hours a quote is at most about a minute old. Futures arrive delayed about ten minutes at the source. Settled history never changes once it is stored.
Will my existing code work?
Responses keep YH envelope shapes — quoteResponse, chart, optionChain and the rest — so existing parsers, SDKs and spreadsheets keep working. Point them at the API's base URL and send your key in an x-api-key header.
What happens when I reach my limit?
The API answers with a 429 and a Retry-After header saying how long to wait. Every response carries X-RateLimit headers, and your dashboard shows the same counters live.
Does a second key add to my allowance?
No. Every key on an account spends one shared allowance. Extra keys exist so you can rotate without downtime and keep staging apart from production.
Can I change or cancel my plan?
Yes, from your dashboard. A new tier applies immediately to the key you already have — nothing to re-issue or redeploy. Cancelling keeps paid access until the end of the period, then the account returns to the free plan.
Your first call is a few minutes away.
A free key, every endpoint, full history.