Get an API key

API documentation

Base URL: https://otcfeed.com. All responses are JSON. Times are Unix seconds (UTC); a candle's time is the start of its interval.

Authentication

Send your key as a bearer token. Requests without a key are allowed for evaluation: last 3 days of data, 60 requests per minute per IP.

Authorization: Bearer otcf_your_key_here

GET /v1/symbols

All symbols with recorded data.

curl https://otcfeed.com/v1/symbols -H "Authorization: Bearer $KEY"

{"ok":true,"symbols":[{"symbol":"EURUSD_otc","name":"EUR/USD (OTC)","first":1794300000,"last":1794551000,"bars_1m":5210,"live":true}, …]}

Each symbol has a broker: quotex or pocketoption. Pocket Option symbols start with po., for example po.EURUSD_otc; the same pair on two brokers is two separate symbols because OTC quotes differ by platform.

GET /v1/candles

ParameterDescription
symbolRequired, e.g. EURUSD_otc
tf1m (default), 5m, 15m, 30m, 1h, 4h, 1d
from, toUnix seconds. Default: the latest limit candles.
limit1–5000, default 1000
curl "https://otcfeed.com/v1/candles?symbol=EURUSD_otc&tf=5m&limit=2" -H "Authorization: Bearer $KEY"

{"ok":true,"symbol":"EURUSD_otc","tf":"5m","candles":[
 {"time":1794550500,"open":1.13612,"high":1.13655,"low":1.13590,"close":1.13631,"complete":true},
 {"time":1794550800,"open":1.13631,"high":1.13640,"low":1.13562,"close":1.13575,"complete":false}]}

complete is false when a bucket is still forming or has missing minutes. Missing minutes are never filled in.

GET /v1/stream

Live updates as server-sent events: the minute still forming for symbol, about once a second. Connections close after 10 minutes; clients reconnect automatically.

const es = new EventSource("https://otcfeed.com/v1/stream?symbol=EURUSD_otc");
es.onmessage = e => console.log(JSON.parse(e.data));   // {time, open, high, low, close, at}

GET /v1/health

Newest recorded candle and current delay in seconds. No key needed.

Errors and limits

StatusMeaning
400Bad symbol or parameter
401Invalid or revoked key
429Rate limit exceeded — wait and retry

Python example

import requests
r = requests.get("https://otcfeed.com/v1/candles",
                 params={"symbol": "EURUSD_otc", "tf": "1m", "limit": 500},
                 headers={"Authorization": "Bearer " + KEY}, timeout=10)
candles = r.json()["candles"]

Script editor

The charts page runs Pine-style indicator scripts in your browser. Supported: indicator, plot, plotshape, hline, ta.sma/ema/rma/wma/rsi/atr/stdev/highest/lowest/change/crossover/crossunder/cross/macd, math.*, if/else, var, := and history references like close[1]. Strategy and order functions are not supported. Pine Script is a trademark of TradingView; OTCFeed is not affiliated with TradingView.