Stocks & Finance API

Get live market quotes and fundamentals from one endpoint

The Finance API returns real-time quotes, charts, fundamentals and analyst data as clean JSON.

no credit card1,000 free credits · instant API key · live in 10 seconds
Missing a Stocks & Finance endpoint, or need a source we don't have yet?Contact us real people · same-day reply.
S
/finance/v1

78 active endpoints, on 1 and 2 credit tiers.

  • POST/finance/v1/quote
  • POST/finance/v1/chart
  • POST/finance/v1/search
  • POST/finance/v1/fundamentals
  • POST/finance/v1/analyst
  • POST/finance/v1/holders
  • POST/finance/v1/news
  • +71 more

What Stocks & Finance endpoints does ReefAPI ship?

78 live read endpoints. Read-only data API: no writes, no account actions, no dashboard access on the target site.

78 endpoints

quote

1 cr

single or multi-symbol quote.

required
symbol
optional
symbols

chart

1 cr

OHLCV chart data.

required
symbol
optional
range, interval

search

1 cr

symbol search.

required
query
optional
quotesCount

fundamentals

1 cr

quoteSummary modules.

required
symbol
optional
modules

analyst

1 cr

recommendations, upgrades/downgrades, price targets.

required
symbol
optional

holders

1 cr

insider/institution/fund ownership and holder activity.

required
symbol
optional

news

1 cr

Yahoo Finance news search.

required
query
optional
count, symbol

options

1 cr

option chain.

required
symbol
optional
date

calendar

1 cr

earnings/calendar quoteSummary modules.

required
symbol
optional

events

1 cr

dividends and splits from chart events.

required
symbol
optional

screener_predefined

1 cr

Yahoo saved screeners.

required
optional
scrIds, count, start

screener

2 cr

Yahoo custom screener POST.

required
optional
criteria, size, offset, sortField, sortType

market_summary

1 cr

market summary indices.

required
optional
region

trending

1 cr

trending symbols.

required
optional
region, count

lookup

1 cr

Yahoo symbol universe lookup.

required
query
optional
count

technicals

1 cr

local technical indicators from chart OHLCV.

required
symbol
optional
range, interval, periods

economic

1 cr

FRED economic series via official API.

required
series, fred_api_key
optional
limit, sort_order

v1/market/tickers

2 cr

public NASDAQ/NYSE/AMEX ticker universe.

required
optional
limit

v1/search

1 cr

RapidAPI-compatible alias for search.

required
query
optional

v1/market/quotes

1 cr

RapidAPI-compatible alias for quote.

required
symbol
optional
symbols

v1/stock/history

1 cr

RapidAPI-compatible alias for chart.

required
symbol
optional

v2/stock/history

1 cr

RapidAPI-compatible alias for chart.

required
symbol
optional

v1/market/screener

1 cr

RapidAPI-compatible alias for screener.

required
optional
criteria, scrIds

v1/stock/modules

1 cr

RapidAPI-compatible alias for quoteSummary modules.

required
symbol
optional

v1/market/news

1 cr

RapidAPI-compatible alias for news.

required
query
optional
symbol

v2/market/news

1 cr

RapidAPI-compatible alias for news.

required
query
optional
symbol

v1/options

1 cr

RapidAPI-compatible alias for options.

required
symbol
optional

v1/most-active

1 cr

options most-active contracts derived from Yahoo option chains.

required
optional
symbol, symbols, count

v1/unusual-options-activity

1 cr

unusual options activity derived from Yahoo option chain volume/open-interest.

required
optional
symbol, symbols, count

calendar/earnings

1 cr

symbol earnings calendar via quoteSummary.

required
symbol
optional

calendar/earnings_market

1 cr

market-wide upcoming earnings calendar (all symbols) via Yahoo visualization.

required
optional
start, end, date, count, offset, region, lang

calendar/dividends

1 cr

symbol dividends via chart events.

required
symbol
optional

calendar/economic_events

1 cr

global economic events via Yahoo visualization calendar.

required
optional
start, end, count, offset

calendar/public_offerings

1 cr

public offerings derived from Yahoo IPO calendar deal types.

required
optional
start, end, count, offset

calendar/ipo

1 cr

IPO calendar via Yahoo visualization calendar.

required
optional
start, end, count, offset

calendar/stock-splits

1 cr

symbol stock splits via chart events.

required
symbol
optional

calendar/count

1 cr

count of calendar events in a window (economic/ipo).

required
optional
calendar_type, type, start, end

futures

1 cr

futures chain.

required
symbol
optional

insights

1 cr

trading insights.

required
symbol
optional
reportsCount

research

1 cr

what analysts are saying.

required
symbol
optional
reportsCount

fund/fees

1 cr

ETF/mutual-fund fees and expenses via Yahoo fundProfile.

required
symbol
optional

fund/holdings

1 cr

ETF/mutual-fund top holdings, sector weightings, asset allocation via Yahoo topHoldings.

required
symbol
optional

recommendations

1 cr

peer/similar symbols via Yahoo recommendationsbysymbol.

required
symbol
optional

news/details

1 cr

full news article content by uuid via Yahoo caas.

required
uuid
optional

screener/fields

1 cr

queryable screener field catalog (filters) via Yahoo screeners.

required
optional
type

market/tickers-by-type

1 cr

symbol lookup filtered by quote type (equity/etf/mutualfund/future/index/currency).

required
query
optional
type, count

v1/stock/profile

1 cr

quoteSummary alias for assetProfile,summaryProfile.

required
symbol
optional

v1/stock/statistics

1 cr

quoteSummary alias for defaultKeyStatistics.

required
symbol
optional

v1/stock/financial-data

1 cr

quoteSummary alias for financialData.

required
symbol
optional

v1/stock/sec-filings

1 cr

quoteSummary alias for secFilings,assetProfile.

required
symbol
optional

v1/stock/earnings

1 cr

quoteSummary alias for earnings,earningsTrend,earningsHistory.

required
symbol
optional

v1/stock/calendar-events

1 cr

quoteSummary alias for calendarEvents.

required
symbol
optional

v1/stock/insider-holders

1 cr

quoteSummary alias for insiderHolders.

required
symbol
optional

v1/stock/balance-sheet

1 cr

quoteSummary alias for balanceSheetHistory.

required
symbol
optional

v2/stock/balance-sheet

1 cr

quoteSummary alias for balanceSheetHistory,balanceSheetHistoryQuarterly.

required
symbol
optional

v1/stock/institution-ownership

1 cr

quoteSummary alias for institutionOwnership.

required
symbol
optional

v1/stock/insider-transactions

1 cr

quoteSummary alias for insiderTransactions.

required
symbol
optional

v1/stock/index-trend

1 cr

quoteSummary alias for indexTrend.

required
symbol
optional

v1/stock/income-statement

1 cr

quoteSummary alias for incomeStatementHistory,incomeStatementHistoryQuarterly.

required
symbol
optional

v1/stock/cashflow-statement

1 cr

quoteSummary alias for cashflowStatementHistory,cashflowStatementHistoryQuarterly.

required
symbol
optional

v1/stock/recommendation-trend

1 cr

quoteSummary alias for recommendationTrend.

required
symbol
optional

v1/stock/net-share-purchase-activity

1 cr

quoteSummary alias for netSharePurchaseActivity.

required
symbol
optional

v1/stock/upgrade-downgrade-history

1 cr

quoteSummary alias for upgradeDowngradeHistory.

required
symbol
optional

v1/insider-trades

1 cr

quoteSummary alias for insiderTransactions,insiderHolders,netSharePurchaseActivity.

required
symbol
optional

v1/indicators/sma

1 cr

local SMA indicator from chart OHLCV.

required
symbol
optional

v1/indicators/rsi

1 cr

local RSI indicator from chart OHLCV.

required
symbol
optional

v1/indicators/macd

1 cr

local MACD indicator from chart OHLCV.

required
symbol
optional

v1/indicators/adx

1 cr

local ADX indicator from chart OHLCV.

required
symbol
optional

stock/get-futures-chain

1 cr

apidojo-compatible alias for futures.

required
symbol
optional

stock/get-insights

1 cr

apidojo-compatible alias for insights.

required
symbol
optional

stock/v3/get-insights

1 cr

apidojo-compatible alias for insights.

required
symbol
optional

stock/get-what-analysts-are-saying

1 cr

apidojo-compatible alias for research.

required
symbol
optional

stock/get-fees-and-expenses

1 cr

apidojo-compatible alias for fund/fees.

required
symbol
optional

stock/get-top-holdings

1 cr

apidojo-compatible alias for fund/holdings.

required
symbol
optional

stock/v2/get-recommendations

1 cr

apidojo-compatible alias for recommendations.

required
symbol
optional

news/v2/get-details

1 cr

apidojo-compatible alias for news/details.

required
uuid
optional

screeners/get-filters

1 cr

apidojo-compatible alias for screener/fields.

required
optional

market/get-tickers-by-quote-type

1 cr

apidojo-compatible alias for market/tickers-by-type.

required
query
optional

Every parameter, every allowed value →

Stocks & Finance API

3 of 78 endpoints, ready to run

View docs ↗

Live price, change, percent change, currency, market state, market cap, volume and an exchange timestamp — for as many symbols as you list, across asset classes, in one call.

1 credit1 required · 1 optional
POST/finance/v1/quote
ok5902 ms · 6 records · sample
{
  "ok": true,
  "meta": {
    "api": "finance",
    "endpoint": "quote",
    "mode": "live",
    "latency_ms": 5902.4,
    "record_count": 6,
    "cache_hit": false,
    "completeness_pct": 100
  },
  "data": {
    "quotes": [
      {
        "symbol": "AAPL",
        "shortName": "Apple Inc.",
        "longName": "Apple Inc.",
        "price": 320.14,
        "change": 5.560028,
        "changePercent": 1.767445,
        "currency": "USD",
        "marketState": "REGULAR",
        "exchange": "NasdaqGS",
        "quoteType": "EQUITY",
        "marketCap": 4672180977664,
        "volume": 20142087,
        "timestamp": 1787937530
      },
      {
        "symbol": "MSFT",
        "shortName": "Microsoft Corporation",
        "longName": "Microsoft Corporation",
        "price": 516.72,
        "change": 11.659973,
        "changePercent": 2.3086312,
        "currency": "USD",
        "marketState": "REGULAR",
        "exchange": "NasdaqGS",
        "quoteType": "EQUITY",
        "marketCap": 3836927803392,
        "volume": 14816155,
        "timestamp": 1787937529
      },
      {
        "symbol": "BTC-USD",
        "shortName": "Bitcoin USD",
        "longName": "Bitcoin USD",
        "price": 77982.47,
        "change": -2462.664,
        "changePercent": -3.0612967,
        "currency": "USD",
        "marketState": "REGULAR",
        "exchange": "CCC",
        "quoteType": "CRYPTOCURRENCY",
        "marketCap": 1565052370944,
        "volume": 38963494912,
        "timestamp": 1787937527
      }
    ]
  }
}
Real response, fetched from the live endpoint with the parameters on the left — trimmed to the first few rows, with seller names left out. Press Try it for the untrimmed response.

How the Stocks & Finance API works

Stocks & Finance is a normal ReefAPI surface — the same four rules that hold for every other engine on the key.

01
Authenticate
x-api-key header

No OAuth app, no request signing, no per-site account. One key covers all 185 engines.

02
Call
POST /finance/v1/…

Every route is a POST with a JSON body. Parameters are validated against the published schema before anything is charged.

03
Pay
1 or 2 credits per call

Credits, not seats. Failed and blocked calls are never charged, and cache hits cost nothing.

04
Read
{ ok, data, meta, error }

One envelope everywhere. meta carries latency_ms, record_count and the endpoint that answered.

One quote call for a whole watchlist, then drill in

The mistake is calling quote once per ticker. It takes a list, and the list can mix asset classes that would otherwise be four different products.

01quote
POST/finance/v1/quote
{"symbols": "AAPL,MSFT,BTC-USD,EURUSD=X,^GSPC,GC=F"}

Six rows, six asset classes, one call. Every row carries its own currency and its own exchange timestamp — check that timestamp, it is not the same for all of them.

02chart
POST/finance/v1/chart
{"symbol": "AAPL", "range": "1mo", "interval": "1d"}

Candles for the ones that moved. Points carry a timestamp, OHLC and volume; the currency is stated once at the top.

03analyst
POST/finance/v1/analyst
{"symbol": "AAPL"}

The rating distribution and the recent target changes, with the firm named on each move.

A watchlist refresh is one credit, not one per symbol. Fundamentals, options chains, holders, insider transactions and the earnings, dividend, IPO and economic calendars are all on the same key.

request
curl -X POST https://api.reefapi.com/finance/v1/quote \
  -H "x-api-key: $REEF_KEY" \
  -H "content-type: application/json" \
  -d '{"symbol":"AAPL"}'
response envelope
{
  "ok": true,
  "data": { … },
  "meta": {
    "api": "finance",
    "endpoint": "quote",
    "mode": "live",
    "latency_ms": …,
    "record_count": …
  },
  "error": null
}

Symbol formats, and what each instrument type actually fills in

Symbols follow Yahoo Finance conventions, and the shape of the answer changes with the instrument. An equity carries a market cap and a real volume; an FX pair carries neither. The single field people get wrong is currency, because it is not always the currency you would guess from the exchange. Every row below came back from one live multi-symbol quote call.

Symbol formMeasured examplequoteType / exchangeWhat comes back
Plain US tickerAAPLEQUITY / NasdaqGScurrency USD, a real marketCap, volume and price
Ticker + exchange suffixBP.LEQUITY / LSEcurrency GBp, meaning pence: 522.7 is 522.70 pence, not 522.70 pounds
Crypto pairBTC-USDCRYPTOCURRENCY / CCCcurrency USD, marketCap present, marketState REGULAR around the clock
FX pairEURUSD=XCURRENCY / CCYcurrency USD, marketCap null, volume 0
Index, caret prefix^GSPCINDEX / SNPcurrency USD, marketCap null, the index level in price
Unrecognized stringNOTAREALTICKER123not returned at allok:true with quotes: [] and record_count 0, not an error

Batch several symbols in one call with `symbols` (comma-separated) rather than `symbol`. Every timestamp in quote, chart and events is unix seconds in UTC, and on a chart it marks the bar's open: a 1d/5m AAPL chart started at 1787751000, which is 13:30:00Z, the 09:30 New York open.

How fresh is this number, and what currency is it in

Measured on 2026-08-28 during US market hours, against six asset classes and six non-US exchanges, by comparing each row's own exchange timestamp with the wall clock at the moment of the call.

Equities, indices, FX and crypto are seconds old

In one call the exchange timestamps were 14, 15, 15, 18, 27 and 15 seconds behind the wall clock for two US equities, crypto, a currency pair and a major index. Two identical calls seconds apart returned a moved volume figure and a timestamp one second later, so this is a real tick and not a cached snapshot.

Against us: futures are ten minutes behind

The gold future in the same call carried a timestamp 614 seconds old while everything beside it was under half a minute. That is the exchange's own delay, not a fault, and the response hands you the timestamp to see it with. Never assume one call means one freshness.

Currency is the listing's, not yours

Six non-US tickers returned six currencies — EUR, JPY, BRL, INR, TRY and, for the London line, GBp. That last one is PENCE, not pounds, and it is the single most common way a portfolio total comes out a hundred times too big. Read the currency field on every row.

Market state travels with the row

The same call returned REGULAR for the US and European names and POSTPOST for Tokyo and India, which were closed. Crypto and FX also report REGULAR around the clock, so treat that field as a market-hours flag for exchange-traded instruments only.

Against us: the market-wide earnings calendar disagrees with its own counter

For the week after measurement, the calendar counter reported 100 earnings events and the market-wide earnings feed returned zero rows for exactly the same window. Asked for a window seven weeks out it returned 50 rows, correctly filtered to the two days requested, and its offset paging worked. The date filter is fine; the count endpoint is not a reliable pre-check for it.

Against us: the news search is loose

A news query on a large-cap ticker returned an unrelated index-fund article as its first row, published minutes earlier. The timestamps are genuinely current — the relevance is keyword-level. Filter on the symbol field rather than trusting the query.

What people build with Stocks & Finance

The jobs this data is most often used for.

78

endpoints

1/2

credits per call

01

Portfolio dashboards call quote and chart to show live prices and history for a holding.

02

Research tools use fundamentals and analyst to evaluate a company's financials and ratings.

03

Trading apps use options, calendar and events to track expiries, earnings and catalysts.

What Stocks & Finance data costs

The cheapest call here is 1 credit, so $15/mo (Pro) buys 10,000 of them — $1.50 per 1,000 credits. Credits roll over and never expire, and failed or blocked calls are not charged.

Full pricing →
$0.67–$1.50 / 1,000 credits
  • 1,000 free credits on signup, no card
  • One key, all 185 APIs, one credit pool
  • Failed and blocked calls are never charged
  • Credits roll over and never expire

Call it in two lines

Sign up, get 1,000 credits and one key that works on every engine. Then this is the whole protocol.

curl
curl -X POST https://api.reefapi.com/finance/v1/quote \
  -H "x-api-key: $REEF_KEY" \
  -H "content-type: application/json" \
  -d '{"symbol":"AAPL"}'
python
import requests

r = requests.post(
    "https://api.reefapi.com/finance/v1/quote",
    headers={"x-api-key": REEF_KEY},
    json={
  "symbol": "AAPL"
},
)
print(r.json()["data"])
FAQ

Have a question? We got answers.

The questions people actually ask before wiring up Stocks & Finance.

Get a free key →
Why is BP.L quoted at 522.7 when the share trades around five pounds?

Because London-listed shares are quoted in pence, and the response says so. A live quote on BP.L returned currency "GBp" with a lowercase p, and the fundamentals price module for the same symbol returned currencySymbol "£". GBp is pence, so 522.7 means 5.227 pounds. Divide by 100 before comparing it to anything denominated in GBP, and read the currency field rather than inferring it from the exchange suffix.

Are the quotes real-time or delayed, and by how much?

It depends on the exchange, and the answer is in the data rather than in a blanket policy. Call fundamentals with modules=price and read exchangeDataDelayedBy alongside quoteSourceName. Measured in one pass: AAPL returned 0 and "Nasdaq Real Time Price", BP.L returned 15 and "Delayed Quote", and the Nikkei 225 in a market_summary response returned 20. There is no single delay figure that covers the whole API.

After the close, is quote.price the last regular-session price or the after-hours print?

The regular-session price. On a measured AAPL call with marketState "POST", quote returned price 313.45, while the fundamentals price module for the same symbol at the same moment showed regularMarketPrice 313.45, postMarketPrice 311.48 and preMarketPrice 310.24. If you need the extended-hours print, take it from fundamentals modules=price. marketState values seen live include REGULAR, POST, POSTPOST and PREPRE.

Why does fundamentals return {raw, fmt} objects when quote returns plain numbers?

quote, chart, events and technicals are normalized to plain JSON numbers. fundamentals, analyst, calendar and market_summary pass through Yahoo's quoteSummary shape, where each value is an object such as {"raw": 309.9, "fmt": "309.90"}, sometimes with a longFmt as well. Read .raw for arithmetic and .fmt only for display. Handle both shapes if your code touches actions from each group.

I passed a range value that is not on the list and got one candle back. Why no error?

range and interval are ignore-on-invalid, so a token the API does not recognize is passed through to Yahoo instead of being rejected. A live chart call with range="banana" returned ok:true, echoed "range": "banana" back in the payload, and delivered a single daily candle. Compare data.range against what you sent, and treat a record_count of 1 on a multi-day request as a bad range token rather than a quiet market.

Why does a 5-year range with a 5-minute interval fail?

Yahoo does not serve intraday candles over long windows, and the refusal surfaces as ok:false with error code UPSTREAM_HTTP. Measured back to back: range=1d with interval=5m returned 79 points, while range=5y with interval=5m failed outright. Keep minute intervals to short ranges and use 1d or coarser for multi-year history.

Does technicals give me the full indicator series or just the latest value?

Just the latest value. A measured 6mo/1d call on AAPL returned twelve indicators as scalars or small objects, never arrays: sma20, sma50, ema20, ema50, rsi14, atr14, adx14, obv and vwap as single numbers, plus macd {line, signal, histogram}, bollinger20 {upper, middle, lower} and stochastic14 {k, d}. The periods parameter chooses which SMA and EMA lookbacks are computed; RSI, MACD, Bollinger, ATR and ADX are always included. For a series, pull chart and compute over the OHLCV points.

What does the analyst action actually contain?

Three quoteSummary modules: recommendationTrend, upgradeDowngradeHistory and financialData. In a measured AAPL call, recommendationTrend.trend[0] was {"period": "0m", "strongBuy": 6, "buy": 19, "hold": 14, "sell": 3, "strongSell": 2}, which is the analyst head count for the current month with earlier months in later entries. financialData carried recommendationKey "buy" and targetMeanPrice as {"raw": 324.45282, "fmt": "324.45"}.

What is the Stocks & Finance API?

Stocks & Finance API is a ReefAPI endpoint group for quotes, charts, fundamentals and market data. It returns live JSON through POST requests under /finance/v1.

Is the Stocks & Finance API free to try?

Yes. ReefAPI starts with 1,000 free credits, no card required. Stocks & Finance calls use the same shared credit balance as every other ReefAPI engine.

Do I need a Stocks & Finance login or account?

No login to Stocks & Finance is needed for the API response. You call ReefAPI with your x-api-key header, and the playground can run live examples before you create a production key.

How fresh is the Stocks & Finance data?

The page example is captured from a live quote call, and production requests fetch live data through ReefAPI rather than a static sample.

How many credits does the Stocks & Finance API use?

Stocks & Finance actions currently cost 1-2 credits per successful call. Failed or blocked calls are free, and all APIs draw from one credit pool.

Can I call Stocks & Finance from an AI assistant or MCP client?

Yes. Connect ReefAPI once through MCP and your assistant can call finance actions with the same key, credit pool and JSON envelope used by normal REST requests.

5 Finance & Data APIs on the same key

One key, one credit pool, one response envelope. If you are pulling Stocks & Finance, you are one call away from the rest of the category — no second contract, no second integration.

Need something this API does not do?

Name the endpoint, the field, or a source we do not carry yet. We ship new APIs every week and you would be first to get the key. Real people read every message and reply the same day.

0/4000

No account needed · we reply from [email protected]

Try it on your own data before you pay anything

The call above is the real endpoint, not a recording. A free key gives you 1,000 credits, the other 184 APIs, and the same envelope everywhere.

Endpoints, parameters and credit costs on this page are read from the live catalog and cannot drift from what the API accepts. Field notes were captured on 2026-08-28.