Dnevnik promena
Svaka promena Data API-ja i njegovog ugovora, najnovije prvo. Brojevi verzija prate politiku verzionisanja i ukidanja.
POST /webhooks i POST /webhooks/{id}/test sada dele ograničenje od 5 zahteva u minuti po nalogu, povrh minutnog limita plana. Zahtevi preko tog ograničenja dobijaju 429 rate_limited sa zaglavljem Retry-After. Test događaj se sada šalje samo jednom, bez ponovnih pokušaja; ostale dostave se i dalje pokušavaju najviše 3 puta, sa odlaganjem između pokušaja. Ovo je ograničenje protiv zloupotrebe i ne menja mesečnu kvotu ni ograničenje rafala nijednog plana. Politika verzionisanja i ukidanja promenjena je istog dana kako bi takva ograničenja mogla da stupe na snagu odmah; do tada su za smanjenje bilo kog ograničenja broja zahteva u planu važili šestomesečni rokovi za ukidanje. Na ove dve krajnje tačke zaglavlja X-RateLimit-* prikazuju ono od dva ograničenja kod kog je ostalo manje zahteva.
POST /webhooks više ne razrešava ime hosta iz URL-a. I dalje vraća 422 kada URL ne koristi https, sadrži pristupne podatke ili kao host ima IP adresu koja nije javna. Ime hosta koje se ne može razrešiti, ili se razrešava u adresu koja nije javna, ranije je dobijalo 422; sada se prihvata sa 201 i ulazi u ograničenje od 5 krajnjih tačaka po nalogu. Svaka dostava na takvu krajnju tačku tada se završava neuspehom, bez ponovnog pokušaja, polje error u GET /webhooks/{id}/deliveries navodi razlog, a 10 neuspešnih dostava zaredom deaktivira krajnju tačku. Nakon kreiranja krajnje tačke pošaljite joj test događaj preko POST /webhooks/{id}/test i u dnevniku dostave proverite da li je dostupna.
endpoints[].endpoint u GET /usage sada navodi šablon rute umesto tražene putanje, odnosno api/v1/coins/{slug} umesto api/v1/coins/bitcoin, pa svaka krajnja tačka ima jedan red umesto po jednog za svaki slug ili id. Zahtevi zabeleženi ranije u tekućem obračunskom periodu zadržavaju svoju putanju, zato se do kraja perioda mogu pojaviti oba oblika.
GET /exchanges/{slug} i GET /exchanges/{slug}/trust-score su se od lansiranja Data API-ja za svaku berzu završavali greškom 500. Sada oba odgovaraju; parametri i polja odgovora su nepromenjeni, a berza bez ranga vraća score i breakdown kao null.
Objavljeni OpenAPI ugovor sada označava kao nullable svako polje koje može biti null i tipizira necelobrojne vrednosti kao brojeve (na primer invested u odgovoru GET /calculators/dca, kao i vrednosti indikatora); zajednička polja logo, last_updated i polja paginacije from/to su nullable na svim krajnjim tačkama, kao i polja name i price kovanice na svim krajnjim tačkama za liste kovanica i cene. Takođe tipizira DCA series kao niz, dokumentuje odgovore za GET /coins/{slug}/markets, GET /coins/losers, GET /global/history/{metric} i GET /sentiment/altseason, dokumentuje days u GET /sentiment/altseason kao 1–365 (vrednost 0 je uvek bila odbijena; izostavite parametar za trenutno očitavanje) i navodi kodove endpoint_unavailable (503) i http_error u šemi greške. Nijedan zahtev ni odgovor nije promenjen - promenjen je samo njihov opis.
Neuspešna autentifikacija je ranije bila ograničena na 30 pokušaja u minuti po IP adresi, nakon čega je svaki ključ iza te IP adrese dobijao 429. Sada jedan ključ sme da ne uspe 30 puta u minuti sa jedne IP adrese, a jedna IP adresa 300 puta, ključeve koji su se uspešno autentifikovali otprilike u poslednjih 15 minuta ograničenje po IP adresi ne blokira, a zahtev bez ključa vraća 401 i ne uračunava se. Blokirani zahtevi dobijaju 429 rate_limited sa zaglavljem Retry-After.
GET i HEAD zahtevi čija putanja ima kosu crtu na kraju, dvostruku kosu crtu ili /index.php na početku sada umesto posluživanja dobijaju 301 ka čistom URL-u - na primer sa /api/v1/coins/ na /api/v1/coins. Ostale metode nisu pogođene.
GET /calculators/compound-interest je zaokruživao trajanje na cele periode kapitalizacije, pa je trajanje koje se završava usred perioda simulirano predugo ili prekratko: 6 meseci uz kapitalizaciju annually trajalo je celu godinu (12 uplata i kamata za celu godinu), a 5 meseci nije činilo nijedan period (bez uplata, bez kamate). Celi periodi se sada računaju kao i ranije, poslednji delimični period donosi kamatu srazmerno (prosta kamata za taj deo), a svaka uplata unutar trajanja se uračunava. Rezultati su nepromenjeni kada je trajanje ceo broj perioda kapitalizacije; parametri i polja odgovora su nepromenjeni.
API i njegova dokumentacija tretirali su rate kao stopu po periodu ukamaćivanja, dok su kalkulator na sajtu i njegovo uputstvo koristili godišnju stopu. GET /calculators/compound-interest je primenjivao ceo rate na svaki period ukamaćivanja, pa je 5% uz mesečno ukamaćivanje raslo kao 5% mesečno. rate je sada nominalna godišnja stopa: svaki period donosi rate podeljenu brojem perioda u godini (5% uz mesečno ukamaćivanje donosi 5/12% mesečno), kao što sada navodi i meta.note. Parametri i polja odgovora se ne menjaju; rezultati se menjaju za sve učestalosti ukamaćivanja osim annually. Nezavisno od toga, kada contribution_frequency i compound_frequency imaju istu vrednost, daily ili weekly, depoziti se više ne odlažu niti izostaju zbog zaokruživanja brojeva u pokretnom zarezu, pa total_contributions uz duration_unit=months može da sadrži jedan depozit više. Ovim se menja značenje postojećeg parametra: da biste reprodukovali ranije rezultate, pomnožite rate brojem perioda kapitalizacije godišnje.
Svako Fear & Greed očitavanje sada sadrži polje index pored polja score: Fear & Greed indeks od 0 do 100 tačno onako kako ga prikazuje Bitculator (0–19 ekstremni strah, 20–39 strah, 40–59 neutralno, 60–79 pohlepa, 80–100 ekstremna pohlepa) — koristite ga za prikaz. Polje score je nepromenjeno: sirova složena vrednost od −100…+100 iz koje se izvodi index. Odnosi se na GET /sentiment/fear-greed (glavno očitavanje i svaku stavku u polju intervals), polje fear_greed u odgovoru GET /global i polje meta.fear_greed u odgovoru GET /global/heatmap. Samo dodatak; nijedno postojeće polje nije promenjeno.
GET /coins/{slug} je vraćao fully_diluted_valuation kao 0 za kriptovalute bez maksimalne ponude (na primer Solana i Ethereum, čija ponuda nije ograničena). Sada se koristi ukupna ponuda, a vrednost je null kada nijedna nije poznata, kako je OpenAPI ugovor već dokumentovao.
Fear & Greed očitavanje koje još nije imalo ocenu prijavljivalo se kao score: 0. Sada je null u GET /sentiment/fear-greed, kao i fear_greed u GET /global i meta.fear_greed u GET /global/heatmap.
marketcap i dominance mogu biti null za kovanicu bez cirkulišuće ponude, a score i breakdown u oceni pouzdanosti su null za berzu bez ranga. POST /alarms vraća 422 kada kovanica nema trenutnu vrednost za izabranu metriku. /coins/recently-added i /wallets/timeline sada poštuju sort. /coins/gainers i /coins/losers sortiraju se po samoj promeni (ranije praktično po tržišnoj kapitalizaciji), a gubitnici isključuju kovanice na 0.00. Rastuća sortiranja vraćaju null vrednosti na kraju. /prices razrešava dvosmislen simbol u najbolje rangiranu aktivnu kovanicu. OpenAPI ugovor označava tržišna polja koja mogu biti null i tipizira promet za 24h kao broj.
Svaki uvid u GET /insights, GET /insights/{id} i GET /coins/{slug}/insights sada nosi generated_by: "ai" i model koji ga je napisao. Samo dodatak; nijedno postojeće polje nije promenjeno.
Berza Huobi je preimenovana u HTX, a njen slug je promenjen sa huobi na htx; API ne prati preusmeravanja slugova, pa /exchanges/huobi sada vraća 404. CoinEx je označen kao neaktivan i više se ne vraća.
change_24h i change_7d su sada null kada promene kovanice nisu ponovo izračunate 15 minuta, umesto da prikazuju zastareo pomak. Od 18. septembra isto važi i za change_rank_24h i change_rank_7d.
Objavljeni ugovor sada nosi primere na nivou medijskog tipa, jednu zajedničku šemu greške na koju se poziva svaki 4xx/5xx odgovor, odgovore 401, 429 i 500 koje može vratiti svaki poziv sa ključem, zaglavlja X-RateLimit-* i X-Quota-* u svakom uspešnom odgovoru, dostavu alarm.triggered kao povratni poziv na POST /webhooks, kao i metapodatke o kontaktu, licenci i uslovima. Nijedan zahtev ni odgovor nije promenjen - promenjen je samo njihov opis.
Novo: /apis.json, /.well-known/api-catalog (RFC 9727), /.well-known/security.txt (RFC 9116), JSON Schema paket zajedničkih oblika odgovora, javna stranica statusa sa svojim JSON blizancem, ovaj dnevnik promena i politika verzionisanja i ukidanja.
Pozivi MCP alatki prestali su da se uračunavaju u mesečnu kvotu i minutni limit plana Data API-ja; MCP server od tog dana ima sopstvene ključeve i planove. tokens[].kind u GET /usage sada može biti mcp, a poruka 429 pri prekoračenju kvote glasi „Your Data API plan has reached its monthly request limit.“ (ranije je pominjala embed plan).
Kreiranje ili rotacija ključa za Data API u konzoli za programere sada zahteva potvrđenu adresu e-pošte; nalozi bez e-pošte, kao što su prijave preko novčanika, izuzeti su. Kreiranje ključeva ograničeno je na 10 u minuti. Postojeći ključevi nastavljaju da rade.
volume_usd u GET /tickers, GET /pairs, GET /pairs/{id}, GET /coins/{slug}/markets i GET /exchanges/{slug}/tickers čuvao se kao ceo broj, pa su se centi gubili, a tržišta ispod 0,50 $ prikazivala su 0. Promet sada zadržava dve decimale, a zbirovi izvedeni iz njega više ne nasleđuju zaokruživanje.
change u GET /coins/{slug}/sparkline i GET /exchanges/{slug}/sparkline bio je razlomak za 30d do 365d (0,05 je značilo +5%), ali procenat za 24h i 7d. Sada je procenat za svaki period (1.25 znači +1,25%), pa su vrednosti za duže periode 100 puta veće nego ranije, a pomaci manji od 0,5% se više ne zaokružuju na 0.
Na obe sparkline krajnje tačke, low i high su dolazili iz rezimea izračunatog za drugi vremenski prozor i mogli su da budu u suprotnosti sa points - na primer low iznad cena u seriji. Sada su to stvarni ekstremi perioda iz kojeg se uzorkuje points.
GET /wallets, /wallets/timeline, /wallets/compare, /wallets/{slug} i /wallets/{slug}/assets sada vraćaju i novčanike sa statusom vaporware, pa status može imati tu vrednost.
Izvorni title i excerpt unutar uvida više ne sadrže sirove HTML entitete kao što je í.
Za članak koji nikada nije izmenjen, updated_at u GET /articles i GET /articles/{slug} prikazivao je poslednji trenutak kada se zapis promenio iz bilo kog razloga, na primer zbog broja pregleda ili glasa. Sada prikazuje poslednju uredničku izmenu, a ako je nema, datum objave, i POST /articles/{slug}/feedback ga više ne pomera.
Uvidi sada sadrže sentiment: bullish, bearish, sheepish ili null kada nije klasifikovan.
Klijenti za TypeScript, Python, PHP, Go, Rust, Java, C# i C++, svaki pokriva sve krajnje tačke na istom transportnom jezgru: Bearer autentifikacija, raspakivanje omota, hvatanje X-Quota-*, ponovni pokušaji na 429 i 5xx, tipizirane greške i paginacija.
Krajnje tačke sada mogu da zahtevaju plan. Pri uvođenju, GET /sentiment/indicators je zahtevao Pro, a GET /sentiment/bull-bear, GET /sentiment/altseason, GET /global, GET /global/heatmap i GET /global/history/{metric} Starter. Poziv izvan vašeg plana vraća 403 plan_required sa details.required_plan, gde je naveden plan koji ga otključava, i ne troši kvotu.
Šest krajnjih tačaka /liquidations isključeno je na svim planovima: vraćaju 503 endpoint_unavailable („This endpoint is temporarily unavailable.“) i ne troše kvotu.
Mesečna kvota plana Pro smanjena je sa 500.000 na 250.000 zahteva.
Generička GET /coins/{slug}/indicators/{family} postala je 13 zasebno dokumentovanih krajnjih tačaka na istim putanjama: rsi, stoch-rsi, sma, cci, mfi, williams-r, price-volatility, volume-volatility, macd, obv, adx, vwap i cmf. Postojeći pozivi su nepromenjeni; nepoznato ime indikatora sada dobija običan 404 bez liste važećih imena.
Pri lansiranju su pozivi Data API-ja i zahtevi embed vidžeta trošili jedan mesečni fond vezan za embed plan. Data API sada ima sopstvene planove Free, Starter i Pro, pretplatu i mesečnu kvotu, sa sopstvenim obračunskim periodom: na Free planu to je kalendarski mesec po UTC-u, a na plaćenim planovima računa se od dana obnove. GET /ping i GET /usage prijavljuju plan Data API-ja, a /usage broji samo pozive Data API-ja. Ograničenja se pri razdvajanju nisu promenila.
Referenca je premeštena sa /{locale}/documentation na /{locale}/documentation/api/v1, a Postman kolekcija i OpenAPI YAML sa /documentation.postman i /documentation.openapi na /documentation/api/v1.postman i /documentation/api/v1.openapi. Stare putanje su uklonjene bez preusmeravanja; /api/v1/openapi.json je nepromenjen.
Lansiranje: 73 operacije u 15 grupa - kovanice, cene, tržišta, berze, novčanici, globalni podaci, sentiment, indikatori, likvidacije, konverzija, kalkulatori, uredništvo, alarmi, webhook-ovi i meta. Bearer ključevi sa dozvolom data-api, omot { data, meta }, precizni decimalni stringovi, zaglavlja X-Quota-* i potpisani webhook-ovi. Pozivi Data API-ja i zahtevi embed vidžeta delili su jednu mesečnu kvotu u okviru embed plana, a duži intervali indikatora zahtevali su Starter.
Ukidanja se objavljuju ovde i e-poštom svim vlasnicima ključeva najmanje šest meseci pre uklanjanja - pogledajte politiku ukidanja. Mašinski čitljiv indeks na /apis.json nosi datum najnovijeg unosa kao svoju modified oznaku.