Simple Stocks Data API
Market Data • Fundamentals • Time Series
All systems operational
Fast JSON • 20+ years price history • 10+ years fundamentals

Company Fundamentals & Price History: JSON API for Developers.

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

Quick Test

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/AAPL

Tip: replace AAPL with any ticker (MSFT, NVDA, TSLA…).

Long Price History

Daily OHLCV back to ~2000 for major tickers. Great for historical analysis and time-series workflows.

Fundamentals

Quarterly Income, Balance, and Cash Flow statements in compact JSON.

Earnings & Estimates

EPS actual vs estimate, analyst consensus, and upcoming earnings date.

5-min Quickstart: Curl

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"

5-min Quickstart: Python

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())

GET /financial-statements/<symbol>

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"

GET /price-history/<symbol>

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"

GET /earnings-estimates/<symbol>

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"

Python

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())

JavaScript (Node)

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());

Plans

$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

Notes

• 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).

Changelog

  • 2025-08-20: Rebranded to Simple Stocks Data API, added Postman/Colab CTAs, 5-min Quickstart, Status badge, and upgraded free tier to 100 requests/month.