All REST and WebSocket endpoints require an API key passed as Authorization: Bearer YOUR_KEY.
# Example request
curl -H "Authorization: Bearer sk_live_..." \
https://api.options.bpleone.com/v1/quotes/NVDA
GET /v1/quotes/:symbol
GET /v1/quotes/batch?symbols=NVDA,AAPL,SPY
Response:
{
"symbol": "NVDA",
"last": 138.27,
"bid": 138.26,
"ask": 138.28,
"change": 4.31,
"changePct": 3.21,
"volume": 248400000,
"prevClose": 133.96,
"ts": "2026-05-13T14:32:18.000Z"
}
Real-time tick stream. Subscribe to symbols you care about; server only sends matching updates.
WSS wss://api.options.bpleone.com/v1/stream
// Browser example — mirrors the in-site Feed module
const ws = new WebSocket('wss://api.options.bpleone.com/v1/stream');
ws.onopen = () => {
ws.send(JSON.stringify({
action: 'subscribe',
symbols: ['NVDA', 'SPY', 'QQQ']
}));
};
ws.onmessage = (e) => {
const tick = JSON.parse(e.data);
console.log(tick.symbol, tick.last, tick.changePct);
};
GET /v1/options/chain/:symbol?expiry=2026-06-20
Response:
{
"symbol": "NVDA",
"expiry": "2026-06-20",
"underlying": 138.27,
"strikes": [
{
"strike": 140,
"call": {
"bid": 4.20, "ask": 4.30, "mid": 4.25,
"vol": 4200, "oi": 22400,
"iv": 38.4, "delta": 0.52,
"gamma": 0.028, "theta": -0.087,
"vega": 0.142
},
"put": { /* mirror */ }
}
]
}
POST /v1/calc/bs
Body:
{
"type": "call",
"S": 138.27, // spot
"K": 145, // strike
"T": 0.104, // years to expiry
"r": 0.045, // risk-free rate
"sigma": 0.384 // implied vol
}
Response:
{
"price": 3.85,
"delta": 0.38, "gamma": 0.024,
"theta": -0.082, "vega": 0.142,
"rho": 0.084
}
GET /v1/signals?type=macd-cross&min_score=80
GET /v1/signals/today/:symbol
Response:
{
"signals": [
{
"id": "sig_a82f1",
"ts": "2026-05-13T14:32:18.000Z",
"symbol": "NVDA",
"type": "macd-cross",
"bias": "bull",
"score": 94,
"context": { /* indicator readings */ }
}
]
}
Subscribe an HTTPS endpoint and we'll POST events as they fire. Supported events: signal.created, trade.published, flow.unusual.
POST /v1/webhooks
Body:
{
"url": "https://your-server.com/hook",
"events": ["signal.created", "trade.published"],
"filters": {
"symbols": ["NVDA", "SPY"],
"min_score": 80
}
}
Each delivery is signed with HMAC SHA-256. Verify the X-Bpleone-Signature header using your webhook secret.
| Tier | REST (req/min) | WS Concurrent | Webhook Events/day |
| Free | 60 | 1 | 100 |
| Pro | 600 | 5 | 10,000 |
| Desk | 3,000 | 25 | unlimited |