Markets
Current Market
The live window of a market: Price To Beat, current index price, timing and source quotes.
Overview
GET
/ v1/ markets/ {asset}/ {timeframe}/ currentDeveloper PreviewAll plansapi.probora.xyz
Parameters
| Parameter | In | Type | Description |
|---|---|---|---|
| assetrequired | path | string | Asset symbol. One of BTC, ETH, SOL, XRP, DOGE, HYPE, BNB, GOLD, SILVER, OIL.Example: BTC |
| timeframerequired | path | string | Window length. One of 5m, 15m, 1h, 4h, 1d.Example: 15m |
Request
# export PROBORA_API_KEY=prb_live_…
curl "https://api.probora.xyz/v1/markets/BTC/15m/current" \
-H "Authorization: Bearer $PROBORA_API_KEY"Response
200 OK, returned as application/json. Example:
Response · 200
{
"market_id": "btc-15m-20261114-2000",
"asset": "BTC",
"timeframe": "15m",
"status": "LIVE",
"start_time": "2026-11-14T20:00:00.000Z",
"end_time": "2026-11-14T20:15:00.000Z",
"price_to_beat": 76230,
"current_index_price": 76241.37,
"settlement_price": null,
"outcome": null,
"index": {
"method": "median",
"sources": [
{
"source": "binance",
"price": 76232,
"status": "ok"
},
{
"source": "okx",
"price": 76228,
"status": "ok"
},
{
"source": "coinbase",
"price": 76230,
"status": "ok"
}
]
},
"data_mode": "live"
}Response fields
| Field | Type | Description |
|---|---|---|
| market_id | string | Deterministic market id {asset}-{timeframe}-{YYYYMMDD}-{HHMM} (UTC window start). |
| asset | string | Asset symbol, e.g. BTC. |
| timeframe | string | Window length: 5m, 15m, 1h, 4h or 1d. |
| status | string | Market status: UPCOMING, LIVE, SETTLING, SETTLED or VOID. |
| start_time | string | Window start (UTC). |
| end_time | string | Window end, which is the settlement instant (UTC). |
| price_to_beat | number | Probora Price Index at the window start, rounded to the asset's tick size. |
| current_index_price | number | Latest Probora Price Index value while the window is live. |
| settlement_price | number | null | Probora Price Index at the window end; null until settled. |
| outcome | string | null | UP, DOWN, FLAT (exact tie) or VOID (index quorum not met); null while live. |
| index | object | Index method and the source quotes behind the value. |
| data_mode | string | "live" for real price sources, "demo" for the simulated network. The two are never mixed. |
Errors
Errors use the standard error envelope. Codes this endpoint can return:
| Code | Status | Meaning |
|---|---|---|
| invalid_asset | 400 | Invalid asset. The asset symbol is not supported. |
| invalid_timeframe | 400 | Invalid timeframe. The timeframe is not one of 5m, 15m, 1h, 4h, 1d. |
| unauthorized | 401 | Unauthorized. The API key is missing, malformed or revoked. |
| rate_limited | 429 | Rate limited. Too many requests. Retry after the time in the Retry-After header. |
| internal_error | 500 | Internal error. Something went wrong on our side. The request id helps us investigate. |
| index_unavailable | 503 | Index unavailable. Too few price sources responded to compute the index (quorum not met). |
Market lifecycle
| Status | Meaning |
|---|---|
| UPCOMING | The next window is announced. Predictions publish at its start. |
| LIVE | Price To Beat is fixed and predictions are frozen. current_index_price updates continuously. |
| SETTLING | The window has ended and the settlement index is being computed (usually under a second). |
| SETTLED | settlement_price and outcome are final. Every prediction is scored WIN, LOSS or PUSH. |
| VOID | Too few sources were available to compute the index; predictions are kept on record as VOID. |
Questions or feedback on the API? [email protected]