Documentazione di un endpoint
Documentazione completa di un endpoint: parametri, tabella dei campi generata da risposte reali, una risposta di esempio acquisita, campioni verificati, storico della sonda a 30 giorni, errori e limiti.
/api/meta/endpointRichiesta
Parametri di query
| Nome | Tipo | Obbligatorio | Predefinito | Valori ammessi | Descrizione |
|---|---|---|---|---|---|
| id | string | Obbligatorio | — | — | ID dell'endpoint nel catalogo (per esempio `sd-oi`). Gli ID sconosciuti restituiscono 404. Esempio: sd-oi |
Richiesta di esempio
curl -s "https://www.coinboss.com/api/meta/endpoint?id=sd-oi"Campi della risposta
La tabella dei campi è generata da risposte reali, quindi elenca esattamente ciò che l'endpoint restituisce. I percorsi usano a[] per gli elementi di un array e {*} per gli oggetti indicizzati da un nome dinamico, come una moneta o un exchange.
| Campo | Tipo | Unità | Descrizione |
|---|---|---|---|
| success | boolean | — | true quando la richiesta è riuscita. In caso di errore il corpo è `{ success: false, code, error, request_id }`. |
| schema | string | — | ID dello schema di questa risposta (`coinboss.meta.endpoint/1`). |
| now | number | ms | Ora del server al momento della composizione della risposta. |
| endpoint | object | — | Record di catalogo dell'endpoint. Le chiavi della mappa sono nomi di attributi come `id`, `path`, `status`, `params`, `category`, `sources`, `units`, `formula`. chiavi dinamiche: id,cat,kind,method,path,title |
| endpoint.{*} | array|number|object|string|null | — | Valore di un attributo: testo, un numero, un elenco (`params`, `required`, `ts_fields`) o un oggetto (`probe`, `category`, `example_query`); null quando non è impostato. |
| endpoint.{*}[] | object|string | — | Elemento di un attributo di tipo elenco: la definizione di un parametro in `params`, oppure un nome in `required` / `ts_fields`. può essere assente |
| endpoint.{*}[].name | string | — | Nome. può essere assente |
| endpoint.{*}[].in | string | — | Dove viene inviato il parametro: `query` o `path`. può essere assente |
| endpoint.{*}[].type | string | — | Tipo. può essere assente |
| endpoint.{*}[].required | boolean | — | true quando il parametro deve essere inviato. può essere assente |
| endpoint.{*}[].default | null | — | Valore usato quando il parametro è omesso; null quando non esiste un valore predefinito. può essere assente |
| endpoint.{*}[].enum | null | — | Elenco dei valori accettati; null quando il parametro non è limitato a un elenco. può essere assente |
| endpoint.{*}[].min | null | — | Minimo. può essere assente |
| endpoint.{*}[].max | null | — | Massimo. può essere assente |
| endpoint.{*}[].example | string | — | Valore di esempio del parametro; null quando non ne è indicato alcuno. può essere assente |
| endpoint.{*}[].desc | string | — | Descrizione del parametro. può essere assente |
| endpoint.{*}.checked_at | number | ms | Timestamp. può essere assente |
| endpoint.{*}.http | number | — | Stato HTTP della richiesta più recente della sonda. può essere assente |
| endpoint.{*}.ok | boolean | — | `true` quando la richiesta più recente della sonda ha restituito HTTP 200 con un corpo JSON valido. può essere assente |
| endpoint.{*}.schema_ok | boolean | — | `true` quando la risposta sondata corrispondeva alla tabella dei campi documentata; `null` quando non esiste alcuna tabella dei campi. può essere assente |
| endpoint.{*}.latency_ms | number | ms | Tempo di risposta della richiesta più recente della sonda. può essere assente |
| endpoint.{*}.bytes | number | bytes | Dimensione del corpo della risposta sondata. può essere assente |
| endpoint.{*}.quality | null | — | `meta.quality` riportato dalla risposta sondata (FRESH / PARTIAL / STALE …); `null` quando l'endpoint non lo riporta. può essere assente |
| endpoint.{*}.data_age_s | number|null | s | Secondi trascorsi dall'evento. può essere assente |
| endpoint.{*}.last_ok_at | number | ms | Timestamp. può essere assente |
| endpoint.{*}.fail_streak | number | count | Numero di sonde fallite consecutive; 0 quando l'ultima sonda è riuscita. può essere assente |
| endpoint.{*}.id | string | — | Identificatore. può essere assente |
| endpoint.{*}.title | string | — | Titolo visualizzato della categoria dell'endpoint (all'interno di `category`). può essere assente |
| endpoint.{*}.coin | string | — | Simbolo della moneta, in maiuscolo (per esempio BTC). può essere assente |
| fields | array | — | Tabella dei campi della risposta, dedotta da risposte reali; null quando non è stata generata alcuna tabella. |
| fields[] | object | — | Un campo della risposta: `path`, `type`, `unit`, `desc` e flag. |
| fields[].path | string | — | Percorso del campo nella risposta: `a.b` per l'annidamento, `[]` per gli elementi di un array, `{*}` per i valori di una mappa. |
| fields[].type | string | — | Tipo. |
| fields[].unit | string|null | — | Unità dei valori di questo oggetto. |
| fields[].desc | string | — | Descrizione del campo; null quando non ne è stata scritta alcuna. |
| fields[].optional | boolean | — | Presente e true quando il campo era assente in almeno una delle risposte campionate. può essere assente |
| fields[].map | boolean | — | Presente e true quando l'oggetto è una mappa con chiavi che dipendono dai dati (monete, exchange, date) anziché campi fissi. può essere assente |
| fields[].keys | array | — | Campione delle chiavi osservate nella mappa; solo sui campi con `map` true. può essere assente |
| fields[].keys[] | string | — | Una chiave di esempio. può essere assente |
| fields_generated_at | number | ms | Timestamp. |
| fields_generated_from | array | — | URL di richiesta dalle cui risposte reali è stata dedotta la tabella dei campi; null quando non esiste alcuna tabella. |
| fields_generated_from[] | string | — | Un percorso di richiesta campionato con la stringa di query. |
| example | object | — | Ultima risposta reale riuscita acquisita dalla sonda: `request`, `captured_at`, `truncated` (lunghezze originali degli array accorciati) e `body`; null quando non ce n'è alcuna. |
| example.request | string | — | Richiesta che ha prodotto l'esempio acquisito (percorso e stringa di query). |
| example.captured_at | number | ms | Timestamp. |
| example.truncated | object | — | Che cosa è stato accorciato nell'esempio acquisito: per ogni array o mappa, il numero di elementi omessi. Le sue chiavi dipendono dall'endpoint documentato. |
| example.body | object | — | Risposta acquisita dell'endpoint documentato, accorciata. La sua struttura è quella descritta da `fields`. |
| verified_samples | object|null | — | Risultati delle richieste campione aggiuntive della sonda (`at`, `samples` con query, stato HTTP, latenza, verifica dello schema); null quando non ne è stata eseguita alcuna. |
| verified_samples.at | number | ms | Ora dell'ultima verifica dei campioni aggiuntivi. |
| verified_samples.samples | array | — | Numero di campioni. |
| verified_samples.samples[] | object | — | Numero di campioni. |
| verified_samples.samples[].query | object | — | Parametri di query della richiesta campione. |
| verified_samples.samples[].query.coin | string | — | Simbolo della moneta, in maiuscolo (per esempio BTC). può essere assente |
| verified_samples.samples[].http | number | — | Stato HTTP restituito. |
| verified_samples.samples[].ok | boolean | — | `true` quando il campione ha restituito quanto atteso (HTTP 200 con JSON valido, oppure lo stato di errore atteso). |
| verified_samples.samples[].latency_ms | number | ms | Tempo di risposta della richiesta campione. |
| verified_samples.samples[].schema_ok | boolean|null | — | `true` quando la risposta del campione corrispondeva alla tabella dei campi documentata; `null` quando non è stata verificata. |
| verified_samples.samples[].quality | null | — | `meta.quality` riportato dalla risposta del campione; `null` quando non è riportato. |
| verified_samples.samples[].note | string|null | — | Nota. |
| probe_detail | null | — | Differenze di schema rilevate dall'ultima sonda: percorsi dei campi `missing`, `mismatched` e `undocumented`; null quando non ce ne sono. |
| uptime_30d | object | — | Controlli della sonda su questo endpoint negli ultimi 30 giorni: totali, percentuale di successo e ripartizione per giorno. |
| uptime_30d.checks | number | count | Numero di controlli della sonda sull'endpoint negli ultimi 30 giorni (meno giorni quando il tracciamento è iniziato più tardi). |
| uptime_30d.ok | number | count | Numero di quei controlli andati a buon fine. |
| uptime_30d.pct | number | % | Percentuale. |
| uptime_30d.days | array | — | Valori giornalieri o numero di giorni. |
| uptime_30d.days[] | object | — | Valori giornalieri o numero di giorni. |
| uptime_30d.days[].day | string | — | Giorno di calendario (UTC). |
| uptime_30d.days[].checks | number | count | Numero di richieste della sonda in quel giorno. |
| uptime_30d.days[].ok | number | count | Numero di richieste della sonda riuscite in quel giorno. |
| uptime_30d.days[].pct | number | % | Percentuale. |
| uptime_30d.days[].avg_ms | number | ms | Tempo di risposta medio in quel giorno; `null` in assenza di controlli. |
| uptime_30d.days[].max_ms | number | ms | Risposta più lenta in quel giorno. |
| errors | array | — | Codici di errore che l'API può restituire, ciascuno con stato HTTP, significato e indicazioni sul nuovo tentativo. |
| errors[] | object | — | Un codice di errore. |
| errors[].code | string | — | Codice. |
| errors[].http | number|string | — | Stato HTTP inviato con questo codice; una stringa come `501 / 503` quando ne è applicabile più di uno. |
| errors[].meaning | string | — | Che cosa significa l'errore. |
| errors[].retry | string | — | Indicazioni su se e come ritentare. |
| errors[].legacy | boolean | — | Presente e true solo per il codice usato dagli endpoint meno recenti che rispondono HTTP 200 con `success: false`. può essere assente |
| rate_limit | object | — | Regole sui limiti di richieste dell'API pubblica. |
| rate_limit.window_s | number | s | Durata della finestra di conteggio (60). |
| rate_limit.anonymous_per_min | number | count | Richieste al minuto consentite per IP del client quando non viene inviata alcuna chiave API. |
| rate_limit.scope | string | — | Testo che indica come vengono conteggiate le richieste: per IP del client quando sono anonime, per chiave quando viene inviato un header `CB-API-KEY`. |
| rate_limit.key_tiers_per_min | object | — | Richieste al minuto consentite per ciascun livello di chiave API, indicizzate per nome del livello. |
| rate_limit.key_tiers_per_min.hobbyist | number | count | Richieste al minuto per le chiavi del livello `hobbyist`. |
| rate_limit.key_tiers_per_min.startup | number | count | Richieste al minuto per le chiavi del livello `startup`. |
| rate_limit.key_tiers_per_min.standard | number | count | Richieste al minuto per le chiavi del livello `standard`. |
| rate_limit.key_tiers_per_min.professional | number | count | Richieste al minuto per le chiavi del livello `professional`. |
| rate_limit.exempt | array | — | Pattern di percorso che non vengono conteggiati ai fini del limite. |
| rate_limit.exempt[] | string | — | Un pattern di percorso esente, per esempio `/api/coin-icon/*`. |
| rate_limit.headers | array | — | Nomi degli header di risposta che riportano lo stato del limite di richieste. |
| rate_limit.headers[] | string | — | Il nome di un header, per esempio `X-RateLimit-Remaining`. |
| rate_limit.on_exceed | object | — | Che cosa viene restituito quando il limite è superato: stato `http` e `code` di errore. |
| rate_limit.on_exceed.http | number | — | Stato HTTP restituito quando il limite è superato (429). |
| rate_limit.on_exceed.code | string | — | Codice. |
| related | array | — | Tutti gli endpoint della stessa categoria, compreso questo. |
| related[] | object | — | Un endpoint: `id`, `path` e `title`. |
| related[].id | string | — | Identificatore. |
| related[].path | string | — | Percorso di richiesta dell'endpoint. |
| related[].title | string | — | Titolo breve visualizzato dell'endpoint. |
| probe | object | — | Stato della sonda degli endpoint alla base degli stati in tempo reale: ora dell'ultima esecuzione, la sua età, l'intervallo e se è aggiornata. |
| probe.last_run_at | number | ms | Timestamp. |
| probe.age_s | number | s | Secondi trascorsi dall'ultimo aggiornamento di questa riga. |
| probe.interval_s | number | s | Intervallo previsto tra due esecuzioni della sonda (300). |
| probe.fresh | boolean | — | true quando l'ultima esecuzione della sonda risale a meno di 20 minuti fa; quando è false, gli stati degli endpoint sono riportati come `unknown`. |
| probe.error | null | — | Messaggio di errore (presente solo in caso di errore). |
| meta | object | — | Envelope di questa risposta: ID dello schema, sistema di origine, timestamp, durata della cache e freschezza. |
| meta.schema | string | — | ID dello schema di questa risposta; stesso valore del campo di primo livello `schema`. |
| meta.source | array | — | Provenienza del valore. |
| meta.source[] | object | — | Provenienza del valore. |
| meta.source[].system | string | — | Sistema che ha prodotto i dati; sempre `coinboss` per gli endpoint del centro sviluppatori. |
| meta.source[].component | string | — | Componente alla base dei dati: la sonda degli endpoint e il controllo periodico della qualità dei dati. |
| meta.observed_at | null | — | Timestamp. |
| meta.received_at | number | ms | Timestamp. |
| meta.fetched_at | number | ms | Momento in cui CoinBoss ha recuperato i dati dalla fonte. |
| meta.window | string | — | Finestra. |
| meta.cache_ttl_s | number | s | Durata della cache lato server di questa risposta. |
| meta.quality | string | — | `FRESH` quando questo endpoint è stato sondato negli ultimi 20 minuti, altrimenti `STALE`. |
| meta.is_stale | boolean | — | true quando la riga è più vecchia della finestra di freschezza; le righe obsolete non vengono usate nei totali. |
| meta.fallback | string | — | Nota in testo semplice su ciò che questo endpoint restituisce quando i suoi dati di ingresso sono obsoleti o mancanti. |
Generata 2026-11-11 23:03 UTC da 3 risposte reali.
Risposta di esempio
/api/meta/endpoint?id=sd-oi · Risposta reale acquisita 2026-11-13 03:59:28 UTC. Array e mappe lunghi sono abbreviati per la visualizzazione: errors conteneva 9 elementi; fields conteneva 103 elementi; related conteneva 6 elementi; endpoint conteneva 35 elementi; uptime_30d.days conteneva 3 elementi; verified_samples.samples conteneva 4 elementi.
- "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"
Campioni verificati
Oltre all'esempio qui sopra, la sonda chiama questo endpoint con i parametri seguenti e ogni volta ne verifica lo schema.
| Parametri | HTTP | Latenza | Risultato |
|---|---|---|---|
| id=sd-funding | 200 | 3 ms | Superato FRESH |
| id=liquidations-overview | 200 | 2 ms | Superato FRESH |
| — | 400 | 1 ms | Superato restituisce l'errore previsto |
Verificato 2026-11-13 03:59:28 UTC
Dettagli
- Autenticazione
- Nessuna. Endpoint pubblico.
- Limite di richieste
- 1200 richieste al minuto per IP
- Cache del server
- 30s
- Micro-cache edge
- 10s
- Fonti dei dati
- Catalogo degli endpoint di CoinBoss, schemi generati dalla sonda dell'API, sd_api_probe.
- Timestamp
- Millisecondi dall'epoca Unix (UTC), salvo diversa indicazione nella descrizione del campo
- Formato della risposta
- json
- Stabilità
- Stabile
- Disponibile dal
- 2026-11-11
Stato in tempo reale
Disponibilità, ultimi 30 giorni
99.75% di 408 verifiche superate
- Restituito ma non documentato: probe_detail.missing, probe_detail.mismatched, probe_detail.undocumented, probe_detail.undocumented[]
Errori
Le chiamate non riuscite hanno la stessa struttura su tutti gli endpoint. L'elenco completo è nella pagina degli errori. Errori e limiti di richieste →
| Codice | HTTP | Significato | Che cosa fare |
|---|---|---|---|
| INVALID_PARAM | 400 | Manca un parametro obbligatorio oppure un valore non è accettato. `param` indica il nome del parametro quando è noto. | Non riprovare senza modifiche; correggere la richiesta. |
| UNAUTHORIZED | 401 | L'header `CB-API-KEY` è stato inviato ma la chiave è sconosciuta o revocata. I dati pubblici non richiedono alcuna chiave: rimuovere l'header o usare una chiave valida. | Non riprovare senza modifiche. |
| FORBIDDEN | 403 | La route non fa parte dell'API pubblica (interna o riservata agli account). | Non riprovare. |
| NOT_FOUND | 404 | Route sconosciuta, oppure la moneta / l'exchange / il fondo richiesto non esiste. | Non riprovare; verificare il percorso e gli identificatori nel catalogo. |
| RATE_LIMITED | 429 | Più richieste del limite al minuto. `Retry-After` indica i secondi da attendere. | Attendere `Retry-After`, poi riprovare con backoff. |
| INTERNAL | 500 | Errore imprevisto del server. Il messaggio è volutamente generico; citare `request_id` quando lo si segnala. | Riprovare una volta dopo qualche secondo; se persiste, segnalarlo con l'ID della richiesta. |
| UPSTREAM_FAILED | 503 | La fonte di dati alla base di questo endpoint non ha risposto in tempo. Al suo posto non vengono restituiti numeri obsoleti o sostitutivi. | Riprovare con backoff; controllare la pagina di stato. |
| UNAVAILABLE | 501 / 503 | Il dataset è temporaneamente non pronto (riscaldamento della cache) oppure l'endpoint non ha ancora una fonte pubblica lecita. | Riprovare più tardi; il catalogo contrassegna gli endpoint non disponibili per scelta progettuale. |
| REQUEST_FAILED | 200 | Alcuni endpoint meno recenti rispondono HTTP 200 con `success: false`. Controllare sempre `success`, non solo lo stato HTTP. | Dipende dal messaggio; trattare come una richiesta non riuscita. |
Prova
/api/meta/endpointDisponibilestring — Endpoint id from the catalog (for example `sd-oi`). Unknown ids return 404.
https://www.coinboss.com/api/meta/endpoint?id=sd-oiAltro in questa categoria
- Matrice della qualità dei dati (vista del collector) /api/sd/quality
- Catalogo dell'API /api/meta/catalog
- Registro delle modifiche e politica di versionamento /api/meta/changelog
- Documentazione di un endpoint /api/meta/endpoint
- Documento OpenAPI /api/meta/openapi
- Matrice della qualità dei dati /api/meta/quality
- Stato del servizio /api/meta/status
- Verifica se il simbolo di una moneta è noto alla piattaforma /api/coin-exists
- Mappa dal simbolo della moneta al percorso dell'icona ospitata in locale /api/coin-icons
- Riepilogo aggregato della pagina moneta /api/content/coin
- Riepilogo delle sezioni dell'intero sito /api/content/summary
- Tabella dei tassi di cambio fiat /api/currency/fx
- Mappa dall'ID dell'exchange al percorso dell'icona ospitata in locale /api/exchange-icons
- Controllo di liveness /api/health
- Statistiche della pagina di ricerca /api/research/stats