Changelog
Každá zmena dátového API a jeho kontraktu, od najnovšej. Čísla verzií sa riadia zásadami verziovania a ukončovania podpory.
POST /webhooks a POST /webhooks/{id}/test teraz zdieľajú limit 5 požiadaviek za minútu na účet, a to navyše k nárazovému limitu plánu. Požiadavky nad tento limit dostanú 429 rate_limited s hlavičkou Retry-After. Testovacia udalosť sa teraz odošle iba raz, bez opakovania; ostatné doručenia sa naďalej skúšajú najviac 3-krát, s odstupom medzi pokusmi. Ide o limit proti zneužívaniu, ktorý nemení mesačnú kvótu ani nárazový limit žiadneho plánu. Zásady verziovania a ukončovania podpory sa zmenili v ten istý deň, aby takéto limity mohli platiť okamžite; dovtedy sa zníženie akéhokoľvek limitu požiadaviek, ktorý plán mal, riadilo šesťmesačným harmonogramom ukončovania podpory. Pri týchto dvoch endpointoch hlavičky X-RateLimit-* uvádzajú ten z oboch limitov, v ktorom zostáva menej požiadaviek.
POST /webhooks už neprekladá názov hostiteľa z URL. Stále vracia 422, ak URL nepoužíva https, obsahuje prihlasovacie údaje alebo má ako hostiteľa neverejnú IP adresu. Názov hostiteľa, ktorý sa nedá preložiť alebo sa prekladá na neverejnú adresu, doteraz dostával 422; teraz sa prijme s 201 a započítava sa do limitu 5 koncových bodov na účet. Každé doručenie na takýto koncový bod potom zlyhá bez opakovania, pole error v GET /webhooks/{id}/deliveries uvádza dôvod a 10 neúspešných doručení po sebe koncový bod deaktivuje. Po vytvorení koncového bodu naň odošlite testovaciu udalosť cez POST /webhooks/{id}/test a v protokole doručovania overte, že je dosiahnuteľný.
endpoints[].endpoint v GET /usage teraz uvádza šablónu trasy namiesto požadovanej cesty – api/v1/coins/{slug} namiesto api/v1/coins/bitcoin – takže každý koncový bod má jeden riadok namiesto jedného za každý slug alebo id. Požiadavky zaznamenané skôr v aktuálnom fakturačnom období si ponechávajú svoju cestu, preto sa do konca obdobia môžu objaviť obe podoby.
GET /exchanges/{slug} a GET /exchanges/{slug}/trust-score od spustenia dátového API pri každej burze zlyhávali s chybou 500. Oba teraz odpovedajú; parametre a polia odpovede zostávajú bez zmeny a burza bez poradia vracia score a breakdown ako null.
Zverejnený kontrakt OpenAPI teraz označuje každé pole, ktoré môže byť null, ako nullable a definuje desatinné hodnoty ako čísla (napríklad invested v GET /calculators/dca a hodnoty indikátorov); spoločné polia logo, last_updated a polia stránkovania from/to sú nullable pri všetkých koncových bodoch a rovnako aj name a price kryptomeny pri všetkých koncových bodoch pre zoznamy kryptomien a ceny. Ďalej definuje series pri DCA ako pole, dokumentuje odpovede GET /coins/{slug}/markets, GET /coins/losers, GET /global/history/{metric} a GET /sentiment/altseason, dokumentuje days v GET /sentiment/altseason ako 1–365 (hodnota 0 bola vždy odmietnutá; ak chcete aktuálnu hodnotu, parameter vynechajte) a v chybovej schéme uvádza kódy endpoint_unavailable (503) a http_error. Žiadna požiadavka ani odpoveď sa nezmenila – zmenil sa len ich popis.
Neúspešná autentifikácia bola predtým obmedzená na 30 pokusov za minútu na IP adresu, po ktorých dostával 429 každý kľúč za touto IP adresou. Teraz môže jeden kľúč zlyhať 30-krát za minútu z jednej IP adresy a jedna IP adresa 300-krát, kľúče, ktoré sa úspešne autentifikovali približne za posledných 15 minút, limit pre IP adresu neblokuje a požiadavka bez kľúča vráti 401 bez započítania. Blokované požiadavky dostanú 429 rate_limited s hlavičkou Retry-After.
Požiadavky GET a HEAD, ktorých cesta má koncovú lomku, zdvojenú lomku alebo úvodné /index.php, teraz namiesto obslúženia dostanú 301 na čistú URL adresu – napríklad z /api/v1/coins/ na /api/v1/coins. Ostatných metód sa zmena netýka.
GET /calculators/compound-interest zaokrúhľoval dobu trvania na celé úročiace obdobia, takže doba končiaca uprostred obdobia sa simulovala ako príliš dlhá alebo príliš krátka: 6 mesiacov s úročením annually prebehlo ako celý rok (12 vkladov a úrok za celý rok) a 5 mesiacov neprebehlo ako žiadne obdobie (žiadne vklady, žiadny úrok). Celé obdobia sa teraz počítajú ako predtým, posledné neúplné obdobie prináša úrok pomerne (jednoduchý úrok za jeho časť) a započíta sa každý vklad v rámci doby trvania. Ak doba trvania zodpovedá celému počtu úročiacich období, výsledky sa nemenia; parametre a polia odpovede zostávajú bez zmeny.
API aj jeho dokumentácia pracovali s rate ako so sadzbou za úročiace obdobie, zatiaľ čo kalkulačka na webe a jej návod používali ročnú sadzbu. GET /calculators/compound-interest uplatňoval rate v plnej výške na každé úročiace obdobie, takže 5 % pri mesačnom úročení rástlo ako 5 % mesačne. rate je teraz ročná nominálna sadzba: každé obdobie pripíše rate vydelenú počtom období za rok (5 % pri mesačnom úročení znamená 5/12 % mesačne), ako teraz uvádza meta.note. Parametre ani polia odpovede sa nemenia; výsledky sa menia pri všetkých frekvenciách úročenia okrem annually. Nezávisle od tejto zmeny: ak majú contribution_frequency aj compound_frequency rovnakú hodnotu daily alebo weekly, vklady sa už v dôsledku zaokrúhľovania v pohyblivej rádovej čiarke neoneskorujú ani nevypadávajú, takže total_contributions môže pri duration_unit=months obsahovať o jeden vklad viac. Tým sa mení význam existujúceho parametra: ak chcete zopakovať skoršie výsledky, vynásobte rate počtom úročiacich období za rok.
Každá hodnota Fear & Greed teraz obsahuje index vedľa score: index Fear & Greed 0–100 presne tak, ako ho zobrazuje Bitculator (0–19 extrémny strach, 20–39 strach, 40–59 neutrálne, 60–79 chamtivosť, 80–100 extrémna chamtivosť) — používajte ho na zobrazenie. score sa nemení: ide o surovú zloženú hodnotu −100…+100, z ktorej sa index odvodzuje. Týka sa GET /sentiment/fear-greed (hlavná hodnota aj každá položka v intervals), fear_greed v GET /global a meta.fear_greed v GET /global/heatmap. Iba doplnenie; žiadne existujúce pole sa nezmenilo.
GET /coins/{slug} vracal fully_diluted_valuation ako 0 pri coinoch bez maximálnej ponuky (napríklad Solana a Ethereum, ktorých ponuka nie je obmedzená). Teraz sa použije celková ponuka a hodnota je null, ak nie je známa ani jedna, ako už kontrakt OpenAPI dokumentoval.
Hodnota Fear & Greed, ktorá ešte nemala skóre, sa hlásila ako score: 0. Teraz je null v GET /sentiment/fear-greed a rovnako aj fear_greed v GET /global a meta.fear_greed v GET /global/heatmap.
marketcap a dominance môžu byť null pri kryptomene bez obiehajúcej ponuky a score aj breakdown skóre dôvery sú null pri burze bez poradia. POST /alarms vracia 422, keď kryptomena nemá pre zvolenú metriku aktuálnu hodnotu. /coins/recently-added a /wallets/timeline teraz rešpektujú sort. /coins/gainers a /coins/losers sa zoraďujú podľa samotnej zmeny (predtým fakticky podľa trhovej kapitalizácie) a medzi stratovými sa nezobrazujú kryptomeny so zmenou 0.00. Vzostupné zoradenia vracajú hodnoty null až nakoniec. /prices priradí nejednoznačnému symbolu najvyššie umiestnenú aktívnu kryptomenu. Kontrakt OpenAPI označuje trhové polia, ktoré môžu byť null, a objem za 24 h definuje ako číslo.
Každý prehľad v GET /insights, GET /insights/{id} a GET /coins/{slug}/insights teraz obsahuje generated_by: "ai" a model, ktorý ho napísal. Iba doplnenie; žiadne existujúce pole sa nezmenilo.
Burza Huobi bola premenovaná na HTX a jej slug sa zmenil z huobi na htx; API nesleduje presmerovania slugov, takže /exchanges/huobi teraz vracia 404. CoinEx bola nastavená ako neaktívna a už sa nevracia.
change_24h a change_7d sú teraz null, ak sa zmeny kryptomeny neprepočítali 15 minút, namiesto zobrazenia zastaraného pohybu. Od 18. septembra to isté platí pre change_rank_24h a change_rank_7d.
Zverejnený kontrakt teraz obsahuje príklady na úrovni typu média, jednu spoločnú chybovú schému, na ktorú odkazuje každá odpoveď 4xx/5xx, odpovede 401, 429 a 500, ktoré môže vrátiť každé volanie s kľúčom, hlavičky X-RateLimit-* a X-Quota-* pri každej úspešnej odpovedi, doručenie alarm.triggered ako callback na POST /webhooks a metadáta o kontakte, licencii a podmienkach. Žiadna požiadavka ani odpoveď sa nezmenila – zmenil sa len ich popis.
Novinky: /apis.json, /.well-known/api-catalog (RFC 9727), /.well-known/security.txt (RFC 9116), balík JSON Schema so spoločnými tvarmi odpovedí, verejná stránka so stavom a jej dvojča vo formáte JSON, tento changelog a zásady verziovania a ukončovania podpory.
Volania nástrojov MCP sa prestali započítavať do mesačnej kvóty a nárazového limitu plánu dátového API; server MCP má od tohto dňa vlastné kľúče a plány. tokens[].kind v GET /usage teraz môže byť mcp a správa 429 pri prekročení kvóty znie „Your Data API plan has reached its monthly request limit.“ (predtým uvádzala embed plán).
Vytvorenie alebo rotácia kľúča k dátovému API vo vývojárskej konzole teraz vyžaduje overenú e-mailovú adresu; účty bez e-mailu, napríklad prihlásenia cez peňaženku, sú výnimkou. Vytváranie kľúčov je obmedzené na 10 za minútu. Existujúce kľúče fungujú ďalej.
volume_usd v GET /tickers, GET /pairs, GET /pairs/{id}, GET /coins/{slug}/markets a GET /exchanges/{slug}/tickers sa ukladal ako celé číslo, takže sa strácali centy a trhy pod 0,50 $ zobrazovali 0. Objemy teraz zachovávajú dve desatinné miesta a súčty z nich zostavené už zaokrúhlenie nededia.
change v GET /coins/{slug}/sparkline a GET /exchanges/{slug}/sparkline bol pre 30d až 365d zlomok (0,05 znamenalo +5 %), ale pre 24h a 7d percento. Teraz je percentom pre každé obdobie (1.25 znamená +1,25 %), takže hodnoty pre dlhšie obdobia sú 100-krát väčšie ako predtým a pohyby pod 0,5 % sa už nezaokrúhľujú na 0.
Pri oboch koncových bodoch sparkline pochádzali low a high zo súhrnu zostaveného nad iným oknom a mohli odporovať points – napríklad low nad cenami v rade. Teraz sú to skutočné extrémy obdobia, z ktorého sa points vzorkujú.
GET /wallets, /wallets/timeline, /wallets/compare, /wallets/{slug} a /wallets/{slug}/assets teraz vracajú aj peňaženky so stavom vaporware, takže status môže niesť túto hodnotu.
Zdrojové title a excerpt v prehľadoch už neobsahujú surové HTML entity, ako je í.
Pri článku, ktorý nebol nikdy upravený, ukazovalo updated_at v GET /articles a GET /articles/{slug} posledný okamih, keď sa záznam z akéhokoľvek dôvodu zmenil, napríklad kvôli počtu zobrazení alebo hlasu. Teraz ukazuje poslednú redakčnú úpravu, s náhradným použitím dátumu publikovania, a POST /articles/{slug}/feedback ho už neposúva.
Prehľady teraz obsahujú sentiment: bullish, bearish, sheepish alebo null, keď nie je klasifikovaný.
Klienti pre TypeScript, Python, PHP, Go, Rust, Java, C# a C++, každý pokrýva všetky koncové body na rovnakom prenosovom jadre: autentifikácia Bearer, rozbalenie obálky, zachytenie X-Quota-*, opakovania pri 429 a 5xx, typované chyby a stránkovanie.
Koncové body teraz môžu vyžadovať plán. Pri zavedení vyžadoval GET /sentiment/indicators plán Pro a GET /sentiment/bull-bear, GET /sentiment/altseason, GET /global, GET /global/heatmap a GET /global/history/{metric} plán Starter. Volanie mimo vášho plánu vracia 403 plan_required s details.required_plan, ktoré uvádza plán, ktorý ho odomyká, a nespotrebúva kvótu.
Šesť koncových bodov /liquidations bolo vypnutých na všetkých plánoch: vracajú 503 endpoint_unavailable („This endpoint is temporarily unavailable.“) a nespotrebúvajú kvótu.
Mesačná kvóta plánu Pro klesla z 500 000 na 250 000 požiadaviek.
Zo všeobecného GET /coins/{slug}/indicators/{family} sa stalo 13 samostatne zdokumentovaných koncových bodov na rovnakých cestách: rsi, stoch-rsi, sma, cci, mfi, williams-r, price-volatility, volume-volatility, macd, obv, adx, vwap a cmf. Existujúce volania sa nemenia; neznámy názov indikátora teraz dostane obyčajnú 404 bez zoznamu platných názvov.
Pri spustení čerpali volania dátového API a požiadavky embed widgetov z jedného mesačného fondu viazaného na embed plán. Dátové API má teraz vlastné plány Free, Starter a Pro, predplatné a mesačnú kvótu s vlastným fakturačným obdobím: pri Free je to kalendárny mesiac v UTC, pri platených plánoch sa odvíja od dňa obnovenia. GET /ping a GET /usage hlásia plán dátového API a /usage počíta iba volania dátového API. Limity sa pri rozdelení nezmenili.
Referenčná príručka sa presunula z /{locale}/documentation na /{locale}/documentation/api/v1 a kolekcia Postman a OpenAPI YAML z /documentation.postman a /documentation.openapi na /documentation/api/v1.postman a /documentation/api/v1.openapi. Staré cesty boli odstránené bez presmerovania; /api/v1/openapi.json sa nemení.
Spustenie: 73 operácií v 15 skupinách – kryptomeny, ceny, trhy, burzy, peňaženky, globálne dáta, sentiment, indikátory, likvidácie, prevody, kalkulačky, redakčný obsah, alarmy, webhooky a meta. Kľúče Bearer s oprávnením data-api, obálka { data, meta }, presnosť v podobe desatinných reťazcov, hlavičky X-Quota-* a podpísané webhooky. Volania dátového API a požiadavky embed widgetov zdieľali jednu mesačnú kvótu v rámci embed plánu a dlhšie okná indikátorov vyžadovali Starter.
Ukončenia podpory oznamujeme tu a e-mailom každému majiteľovi kľúča aspoň šesť mesiacov pred odstránením – pozrite si zásady ukončovania podpory. Strojovo čitateľný index na /apis.json nesie dátum najnovšieho záznamu ako svoju značku modified.