GET /v1/latest

Updated

What does GET /v1/latest do?

The most recent closed five-minute row for one pair on one venue. Returns the wide row for the latest closed five-minute window for a single pair on a single venue: the price candle, taker trade flow, depth bands, order ladders, book churn and the per-coin and market-wide context columns, all measured from that venue’s own book and tape.

Pass columns to narrow the row to the fields you need. Columns outside your plan are omitted from the response and named in the X-BlackForge-Columns-Omitted header, so a request never silently drops a field without telling you.

This is the endpoint to poll for a current reading. For a range over time, use the series endpoint instead.

Authentication

API key required. Set $BF to the API base and pass your key in $BLACKFORGE_API_KEY.

Parameters

Query parameters for /v1/latest
NameTypeRequiredDescription
exchangestringYesThe venue, e.g. binance.
symbolstringYesThe pair, in the venue’s own symbol form, e.g. BTCUSDT.
columnsstringNoComma-separated metric keys to return. Columns outside your plan are omitted and named in the X-BlackForge-Columns-Omitted response header.

Parameter shapes from the live OpenAPI document.

Example request

curl -H "x-api-key: $BLACKFORGE_API_KEY" \
  "$BF/v1/latest?exchange=binance&symbol=BTCUSDT&columns=price,buyTradeVol,sellTradeVol,bidLiqAdded"

Example response

Real response, captured (trimmed for reading; values move every window)
{
  "ts": 1787463600000,
  "values": {
    "price": 76229.64,
    "buyTradeVol": 2451000.8676634203,
    "sellTradeVol": 2157728.7544729924,
    "bidLiqAdded": 305669783.99589294
  }
}

Returns

A JSON object with ts (the window-close time in epoch milliseconds), values (the requested columns), and quality (the row’s quality bitmask, its named flags, and which column families they contaminate).

Responses and errors

Status codes for /v1/latest
StatusWhen
400A required parameter is missing, or a named column or metric key is not in the catalog.
401The x-api-key header is missing or not a valid key.
402No key and no x402 payment: the pay-per-call challenge is returned.
NoteEvery row carries a quality object. Read it: a column named in a contaminated family for that window is a placeholder, not a measurement. The methodology page explains the bitmask in full.
NoteRows are billed by the row, not the byte. The response reports rows served and rows remaining in the X-BlackForge-Rows headers.

Columns it returns

Each column is defined on its own page. Last price, Taker buy volume, Bid liquidity added. See the full metric reference.

← All endpoints · How the data is measured · Pricing

See it on the pairs you actually trade

Tell us which exchanges and pairs you watch. We open a dashboard with your history already loaded. Private beta, no card.

9 exchanges · ~11,800 pairs · 120 columns per pair · 5-minute windows

Request access

Request access to the forge

BlackForge is in private beta: 9 spot exchanges and 120 columns per pair, for humans and agents. Drop your email and we’ll reach out when your access is ready.

Contact

Talk to us

Questions about coverage, the API or a plan. We read everything.

Prefer email? hello@blackforge.so

Cookies on BlackForge

We use strictly necessary storage to run this site and remember this choice. With your consent we also measure how the site is used, including session replay with every field you type masked, to improve the product. We load nothing optional until you allow it, and you can withdraw at any time. See our cookie policy.