API-Katalog
Alle öffentlichen Endpunkte mit Kategorie, deklariertem und Live-Status, Cache-TTL und letztem Prüfergebnis, dazu die Rate-Limits und die Tabelle der Fehlercodes.
/api/meta/catalogAnfrage
Dieser Endpunkt hat keine Parameter.
Beispielanfrage
curl -s "https://www.coinboss.com/api/meta/catalog"Antwortfelder
Die Feldtabelle wird aus echten Antworten erzeugt und führt daher genau das auf, was der Endpunkt zurückgibt. In Pfaden steht a[] für Array-Elemente und {*} für Objekte, deren Schlüssel ein dynamischer Name ist, etwa ein Coin oder eine Börse.
| Feld | Typ | Einheit | Beschreibung |
|---|---|---|---|
| success | boolean | — | true, wenn die Anfrage erfolgreich war. Im Fehlerfall lautet der Body `{ success: false, code, error, request_id }`. |
| schema | string | — | Schema-ID dieser Antwort (`coinboss.meta.catalog/1`). |
| now | number | ms | Serverzeit beim Erstellen der Antwort. |
| api_version | string | — | Version der öffentlichen API (`v1`). |
| catalog_version | string | — | Version des Endpunktkatalogs, ein Release-Datum wie `2026.11.11`. |
| base_path | string | — | Pfadpräfix, das alle Endpunkte gemeinsam haben (`/api`). |
| summary | object | — | Zusammenfassungsblock. |
| summary.total | number | — | Gesamtzahl. |
| summary.available | number | — | Gibt an, ob Daten verfügbar sind. |
| summary.partial | number | — | true, wenn nur ein Teil der erwarteten Daten vorhanden ist. |
| summary.degraded | number | count | Anzahl der Endpunkte mit dem Live-Status `degraded`. |
| summary.down | number | count | Anzahl der Endpunkte mit dem Live-Status `down`. |
| summary.unavailable | number | — | Elemente, für die keine Daten verfügbar sind, mit Begründung. Werden nie als 0 ausgewiesen. |
| summary.unknown | number | count | Anzahl der Endpunkte mit dem Live-Status `unknown` (kein aktuelles Probe-Ergebnis). |
| probe | object | — | Zustand der Endpunkt-Probe hinter den Live-Status: Zeitpunkt des letzten Laufs, dessen Alter, das Intervall und ob sie aktuell ist. |
| probe.last_run_at | number | ms | Zeitstempel. |
| probe.age_s | number | s | Sekunden seit der letzten Aktualisierung dieser Zeile. |
| probe.interval_s | number | s | Geplantes Intervall zwischen zwei Probe-Läufen (300). |
| probe.fresh | boolean | — | true, wenn der letzte Probe-Lauf weniger als 20 Minuten alt ist; bei false werden die Endpunkt-Status als `unknown` gemeldet. |
| probe.error | null | — | Fehlermeldung (nur bei einem Fehler vorhanden). |
| categories | array | — | Endpunktkategorien, die mindestens einen Endpunkt enthalten, mit der Anzahl der Endpunkte je Status. |
| categories[] | object | — | Eine Kategorie: `id`, `title`, `desc` und die Anzahl ihrer Endpunkte in jedem Status. |
| categories[].id | string | — | Kennung. |
| categories[].title | string | — | Anzeigetitel der Kategorie. |
| categories[].desc | string | — | Beschreibung der Kategorie in einem Satz; null, wenn keine verfasst wurde. |
| categories[].total | number | — | Gesamtzahl. |
| categories[].available | number | — | Gibt an, ob Daten verfügbar sind. |
| categories[].partial | number | — | true, wenn nur ein Teil der erwarteten Daten vorhanden ist. |
| categories[].degraded | number | count | Anzahl der Endpunkte der Kategorie mit dem Live-Status `degraded`. |
| categories[].down | number | count | Anzahl der Endpunkte der Kategorie mit dem Live-Status `down`. |
| categories[].unavailable | number | — | Elemente, für die keine Daten verfügbar sind, mit Begründung. Werden nie als 0 ausgewiesen. |
| categories[].unknown | number | count | Anzahl der Endpunkte der Kategorie mit dem Live-Status `unknown`. |
| endpoints | array | — | Jeder dokumentierte Endpunkt mit seinem Live-Status. |
| endpoints[] | object | — | Ein Endpunkt: Identität, Pfad, deklarierter Status und Live-Status, Cache-Lebensdauer, Parameternamen und das letzte Probe-Ergebnis. |
| endpoints[].id | string | — | Kennung. |
| endpoints[].cat | string | — | Kennung der Kategorie, zu der der Endpunkt gehört. |
| endpoints[].kind | string | — | Art. |
| endpoints[].method | string | — | Hinweise zu Formel / Methode. |
| endpoints[].path | string | — | Anfragepfad des Endpunkts; Segmente der Form `:name` sind Pfadparameter. |
| endpoints[].title | string | — | Kurzer Anzeigetitel des Endpunkts. |
| endpoints[].summary | string | — | Zusammenfassungsblock. |
| endpoints[].declared | string | — | Im Katalog deklarierter Status, unabhängig von der Probe: `available`, `partial` oder `unavailable`. |
| endpoints[].status | string | — | Status. |
| endpoints[].status_reason | string|null | — | Warum `status` nicht `available` ist, im Klartext; null, wenn er es ist. |
| endpoints[].stability | string | — | `stable`, `beta` (die Feldmenge kann sich ohne die 90-Tage-Ankündigung ändern) oder `legacy` (funktioniert weiter, ein Ersatz existiert). |
| endpoints[].since | string|null | — | Beginn des Zeitraums. |
| endpoints[].ttl_s | number|null | s | Serverseitige Cache-Lebensdauer der Antworten des Endpunkts; null, wenn nicht gecacht wird oder nicht zutreffend. |
| endpoints[].params | array | — | Namen aller Parameter, die der Endpunkt akzeptiert. leer in den Stichproben, aus denen diese Tabelle erzeugt wurde |
| endpoints[].params[] | string | — | Ein Parametername. |
| endpoints[].required | array | — | Namen der Parameter, die gesendet werden müssen. leer in den Stichproben, aus denen diese Tabelle erzeugt wurde |
| endpoints[].probe | object | — | Letztes Probe-Ergebnis des Endpunkts: Prüfzeitpunkt, HTTP-Status, `ok`, `schema_ok`, Latenz, Größe, Datenalter, letzter Erfolg und Fehlerserie; null, wenn nie geprüft. |
| endpoints[].probe.checked_at | number | ms | Zeitstempel. |
| endpoints[].probe.http | number | — | HTTP-Status der letzten Probe-Anfrage. |
| endpoints[].probe.ok | boolean | — | `true`, wenn die letzte Probe-Anfrage HTTP 200 mit gültigem JSON-Body geliefert hat. |
| endpoints[].probe.schema_ok | boolean | — | `true`, wenn die geprüfte Antwort der dokumentierten Feldtabelle entsprach; `null`, wenn keine Feldtabelle existiert. |
| endpoints[].probe.latency_ms | number | ms | Antwortzeit der letzten Probe-Anfrage. |
| endpoints[].probe.bytes | number | bytes | Größe des geprüften Antwort-Bodys. |
| endpoints[].probe.quality | null | — | Von der geprüften Antwort gemeldete `meta.quality` (FRESH / PARTIAL / STALE …); `null`, wenn der Endpunkt sie nicht meldet. |
| endpoints[].probe.data_age_s | number|null | s | Sekunden seit dem Ereignis. |
| endpoints[].probe.last_ok_at | number | ms | Zeitstempel. |
| endpoints[].probe.fail_streak | number | count | Anzahl aufeinanderfolgender fehlgeschlagener Proben; 0, wenn die letzte Probe erfolgreich war. |
| endpoints[].required[] | string | — | Ein Name eines Pflichtparameters. |
| rate_limit | object | — | Rate-Limit-Regeln der öffentlichen API. |
| rate_limit.window_s | number | s | Länge des Zählfensters (60). |
| rate_limit.anonymous_per_min | number | count | Erlaubte Anfragen pro Minute je Client-IP, wenn kein API-Schlüssel gesendet wird. |
| rate_limit.scope | string | — | Text, der angibt, wie Anfragen gezählt werden: anonym je Client-IP, je Schlüssel, wenn ein Header `CB-API-KEY` gesendet wird. |
| rate_limit.key_tiers_per_min | object | — | Erlaubte Anfragen pro Minute für jede API-Schlüssel-Stufe, mit dem Stufennamen als Schlüssel. |
| rate_limit.key_tiers_per_min.hobbyist | number | count | Anfragen pro Minute für Schlüssel der Stufe `hobbyist`. |
| rate_limit.key_tiers_per_min.startup | number | count | Anfragen pro Minute für Schlüssel der Stufe `startup`. |
| rate_limit.key_tiers_per_min.standard | number | count | Anfragen pro Minute für Schlüssel der Stufe `standard`. |
| rate_limit.key_tiers_per_min.professional | number | count | Anfragen pro Minute für Schlüssel der Stufe `professional`. |
| rate_limit.exempt | array | — | Pfadmuster, die nicht auf das Limit angerechnet werden. |
| rate_limit.exempt[] | string | — | Ein ausgenommenes Pfadmuster, zum Beispiel `/api/coin-icon/*`. |
| rate_limit.headers | array | — | Namen der Antwort-Header, die den Rate-Limit-Zustand melden. |
| rate_limit.headers[] | string | — | Ein Header-Name, zum Beispiel `X-RateLimit-Remaining`. |
| rate_limit.on_exceed | object | — | Was zurückgegeben wird, wenn das Limit überschritten ist: `http`-Status und Fehler-`code`. |
| rate_limit.on_exceed.http | number | — | HTTP-Status, der bei Überschreitung des Limits zurückgegeben wird (429). |
| rate_limit.on_exceed.code | string | — | Code. |
| errors | array | — | Fehlercodes, die die API zurückgeben kann, jeweils mit HTTP-Status, Bedeutung und Hinweis zum erneuten Versuch. |
| errors[] | object | — | Ein Fehlercode. |
| errors[].code | string | — | Code. |
| errors[].http | number|string | — | Mit diesem Code gesendeter HTTP-Status; ein String wie `501 / 503`, wenn mehr als einer zutrifft. |
| errors[].meaning | string | — | Was der Fehler bedeutet. |
| errors[].retry | string | — | Hinweis, ob und wie ein erneuter Versuch sinnvoll ist. |
| errors[].legacy | boolean | — | Nur vorhanden und true bei dem Code, den ältere Endpunkte verwenden, die mit HTTP 200 und `success: false` antworten. kann fehlen |
| status_legend | object | — | Klartextdefinition jedes Endpunktstatus. |
| status_legend.available | string | — | Gibt an, ob Daten verfügbar sind. |
| status_legend.partial | string | — | true, wenn nur ein Teil der erwarteten Daten vorhanden ist. |
| status_legend.degraded | string | — | Definition des Status `degraded`. |
| status_legend.down | string | — | Definition des Status `down`. |
| status_legend.unavailable | string | — | Elemente, für die keine Daten verfügbar sind, mit Begründung. Werden nie als 0 ausgewiesen. |
| status_legend.unknown | string | — | Definition des Status `unknown`. |
| meta | object | — | Umschlag dieser Antwort: Schema-ID, erzeugendes System, Zeitstempel, Cache-Lebensdauer und Aktualität. |
| meta.schema | string | — | Schema-ID dieser Antwort; derselbe Wert wie `schema` auf oberster Ebene. |
| meta.source | array | — | Herkunft des Werts. |
| meta.source[] | object | — | Herkunft des Werts. |
| meta.source[].system | string | — | System, das die Daten erzeugt hat; bei den Endpunkten des Entwicklerzentrums immer `coinboss`. |
| meta.source[].component | string | — | Komponente hinter den Daten: die Endpunkt-Probe und die Datenqualitäts-Patrouille. |
| meta.observed_at | null | — | Zeitstempel. |
| meta.received_at | number | ms | Zeitstempel. |
| meta.fetched_at | number | ms | Zeitpunkt, zu dem CoinBoss die Daten von der Quelle abgerufen hat. |
| meta.window | string | — | Zeitfenster. |
| meta.cache_ttl_s | number | s | Serverseitige Cache-Lebensdauer dieser Antwort. |
| meta.quality | string | — | `FRESH`, wenn die Endpunkt-Probe innerhalb der letzten 20 Minuten gemeldet hat, andernfalls `STALE`. |
| meta.is_stale | boolean | — | true, wenn die Zeile älter als das Aktualitätsfenster ist; veraltete Zeilen fließen nicht in die Summen ein. |
| meta.fallback | string | — | Klartexthinweis dazu, was dieser Endpunkt zurückgibt, wenn seine Eingangsdaten veraltet sind oder fehlen. |
Erzeugt 2026-11-11 23:01 UTC aus 1 echten Antworten.
Beispielantwort
/api/meta/catalog · Echte Antwort, erfasst 2026-11-13 03:53:45 UTC. Lange Arrays und Maps sind für die Anzeige gekürzt: errors hatte 9 Elemente; endpoints hatte 299 Elemente; categories hatte 21 Elemente.
- "success"true
- "schema""coinboss.meta.catalog/1"
- "now"1794542025566
- "api_version""v1"
- "catalog_version""2026.11.12"
- "base_path""/api"
- "summary"
- "total"299
- "available"256
- "partial"17
- "degraded"17
- "down"8
- "unavailable"1
- "unknown"0
- "probe"
- "last_run_at"1794541726312
- "age_s"299
- "interval_s"300
- "fresh"true
- "error"null
- "categories"
- "endpoints"
- "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"
- "errors"
- "status_legend"
- "available""last probe returned HTTP 200 and the response matched the documented schema"
- "partial""works, but exchange / field coverage is incomplete (see status_reason)"
- "degraded""responding, but schema drift or stale data was detected by the last probe"
- "down""last probe failed"
- "unavailable""documented for completeness; no lawful public source yet, the endpoint returns nulls or is not served"
- "unknown""no probe result within the last 20 minutes"
- "meta"
- "schema""coinboss.meta.catalog/1"
- "source"
- "observed_at"null
- "received_at"1794541726312
- "fetched_at"1794542025566
- "window""latest"
- "cache_ttl_s"30
- "quality""FRESH"
- "is_stale"false
- "fallback""when the probe has not reported within 20 minutes every endpoint status becomes \"unknown\""
Details
- Authentifizierung
- Keine. Öffentlicher Endpunkt.
- Rate-Limit
- 1200 Anfragen pro Minute und IP
- Server-Cache
- 30s
- Edge-Micro-Cache
- 10s
- Aktualisierungsintervall
- Bei Anfrage aus der Katalogdatei und den jüngsten Prüfergebnissen neu aufgebaut (die Prüfsonde läuft alle 5 Minuten).
- Datenquellen
- CoinBoss-Endpunktkatalog + sd_api_probe (Ergebnisse echter Aufrufe der API-Prüfsonde).
- Zeitstempel
- Unix-Epoche in Millisekunden (UTC), sofern die Feldbeschreibung nichts anderes angibt
- Antwortformat
- json
- Stabilität
- Stabil
- Verfügbar seit
- 2026-11-11
Live-Status
Verfügbarkeit, letzte 30 Tage
100 % von 408 Prüfungen bestanden
Fehler
Fehlgeschlagene Aufrufe haben auf jedem Endpunkt denselben Aufbau. Die vollständige Liste steht auf der Fehlerseite. Fehler und Rate-Limits →
| Code | HTTP | Bedeutung | Empfohlene Reaktion |
|---|---|---|---|
| INVALID_PARAM | 400 | Ein erforderlicher Parameter fehlt oder ein Wert wird nicht akzeptiert. `param` nennt den Parameter, sofern er bekannt ist. | Nicht unverändert wiederholen; die Anfrage korrigieren. |
| UNAUTHORIZED | 401 | Der Header `CB-API-KEY` wurde gesendet, der Schlüssel ist jedoch unbekannt oder widerrufen. Öffentliche Daten erfordern keinen Schlüssel – lassen Sie den Header weg oder verwenden Sie einen gültigen Schlüssel. | Nicht unverändert wiederholen. |
| FORBIDDEN | 403 | Die Route gehört nicht zur öffentlichen API (intern oder nur für Konten). | Nicht wiederholen. |
| NOT_FOUND | 404 | Unbekannte Route, oder der angefragte Coin / die Börse / der Fonds existiert nicht. | Nicht wiederholen; Pfad und Kennungen mit dem Katalog abgleichen. |
| RATE_LIMITED | 429 | Mehr Anfragen, als das Limit pro Minute zulässt. `Retry-After` gibt die Wartezeit in Sekunden an. | `Retry-After` abwarten, dann mit Backoff wiederholen. |
| INTERNAL | 500 | Unerwarteter Serverfehler. Die Meldung ist bewusst allgemein gehalten; geben Sie `request_id` an, wenn Sie den Fehler melden. | Einmal nach einigen Sekunden wiederholen; wenn der Fehler bestehen bleibt, mit der Request-ID melden. |
| UPSTREAM_FAILED | 503 | Die Datenquelle hinter diesem Endpunkt hat nicht rechtzeitig geantwortet. Es werden ersatzweise keine veralteten oder stellvertretenden Zahlen zurückgegeben. | Mit Backoff wiederholen; die Statusseite prüfen. |
| UNAVAILABLE | 501 / 503 | Der Datensatz ist vorübergehend nicht bereit (Cache wird aufgewärmt), oder der Endpunkt hat noch keine rechtmäßige öffentliche Quelle. | Später wiederholen; der Katalog kennzeichnet Endpunkte, die konzeptbedingt nicht verfügbar sind. |
| REQUEST_FAILED | 200 | Einige ältere Endpunkte antworten mit HTTP 200 und `success: false`. Prüfen Sie immer `success`, nicht nur den HTTP-Status. | Hängt von der Meldung ab; als fehlgeschlagene Anfrage behandeln. |
Ausprobieren
/api/meta/catalogVerfügbarKeine Parameter.
https://www.coinboss.com/api/meta/catalogMehr in dieser Kategorie
- Datenqualitätsmatrix (Sicht der Collectoren) /api/sd/quality
- API-Katalog /api/meta/catalog
- Änderungsprotokoll und Versionierungsrichtlinie /api/meta/changelog
- Endpunktdokumentation /api/meta/endpoint
- OpenAPI-Dokument /api/meta/openapi
- Datenqualitätsmatrix /api/meta/quality
- Dienststatus /api/meta/status
- Prüft, ob ein Coin-Symbol der Plattform bekannt ist /api/coin-exists
- Zuordnung von Coin-Symbol zu lokal gehostetem Icon-Pfad /api/coin-icons
- Aggregierte Zusammenfassung der Coin-Seite /api/content/coin
- Websiteweite Zusammenfassung der Bereiche /api/content/summary
- Tabelle der Fiat-Wechselkurse /api/currency/fx
- Zuordnung von Börsenkennung zu lokal gehostetem Icon-Pfad /api/exchange-icons
- Liveness-Check /api/health
- Statistik der Research-Seite /api/research/stats