Documentación de un endpoint
Documentación completa de un endpoint: parámetros, tabla de campos generada a partir de respuestas reales, una respuesta de ejemplo capturada, muestras verificadas, historial de la sonda de 30 días, errores y límites.
/api/meta/endpointSolicitud
Parámetros de consulta
| Nombre | Tipo | Obligatorio | Valor por defecto | Valores admitidos | Descripción |
|---|---|---|---|---|---|
| id | string | Obligatorio | — | — | Id del endpoint en el catálogo (por ejemplo `sd-oi`). Los ids desconocidos devuelven 404. Ejemplo: sd-oi |
Solicitud de ejemplo
curl -s "https://www.coinboss.com/api/meta/endpoint?id=sd-oi"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 }`. |
| schema | string | — | Id del esquema de esta respuesta (`coinboss.meta.endpoint/1`). |
| now | number | ms | Hora del servidor en el momento de generar la respuesta. |
| endpoint | object | — | Registro del endpoint en el catálogo. Las claves del mapa son nombres de atributos como `id`, `path`, `status`, `params`, `category`, `sources`, `units`, `formula`. claves dinámicas: id,cat,kind,method,path,title |
| endpoint.{*} | array|number|object|string|null | — | Valor de un atributo: texto, un número, una lista (`params`, `required`, `ts_fields`) o un objeto (`probe`, `category`, `example_query`); null cuando no está definido. |
| endpoint.{*}[] | object|string | — | Elemento de un atributo de tipo lista: una definición de parámetro en `params`, o un nombre en `required` / `ts_fields`. puede faltar |
| endpoint.{*}[].name | string | — | Nombre. puede faltar |
| endpoint.{*}[].in | string | — | Dónde se envía el parámetro: `query` o `path`. puede faltar |
| endpoint.{*}[].type | string | — | Tipo. puede faltar |
| endpoint.{*}[].required | boolean | — | true cuando el parámetro debe enviarse. puede faltar |
| endpoint.{*}[].default | null | — | Valor utilizado cuando se omite el parámetro; null cuando no hay valor predeterminado. puede faltar |
| endpoint.{*}[].enum | null | — | Lista de valores aceptados; null cuando el parámetro no está restringido a una lista. puede faltar |
| endpoint.{*}[].min | null | — | Mínimo. puede faltar |
| endpoint.{*}[].max | null | — | Máximo. puede faltar |
| endpoint.{*}[].example | string | — | Valor de ejemplo del parámetro; null cuando no se indica ninguno. puede faltar |
| endpoint.{*}[].desc | string | — | Descripción del parámetro. puede faltar |
| endpoint.{*}.checked_at | number | ms | Marca de tiempo. puede faltar |
| endpoint.{*}.http | number | — | Estado HTTP de la solicitud de sonda más reciente. puede faltar |
| endpoint.{*}.ok | boolean | — | `true` cuando la solicitud de sonda más reciente devolvió HTTP 200 con un cuerpo JSON válido. puede faltar |
| endpoint.{*}.schema_ok | boolean | — | `true` cuando la respuesta sondeada coincidió con la tabla de campos documentada; `null` cuando no existe ninguna tabla de campos. puede faltar |
| endpoint.{*}.latency_ms | number | ms | Tiempo de respuesta de la solicitud de sonda más reciente. puede faltar |
| endpoint.{*}.bytes | number | bytes | Tamaño del cuerpo de la respuesta sondeada. puede faltar |
| endpoint.{*}.quality | null | — | `meta.quality` indicado por la respuesta sondeada (FRESH / PARTIAL / STALE …); `null` cuando el endpoint no lo indica. puede faltar |
| endpoint.{*}.data_age_s | number|null | s | Segundos transcurridos desde el evento. puede faltar |
| endpoint.{*}.last_ok_at | number | ms | Marca de tiempo. puede faltar |
| endpoint.{*}.fail_streak | number | count | Número de sondeos fallidos consecutivos; 0 cuando el último sondeo tuvo éxito. puede faltar |
| endpoint.{*}.id | string | — | Identificador. puede faltar |
| endpoint.{*}.title | string | — | Título para mostrar de la categoría del endpoint (dentro de `category`). puede faltar |
| endpoint.{*}.coin | string | — | Símbolo de la moneda, en mayúsculas (por ejemplo BTC). puede faltar |
| fields | array | — | Tabla de campos de la respuesta, inferida a partir de respuestas reales; null cuando no se ha generado ninguna tabla. |
| fields[] | object | — | Un campo de la respuesta: `path`, `type`, `unit`, `desc` e indicadores. |
| fields[].path | string | — | Ruta del campo en la respuesta: `a.b` para el anidamiento, `[]` para los elementos de un array, `{*}` para los valores de un mapa. |
| fields[].type | string | — | Tipo. |
| fields[].unit | string|null | — | Unidad de los valores de este objeto. |
| fields[].desc | string | — | Descripción del campo; null cuando no se ha escrito ninguna. |
| fields[].optional | boolean | — | Presente y true cuando el campo faltaba en al menos una respuesta muestreada. puede faltar |
| fields[].map | boolean | — | Presente y true cuando el objeto es un mapa con claves que dependen de los datos (monedas, exchanges, fechas) en lugar de campos fijos. puede faltar |
| fields[].keys | array | — | Muestra de las claves observadas en el mapa; solo en los campos con `map` true. puede faltar |
| fields[].keys[] | string | — | Una clave de muestra. puede faltar |
| fields_generated_at | number | ms | Marca de tiempo. |
| fields_generated_from | array | — | URL de solicitud a partir de cuyas respuestas reales se infirió la tabla de campos; null cuando no hay tabla. |
| fields_generated_from[] | string | — | Una ruta de solicitud muestreada con su cadena de consulta. |
| example | object | — | Última respuesta real correcta capturada por la sonda: `request`, `captured_at`, `truncated` (longitudes originales de los arrays acortados) y `body`; null cuando no hay ninguna. |
| example.request | string | — | Solicitud que produjo el ejemplo capturado (ruta y cadena de consulta). |
| example.captured_at | number | ms | Marca de tiempo. |
| example.truncated | object | — | Lo que se acortó en el ejemplo capturado: para cada array o mapa, el número de elementos omitidos. Sus claves dependen del endpoint documentado. |
| example.body | object | — | Respuesta capturada del endpoint documentado, acortada. Su estructura es la descrita por `fields`. |
| verified_samples | object|null | — | Resultados de las solicitudes de muestra adicionales de la sonda (`at`, `samples` con la consulta, el estado HTTP, la latencia y la comprobación del esquema); null cuando no se ejecutó ninguna. |
| verified_samples.at | number | ms | Hora en que se comprobaron por última vez las muestras adicionales. |
| verified_samples.samples | array | — | Número de muestras. |
| verified_samples.samples[] | object | — | Número de muestras. |
| verified_samples.samples[].query | object | — | Parámetros de consulta de la solicitud de muestra. |
| verified_samples.samples[].query.coin | string | — | Símbolo de la moneda, en mayúsculas (por ejemplo BTC). puede faltar |
| verified_samples.samples[].http | number | — | Estado HTTP devuelto. |
| verified_samples.samples[].ok | boolean | — | `true` cuando la muestra devolvió lo esperado (HTTP 200 con JSON válido, o el estado de error esperado). |
| verified_samples.samples[].latency_ms | number | ms | Tiempo de respuesta de la solicitud de muestra. |
| verified_samples.samples[].schema_ok | boolean|null | — | `true` cuando la respuesta de muestra coincidió con la tabla de campos documentada; `null` cuando no se comprobó. |
| verified_samples.samples[].quality | null | — | `meta.quality` indicado por la respuesta de muestra; `null` cuando no se indica. |
| verified_samples.samples[].note | string|null | — | Nota. |
| probe_detail | null | — | Diferencias de esquema encontradas por el último sondeo: rutas de campos `missing`, `mismatched` y `undocumented`; null cuando no hay ninguna. |
| uptime_30d | object | — | Comprobaciones de la sonda sobre este endpoint en los últimos 30 días: totales, porcentaje de éxito y un desglose por día. |
| uptime_30d.checks | number | count | Número de comprobaciones de la sonda sobre el endpoint en los últimos 30 días (menos días cuando el seguimiento empezó más tarde). |
| uptime_30d.ok | number | count | Número de esas comprobaciones que tuvieron éxito. |
| uptime_30d.pct | number | % | Porcentaje. |
| uptime_30d.days | array | — | Valores diarios o número de días. |
| uptime_30d.days[] | object | — | Valores diarios o número de días. |
| uptime_30d.days[].day | string | — | Día de calendario (UTC). |
| uptime_30d.days[].checks | number | count | Número de solicitudes de sonda ese día. |
| uptime_30d.days[].ok | number | count | Número de solicitudes de sonda correctas ese día. |
| uptime_30d.days[].pct | number | % | Porcentaje. |
| uptime_30d.days[].avg_ms | number | ms | Tiempo medio de respuesta ese día; `null` si no hubo comprobaciones. |
| uptime_30d.days[].max_ms | number | ms | Respuesta más lenta ese día. |
| errors | array | — | Códigos de error que puede devolver la API, cada uno con su estado HTTP, su significado y una recomendación de reintento. |
| errors[] | object | — | Un código de error. |
| errors[].code | string | — | Código. |
| errors[].http | number|string | — | Estado HTTP enviado con este código; una cadena como `501 / 503` cuando corresponde más de uno. |
| errors[].meaning | string | — | Qué significa el error. |
| errors[].retry | string | — | Recomendación sobre si conviene reintentar y cómo hacerlo. |
| errors[].legacy | boolean | — | Presente y true solo en el código utilizado por los endpoints antiguos que responden HTTP 200 con `success: false`. puede faltar |
| rate_limit | object | — | Reglas del límite de solicitudes de la API pública. |
| rate_limit.window_s | number | s | Duración de la ventana de recuento (60). |
| rate_limit.anonymous_per_min | number | count | Solicitudes por minuto permitidas por IP de cliente cuando no se envía ninguna clave de API. |
| rate_limit.scope | string | — | Texto que indica cómo se cuentan las solicitudes: por IP de cliente cuando son anónimas, por clave cuando se envía una cabecera `CB-API-KEY`. |
| rate_limit.key_tiers_per_min | object | — | Solicitudes por minuto permitidas para cada nivel de clave de API, con el nombre del nivel como clave. |
| rate_limit.key_tiers_per_min.hobbyist | number | count | Solicitudes por minuto para las claves del nivel `hobbyist`. |
| rate_limit.key_tiers_per_min.startup | number | count | Solicitudes por minuto para las claves del nivel `startup`. |
| rate_limit.key_tiers_per_min.standard | number | count | Solicitudes por minuto para las claves del nivel `standard`. |
| rate_limit.key_tiers_per_min.professional | number | count | Solicitudes por minuto para las claves del nivel `professional`. |
| rate_limit.exempt | array | — | Patrones de ruta que no se cuentan para el límite. |
| rate_limit.exempt[] | string | — | Un patrón de ruta exento, por ejemplo `/api/coin-icon/*`. |
| rate_limit.headers | array | — | Nombres de las cabeceras de respuesta que informan del estado del límite de solicitudes. |
| rate_limit.headers[] | string | — | Un nombre de cabecera, por ejemplo `X-RateLimit-Remaining`. |
| rate_limit.on_exceed | object | — | Lo que se devuelve cuando se supera el límite: estado `http` y `code` de error. |
| rate_limit.on_exceed.http | number | — | Estado HTTP devuelto cuando se supera el límite (429). |
| rate_limit.on_exceed.code | string | — | Código. |
| related | array | — | Todos los endpoints de la misma categoría, incluido este. |
| related[] | object | — | Un endpoint: `id`, `path` y `title`. |
| related[].id | string | — | Identificador. |
| related[].path | string | — | Ruta de solicitud del endpoint. |
| related[].title | string | — | Título breve para mostrar del endpoint. |
| probe | object | — | Estado de la sonda de endpoints en la que se basan los estados en vivo: hora de la última ejecución, su antigüedad, el intervalo y si es fresca. |
| probe.last_run_at | number | ms | Marca de tiempo. |
| probe.age_s | number | s | Segundos transcurridos desde la última actualización de esta fila. |
| probe.interval_s | number | s | Intervalo previsto entre dos ejecuciones de la sonda (300). |
| probe.fresh | boolean | — | true cuando la última ejecución de la sonda tiene menos de 20 minutos; cuando es false, los estados de los endpoints se notifican como `unknown`. |
| probe.error | null | — | Mensaje de error (presente solo en caso de fallo). |
| meta | object | — | Envoltorio de esta respuesta: id del esquema, sistema que la produce, marcas de tiempo, duración de la caché y frescura. |
| meta.schema | string | — | Id del esquema de esta respuesta; el mismo valor que el `schema` de nivel superior. |
| meta.source | array | — | De dónde procede el valor. |
| meta.source[] | object | — | De dónde procede el valor. |
| meta.source[].system | string | — | Sistema que produjo los datos; siempre `coinboss` en los endpoints del centro de desarrolladores. |
| meta.source[].component | string | — | Componente del que proceden los datos: la sonda de endpoints y la patrulla de calidad de datos. |
| meta.observed_at | null | — | Marca de tiempo. |
| meta.received_at | number | ms | Marca de tiempo. |
| meta.fetched_at | number | ms | Cuándo obtuvo CoinBoss los datos de la fuente. |
| meta.window | string | — | Ventana. |
| meta.cache_ttl_s | number | s | Duración de la caché del lado del servidor para esta respuesta. |
| meta.quality | string | — | `FRESH` cuando este endpoint se sondeó en los últimos 20 minutos; en caso contrario, `STALE`. |
| meta.is_stale | boolean | — | true cuando la fila es más antigua que la ventana de frescura; las filas desactualizadas no se usan en los totales. |
| meta.fallback | string | — | Nota en texto plano sobre lo que devuelve este endpoint cuando sus datos de entrada están desactualizados o faltan. |
Generada 2026-11-11 23:03 UTC a partir de 3 respuestas reales.
Respuesta de ejemplo
/api/meta/endpoint?id=sd-oi · Respuesta real capturada 2026-11-13 03:59:28 UTC. Los arrays y mapas largos se abrevian para su visualización: errors tenía 9 elementos; fields tenía 103 elementos; related tenía 6 elementos; endpoint tenía 35 elementos; uptime_30d.days tenía 3 elementos; verified_samples.samples tenía 4 elementos.
- "success"true
- "schema""coinboss.meta.endpoint/1"
- "now"1794542368241
- "endpoint"
- "id""sd-oi"
- "cat""open-interest"
- "fields"
- "fields_generated_at"1794438008862
- "fields_generated_from"
- "/api/sd/oi?coin=BTC"
- "/api/sd/oi?coin=ETH"
- "/api/sd/oi?coin=SOL"
- "/api/sd/oi?coin=ARKM"
- "example"
- "request""/api/sd/oi?coin=BTC"
- "captured_at"1794542259642
- "truncated"
- "body"
- "verified_samples"
- "at"1794542259642
- "samples"
- "probe_detail"
- "missing"
- "mismatched"
- "undocumented"
- "uptime_30d"
- "checks"411
- "ok"411
- "pct"100
- "days"
- "errors"
- "rate_limit"
- "window_s"60
- "anonymous_per_min"1200
- "scope""per client IP for anonymous requests; per key when a CB-API-KEY header is sent"
- "key_tiers_per_min"
- "exempt"
- "headers"
- "on_exceed"
- "related"
- "probe"
- "last_run_at"1794542029183
- "age_s"339
- "interval_s"300
- "fresh"true
- "error"null
- "meta"
- "schema""coinboss.meta.endpoint/1"
- "source"
- "observed_at"null
- "received_at"1794542259642
- "fetched_at"1794542368241
- "window""latest"
- "cache_ttl_s"30
- "quality""FRESH"
- "is_stale"false
- "fallback""field table comes from the last schema generation; example is the last successful real response"
Muestras verificadas
Además del ejemplo anterior, la sonda llama a este endpoint con estos parámetros y comprueba el esquema en cada ocasión.
| Parámetros | HTTP | Latencia | Resultado |
|---|---|---|---|
| id=sd-funding | 200 | 2 ms | Correcto FRESH |
| id=liquidations-overview | 200 | 2 ms | Correcto FRESH |
| — | 400 | 2 ms | Correcto devuelve el error esperado |
Comprobado 2026-11-13 03:29:26 UTC
Detalles
- Autenticación
- Ninguna. Endpoint público.
- Límite de solicitudes
- 1200 solicitudes por minuto por IP
- Caché del servidor
- 30s
- Microcaché de borde
- 10s
- Fuentes de datos
- Catálogo de endpoints de CoinBoss, esquemas generados por la sonda de la API, sd_api_probe.
- Marcas de tiempo
- Milisegundos de época Unix (UTC), salvo que la descripción del campo indique otra cosa
- Formato de respuesta
- json
- Estabilidad
- Estable
- Disponible desde
- 2026-11-11
Estado en vivo
Disponibilidad, últimos 30 días
99.75% de 408 comprobaciones superadas
- Devuelto pero no documentado: probe_detail.missing, probe_detail.mismatched, probe_detail.undocumented, probe_detail.undocumented[]
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/meta/endpointDisponiblestring — Endpoint id from the catalog (for example `sd-oi`). Unknown ids return 404.
https://www.coinboss.com/api/meta/endpoint?id=sd-oiMás en esta categoría
- Matriz de calidad de datos (vista del recolector) /api/sd/quality
- Catálogo de la API /api/meta/catalog
- Registro de cambios y política de versionado /api/meta/changelog
- Documentación de un endpoint /api/meta/endpoint
- Documento OpenAPI /api/meta/openapi
- Matriz de calidad de datos /api/meta/quality
- Estado del servicio /api/meta/status
- Comprueba si la plataforma conoce un símbolo de moneda /api/coin-exists
- Mapa de símbolo de moneda a ruta del icono alojado localmente /api/coin-icons
- Resumen agregado de la página de moneda /api/content/coin
- Resumen de secciones de todo el sitio /api/content/summary
- Tabla de tipos de cambio fiat /api/currency/fx
- Mapa de id de exchange a ruta del icono alojado localmente /api/exchange-icons
- Comprobación de actividad /api/health
- Estadísticas de la página de investigación /api/research/stats