/api/meta/catalog
GETVerfügbarFRESH

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.

GET/api/meta/catalog

Anfrage

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.

FeldTypEinheitBeschreibung
successboolean—true, wenn die Anfrage erfolgreich war. Im Fehlerfall lautet der Body `{ success: false, code, error, request_id }`.
schemastring—Schema-ID dieser Antwort (`coinboss.meta.catalog/1`).
nownumbermsServerzeit beim Erstellen der Antwort.
api_versionstring—Version der öffentlichen API (`v1`).
catalog_versionstring—Version des Endpunktkatalogs, ein Release-Datum wie `2026.11.11`.
base_pathstring—Pfadpräfix, das alle Endpunkte gemeinsam haben (`/api`).
summaryobject—Zusammenfassungsblock.
summary.totalnumber—Gesamtzahl.
summary.availablenumber—Gibt an, ob Daten verfügbar sind.
summary.partialnumber—true, wenn nur ein Teil der erwarteten Daten vorhanden ist.
summary.degradednumbercountAnzahl der Endpunkte mit dem Live-Status `degraded`.
summary.downnumbercountAnzahl der Endpunkte mit dem Live-Status `down`.
summary.unavailablenumber—Elemente, für die keine Daten verfügbar sind, mit Begründung. Werden nie als 0 ausgewiesen.
summary.unknownnumbercountAnzahl der Endpunkte mit dem Live-Status `unknown` (kein aktuelles Probe-Ergebnis).
probeobject—Zustand der Endpunkt-Probe hinter den Live-Status: Zeitpunkt des letzten Laufs, dessen Alter, das Intervall und ob sie aktuell ist.
probe.last_run_atnumbermsZeitstempel.
probe.age_snumbersSekunden seit der letzten Aktualisierung dieser Zeile.
probe.interval_snumbersGeplantes Intervall zwischen zwei Probe-Läufen (300).
probe.freshboolean—true, wenn der letzte Probe-Lauf weniger als 20 Minuten alt ist; bei false werden die Endpunkt-Status als `unknown` gemeldet.
probe.errornull—Fehlermeldung (nur bei einem Fehler vorhanden).
categoriesarray—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[].idstring—Kennung.
categories[].titlestring—Anzeigetitel der Kategorie.
categories[].descstring—Beschreibung der Kategorie in einem Satz; null, wenn keine verfasst wurde.
categories[].totalnumber—Gesamtzahl.
categories[].availablenumber—Gibt an, ob Daten verfügbar sind.
categories[].partialnumber—true, wenn nur ein Teil der erwarteten Daten vorhanden ist.
categories[].degradednumbercountAnzahl der Endpunkte der Kategorie mit dem Live-Status `degraded`.
categories[].downnumbercountAnzahl der Endpunkte der Kategorie mit dem Live-Status `down`.
categories[].unavailablenumber—Elemente, für die keine Daten verfügbar sind, mit Begründung. Werden nie als 0 ausgewiesen.
categories[].unknownnumbercountAnzahl der Endpunkte der Kategorie mit dem Live-Status `unknown`.
endpointsarray—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[].idstring—Kennung.
endpoints[].catstring—Kennung der Kategorie, zu der der Endpunkt gehört.
endpoints[].kindstring—Art.
endpoints[].methodstring—Hinweise zu Formel / Methode.
endpoints[].pathstring—Anfragepfad des Endpunkts; Segmente der Form `:name` sind Pfadparameter.
endpoints[].titlestring—Kurzer Anzeigetitel des Endpunkts.
endpoints[].summarystring—Zusammenfassungsblock.
endpoints[].declaredstring—Im Katalog deklarierter Status, unabhängig von der Probe: `available`, `partial` oder `unavailable`.
endpoints[].statusstring—Status.
endpoints[].status_reasonstring|null—Warum `status` nicht `available` ist, im Klartext; null, wenn er es ist.
endpoints[].stabilitystring—`stable`, `beta` (die Feldmenge kann sich ohne die 90-Tage-Ankündigung ändern) oder `legacy` (funktioniert weiter, ein Ersatz existiert).
endpoints[].sincestring|null—Beginn des Zeitraums.
endpoints[].ttl_snumber|nullsServerseitige Cache-Lebensdauer der Antworten des Endpunkts; null, wenn nicht gecacht wird oder nicht zutreffend.
endpoints[].paramsarray—Namen aller Parameter, die der Endpunkt akzeptiert. leer in den Stichproben, aus denen diese Tabelle erzeugt wurde
endpoints[].params[]string—Ein Parametername.
endpoints[].requiredarray—Namen der Parameter, die gesendet werden müssen. leer in den Stichproben, aus denen diese Tabelle erzeugt wurde
endpoints[].probeobject—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_atnumbermsZeitstempel.
endpoints[].probe.httpnumber—HTTP-Status der letzten Probe-Anfrage.
endpoints[].probe.okboolean—`true`, wenn die letzte Probe-Anfrage HTTP 200 mit gültigem JSON-Body geliefert hat.
endpoints[].probe.schema_okboolean—`true`, wenn die geprüfte Antwort der dokumentierten Feldtabelle entsprach; `null`, wenn keine Feldtabelle existiert.
endpoints[].probe.latency_msnumbermsAntwortzeit der letzten Probe-Anfrage.
endpoints[].probe.bytesnumberbytesGröße des geprüften Antwort-Bodys.
endpoints[].probe.qualitynull—Von der geprüften Antwort gemeldete `meta.quality` (FRESH / PARTIAL / STALE …); `null`, wenn der Endpunkt sie nicht meldet.
endpoints[].probe.data_age_snumber|nullsSekunden seit dem Ereignis.
endpoints[].probe.last_ok_atnumbermsZeitstempel.
endpoints[].probe.fail_streaknumbercountAnzahl aufeinanderfolgender fehlgeschlagener Proben; 0, wenn die letzte Probe erfolgreich war.
endpoints[].required[]string—Ein Name eines Pflichtparameters.
rate_limitobject—Rate-Limit-Regeln der öffentlichen API.
rate_limit.window_snumbersLänge des Zählfensters (60).
rate_limit.anonymous_per_minnumbercountErlaubte Anfragen pro Minute je Client-IP, wenn kein API-Schlüssel gesendet wird.
rate_limit.scopestring—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_minobject—Erlaubte Anfragen pro Minute für jede API-Schlüssel-Stufe, mit dem Stufennamen als Schlüssel.
rate_limit.key_tiers_per_min.hobbyistnumbercountAnfragen pro Minute für Schlüssel der Stufe `hobbyist`.
rate_limit.key_tiers_per_min.startupnumbercountAnfragen pro Minute für Schlüssel der Stufe `startup`.
rate_limit.key_tiers_per_min.standardnumbercountAnfragen pro Minute für Schlüssel der Stufe `standard`.
rate_limit.key_tiers_per_min.professionalnumbercountAnfragen pro Minute für Schlüssel der Stufe `professional`.
rate_limit.exemptarray—Pfadmuster, die nicht auf das Limit angerechnet werden.
rate_limit.exempt[]string—Ein ausgenommenes Pfadmuster, zum Beispiel `/api/coin-icon/*`.
rate_limit.headersarray—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_exceedobject—Was zurückgegeben wird, wenn das Limit überschritten ist: `http`-Status und Fehler-`code`.
rate_limit.on_exceed.httpnumber—HTTP-Status, der bei Überschreitung des Limits zurückgegeben wird (429).
rate_limit.on_exceed.codestring—Code.
errorsarray—Fehlercodes, die die API zurückgeben kann, jeweils mit HTTP-Status, Bedeutung und Hinweis zum erneuten Versuch.
errors[]object—Ein Fehlercode.
errors[].codestring—Code.
errors[].httpnumber|string—Mit diesem Code gesendeter HTTP-Status; ein String wie `501 / 503`, wenn mehr als einer zutrifft.
errors[].meaningstring—Was der Fehler bedeutet.
errors[].retrystring—Hinweis, ob und wie ein erneuter Versuch sinnvoll ist.
errors[].legacyboolean—Nur vorhanden und true bei dem Code, den ältere Endpunkte verwenden, die mit HTTP 200 und `success: false` antworten. kann fehlen
status_legendobject—Klartextdefinition jedes Endpunktstatus.
status_legend.availablestring—Gibt an, ob Daten verfügbar sind.
status_legend.partialstring—true, wenn nur ein Teil der erwarteten Daten vorhanden ist.
status_legend.degradedstring—Definition des Status `degraded`.
status_legend.downstring—Definition des Status `down`.
status_legend.unavailablestring—Elemente, für die keine Daten verfügbar sind, mit Begründung. Werden nie als 0 ausgewiesen.
status_legend.unknownstring—Definition des Status `unknown`.
metaobject—Umschlag dieser Antwort: Schema-ID, erzeugendes System, Zeitstempel, Cache-Lebensdauer und Aktualität.
meta.schemastring—Schema-ID dieser Antwort; derselbe Wert wie `schema` auf oberster Ebene.
meta.sourcearray—Herkunft des Werts.
meta.source[]object—Herkunft des Werts.
meta.source[].systemstring—System, das die Daten erzeugt hat; bei den Endpunkten des Entwicklerzentrums immer `coinboss`.
meta.source[].componentstring—Komponente hinter den Daten: die Endpunkt-Probe und die Datenqualitäts-Patrouille.
meta.observed_atnull—Zeitstempel.
meta.received_atnumbermsZeitstempel.
meta.fetched_atnumbermsZeitpunkt, zu dem CoinBoss die Daten von der Quelle abgerufen hat.
meta.windowstring—Zeitfenster.
meta.cache_ttl_snumbersServerseitige Cache-Lebensdauer dieser Antwort.
meta.qualitystring—`FRESH`, wenn die Endpunkt-Probe innerhalb der letzten 20 Minuten gemeldet hat, andernfalls `STALE`.
meta.is_staleboolean—true, wenn die Zeile älter als das Aktualitätsfenster ist; veraltete Zeilen fließen nicht in die Summen ein.
meta.fallbackstring—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": [
      • { … 10 },
      • { … 10 }
      ],
    • "endpoints": [
      • { … 16 },
      • { … 16 }
      ],
    • "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": { … 4 },
      • "exempt": [ … 1 ],
      • "headers": [ … 4 ],
      • "on_exceed": { … 2 }
      },
    • "errors": [
      • { … 4 },
      • { … 4 }
      ],
    • "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": [ … 1 ],
      • "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ügbarGeprüft 2026-11-13 03:53:45 UTCHTTP 2006 msSchema stimmt übereinNeuester Datenpunkt 5m alt

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 →

CodeHTTPBedeutungEmpfohlene Reaktion
INVALID_PARAM400Ein erforderlicher Parameter fehlt oder ein Wert wird nicht akzeptiert. `param` nennt den Parameter, sofern er bekannt ist.Nicht unverändert wiederholen; die Anfrage korrigieren.
UNAUTHORIZED401Der 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.
FORBIDDEN403Die Route gehört nicht zur öffentlichen API (intern oder nur für Konten).Nicht wiederholen.
NOT_FOUND404Unbekannte Route, oder der angefragte Coin / die Börse / der Fonds existiert nicht.Nicht wiederholen; Pfad und Kennungen mit dem Katalog abgleichen.
RATE_LIMITED429Mehr Anfragen, als das Limit pro Minute zulässt. `Retry-After` gibt die Wartezeit in Sekunden an.`Retry-After` abwarten, dann mit Backoff wiederholen.
INTERNAL500Unerwarteter 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_FAILED503Die 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.
UNAVAILABLE501 / 503Der 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_FAILED200Einige ä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

GET/api/meta/catalogVerfügbar
Parameter

Keine Parameter.

Anfrage-URLhttps://www.coinboss.com/api/meta/catalog
Wählen Sie einen Endpunkt und klicken Sie auf „Anfrage senden“. Antwort, Header und Laufzeit erscheinen hier.