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

  1. Register and confirm your email address with the code we send you.
  2. Your API key (it starts with ssk_) is shown right after the confirmation. Copy it then.
  3. 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-DD

start 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.