Bitculator

Jurnal de modificări

Jurnalul de modificări al API-ului

Fiecare modificare a API-ului de date și a contractului său, cele mai noi primele. Numerele de versiune respectă politica de versionare și de retragere din uz.

  1. v1.3.3 Modificat

    Crearea și testarea webhook-urilor, limitate la 5 cereri pe minut

    POST /webhooks și POST /webhooks/{id}/test au acum o limită comună de 5 cereri pe minut per cont, pe lângă limita de vârf a abonamentului. Cererile peste această limită primesc 429 rate_limited cu Retry-After. Un eveniment de test este trimis acum o singură dată, fără reîncercări; pentru celelalte livrări se fac în continuare cel mult 3 încercări, cu întârziere progresivă între ele. Aceasta este o limită împotriva abuzurilor și lasă neschimbate cota lunară și limita de vârf ale fiecărui abonament. Politica de versionare și de retragere din uz a fost modificată în aceeași zi, astfel încât asemenea limite să poată intra în vigoare imediat; până atunci, reducerea oricărei limite de rată pe care o avea un abonament urma calendarul de retragere din uz de șase luni. Pentru aceste două endpointuri, antetele X-RateLimit-* arată limita dintre cele două la care au mai rămas mai puține cereri.

  2. v1.3.3 Modificat

    Numele de gazdă ale webhook-urilor se rezolvă la livrare, nu la creare

    POST /webhooks nu mai rezolvă numele de gazdă din URL. Returnează în continuare 422 când URL-ul nu folosește https, conține date de autentificare sau are ca gazdă o adresă IP care nu este publică. Un nume de gazdă care nu se poate rezolva sau care indică spre o adresă care nu este publică primea înainte 422; acum este acceptat cu 201 și intră în limita de 5 endpointuri pe cont. Fiecare livrare către un astfel de endpoint eșuează apoi fără reîncercare, câmpul error din GET /webhooks/{id}/deliveries arată motivul, iar 10 livrări eșuate la rând dezactivează endpointul. După ce creați un endpoint, trimiteți-i un eveniment de test cu POST /webhooks/{id}/test și verificați în jurnalul livrărilor că poate fi accesat.

  3. v1.3.3 Modificat

    Defalcarea utilizării arată șabloane de rută, nu căi

    endpoints[].endpoint din GET /usage indică acum șablonul rutei în locul căii solicitate, adică api/v1/coins/{slug} în loc de api/v1/coins/bitcoin, astfel încât fiecare endpoint are un singur rând în loc de câte unul pentru fiecare slug sau id. Cererile înregistrate mai devreme în perioada de facturare curentă își păstrează calea, așa că ambele forme pot apărea până la sfârșitul perioadei.

  4. v1.3.2 Corectat

    Profilul bursei și scorul de încredere, corectate

    GET /exchanges/{slug} și GET /exchanges/{slug}/trust-score eșuau cu eroarea 500 pentru fiecare bursă de la lansarea API-ului de date. Acum ambele răspund; parametrii și câmpurile răspunsului rămân neschimbate, iar pentru o bursă fără clasament score și breakdown sunt returnate ca null.

  5. v1.3.2 Modificat

    Tipurile din contract, corectate

    Contractul OpenAPI publicat marchează acum drept nullable fiecare câmp care poate fi null și tipizează valorile fracționare drept numere (de exemplu invested din GET /calculators/dca și valorile indicatorilor); câmpurile comune logo și last_updated, precum și câmpurile de paginare from/to, sunt nullable în toate endpointurile, iar câmpurile name și price ale monedelor, în toate endpointurile de liste de monede și de prețuri. De asemenea, contractul tipizează câmpul DCA series drept array, documentează răspunsurile pentru GET /coins/{slug}/markets, GET /coins/losers, GET /global/history/{metric} și GET /sentiment/altseason, documentează intervalul 1–365 pentru days din GET /sentiment/altseason (0 a fost întotdeauna respins; omiteți-l pentru a obține citirea actuală) și enumeră codurile endpoint_unavailable (503) și http_error în schema de eroare. Nicio cerere și niciun răspuns nu s-au modificat - doar felul în care sunt descrise.

  6. v1.3.1 Modificat

    Autentificările eșuate, limitate per cheie

    Autentificările eșuate erau plafonate la 30 de încercări pe minut per IP, după care fiecare cheie din spatele acelui IP primea 429. Acum o cheie poate eșua de 30 de ori pe minut de pe un IP, iar un IP de 300 de ori; cheile care s-au autentificat în aproximativ ultimele 15 minute nu sunt blocate de plafonul per IP, iar o cerere fără cheie returnează 401 fără să fie numărată. Cererile blocate primesc 429 rate_limited cu Retry-After.

  7. v1.3.1 Modificat

    URL-urile necanonice sunt redirecționate

    Cererile GET și HEAD a căror cale are o bară oblică la final, o bară oblică dublată sau un /index.php la început primesc acum un 301 către URL-ul curat, în loc să fie servite - de exemplu de la /api/v1/coins/ la /api/v1/coins. Celelalte metode nu sunt afectate.

  8. v1.3.1 Corectat

    Perioadele de capitalizare parțiale sunt calculate exact

    GET /calculators/compound-interest rotunjea durata la perioade de capitalizare întregi, astfel încât o durată care se încheia la mijlocul unei perioade era simulată prea lungă sau prea scurtă: 6 luni cu capitalizare annually rulau un an întreg (12 depuneri și dobânda pe un an întreg), iar 5 luni nu rulau nicio perioadă (fără depuneri, fără dobândă). Perioadele întregi rulează acum ca înainte, ultima perioadă parțială aduce dobândă proporțional (dobândă simplă pentru fracțiune) și fiecare depunere din cadrul duratei este luată în calcul. Rezultatele rămân neschimbate atunci când durata este un număr întreg de perioade de capitalizare; parametrii și câmpurile răspunsului rămân neschimbate.

  9. v1.3.0 Modificat

    Rata dobânzii compuse este anuală, nu pe perioadă

    API-ul și documentația sa tratau rate ca rata pe perioadă de capitalizare, în timp ce calculatorul de pe site și ghidul său foloseau o rată anuală. GET /calculators/compound-interest aplica rate integral fiecărei perioade de capitalizare, așa că 5% cu capitalizare lunară creștea ca 5% pe lună. rate este acum rata nominală anuală: fiecare perioadă aduce rate împărțită la numărul de perioade pe an (5% cu capitalizare lunară înseamnă 5/12% pe lună), așa cum indică acum meta.note. Parametrii și câmpurile răspunsului nu se schimbă; rezultatele se schimbă pentru toate frecvențele de capitalizare, cu excepția annually. Independent de aceasta, când contribution_frequency și compound_frequency sunt ambele daily sau ambele weekly, depunerile nu mai sunt amânate și nici omise din cauza rotunjirilor în virgulă mobilă, așa că total_contributions poate include o depunere în plus cu duration_unit=months. Aceasta schimbă semnificația unui parametru existent: pentru a reproduce rezultatele anterioare, înmulțiți rate cu numărul de perioade de capitalizare pe an.

  10. v1.2.0 Adăugat

    Indicele Fear & Greed (0–100) lângă valoarea brută score

    Fiecare citire Fear & Greed conține acum index lângă score: indicele Fear & Greed de la 0 la 100 exact așa cum îl afișează Bitculator (0–19 frică extremă, 20–39 frică, 40–59 neutru, 60–79 lăcomie, 80–100 lăcomie extremă) — folosiți-l pentru afișare. Câmpul score rămâne neschimbat: valoarea compusă brută de −100…+100 din care este derivat index. Se aplică pentru GET /sentiment/fear-greed (citirea principală și fiecare intrare din intervals), câmpului fear_greed din GET /global și câmpului meta.fear_greed din GET /global/heatmap. Doar o adăugare; niciun câmp existent nu s-a schimbat.

  11. v1.1.2 Corectat

    Evaluarea complet diluată necunoscută este null

    GET /coins/{slug} returna fully_diluted_valuation ca 0 pentru monedele fără ofertă maximă (de exemplu Solana și Ethereum, a căror ofertă nu este plafonată). Acum folosește oferta totală și este null când niciuna nu este cunoscută, așa cum documenta deja contractul OpenAPI.

  12. v1.1.2 Corectat

    Fear & Greed fără suficiente date este null

    O citire Fear & Greed care nu avea încă un scor era raportată ca score: 0. Acum este null în GET /sentiment/fear-greed, la fel ca fear_greed din GET /global și meta.fear_greed din GET /global/heatmap.

  13. v1.1.1 Corectat

    Valorile null, sortarea și topurile de variație, corectate

    marketcap și dominance pot fi null pentru o monedă fără ofertă circulantă, iar score și breakdown din scorul de încredere sunt null pentru o bursă neclasificată. POST /alarms returnează 422 atunci când moneda nu are o valoare curentă pentru metrica aleasă. /coins/recently-added și /wallets/timeline respectă acum sort. /coins/gainers și /coins/losers sunt ordonate după variația în sine (anterior, în fapt, după capitalizarea de piață), iar lista scăderilor exclude monedele aflate la 0.00. Sortările crescătoare returnează valorile null la final. /prices rezolvă un simbol ambiguu către cea mai bine clasată monedă activă. Contractul OpenAPI marchează câmpurile de piață care pot fi null și tipizează volumul pe 24h drept număr.

  14. v1.1.1 Adăugat

    Analizele indică faptul că sunt scrise de AI

    Fiecare analiză din GET /insights, GET /insights/{id} și GET /coins/{slug}/insights conține acum generated_by: "ai" și model, modelul care a scris-o. Doar o adăugare; niciun câmp existent nu s-a schimbat.

  15. v1.1.1 Modificat

    Huobi este acum HTX; CoinEx, inactivă

    Bursa Huobi a fost redenumită HTX, iar slugul ei s-a schimbat din huobi în htx; API-ul nu urmează redirecționările de slug, așa că /exchanges/huobi returnează acum 404. CoinEx a fost setată ca inactivă și nu mai este returnată.

  16. v1.1.1 Corectat

    Variațiile învechite pe 24 de ore și pe 7 zile sunt null

    change_24h și change_7d sunt acum null când variațiile unei monede nu au fost recalculate timp de 15 minute, în loc să afișeze o mișcare depășită. Din 18 septembrie, același lucru se aplică și pentru change_rank_24h și change_rank_7d.

  17. v1.1.0 Modificat

    Contractul OpenAPI, îmbogățit

    Contractul publicat conține acum exemple la nivel de tip media, o singură schemă de eroare comună, la care trimite fiecare răspuns 4xx/5xx, răspunsurile 401, 429 și 500 pe care le poate returna orice apel cu cheie, antetele X-RateLimit-* și X-Quota-* la fiecare răspuns reușit, livrarea alarm.triggered sub formă de callback pe POST /webhooks, precum și metadate de contact, de licență și de termeni. Nicio cerere și niciun răspuns nu s-au modificat - doar felul în care sunt descrise.

  18. v1.1.0 Adăugat

    Descoperire în format citibil automat

    Nou: /apis.json, /.well-known/api-catalog (RFC 9727), /.well-known/security.txt (RFC 9116), un pachet JSON Schema cu formele comune de răspuns, o pagină de stare publică însoțită de o copie în JSON, acest jurnal de modificări și politica de versionare și de retragere din uz.

  19. v1.0.1 Modificat

    Cota API-ului de date nu mai este partajată cu MCP

    Apelurile de instrumente MCP au încetat să fie numărate în cota lunară și în limita de vârf a abonamentului pentru API-ul de date; de la acea dată, serverul MCP are propriile chei și abonamente. tokens[].kind din GET /usage poate fi acum mcp, iar mesajul 429 la depășirea cotei este "Your Data API plan has reached its monthly request limit." (înainte menționa abonamentul pentru widget-uri).

  20. v1.0.1 Modificat

    E-mail verificat obligatoriu pentru crearea cheilor

    Crearea sau rotirea unei chei pentru API-ul de date în consola pentru dezvoltatori necesită acum o adresă de e-mail verificată; conturile fără e-mail, precum autentificările cu portofel, sunt scutite. Crearea cheilor este limitată la 10 pe minut. Cheile existente continuă să funcționeze.

  21. v1.0.1 Corectat

    Volumele tickerelor își păstrează cenții

    volume_usd din GET /tickers, GET /pairs, GET /pairs/{id}, GET /coins/{slug}/markets și GET /exchanges/{slug}/tickers era stocat ca număr întreg, așa că cenții se pierdeau, iar piețele sub $0,50 afișau 0. Volumele păstrează acum două zecimale, iar totalurile calculate din ele nu mai moștenesc rotunjirea.

  22. v1.0.1 Modificat

    Variația din sparkline este procentuală pentru fiecare perioadă

    change din GET /coins/{slug}/sparkline și GET /exchanges/{slug}/sparkline era o fracție pentru 30d până la 365d (0,05 însemna +5%), dar un procent pentru 24h și 7d. Acum este un procent pentru fiecare perioadă (1.25 înseamnă +1,25%), așa că valorile pentru perioadele mai lungi sunt de 100 de ori mai mari decât înainte, iar mișcările sub 0,5% nu mai sunt rotunjite la 0.

  23. v1.0.1 Corectat

    Minimul și maximul din sparkline corespund seriei

    Pe ambele endpointuri sparkline, low și high proveneau dintr-un rezumat construit pe o altă fereastră și puteau contrazice points - de exemplu un low peste unele prețuri din serie. Acum sunt extremele reale ale perioadei din care este eșantionat points.

  24. v1.0.1 Modificat

    Portofelele vaporware sunt listate

    GET /wallets, /wallets/timeline, /wallets/compare, /wallets/{slug} și /wallets/{slug}/assets returnează acum și portofelele cu statusul vaporware, așa că status poate avea această valoare.

  25. v1.0.1 Corectat

    Textul surselor din analize, decodat

    Câmpurile title și excerpt ale surselor din analize nu mai conțin entități HTML brute precum í.

  26. v1.0.1 Corectat

    updated_at al articolelor arată ultima editare

    Pentru un articol care nu a fost niciodată editat, updated_at din GET /articles și GET /articles/{slug} arăta ultima dată când înregistrarea s-a schimbat din orice motiv, de exemplu un număr de vizualizări sau un vot. Acum arată ultima editare redacțională, cu data publicării ca rezervă, iar POST /articles/{slug}/feedback nu îl mai modifică.

  27. v1.0.1 Adăugat

    Sentimentul analizelor

    Analizele includ acum sentiment: bullish, bearish, sheepish sau null când nu sunt clasificate.

  28. v1.0.1 Adăugat

    Opt SDK-uri oficiale

    Clienți TypeScript, Python, PHP, Go, Rust, Java, C# și C++, fiecare acoperind toate endpointurile pe același nucleu de transport: autentificare Bearer, despachetarea structurii, captarea X-Quota-*, reîncercări la 429 și 5xx, erori tipizate și paginare.

  29. v1.0.1 Modificat

    Endpointuri condiționate de abonament

    Endpointurile pot necesita acum un abonament. La introducere, GET /sentiment/indicators necesita Pro, iar GET /sentiment/bull-bear, GET /sentiment/altseason, GET /global, GET /global/heatmap și GET /global/history/{metric} necesitau Starter. Un apel în afara abonamentului dumneavoastră returnează 403 plan_required, cu details.required_plan indicând abonamentul care îl deblochează, și nu consumă din cotă.

  30. v1.0.1 Modificat

    Endpointurile pentru lichidări, dezactivate

    Cele șase endpointuri /liquidations au fost dezactivate pe toate abonamentele: returnează 503 endpoint_unavailable ("This endpoint is temporarily unavailable.") și nu consumă din cotă.

  31. v1.0.1 Modificat

    Cota Pro, redusă la 250.000

    Cota lunară a abonamentului Pro a scăzut de la 500.000 la 250.000 de cereri.

  32. v1.0.1 Modificat

    Câte un endpoint pentru fiecare indicator

    Endpointul generic GET /coins/{slug}/indicators/{family} a devenit 13 endpointuri documentate separat, pe aceleași căi: rsi, stoch-rsi, sma, cci, mfi, williams-r, price-volatility, volume-volatility, macd, obv, adx, vwap și cmf. Apelurile existente rămân neschimbate; un nume de indicator necunoscut primește acum un simplu 404, fără lista numelor valide.

  33. v1.0.1 Modificat

    Abonamente și cotă proprii pentru API-ul de date

    La lansare, apelurile către API-ul de date și cererile widget-urilor încorporate consumau dintr-un singur fond lunar legat de abonamentul pentru widget-uri. API-ul de date are acum propriile abonamente Gratuit, Starter și Pro, propria subscripție și propria cotă lunară, cu propria perioadă de facturare: luna calendaristică în UTC pe Gratuit, ancorată la ziua de reînnoire pe abonamentele plătite. GET /ping și GET /usage raportează abonamentul API-ului de date, iar /usage numără doar apelurile către API-ul de date. Limitele nu s-au schimbat la separare.

  34. v1.0.1 Modificat

    URL-urile documentației s-au mutat

    Referința s-a mutat de la /{locale}/documentation la /{locale}/documentation/api/v1, iar colecția Postman și fișierul OpenAPI YAML, de la /documentation.postman și /documentation.openapi la /documentation/api/v1.postman și /documentation/api/v1.openapi. Căile vechi au fost eliminate fără redirecționări; /api/v1/openapi.json a rămas neschimbat.

  35. v1.0.0 Adăugat

    API-ul de date v1

    Lansare: 73 de operațiuni în 15 grupuri - monede, prețuri, piețe, burse, portofele, date globale, sentiment, indicatori, lichidări, conversie, calculatoare, conținut editorial, alarme, webhookuri și meta. Chei Bearer cu permisiunea data-api, structura { data, meta }, precizie prin șiruri zecimale, antete X-Quota-* și webhookuri semnate. Apelurile către API-ul de date și cererile widget-urilor încorporate partajau o singură cotă lunară în cadrul abonamentului pentru widget-uri, iar ferestrele mai lungi ale indicatorilor necesitau Starter.

Rămâneți informat

Retragerile din uz sunt anunțate aici și prin e-mail către fiecare deținător de cheie cu cel puțin șase luni înainte de eliminare - vedeți politica de retragere din uz. Indexul citibil automat de la /apis.json poartă data celei mai noi intrări drept marcaj modified.