Stock Data API
The Stock-scoring.com API returns the full daily price history of every stock we analyze, including technical indicators: open, high, low, close and volume, plus EMA, MACD, RSI, CCI, ADX and moving averages. It covers the DAX, MDAX, SDAX, TecDAX, S&P 500, NASDAQ 100, Dow Jones, Nikkei 225 and further US-listed stocks. Responses are JSON.
Register for free to get an API key.
Get your API key
- Register and confirm your email address with the code we send you.
- Your API key (it starts with
ssk_) is shown right after the confirmation. Copy it then. - Keep the key secret, like a password.
Lost your key?
We store only a fingerprint of your key, so nobody can display it again, including us. Log in, open My Account and click "Generate new key". The old key stops working immediately.
Authentication
Send the key in the X-API-Key HTTP header with every request. Keys in the URL are not accepted, because URLs end up in logs and browser histories.
curl -H "X-API-Key: ssk_your_key" https://stock-scoring.com/api/v1/stocks
Endpoints
List all stocks
GET /api/v1/stocks
Returns every available symbol with company name and index.
{
"updated": "2026-10-15",
"stocks": [
{ "symbol": "SAP.DE", "name": "SAP SE", "index": "dax" },
{ "symbol": "AAPL", "name": "Apple Inc.", "index": "nasdaq_100" }
]
}Price history with indicators
GET /api/v1/stocks/{symbol}/history?start=YYYY-MM-DD&end=YYYY-MM-DDstart and end are optional. Without them you get the full stored history (about seven years). Symbols use the Yahoo Finance format, e.g. SAP.DE, 7203.T, BRK-B; see the stock list.
{
"symbol": "SAP.DE",
"name": "SAP SE",
"currency": "EUR",
"columns": ["date", "open", "high", "low", "close", "volume", "rsi", "..."],
"data": [
{ "date": "2026-10-13", "open": 194.9, "high": 198.1, "low": 194.5, "close": 197.28,
"volume": 1961267, "ewma_12": 189.01, "macd": 3.06, "rsi": 69.89, "cci": 265.63, "adx": 15.3 }
]
}Values in the example are shortened.
Fields
- date
- Trading day (YYYY-MM-DD)
- open, high, low, close
- Daily prices in the currency of the listing
- volume
- Traded shares
- dividends, stock_splits
- Corporate actions on that day
- mid
- Average of high and low
- ewma_12, ewma_26
- Exponential moving averages over 12 and 26 days
- macd, macd_signal
- MACD line and its 9-day signal line
- rsi
- Relative Strength Index
- cci
- Commodity Channel Index
- adx, plus_di, minus_di
- Average Directional Index and directional indicators
- mov_avg_<days>
- Simple moving averages of the mid price, e.g. mov_avg_50, mov_avg_200
Values that cannot be computed yet, e.g. at the start of a series, are null.
Examples
Python
import pandas as pd
import requests
response = requests.get(
"https://stock-scoring.com/api/v1/stocks/SAP.DE/history",
params={"start": "2026-01-01"},
headers={"X-API-Key": "ssk_your_key"},
timeout=30,
)
response.raise_for_status()
df = pd.DataFrame(response.json()["data"]).set_index("date")
print(df[["close", "rsi", "macd"]].tail())JavaScript
const response = await fetch(
'https://stock-scoring.com/api/v1/stocks/SAP.DE/history?start=2026-01-01',
{ headers: { 'X-API-Key': 'ssk_your_key' } },
)
const { data } = await response.json()Limits and errors
Each key has a daily request limit. Every response includes the headers X-RateLimit-Limit and X-RateLimit-Remaining. The counter resets at midnight UTC. Bursts of more than about ten requests per second are rejected as well.
- 401
- API key missing, wrong or replaced by a newer key
- 404
- Unknown symbol or no price data
- 422
- Invalid parameter, e.g. a date not in YYYY-MM-DD format
- 429
- Daily limit or per-second limit reached
Terms
The data is provided for personal use only, without warranty, and may be delayed, incomplete or wrong. It is no investment advice. Prices come from third-party sources. See the Impressum.