Summary

Returns a single-screen overview of the dataset — asset counts grouped by (type, status), per-type price-data date envelopes, and an FX-collection summary. Built for tools that need a quick “what does this dataset look like?” answer without unwinding to the symbol level.

Request

curl https://api.bytetree.io/api/summary

Query Parameters

NameTypeRequiredDescription
formatstringNoResponse format: json (default), csv, or toon

Response

FieldTypeDescription
generatedAtstringISO timestamp captured when the server ran the aggregations. Within the 60-second cache window the same value is echoed on repeated calls
assetsobject[]Asset counts grouped by (type, status) — only non-empty pairs appear, an absent pair means zero
assets[].typestringOne of stock, crypto, etf, index, commodity
assets[].statusstringOne of pending, active, inactive
assets[].countnumberNumber of assets in this (type, status) bucket
priceDataobject[]Per-type date envelopes from the PriceData collection
priceData[].typestringOne of stock, crypto, index, commodity (FX is reported separately under fx)
priceData[].earliestDatestringISO YYYY-MM-DD of the oldest record for this type
priceData[].latestDatestringISO YYYY-MM-DD of the most recent record for this type
priceData[].totalRecordsnumberTotal row count across all symbols of this type
fxobjectSingle object (not array) summarising the FX collection
fx.recordsnumberTotal row count of FxData
fx.earliestDatestringISO YYYY-MM-DD of the oldest FX record
fx.latestDatestringISO YYYY-MM-DD of the most recent FX record
{
  "generatedAt": "2026-05-07T13:23:39.271Z",
  "assets": [
    { "type": "commodity", "status": "active", "count": 32 },
    { "type": "crypto",    "status": "active", "count": 3 },
    { "type": "index",     "status": "active", "count": 1 },
    { "type": "stock",     "status": "active", "count": 211 }
  ],
  "priceData": [
    { "type": "commodity", "earliestDate": "2005-01-03", "latestDate": "2026-05-07", "totalRecords": 168129 },
    { "type": "crypto",    "earliestDate": "2009-10-05", "latestDate": "2026-05-07", "totalRecords": 12043 },
    { "type": "index",     "earliestDate": "2005-01-03", "latestDate": "2026-05-07", "totalRecords": 5662 },
    { "type": "stock",     "earliestDate": "2005-01-03", "latestDate": "2026-05-07", "totalRecords": 1050910 }
  ],
  "fx": { "records": 264447, "earliestDate": "2005-01-03", "latestDate": "2026-05-07" }
}

Caching

Responses include Cache-Control: public, max-age=60. Aggregations are recomputed on miss; generatedAt reflects the recompute moment, not the request moment.

Surface boundary

/api/summary is intentionally dataset-wide. For per-symbol coverage and field-level detail use:

Engine-state and task-log information is not exposed here; that surface is private.

Notes