Bitculator

Dziennik zmian

Dziennik zmian API

Każda zmiana w Data API i jego kontrakcie, od najnowszych. Numery wersji podlegają polityce wersjonowania i wycofywania.

  1. v1.3.3 Zmieniono

    Tworzenie i testowanie webhooków ograniczone do 5 żądań na minutę

    POST /webhooks i POST /webhooks/{id}/test mają teraz wspólny limit 5 żądań na minutę na konto, oprócz limitu burst planu. Żądania ponad ten limit otrzymują 429 rate_limited z Retry-After. Zdarzenie testowe jest teraz wysyłane tylko raz, bez ponowień; dla pozostałych dostarczeń nadal podejmowane są maksymalnie 3 próby, z odczekiwaniem między nimi. To limit chroniący przed nadużyciami, który nie zmienia miesięcznego limitu ani limitu burst żadnego planu. Polityka wersjonowania i wycofywania została zmieniona tego samego dnia, aby takie limity mogły obowiązywać od razu; do tego czasu obniżenie dowolnego limitu żądań, który miał plan, podlegało sześciomiesięcznemu harmonogramowi wycofywania. Na tych dwóch endpointach nagłówki X-RateLimit-* pokazują ten z dwóch limitów, w którym zostało mniej żądań.

  2. v1.3.3 Zmieniono

    Nazwy hostów webhooków rozwiązywane przy dostarczeniu, nie przy tworzeniu

    POST /webhooks nie rozwiązuje już nazwy hosta z adresu URL. Nadal zwraca 422, gdy URL nie używa https, zawiera dane logowania lub ma jako host niepubliczny adres IP. Nazwa hosta, której nie da się rozwiązać albo która wskazuje na niepubliczny adres, dotąd otrzymywała 422; teraz jest przyjmowana z 201 i wlicza się do limitu 5 endpointów na konto. Każde dostarczenie do takiego endpointu kończy się wtedy błędem bez ponowień, pole error w GET /webhooks/{id}/deliveries podaje przyczynę, a 10 nieudanych dostarczeń z rzędu wyłącza endpoint. Po utworzeniu endpointu wyślij do niego zdarzenie testowe przez POST /webhooks/{id}/test i sprawdź dziennik dostarczeń, aby upewnić się, że jest osiągalny.

  3. v1.3.3 Zmieniono

    Zestawienie użycia pokazuje szablony tras, nie ścieżki

    endpoints[].endpoint w GET /usage podaje teraz szablon trasy zamiast żądanej ścieżki - api/v1/coins/{slug} zamiast api/v1/coins/bitcoin - dzięki czemu każdy endpoint ma jeden wiersz zamiast jednego na każdy slug lub id. Żądania zarejestrowane wcześniej w bieżącym okresie rozliczeniowym zachowują swoją ścieżkę, więc do końca okresu mogą pojawiać się obie formy.

  4. v1.3.2 Naprawiono

    Profil giełdy i ocena zaufania naprawione

    GET /exchanges/{slug} i GET /exchanges/{slug}/trust-score od startu Data API kończyły się błędem 500 dla każdej giełdy. Teraz oba odpowiadają; parametry i pola odpowiedzi pozostają bez zmian, a dla giełdy bez rankingu score i breakdown są zwracane jako null.

  5. v1.3.2 Zmieniono

    Poprawione typy w kontrakcie

    Opublikowany kontrakt OpenAPI oznacza teraz jako nullable każde pole, które może mieć wartość null, i typuje wartości ułamkowe jako liczby (na przykład invested w GET /calculators/dca i wartości wskaźników); wspólne pola logo, last_updated oraz pola stronicowania from/to są oznaczone jako nullable we wszystkich endpointach, a name i price monety - we wszystkich endpointach list monet i cen. Typuje też series w DCA jako tablicę, dokumentuje odpowiedzi GET /coins/{slug}/markets, GET /coins/losers, GET /global/history/{metric} i GET /sentiment/altseason, dokumentuje dla days w GET /sentiment/altseason zakres 1–365 (wartość 0 zawsze była odrzucana; aby uzyskać bieżący odczyt, pomiń ten parametr) oraz wymienia w schemacie błędu kody endpoint_unavailable (503) i http_error. Żadne żądanie ani odpowiedź nie uległy zmianie - tylko sposób ich opisu.

  6. v1.3.1 Zmieniono

    Nieudane uwierzytelnienie ograniczane na klucz

    Nieudane uwierzytelnienie było wcześniej ograniczone do 30 prób na minutę na IP, po czym każdy klucz za tym IP otrzymywał 429. Teraz jeden klucz może zawieść 30 razy na minutę z jednego IP, a jedno IP - 300 razy; klucze, które uwierzytelniły się mniej więcej w ciągu ostatnich 15 minut, nie są blokowane przez limit IP, a żądanie bez klucza zwraca 401 i nie jest liczone. Zablokowane żądania otrzymują 429 rate_limited z Retry-After.

  7. v1.3.1 Zmieniono

    Niekanoniczne adresy URL przekierowują

    Żądania GET i HEAD, których ścieżka ma końcowy ukośnik, podwójny ukośnik lub początkowe /index.php, otrzymują teraz 301 na czysty URL zamiast obsłużenia w obecnej postaci - na przykład z /api/v1/coins/ na /api/v1/coins. Inne metody pozostają bez zmian.

  8. v1.3.1 Naprawiono

    Niepełne okresy kapitalizacji są liczone dokładnie

    GET /calculators/compound-interest zaokrąglał czas trwania do pełnych okresów kapitalizacji, więc czas trwania kończący się w połowie okresu był symulowany jako zbyt długi lub zbyt krótki: 6 miesięcy przy kapitalizacji annually obejmowało cały rok (12 wpłat i odsetki za pełny rok), a 5 miesięcy nie obejmowało żadnego okresu (brak wpłat i odsetek). Pełne okresy są teraz liczone jak dotąd, ostatni niepełny okres przynosi odsetki proporcjonalnie (odsetki proste za jego część), a każda wpłata w czasie trwania jest uwzględniana. Wyniki się nie zmieniają, gdy czas trwania jest całkowitą liczbą okresów kapitalizacji; parametry i pola odpowiedzi pozostają bez zmian.

  9. v1.3.0 Zmieniono

    Stopa procent składanych jest roczna, nie na okres

    API i jego dokumentacja traktowały rate jako stopę na okres kapitalizacji, podczas gdy kalkulator na stronie i jego instrukcja używały stopy rocznej. GET /calculators/compound-interest stosował pełną wartość rate do każdego okresu kapitalizacji, więc 5% przy kapitalizacji miesięcznej rosło jak 5% miesięcznie. rate to teraz nominalna roczna stopa procentowa: każdy okres nalicza rate podzieloną przez liczbę okresów w roku (5% przy kapitalizacji miesięcznej daje 5/12% miesięcznie), co podaje teraz także meta.note. Parametry i pola odpowiedzi się nie zmieniają; wyniki zmieniają się dla każdej częstotliwości kapitalizacji z wyjątkiem annually. Niezależnie od tego, gdy contribution_frequency i compound_frequency mają tę samą wartość daily lub weekly, wpłaty nie są już opóźniane ani pomijane z powodu zaokrągleń zmiennoprzecinkowych, więc total_contributions może przy duration_unit=months obejmować o jedną wpłatę więcej. Zmienia to znaczenie istniejącego parametru: aby odtworzyć wcześniejsze wyniki, pomnóż rate przez liczbę okresów kapitalizacji w roku.

  10. v1.2.0 Dodano

    Indeks Fear & Greed (0–100) obok surowego score

    Każdy odczyt Fear & Greed zawiera teraz index obok score: indeks Fear & Greed w skali 0–100 dokładnie taki, jak pokazuje Bitculator (0–19 skrajny strach, 20–39 strach, 40–59 neutralnie, 60–79 chciwość, 80–100 skrajna chciwość) — używaj go do wyświetlania. score się nie zmienia: to surowa wartość złożona −100…+100, z której wyprowadzany jest index. Dotyczy GET /sentiment/fear-greed (odczyt główny i każdy wpis w intervals), fear_greed w GET /global oraz meta.fear_greed w GET /global/heatmap. Wyłącznie dodanie; żadne istniejące pole się nie zmieniło.

  11. v1.1.2 Naprawiono

    Nieznana w pełni rozwodniona wycena to null

    GET /coins/{slug} zwracał fully_diluted_valuation jako 0 dla kryptowalut bez maksymalnej podaży (na przykład Solana i Ethereum, których podaż nie ma limitu). Teraz używana jest całkowita podaż, a wartość to null, gdy żadna nie jest znana, jak kontrakt OpenAPI już dokumentował.

  12. v1.1.2 Naprawiono

    Fear & Greed bez wystarczających danych to null

    Odczyt Fear & Greed, który nie miał jeszcze wyniku, był zwracany jako score: 0. Teraz w GET /sentiment/fear-greed jest to null, podobnie jak fear_greed w GET /global i meta.fear_greed w GET /global/heatmap.

  13. v1.1.1 Naprawiono

    Poprawione wartości null, sortowanie i movers

    marketcap i dominance mogą mieć wartość null dla monety bez podaży w obiegu, a score i breakdown oceny zaufania mają wartość null dla giełdy bez rankingu. POST /alarms zwraca 422, gdy moneta nie ma bieżącej wartości dla wybranej metryki. /coins/recently-added i /wallets/timeline uwzględniają teraz sort. /coins/gainers i /coins/losers są sortowane według samej zmiany (wcześniej w praktyce według kapitalizacji rynkowej), a losers pomijają monety na poziomie 0.00. Sortowanie rosnące zwraca wartości null na końcu. /prices rozwiązuje niejednoznaczny symbol na aktywną monetę o najwyższym rankingu. Kontrakt OpenAPI oznacza pola rynkowe, które mogą mieć wartość null, i typuje wolumen 24h jako liczbę.

  14. v1.1.1 Dodano

    Analizy informują, że napisała je AI

    Każda analiza w GET /insights, GET /insights/{id} i GET /coins/{slug}/insights zawiera teraz generated_by: "ai" oraz model, który ją napisał. Tylko dodanie; żadne istniejące pole nie uległo zmianie.

  15. v1.1.1 Zmieniono

    Huobi to teraz HTX; CoinEx nieaktywna

    Giełda Huobi zmieniła nazwę na HTX, a jej slug zmienił się z huobi na htx; API nie podąża za przekierowaniami slugów, więc /exchanges/huobi zwraca teraz 404. CoinEx została oznaczona jako nieaktywna i nie jest już zwracana.

  16. v1.1.1 Naprawiono

    Nieaktualne zmiany 24h i 7d to null

    change_24h i change_7d mają teraz wartość null, gdy zmiany monety nie były przeliczane od 15 minut, zamiast pokazywać nieaktualny ruch. Od 18 września to samo dotyczy change_rank_24h i change_rank_7d.

  17. v1.1.0 Zmieniono

    Wzbogacony kontrakt OpenAPI

    Opublikowany kontrakt zawiera teraz przykłady na poziomie typu mediów, jeden wspólny schemat błędu, do którego odwołuje się każda odpowiedź 4xx/5xx, odpowiedzi 401, 429 i 500, które może zwrócić każde wywołanie z kluczem, nagłówki X-RateLimit-* i X-Quota-* w każdej odpowiedzi sukcesu, dostawę alarm.triggered jako callback na POST /webhooks oraz metadane kontaktu, licencji i warunków. Żadne żądanie ani odpowiedź nie uległy zmianie - tylko sposób ich opisu.

  18. v1.1.0 Dodano

    Odkrywanie do odczytu maszynowego

    Nowość: /apis.json, /.well-known/api-catalog (RFC 9727), /.well-known/security.txt (RFC 9116), pakiet JSON Schema ze wspólnymi kształtami odpowiedzi, publiczna strona statusu z bliźniaczym JSON-em, ten dziennik zmian oraz polityka wersjonowania i wycofywania.

  19. v1.0.1 Zmieniono

    Limit Data API nie jest już współdzielony z MCP

    Wywołania narzędzi MCP przestały zużywać miesięczny limit i limit burst planu Data API; od tego dnia serwer MCP ma własne klucze i plany. tokens[].kind w GET /usage może teraz mieć wartość mcp, a komunikat 429 o przekroczeniu limitu brzmi „Your Data API plan has reached its monthly request limit.” (wcześniej mówił o planie embed).

  20. v1.0.1 Zmieniono

    Do tworzenia kluczy wymagany zweryfikowany e-mail

    Utworzenie lub rotacja klucza Data API w konsoli deweloperskiej wymaga teraz zweryfikowanego adresu e-mail; konta bez adresu e-mail, na przykład zakładane przez logowanie portfelem, są z tego zwolnione. Tworzenie kluczy jest ograniczone do 10 na minutę. Istniejące klucze nadal działają.

  21. v1.0.1 Naprawiono

    Wolumeny tickerów zachowują centy

    volume_usd w GET /tickers, GET /pairs, GET /pairs/{id}, GET /coins/{slug}/markets i GET /exchanges/{slug}/tickers był przechowywany jako liczba całkowita, więc centy przepadały, a rynki poniżej $0,50 pokazywały 0. Wolumeny zachowują teraz dwa miejsca po przecinku, a budowane z nich sumy nie dziedziczą już zaokrąglenia.

  22. v1.0.1 Zmieniono

    Zmiana w sparkline to procent dla każdego okresu

    change w GET /coins/{slug}/sparkline i GET /exchanges/{slug}/sparkline był ułamkiem dla okresów od 30d do 365d (0,05 oznaczało +5%), ale procentem dla 24h i 7d. Teraz jest procentem dla każdego okresu (1.25 oznacza +1,25%), więc wartości dla dłuższych okresów są 100 razy większe niż wcześniej, a ruchy poniżej 0,5% nie są już zaokrąglane do 0.

  23. v1.0.1 Naprawiono

    Minimum i maksimum sparkline zgodne z serią

    W obu endpointach sparkline low i high pochodziły z podsumowania zbudowanego dla innego okna i mogły być sprzeczne z points - na przykład low powyżej cen w serii. Teraz są to rzeczywiste ekstrema okresu, z którego próbkowane są points.

  24. v1.0.1 Zmieniono

    Portfele vaporware pojawiają się na listach

    GET /wallets, /wallets/timeline, /wallets/compare, /wallets/{slug} i /wallets/{slug}/assets zwracają teraz także portfele o statusie vaporware, więc status może przyjmować tę wartość.

  25. v1.0.1 Naprawiono

    Tekst źródeł w analizach zdekodowany

    title i excerpt źródeł w analizach nie zawierają już surowych encji HTML, takich jak í.

  26. v1.0.1 Naprawiono

    updated_at artykułu pokazuje ostatnią edycję

    W przypadku artykułu, który nigdy nie był edytowany, updated_at w GET /articles i GET /articles/{slug} pokazywał ostatnią zmianę rekordu z dowolnego powodu, na przykład licznika wyświetleń lub głosu. Teraz pokazuje ostatnią edycję redakcyjną, a gdy jej nie ma - datę publikacji, a POST /articles/{slug}/feedback już go nie przesuwa.

  27. v1.0.1 Dodano

    Sentyment w analizach

    Analizy zawierają teraz sentiment: bullish, bearish, sheepish lub null, gdy sentyment nie został sklasyfikowany.

  28. v1.0.1 Dodano

    Osiem oficjalnych SDK

    Klienty dla TypeScript, Python, PHP, Go, Rust, Java, C# i C++, każdy obejmujący wszystkie endpointy na tym samym rdzeniu transportowym: uwierzytelnianie Bearer, rozpakowywanie koperty, przechwytywanie X-Quota-*, ponawianie przy 429 i 5xx, typowane błędy i stronicowanie.

  29. v1.0.1 Zmieniono

    Endpointy zależne od planu

    Endpointy mogą teraz wymagać określonego planu. W chwili wprowadzenia GET /sentiment/indicators wymagał planu Pro, a GET /sentiment/bull-bear, GET /sentiment/altseason, GET /global, GET /global/heatmap i GET /global/history/{metric} - planu Starter. Wywołanie spoza Twojego planu zwraca 403 plan_required, a details.required_plan wskazuje plan, który je odblokowuje - i nie zużywa limitu.

  30. v1.0.1 Zmieniono

    Endpointy likwidacji wyłączone

    Sześć endpointów /liquidations zostało wyłączonych we wszystkich planach: zwracają 503 endpoint_unavailable („This endpoint is temporarily unavailable.”) i nie zużywają limitu.

  31. v1.0.1 Zmieniono

    Limit Pro obniżony do 250 000

    Miesięczny limit planu Pro spadł z 500 000 do 250 000 żądań.

  32. v1.0.1 Zmieniono

    Osobny endpoint dla każdego wskaźnika

    Ogólny GET /coins/{slug}/indicators/{family} stał się 13 osobno udokumentowanymi endpointami pod tymi samymi ścieżkami: rsi, stoch-rsi, sma, cci, mfi, williams-r, price-volatility, volume-volatility, macd, obv, adx, vwap i cmf. Istniejące wywołania pozostają bez zmian; nieznana nazwa wskaźnika otrzymuje teraz zwykłe 404 bez listy prawidłowych nazw.

  33. v1.0.1 Zmieniono

    Własne plany i limit Data API

    Przy starcie wywołania Data API i żądania widżetów korzystały z jednej miesięcznej puli powiązanej z planem embed. Teraz Data API ma własne plany Free, Starter i Pro, subskrypcję i miesięczny limit z własnym okresem rozliczeniowym: miesiącem kalendarzowym w UTC w planie Free i okresem liczonym od dnia odnowienia w planach płatnych. GET /ping i GET /usage raportują plan Data API, a /usage liczy tylko wywołania Data API. Przy rozdzieleniu limity się nie zmieniły.

  34. v1.0.1 Zmieniono

    Adresy URL dokumentacji przeniesione

    Dokumentacja referencyjna została przeniesiona z /{locale}/documentation do /{locale}/documentation/api/v1, a kolekcja Postman i OpenAPI YAML - z /documentation.postman i /documentation.openapi do /documentation/api/v1.postman i /documentation/api/v1.openapi. Stare ścieżki usunięto bez przekierowań; /api/v1/openapi.json pozostaje bez zmian.

  35. v1.0.0 Dodano

    Data API v1

    Start: 73 operacje w 15 grupach - monety, ceny, rynki, giełdy, portfele, dane globalne, sentyment, wskaźniki, likwidacje, konwersja, kalkulatory, treści redakcyjne, alarmy, webhooki i meta. Klucze Bearer z uprawnieniem data-api, koperta { data, meta }, precyzja ciągów dziesiętnych, nagłówki X-Quota-* i podpisane webhooki. Wywołania Data API i żądania widżetów dzieliły jeden miesięczny limit w ramach planu embed, a dłuższe okna wskaźników wymagały planu Starter.

Bądź na bieżąco

Wycofania są ogłaszane tutaj oraz e-mailem do każdego właściciela klucza co najmniej sześć miesięcy przed usunięciem - zobacz politykę wycofywania. Indeks do odczytu maszynowego pod /apis.json niesie datę najnowszego wpisu jako swój znacznik modified.