Lista de fondos ETF
Lista de fondos ETF (ticker, emisor, AUM, comisión, ...)
/api/etf/fundsSolicitud
Parámetros de consulta
| Nombre | Tipo | Obligatorio | Valor por defecto | Valores admitidos | Descripción |
|---|---|---|---|---|---|
| asset | string | Opcional | BTC | BTC, ETH, SOL, HYPE | Activo subyacente. Cualquier otro valor devuelve 400 `INVALID_PARAM`. Ejemplo: BTC |
Solicitud de ejemplo
curl -s "https://www.coinboss.com/api/etf/funds?asset=BTC"Campos de la respuesta
La tabla de campos se genera a partir de respuestas reales, por lo que recoge exactamente lo que devuelve el endpoint. Las rutas usan a[] para los elementos de un array y {*} para los objetos cuya clave es un nombre dinámico, como una moneda o un exchange.
| Campo | Tipo | Unidad | Descripción |
|---|---|---|---|
| success | boolean | — | true cuando la solicitud se completó correctamente. En caso de fallo, el cuerpo es `{ success: false, code, error, request_id }`. |
| asset | string | — | Símbolo del activo. |
| unit | string | — | Unidad de los valores de este objeto. |
| count | number | — | Número de elementos. |
| funds | array | — | Todos los fondos ETF spot del activo, ordenados por `latest_aum` descendente. |
| funds[] | object | — | Un fondo con su último flujo, su AUM y sus atributos de instantánea. |
| funds[].ticker | string | — | Ticker del fondo. |
| funds[].issuer | string | — | Emisor del fondo. |
| funds[].latest_date | string | — | Día de negociación más reciente (YYYY-MM-DD) con datos de flujo del fondo; null cuando el fondo no tiene filas. |
| funds[].latest_flow | number | million USD | Flujo neto del fondo en `latest_date`; negativo = salida neta. |
| funds[].sum_7d | number | — | Suma de 7 días. |
| funds[].cum_total | number | — | Total acumulado. |
| funds[].latest_aum | number | million USD | Activos bajo gestión del fondo en `latest_date`; null cuando no están disponibles para ese día. |
| funds[].latest_premium_pct | number|null | % | Prima (+) o descuento (−) del precio de mercado del fondo respecto a su valor liquidativo en `latest_date`; null cuando no está disponible para ese día. |
| funds[].source | string | — | De dónde procede el valor. |
| funds[].fee_pct | number | % | Comisión de gestión anual del fondo en porcentaje (0.25 = 0.25 % anual); último valor conocido, véase su fecha en `frozen_fields`. |
| funds[].volume_usd | number | USD | Volumen en nocional USD. |
| funds[].mkt_share_pct | number | % | AUM del fondo como porcentaje de la capitalización de mercado total de la moneda subyacente (no su cuota entre los ETF); último valor conocido, véase `frozen_fields`. |
| funds[].cum_inflow_official | number | million USD | Entrada neta acumulada desde el lanzamiento según la publica una fuente externa; último valor conocido, véase su fecha en `frozen_fields`. |
| funds[].etf_share_pct | number | % | `latest_aum` del fondo como porcentaje de la suma de los `latest_aum` de todos los fondos del mismo activo. |
| frozen_fields | object | — | Campos cuya fuente dejó de actualizarse; llevan el último valor conocido y no deben leerse como actuales. `null` cuando no hay nada congelado. |
| frozen_fields.fields | array | — | Nombres de los campos congelados. |
| frozen_fields.fields[] | string | — | Nombre del campo. |
| frozen_fields.as_of | string | — | Fecha de la última actualización de los campos congelados (YYYY-MM-DD). |
| frozen_fields.latest_date | string | — | Fecha más reciente de los campos que siguen actualizándose (YYYY-MM-DD). |
| frozen_fields.detail | array | — | Detalle. |
| frozen_fields.detail[] | object | — | Detalle. |
| frozen_fields.detail[].field | string | — | Nombre del campo congelado. |
| frozen_fields.detail[].as_of | string | — | Fecha de la última actualización de este campo (YYYY-MM-DD). |
| frozen_fields.detail[].served | string | — | Lo que devuelve la API para el campo: `last_known_value` o `null`. |
| frozen_fields.by_ticker | object | — | Por fondo: fecha de la última actualización de cada campo congelado. claves dinámicas: IBIT,FBTC,GBTC,BTC,BITB,ARKB |
| frozen_fields.by_ticker.{*} | object | — | Campos congelados de un fondo, con el nombre del campo como clave. |
| frozen_fields.by_ticker.{*}.fee_pct | string | % | Fecha de la última actualización de `fee_pct` (YYYY-MM-DD). |
| frozen_fields.by_ticker.{*}.volume_usd | string | USD | Volumen en nocional USD. |
| frozen_fields.by_ticker.{*}.mkt_share_pct | string | % | Fecha de la última actualización de `mkt_share_pct` (YYYY-MM-DD). |
| frozen_fields.by_ticker.{*}.cum_inflow_official | string | — | Fecha de la última actualización de `cum_inflow_official` (YYYY-MM-DD). |
| frozen_fields.by_ticker.{*}.latest_premium_pct | string | % | Fecha de la última actualización de `latest_premium_pct` (YYYY-MM-DD). |
| frozen_fields.note | string | — | Nota. |
Generada 2026-11-11 23:00 UTC a partir de 1 respuestas reales.
Respuesta de ejemplo
/api/etf/funds?asset=BTC · Respuesta real capturada 2026-11-13 03:58:19 UTC. Los arrays y mapas largos se abrevian para su visualización: funds tenía 13 elementos; frozen_fields.detail tenía 5 elementos; frozen_fields.by_ticker tenía 13 elementos.
- "success"true
- "asset""BTC"
- "unit""million_usd"
- "count"13
- "funds"
- "frozen_fields"
- "fields"
- "as_of""2026-10-08"
- "latest_date""2026-11-12"
- "detail"
- "by_ticker"
- "note""fields 所列字段的数据源自 as_of 之后未再更新:served=last_known_value 的字段返回的是 as_of 当日的最后已知值(不是 latest_date 的值);served=null 的字段在 latest_date 无数据、返回 null。其余字段(latest_flow/sum_7d…"
Detalles
- Autenticación
- Ninguna. Endpoint público.
- Límite de solicitudes
- 1200 solicitudes por minuto por IP
- Caché del servidor
- 5m
- Microcaché de borde
- 10s
- Frecuencia de actualización
- cada hora (minuto 15); la fuente publica una vez por día de negociación de EE. UU.
- Ventana
- última instantánea por fondo (flujos sumados sobre 7 días de negociación y desde el inicio de cotización)
- Fuentes de datos
- Lista por fondo de los ETF spot de criptomonedas de EE. UU.: flujos de un rastreador público de flujos de ETF, AUM de un sitio público de datos de mercado.
- Cobertura de exchanges
- Todos los fondos del activo seleccionado (BTC, ETH, SOL, HYPE).
- Ordenación
- AUM más reciente descendente
- Unidades
- million USD (flows, AUM); percent (premium, fee, shares)
- Método
- cum_total = sum of daily flows; etf_share_pct = fund AUM / sum of AUM of all funds of the same asset x 100.
- Marcas de tiempo
- Milisegundos de época Unix (UTC), salvo que la descripción del campo indique otra cosa
- Formato de respuesta
- json
- Estabilidad
- Estable
Estado en vivo
Los flujos y las tenencias se actualizan a diario. `fee_pct`, `volume_usd`, `mkt_share_pct` y `cum_inflow_official` proceden de una fuente que dejó de publicar el 2026-10-08 y conservan su último valor hasta que haya un reemplazo en funcionamiento; no trate esos cuatro campos como actuales. `latest_premium_pct` es `null` por el mismo motivo. El objeto `frozen_fields` de la respuesta nombra estos campos junto con la fecha a la que se refiere cada valor.
Disponibilidad, últimos 30 días
100% de 410 comprobaciones superadas
Errores
Las llamadas fallidas tienen la misma estructura en todos los endpoints. La lista completa está en la página de errores. Errores y límites de solicitudes →
| Código | HTTP | Significado | Qué hacer |
|---|---|---|---|
| INVALID_PARAM | 400 | Falta un parámetro obligatorio o un valor no se acepta. `param` indica el nombre del parámetro cuando se conoce. | No reintente sin cambios; corrija la solicitud. |
| UNAUTHORIZED | 401 | Se envió la cabecera `CB-API-KEY`, pero la clave es desconocida o está revocada. Los datos públicos no necesitan clave: elimine la cabecera o use una clave válida. | No reintente sin cambios. |
| FORBIDDEN | 403 | La ruta no forma parte de la API pública (interna o solo para cuentas). | No reintente. |
| NOT_FOUND | 404 | Ruta desconocida, o la moneda / el exchange / el fondo solicitado no existe. | No reintente; compruebe la ruta y los identificadores en el catálogo. |
| RATE_LIMITED | 429 | Más solicitudes que el límite por minuto. `Retry-After` indica los segundos de espera. | Espere el tiempo de `Retry-After` y después reintente con espera progresiva. |
| INTERNAL | 500 | Error inesperado del servidor. El mensaje es genérico por diseño; cite `request_id` al informar del error. | Reintente una vez tras unos segundos; si persiste, infórmelo con el ID de solicitud. |
| UPSTREAM_FAILED | 503 | La fuente de datos de este endpoint no respondió a tiempo. No se devuelven cifras desactualizadas ni sustitutas en su lugar. | Reintente con espera progresiva; consulte la página de estado. |
| UNAVAILABLE | 501 / 503 | El conjunto de datos no está listo temporalmente (calentamiento de la caché) o el endpoint aún no tiene una fuente pública lícita. | Reintente más tarde; el catálogo marca los endpoints que no están disponibles por diseño. |
| REQUEST_FAILED | 200 | Algunos endpoints antiguos responden HTTP 200 con `success: false`. Compruebe siempre `success`, no solo el estado HTTP. | Depende del mensaje; trátelo como una solicitud fallida. |
Pruébelo
/api/etf/fundsParcialstring · por defecto BTC — Underlying asset. Any other value returns 400 `INVALID_PARAM`.
https://www.coinboss.com/api/etf/funds?asset=BTCMás en esta categoría
- Fondos ETF spot /api/sd/etf/funds
- Historial de ETF spot /api/sd/etf/history
- Resumen de ETF spot (información de los emisores) /api/sd/etf/overview
- Flujos netos diarios de ETF spot por fondo /api/etf/detail
- Historial de flujos netos diarios de ETF spot /api/etf/flows
- Detalle de un ETF /api/etf/fund/:ticker
- Lista de fondos ETF /api/etf/funds
- Tenencias de monedas de los ETF por fondo /api/etf/holdings
- Productos ETF / fideicomiso de un emisor /api/etf/issuer
- Resumen de ETF /api/etf/overview
- Prima / descuento de los fideicomisos de Grayscale /api/grayscale/premium
- Volúmenes de los ETF basados en futuros /api/indicators/futures-etf-volumes