---
title: "GET /api/v1/latest"
method: GET
path: "/api/v1/latest"
tags: ["v1"]
---

# GET /api/v1/latest

`GET /api/v1/latest`

## Request

- Base URL: `https://api.blackforge.so` (the document declares no server; this is the origin it was published from)
- URL: `https://api.blackforge.so/api/v1/latest`
- Auth: API key in header `x-api-key`

## Query parameters

- `exchange` string, required
- `symbol` string, required
- `columns` string

## Response `200`

Most recent completed bucket at the key plan granularity, with only the plan-entitled columns. ROW QUALITY: whenever `qualityFlags` is in the projection the response carries a `quality` object as a SIBLING of `values` (never inside it) — { raw, all, flags, contaminates, observedAt }. `raw` is the bitmask ORed across the bucket and `all` the same ANDed; `flags` names the bits set in `raw`; `contaminates` lists the metric families they call into question, so a broken order book can leave the trade columns of the same row sound; `observedAt` is epoch ms for when the book was actually read. It is present on a clean row too, as raw 0 with empty lists. The raw integer also stays in `values.qualityFlags` as a plain number. Decode with the `bits` table on the `qualityFlags` entry of GET /v1/catalog.

---

[API](https://skmtc.dev/blackforge/apis/blackforge-data-api.md) · [All operations](https://skmtc.dev/blackforge/apis/blackforge-data-api/llms.txt) · [OpenAPI document](https://skmtc.dev/blackforge/apis/blackforge-data-api/revisions/04eadd230b1b?raw)
