GETAvailable
Single ETF detail
Single ETF detail (profile and flow history)
GET
/api/etf/fund/:tickerRequest
Query parameters
| Name | Type | Required | Default | Allowed values | Description |
|---|---|---|---|---|---|
| ticker path | string | Required | — | — | Fund ticker (letters only, upper-cased); 404 if unknown. Example: IBIT |
Parameters marked “path” are part of the URL.
Example request
curl -s "https://www.coinboss.com/api/etf/fund/IBIT"Response fields
The field table is generated from real responses, so it lists exactly what the endpoint returns. Paths use a[] for array items and {*} for objects keyed by a dynamic name such as a coin or an exchange.
| Field | Type | Unit | Description |
|---|---|---|---|
| success | boolean | — | true when the request succeeded. On failure the body is `{ success: false, code, error, request_id }`. |
| ticker | string | — | Fund ticker. |
| asset | string | — | Asset symbol. |
| issuer | string | — | Fund issuer. |
| price | object | — | Last price in the quote currency (USD or USDT unless stated). |
| price.currency | string | — | Currency / asset symbol. |
| price.latest | object | — | Most recent record. |
| price.latest.date | string | — | Calendar date (UTC). |
| price.latest.close | number | — | Close price of the period. |
| price.latest.open | number | — | Open price of the period. |
| price.latest.high | number | — | High of the period. |
| price.latest.low | number | — | Low of the period. |
| price.latest.volume | number | — | Volume. |
| price.change_abs | number | USD | Latest daily close of the fund share minus the previous trading day's close. |
| price.change_pct | number | % | Percentage change. |
| price.week52_high | number | USD | Highest daily high of the fund share over the 365 calendar days up to the latest price date. |
| price.week52_low | number | USD | Lowest daily low of the fund share over the 365 calendar days up to the latest price date. |
| price.avg_volume_10d | number | shares | Average daily trading volume of the fund over the last 10 trading days, in shares. |
| price.count | number | — | Number of items. |
| price.data | array | — | Payload. |
| price.data[] | object | — | Payload. |
| price.data[].date | string | — | Calendar date (UTC). |
| price.data[].open | number | — | Open price of the period. |
| price.data[].high | number | — | High of the period. |
| price.data[].low | number | — | Low of the period. |
| price.data[].close | number | — | Close price of the period. |
| price.data[].volume | number | — | Volume. |
| fund | object | — | Fund-level snapshot values; each is the last known value and may date from different days (see `aum_as_of`). |
| fund.aum_usd_million | number | million USD | Most recent non-null assets under management of the fund, valid as of `aum_as_of`. |
| fund.aum_as_of | string | — | Trading day (YYYY-MM-DD) that `aum_usd_million` refers to. |
| fund.estimated_holdings | number | coin | Estimated coins held by the fund: last known AUM ÷ current spot price of the asset; an estimate, not an issuer-reported holding. |
| fund.fee_pct | number | % | Annual management fee of the fund in percent (0.25 = 0.25 % per year); last known value from a third-party source. |
| fund.mkt_share_pct | number | % | Fund AUM as a percentage of the underlying coin's total market cap (not its share among ETFs); last known third-party value. |
| fund.volume_usd_million | number | million USD | Trading volume of the fund on the last day a third-party source reported it. |
| fund.cum_inflow_official_million | number | million USD | Cumulative net inflow since launch as published by a third-party source (last known value); may differ from the summed `flows.latest.cum_total`. |
| flows | object | — | Daily net-flow history of the fund with running total; amounts are in million USD (`unit`). |
| flows.unit | string | — | Unit of the values in this object. |
| flows.latest | object | — | Most recent record. |
| flows.latest.date | string | — | Calendar date (UTC). |
| flows.latest.flow | number | — | Net creation / redemption flow of the day. |
| flows.latest.cum_total | number | — | Cumulative total. |
| flows.latest.sum_7d | number | — | 7-day sum. |
| flows.count | number | — | Number of items. |
| flows.data | array | — | Payload. |
| flows.data[] | object | — | Payload. |
| flows.data[].date | string | — | Calendar date (UTC). |
| flows.data[].flow | number | — | Net creation / redemption flow of the day. |
| flows.data[].cum | number | — | Cumulative net flow since listing. |
| premium | object | — | Premium (+) or discount (−) of the market price to NAV. |
| premium.unit | string | — | Unit of the values in this object. |
| premium.note | string | — | Note. |
| premium.count | number | — | Number of items. |
| premium.data | array | — | Payload. |
| premium.data[] | object | — | Payload. |
| premium.data[].date | string | — | Calendar date (UTC). |
| premium.data[].premium | number | — | Premium (+) or discount (−) of the market price to NAV. |
Generated 2026-11-11 23:00 UTC from 1 real responses.
Example response
/api/etf/fund/IBIT · Real response captured 2026-11-13 03:58:19 UTC. Long arrays and maps are shortened for display: flows.data had 712 items; price.data had 713 items; premium.data had 64 items.
- "success"true
- "ticker""IBIT"
- "asset""BTC"
- "issuer""BlackRock"
- "price"
- "currency""USD"
- "latest"
- "change_abs"-1.88
- "change_pct"-4.4508
- "week52_high"59.56
- "week52_low"32.84
- "avg_volume_10d"52099530
- "count"713
- "data"
- "fund"
- "aum_usd_million"62297.756
- "aum_as_of""2026-11-11"
- "estimated_holdings"905689.4173
- "fee_pct"0.25
- "mkt_share_pct"3.995
- "volume_usd_million"2604.817
- "cum_inflow_official_million"65711.051
- "flows"
- "unit""million_usd"
- "latest"
- "count"712
- "data"
- "premium"
- "unit""pct"
- "note""sparse_snapshot"
- "count"64
- "data"
Details
- Authentication
- None. Public endpoint.
- Rate limit
- 1200 requests per minute per IP
- Server cache
- 5m
- Edge micro-cache
- 10s
- Update frequency
- hourly (prices at minute 20, flows at minute 15); daily bars
- Window
- stored daily price and flow history; 52-week high/low and 10-day average volume
- Data sources
- Single-fund page data: daily fund prices from a public market-data site, flows from a public ETF flow tracker.
- Exchange coverage
- 36 tracked US spot ETF tickers (404 for unknown tickers).
- Sorting
- date ascending
- Units
- USD (fund price), million USD (flows, AUM), percent (premium, fee), coins (estimated holdings)
- Method
- estimated_holdings = fund AUM in USD / latest coin price (an estimate, not issuer-reported holdings).
- Timestamps
- Unix epoch milliseconds (UTC) unless the field description says otherwise
- Response format
- json
- Stability
- Stable
Live status
AvailableChecked 2026-11-13 03:58:19 UTCHTTP 20015 msSchema matchesNewest data point 28h old
Availability, last 30 days
100% of 410 checks passed
Errors
Failed calls share one shape on every endpoint. The full list is on the errors page. Errors and rate limits →
| Code | HTTP | Meaning | What to do |
|---|---|---|---|
| INVALID_PARAM | 400 | A required parameter is missing or a value is not accepted. `param` names the parameter when it is known. | Do not retry unchanged; fix the request. |
| UNAUTHORIZED | 401 | The `CB-API-KEY` header was sent but the key is unknown or revoked. Public data needs no key — drop the header or use a valid key. | Do not retry unchanged. |
| FORBIDDEN | 403 | The route is not part of the public API (internal or account-only). | Do not retry. |
| NOT_FOUND | 404 | Unknown route, or the requested coin / exchange / fund does not exist. | Do not retry; check the path and identifiers against the catalog. |
| RATE_LIMITED | 429 | More requests than the per-minute limit. `Retry-After` gives the seconds to wait. | Wait for `Retry-After`, then retry with backoff. |
| INTERNAL | 500 | Unexpected server error. The message is generic by design; quote `request_id` when reporting it. | Retry once after a few seconds; report it with the request id if it persists. |
| UPSTREAM_FAILED | 503 | The data source behind this endpoint did not answer in time. No stale or substitute numbers are returned in its place. | Retry with backoff; check the status page. |
| UNAVAILABLE | 501 / 503 | The dataset is temporarily not ready (cache warming) or the endpoint has no lawful public source yet. | Retry later; the catalog marks endpoints that are unavailable by design. |
| REQUEST_FAILED | 200 | Some older endpoints answer HTTP 200 with `success: false`. Always check `success`, not only the HTTP status. | Depends on the message; treat as a failed request. |
Try it
GET
/api/etf/fund/:tickerAvailableParameters
string — Fund ticker (letters only, upper-cased); 404 if unknown.
Request URL
https://www.coinboss.com/api/etf/fund/IBITChoose an endpoint and press “Send request”. The response, headers and timing will appear here.
More in this category
- Spot ETF funds /api/sd/etf/funds
- Spot ETF history /api/sd/etf/history
- Spot ETF overview (issuer disclosures) /api/sd/etf/overview
- Per-fund daily spot-ETF net flows /api/etf/detail
- Daily spot-ETF net-flow history /api/etf/flows
- Single ETF detail /api/etf/fund/:ticker
- ETF fund list /api/etf/funds
- ETF coin holdings per fund /api/etf/holdings
- ETF / trust products of one issuer /api/etf/issuer
- ETF overview /api/etf/overview
- Grayscale trust premium / discount /api/grayscale/premium
- Futures-based ETF volumes /api/indicators/futures-etf-volumes