Bitculator

Changelog

API-Changelog

Jede Änderung an der Data API und ihrem Vertrag, neueste zuerst. Versionsnummern folgen der Versionierungs- und Abkündigungsrichtlinie.

  1. v1.3.3 Geändert

    Webhook-Erstellung und -Test auf 5 Requests pro Minute begrenzt

    POST /webhooks und POST /webhooks/{id}/test teilen sich jetzt ein Limit von 5 Requests pro Minute und Konto, zusätzlich zum Burst-Limit des Plans. Requests darüber erhalten 429 rate_limited mit Retry-After. Ein Testereignis wird jetzt einmal gesendet, ohne Wiederholungen; andere Zustellungen werden weiterhin bis zu 3-mal versucht, mit Backoff zwischen den Versuchen. Dies ist ein Limit gegen Missbrauch und lässt Monatskontingent und Burst-Limit jedes Plans unverändert. Die Versionierungs- und Abkündigungsrichtlinie wurde am selben Tag geändert, damit solche Limits sofort gelten können; bis dahin folgte jede Senkung eines Rate-Limits, das ein Plan hatte, dem sechsmonatigen Abkündigungszeitplan. Auf diesen beiden Endpunkten melden die Header X-RateLimit-* dasjenige der beiden Limits, bei dem weniger Requests übrig sind.

  2. v1.3.3 Geändert

    Webhook-Hostnamen bei der Zustellung aufgelöst, nicht beim Erstellen

    POST /webhooks löst den Hostnamen der URL nicht mehr auf. Der Aufruf liefert weiterhin 422, wenn die URL kein https verwendet, Zugangsdaten enthält oder eine nicht öffentliche IP-Adresse als Host hat. Ein Hostname, der sich nicht auflösen lässt oder auf eine nicht öffentliche Adresse auflöst, erhielt bisher 422; er wird jetzt mit 201 angenommen und zählt zum Limit von 5 Endpunkten pro Konto. Jede Zustellung an einen solchen Endpunkt schlägt dann ohne Wiederholung fehl, error bei GET /webhooks/{id}/deliveries nennt den Grund, und nach 10 fehlgeschlagenen Zustellungen in Folge wird der Endpunkt deaktiviert. Senden Sie nach dem Erstellen eines Endpunkts mit POST /webhooks/{id}/test ein Testereignis und prüfen Sie im Zustellprotokoll, ob er erreichbar ist.

  3. v1.3.3 Geändert

    Nutzungsaufschlüsselung nennt Routenvorlagen statt Pfade

    endpoints[].endpoint bei GET /usage nennt jetzt die Routenvorlage statt des aufgerufenen Pfads, also api/v1/coins/{slug} statt api/v1/coins/bitcoin. Jeder Endpunkt hat damit eine Zeile statt einer pro Slug oder ID. Requests, die früher im laufenden Abrechnungszeitraum erfasst wurden, behalten ihren Pfad, daher können bis zum Ende des Zeitraums beide Formen erscheinen.

  4. v1.3.2 Behoben

    Börsenprofil und Trust-Score behoben

    GET /exchanges/{slug} und GET /exchanges/{slug}/trust-score schlugen seit dem Start der Data API bei jeder Börse mit 500 fehl. Beide antworten jetzt; Parameter und Antwortfelder bleiben unverändert, und eine Börse ohne Rang liefert score und breakdown als null.

  5. v1.3.2 Geändert

    Typen im Vertrag korrigiert

    Der veröffentlichte OpenAPI-Vertrag kennzeichnet jetzt jedes Feld, das null sein kann, als nullbar und typisiert Werte mit Nachkommastellen als Zahlen (zum Beispiel invested bei GET /calculators/dca und Indikatorwerte); die gemeinsamen Felder logo und last_updated sowie die Paginierungsfelder from/to sind bei jedem Endpunkt nullbar, ebenso die Coin-Felder name und price bei jedem Endpunkt für Coin-Listen und Kurse. Außerdem typisiert er die DCA-series als Array, dokumentiert die Antworten von GET /coins/{slug}/markets, GET /coins/losers, GET /global/history/{metric} und GET /sentiment/altseason, dokumentiert days bei GET /sentiment/altseason als 1–365 (0 wurde schon immer abgelehnt; für den aktuellen Wert lässt du den Parameter weg) und führt im Fehlerschema die Codes endpoint_unavailable (503) und http_error auf. Kein Request und keine Response hat sich geändert - nur, wie sie beschrieben werden.

  6. v1.3.1 Geändert

    Fehlgeschlagene Authentifizierung pro Key gedrosselt

    Fehlgeschlagene Authentifizierungsversuche waren bisher auf 30 pro Minute und IP begrenzt; danach erhielt jeder Key hinter dieser IP 429. Jetzt darf ein Key von einer IP aus 30-mal pro Minute scheitern und eine IP 300-mal, Keys, die sich in etwa den letzten 15 Minuten erfolgreich authentifiziert haben, werden von der IP-Grenze nicht blockiert, und ein Request ohne Key erhält 401, ohne gezählt zu werden. Blockierte Requests erhalten 429 rate_limited mit Retry-After.

  7. v1.3.1 Geändert

    Nicht-kanonische URLs leiten weiter

    GET- und HEAD-Requests, deren Pfad einen abschließenden Slash, einen doppelten Slash oder ein führendes /index.php enthält, erhalten jetzt ein 301 auf die bereinigte URL, statt ausgeliefert zu werden - zum Beispiel von /api/v1/coins/ auf /api/v1/coins. Andere Methoden sind nicht betroffen.

  8. v1.3.1 Behoben

    Angebrochene Zinsperioden werden exakt berechnet

    GET /calculators/compound-interest rundete die Laufzeit auf ganze Zinsperioden, sodass eine Laufzeit, die mitten in einer Periode endete, zu lang oder zu kurz simuliert wurde: 6 Monate mit annually-Verzinsung liefen ein ganzes Jahr (12 Einzahlungen und ein volles Jahr Zinsen), 5 Monate dagegen keine einzige Periode (keine Einzahlungen, keine Zinsen). Ganze Perioden laufen jetzt wie bisher, die letzte angebrochene Periode wird anteilig verzinst (einfache Zinsen für den Bruchteil), und jede Einzahlung innerhalb der Laufzeit wird gezählt. Entspricht die Laufzeit einer ganzen Zahl von Zinsperioden, bleiben die Ergebnisse unverändert; Parameter und Antwortfelder bleiben unverändert.

  9. v1.3.0 Geändert

    Zinssatz beim Zinseszins ist jährlich, nicht pro Periode

    Die API und ihre Dokumentation behandelten rate als Zinssatz pro Zinsperiode, während der Rechner auf der Website und seine Anleitung einen Jahreszins verwendeten. GET /calculators/compound-interest wandte rate in voller Höhe auf jede Zinsperiode an, sodass 5 % bei monatlicher Verzinsung wie 5 % pro Monat wuchsen. rate ist jetzt der nominale Jahreszins: Jede Periode bringt rate geteilt durch die Anzahl der Perioden pro Jahr (5 % bei monatlicher Verzinsung ergeben 5/12 % pro Monat), wie meta.note jetzt angibt. Parameter und Antwortfelder bleiben unverändert; die Ergebnisse ändern sich bei jeder Verzinsungshäufigkeit außer annually. Unabhängig davon werden Einzahlungen, wenn contribution_frequency und compound_frequency beide daily oder beide weekly sind, nicht mehr durch Gleitkomma-Rundungsfehler verzögert oder ausgelassen, sodass total_contributions bei duration_unit=months um eine Einzahlung höher ausfallen kann. Damit ändert sich die Bedeutung eines bestehenden Parameters: Um frühere Ergebnisse zu reproduzieren, multiplizieren Sie Ihren rate mit der Anzahl der Zinsperioden pro Jahr.

  10. v1.2.0 Hinzugefügt

    Fear-&-Greed-Index (0–100) neben dem Rohwert

    Jeder Fear-&-Greed-Wert enthält jetzt index neben score: den Fear-&-Greed-Index von 0–100 genau so, wie Bitculator ihn anzeigt (0–19 extreme Angst, 20–39 Angst, 40–59 neutral, 60–79 Gier, 80–100 extreme Gier) — verwenden Sie ihn für die Anzeige. score bleibt unverändert: der rohe Gesamtwert von −100…+100, aus dem index abgeleitet wird. Gilt für GET /sentiment/fear-greed (den Hauptwert und jeden Eintrag in intervals), fear_greed bei GET /global und meta.fear_greed bei GET /global/heatmap. Rein additiv; kein bestehendes Feld wurde geändert.

  11. v1.1.2 Behoben

    Unbekannte vollständig verwässerte Bewertung ist null

    GET /coins/{slug} lieferte fully_diluted_valuation als 0 für Coins ohne maximales Angebot (zum Beispiel Solana und Ethereum, deren Angebot nicht begrenzt ist). Jetzt wird auf das Gesamtangebot zurückgegriffen, und der Wert ist null, wenn keines von beiden bekannt ist, wie es der OpenAPI-Vertrag bereits dokumentierte.

  12. v1.1.2 Behoben

    Fear & Greed ohne ausreichende Daten ist null

    Ein Fear-&-Greed-Wert, für den noch kein Score vorlag, wurde als score: 0 gemeldet. Er ist jetzt null bei GET /sentiment/fear-greed, ebenso fear_greed bei GET /global und meta.fear_greed bei GET /global/heatmap.

  13. v1.1.1 Behoben

    Null-Werte, Sortierung und Movers korrigiert

    marketcap und dominance können für einen Coin ohne zirkulierendes Angebot null sein, und score und breakdown des Trust-Scores sind für eine Börse ohne Rang null. POST /alarms antwortet mit 422, wenn der Coin für die gewählte Metrik keinen aktuellen Wert hat. /coins/recently-added und /wallets/timeline berücksichtigen jetzt sort. /coins/gainers und /coins/losers sind nach der Veränderung selbst sortiert (bisher faktisch nach Marktkapitalisierung), und die Losers schließen Coins bei 0.00 aus. Aufsteigende Sortierungen liefern Null-Werte zuletzt. /prices löst ein mehrdeutiges Symbol zum höchstplatzierten aktiven Coin auf. Der OpenAPI-Vertrag kennzeichnet die nullbaren Marktfelder und typisiert das 24h-Volumen als Zahl.

  14. v1.1.1 Hinzugefügt

    Einblicke weisen sich als KI-geschrieben aus

    Jeder Einblick bei GET /insights, GET /insights/{id} und GET /coins/{slug}/insights trägt jetzt generated_by: "ai" und das model, das ihn geschrieben hat. Rein additiv; kein bestehendes Feld wurde geändert.

  15. v1.1.1 Geändert

    Huobi heißt jetzt HTX; CoinEx inaktiv

    Die Börse Huobi wurde in HTX umbenannt, und ihr Slug änderte sich von huobi zu htx; die API folgt keinen Slug-Weiterleitungen, daher liefert /exchanges/huobi jetzt 404. CoinEx wurde auf inaktiv gesetzt und wird nicht mehr zurückgegeben.

  16. v1.1.1 Behoben

    Veraltete 24h- und 7d-Veränderungen sind null

    change_24h und change_7d sind jetzt null, wenn die Veränderungen eines Coins seit 15 Minuten nicht neu berechnet wurden, statt eine veraltete Bewegung zu zeigen. Seit dem 18. September gilt dasselbe für change_rank_24h und change_rank_7d.

  17. v1.1.0 Geändert

    OpenAPI-Vertrag angereichert

    Der veröffentlichte Vertrag enthält jetzt Beispiele auf Media-Type-Ebene, ein gemeinsames Fehlerschema, auf das jede 4xx/5xx-Antwort verweist, die Antworten 401, 429 und 500, die jeder Aufruf mit Key zurückgeben kann, die Header X-RateLimit-* und X-Quota-* auf jeder Erfolgsantwort, die alarm.triggered-Zustellung als Callback auf POST /webhooks sowie Metadaten zu Kontakt, Lizenz und Nutzungsbedingungen. Kein Request und keine Response hat sich geändert - nur, wie sie beschrieben werden.

  18. v1.1.0 Hinzugefügt

    Maschinenlesbare Discovery

    Neu: /apis.json, /.well-known/api-catalog (RFC 9727), /.well-known/security.txt (RFC 9116), ein JSON-Schema-Bundle der gemeinsamen Antwortformen, eine öffentliche Statusseite mit JSON-Zwilling, dieses Changelog sowie die Versionierungs- und Abkündigungsrichtlinie.

  19. v1.0.1 Geändert

    Data-API-Kontingent nicht mehr mit MCP geteilt

    MCP-Tool-Aufrufe zählen nicht mehr gegen das Monatskontingent und das Burst-Limit des Data-API-Plans; der MCP-Server hat seit diesem Tag eigene Keys und Pläne. tokens[].kind bei GET /usage kann jetzt mcp sein, und die 429-Meldung bei überschrittenem Kontingent lautet „Your Data API plan has reached its monthly request limit.“ (früher war dort vom Embed-Plan die Rede).

  20. v1.0.1 Geändert

    Verifizierte E-Mail-Adresse zum Erstellen von Keys erforderlich

    Das Erstellen oder Rotieren eines Data-API-Keys in der Entwicklerkonsole erfordert jetzt eine verifizierte E-Mail-Adresse; Konten ohne E-Mail-Adresse, etwa Wallet-Anmeldungen, sind ausgenommen. Die Key-Erstellung ist auf 10 pro Minute begrenzt. Bestehende Keys funktionieren weiter.

  21. v1.0.1 Behoben

    Ticker-Volumen behalten ihre Cents

    volume_usd bei GET /tickers, GET /pairs, GET /pairs/{id}, GET /coins/{slug}/markets und GET /exchanges/{slug}/tickers wurde als ganze Zahl gespeichert, sodass Cents verloren gingen und Märkte unter $0,50 0 zeigten. Volumen behalten jetzt zwei Nachkommastellen, und die daraus gebildeten Summen übernehmen die Rundung nicht mehr.

  22. v1.0.1 Geändert

    Sparkline-Veränderung ist für jeden Zeitraum ein Prozentwert

    change bei GET /coins/{slug}/sparkline und GET /exchanges/{slug}/sparkline war für 30d bis 365d ein Bruchteil (0,05 bedeutete +5 %), für 24h und 7d aber ein Prozentwert. Jetzt ist es für jeden Zeitraum ein Prozentwert (1.25 bedeutet +1,25 %), sodass die Werte für die längeren Zeiträume 100-mal größer sind als zuvor und Bewegungen unter 0,5 % nicht mehr auf 0 gerundet werden.

  23. v1.0.1 Behoben

    Sparkline-Tief und -Hoch passen zur Reihe

    Bei beiden Sparkline-Endpunkten stammten low und high aus einer Zusammenfassung über ein anderes Zeitfenster und konnten points widersprechen - zum Beispiel ein low über Kursen in der Reihe. Sie sind jetzt die echten Extremwerte des Zeitraums, aus dem points gesampelt wird.

  24. v1.0.1 Geändert

    Vaporware-Wallets werden gelistet

    GET /wallets, /wallets/timeline, /wallets/compare, /wallets/{slug} und /wallets/{slug}/assets liefern jetzt auch Wallets mit dem Status Vaporware, sodass status diesen Wert tragen kann.

  25. v1.0.1 Behoben

    Quelltext in Einblicken dekodiert

    title und excerpt der Quellen in Einblicken enthalten keine rohen HTML-Entities wie í mehr.

  26. v1.0.1 Behoben

    updated_at von Artikeln zeigt die letzte Bearbeitung

    Bei einem nie bearbeiteten Artikel zeigte updated_at bei GET /articles und GET /articles/{slug} den letzten Zeitpunkt, zu dem sich der Datensatz aus irgendeinem Grund geändert hatte, etwa durch einen Aufrufzähler oder eine Abstimmung. Jetzt zeigt es die letzte redaktionelle Bearbeitung, mit Rückfall auf das Veröffentlichungsdatum, und POST /articles/{slug}/feedback verschiebt es nicht mehr.

  27. v1.0.1 Hinzugefügt

    Sentiment von Einblicken

    Einblicke enthalten jetzt sentiment: bullish, bearish, sheepish oder null, wenn nicht klassifiziert.

  28. v1.0.1 Hinzugefügt

    Acht offizielle SDKs

    Clients für TypeScript, Python, PHP, Go, Rust, Java, C# und C++, jeder deckt jeden Endpunkt ab und sitzt auf demselben Transportkern: Bearer-Auth, Entpacken des Envelopes, Erfassung von X-Quota-*, Retries bei 429 und 5xx, typisierte Fehler und Paging.

  29. v1.0.1 Geändert

    Plan-gebundene Endpunkte

    Endpunkte können jetzt einen Plan erfordern. Bei der Einführung erforderte GET /sentiment/indicators Pro, und GET /sentiment/bull-bear, GET /sentiment/altseason, GET /global, GET /global/heatmap und GET /global/history/{metric} erforderten Starter. Ein Aufruf außerhalb deines Plans liefert 403 plan_required, wobei details.required_plan den Plan nennt, der ihn freischaltet, und verbraucht kein Kontingent.

  30. v1.0.1 Geändert

    Liquidations-Endpunkte abgeschaltet

    Die sechs /liquidations-Endpunkte wurden in jedem Plan abgeschaltet: Sie liefern 503 endpoint_unavailable („This endpoint is temporarily unavailable.“) und verbrauchen kein Kontingent.

  31. v1.0.1 Geändert

    Pro-Kontingent auf 250.000 gesenkt

    Das Monatskontingent des Pro-Plans sank von 500.000 auf 250.000 Anfragen.

  32. v1.0.1 Geändert

    Ein Endpunkt pro Indikator

    Der generische Endpunkt GET /coins/{slug}/indicators/{family} wurde zu 13 separat dokumentierten Endpunkten unter denselben Pfaden: rsi, stoch-rsi, sma, cci, mfi, williams-r, price-volatility, volume-volatility, macd, obv, adx, vwap und cmf. Bestehende Aufrufe bleiben unverändert; ein unbekannter Indikatorname erhält jetzt ein schlichtes 404 ohne die Liste gültiger Namen.

  33. v1.0.1 Geändert

    Eigene Pläne und eigenes Kontingent für die Data API

    Zum Start schöpften Data-API-Aufrufe und Embed-Widget-Anfragen aus einem gemeinsamen monatlichen Pool, der an den Embed-Plan gebunden war. Die Data API hat jetzt eigene Pläne Free, Starter und Pro, ein eigenes Abonnement und ein eigenes Monatskontingent mit eigenem Abrechnungszeitraum: dem Kalendermonat in UTC bei Free, verankert am Verlängerungstag bei kostenpflichtigen Plänen. GET /ping und GET /usage melden den Data-API-Plan, und /usage zählt nur Data-API-Aufrufe. Die Limits blieben bei der Trennung unverändert.

  34. v1.0.1 Geändert

    Dokumentations-URLs verschoben

    Die Referenz ist von /{locale}/documentation nach /{locale}/documentation/api/v1 umgezogen, die Postman-Collection und das OpenAPI-YAML von /documentation.postman und /documentation.openapi nach /documentation/api/v1.postman und /documentation/api/v1.openapi. Die alten Pfade wurden ohne Weiterleitungen entfernt; /api/v1/openapi.json bleibt unverändert.

  35. v1.0.0 Hinzugefügt

    Data API v1

    Launch: 73 Operationen in 15 Gruppen - Coins, Kurse, Märkte, Börsen, Wallets, Global, Sentiment, Indikatoren, Liquidationen, Umrechnung, Rechner, Redaktionelles, Alarme, Webhooks und Meta. Bearer-Keys mit der data-api-Berechtigung, der { data, meta }-Envelope, Dezimal-String-Präzision, X-Quota-*-Header und signierte Webhooks. Data-API-Aufrufe und Embed-Widget-Anfragen teilten sich ein Monatskontingent unter dem Embed-Plan, und längere Indikator-Zeitfenster erforderten Starter.

Auf dem Laufenden bleiben

Abkündigungen werden hier und per E-Mail an jeden Key-Inhaber mindestens sechs Monate vor der Entfernung angekündigt - siehe die Abkündigungsrichtlinie. Der maschinenlesbare Index unter /apis.json trägt das Datum des neuesten Eintrags als modified-Stempel.