Clean time-series endpoints for public-company data: ready for Python/JS, analytics, and dashboards.
For developers & researchers. Not a broker or exchange. No investment advice.
High cache hit rate • ETag/Cache-Control • Typical latency < 2s after warm-up
GET https://macrotrends-finance1.p.rapidapi.com/price-history/AAPL
GET https://macrotrends-finance1.p.rapidapi.com/financial-statements/AAPL
GET https://macrotrends-finance1.p.rapidapi.com/earnings-estimates/AAPLTip: replace AAPL with any ticker (MSFT, NVDA, TSLA…).
Daily OHLCV back to ~2000 for major tickers. Great for historical analysis and time-series workflows.
Quarterly Income, Balance, and Cash Flow statements in compact JSON.
EPS actual vs estimate, analyst consensus, and upcoming earnings date.
curl --request GET \
--url "https://macrotrends-finance1.p.rapidapi.com/price-history/AAPL" \
--header "X-RapidAPI-Key: $RAPIDAPI_KEY" \
--header "X-RapidAPI-Host: macrotrends-finance1.p.rapidapi.com"import requests, pandas as pd
BASE="https://macrotrends-finance1.p.rapidapi.com"
H={"X-RapidAPI-Key":"YOUR_KEY","X-RapidAPI-Host":"macrotrends-finance1.p.rapidapi.com"}
r=requests.get(f"{BASE}/price-history/AAPL",headers=H); r.raise_for_status()
df=pd.DataFrame.from_dict(r.json(), orient="index").sort_index()
print(df.tail())Quarterly fundamentals (income statement, balance sheet, cash flow).
curl --request GET \
--url "https://macrotrends-finance1.p.rapidapi.com/financial-statements/MSFT" \
--header "X-RapidAPI-Key: YOUR_RAPIDAPI_KEY" \
--header "X-RapidAPI-Host: macrotrends-finance1.p.rapidapi.com"Historical daily OHLCV, keyed by date.
curl --request GET \
--url "https://macrotrends-finance1.p.rapidapi.com/price-history/NVDA" \
--header "X-RapidAPI-Key: YOUR_RAPIDAPI_KEY" \
--header "X-RapidAPI-Host: macrotrends-finance1.p.rapidapi.com"EPS history vs estimate, analyst consensus, next earnings date.
curl --request GET \
--url "https://macrotrends-finance1.p.rapidapi.com/earnings-estimates/AAPL" \
--header "X-RapidAPI-Key: YOUR_RAPIDAPI_KEY" \
--header "X-RapidAPI-Host: macrotrends-finance1.p.rapidapi.com"import requests
BASE="https://macrotrends-finance1.p.rapidapi.com"
H={"X-RapidAPI-Key":"YOUR_RAPIDAPI_KEY","X-RapidAPI-Host":"macrotrends-finance1.p.rapidapi.com"}
print(requests.get(f"{BASE}/financial-statements/AAPL", headers=H).json())
print(requests.get(f"{BASE}/price-history/AAPL", headers=H).json())
print(requests.get(f"{BASE}/earnings-estimates/AAPL", headers=H).json())import fetch from "node-fetch";
const BASE="https://macrotrends-finance1.p.rapidapi.com";
const H={"X-RapidAPI-Key":process.env.RAPIDAPI_KEY,"X-RapidAPI-Host":"macrotrends-finance1.p.rapidapi.com"};
const a=await fetch(`${BASE}/price-history/TSLA`,{headers:H});
const b=await fetch(`${BASE}/earnings-estimates/TSLA`,{headers:H});
console.log(await a.json()); console.log(await b.json());$0 / mo: Basic · 100 requests / month
$3.99 / mo: Pro · 1,000 requests / month
$9.99 / mo: Ultra · 5,000 requests / month
$19.99 / mo: Mega · unlimited requests / month
• Cached responses after first call per ticker.
• Typical latency under 2s after warm-up.
• Use your RapidAPI key in the headers (never expose it publicly).