GET
/api/v1/etf/corporate-treasury/{ticker}Hobbyist tier+ · 30 req/minSingle-company bitcoin treasury history.
Per-company drill-down: current holdings, average cost basis, and transaction history. Same ingestion status as the list route — stable shape, `meta.dataStatus` signals readiness.
Path parameters
Segments of the URL path, validated server-side.
| Name | Type | Required | Default | Description |
|---|---|---|---|---|
| ticker | string | required | — | 3-8 char alphanumeric stock ticker (MSTR, TSLA, MARA…). |
Query parameters
This endpoint takes no query parameters.
Response shape
Always wrapped in the standard envelope. Nullable fields are explicitly marked — treat missing numeric data as a real data-source gap, not as an error.
data payloadtypescript
// Wrapped in the standard envelope:
// {
// data: /* shape below */,
// meta?: { total?: number; limit?: number; offset?: number; ... }
// }
{
ticker: string;
name: string | null;
btcHeld: number;
usdValue: number;
avgCostBasis: number | null;
lastUpdated: string | null;
transactions: Array<{
date: string;
btcDelta: number;
usdSpend: number | null;
}>;
}Example
Copy the curl, replace YOUR_KEY with a real key from your dashboard, and run.
Requestbash
curl -sS "http://localhost:3000/api/v1/etf/corporate-treasury/MSTR"Responsejson
{
"data": {
"ticker": "MSTR",
"name": null,
"btcHeld": 0,
"usdValue": 0,
"avgCostBasis": null,
"lastUpdated": null,
"transactions": []
},
"meta": { "total": 0, "ticker": "MSTR", "dataStatus": "not-yet-ingested" }
}Notes
- Invalid ticker format (non-alnum, wrong length) returns 400 `BAD_PARAM`.
- Ingestion pending — expect zero-valued fields until the adapter lands.
Next
Check the error code reference, or get an API key to try the request against your own account.