Bitculator

Changelog

Changelog dell'API

Ogni modifica alla Data API e al suo contratto, dalla più recente. I numeri di versione seguono la politica di versionamento e deprecazione.

  1. v1.3.3 Modificato

    Creazione e test dei webhook limitati a 5 richieste al minuto

    POST /webhooks e POST /webhooks/{id}/test ora condividono un limite di 5 richieste al minuto per account, in aggiunta al limite di burst del piano. Le richieste oltre il limite ricevono 429 rate_limited con Retry-After. Un evento di test ora viene inviato una sola volta, senza nuovi tentativi; le altre consegne vengono ancora tentate fino a 3 volte, con backoff tra un tentativo e l'altro. Si tratta di un limite anti-abuso che lascia invariati la quota mensile e il limite di burst di ogni piano. La politica di versionamento e deprecazione è stata modificata lo stesso giorno perché limiti di questo tipo possano entrare in vigore subito; fino ad allora, abbassare qualsiasi limite di frequenza di un piano seguiva la tempistica di deprecazione di sei mesi. Su questi due endpoint, gli header X-RateLimit-* riportano quello dei due limiti a cui restano meno richieste.

  2. v1.3.3 Modificato

    Hostname dei webhook risolti alla consegna, non alla creazione

    POST /webhooks non risolve più l'hostname dell'URL. Restituisce ancora 422 quando l'URL non usa https, contiene credenziali o ha come host un indirizzo IP non pubblico. Un hostname che non si risolve, o che si risolve in un indirizzo non pubblico, finora riceveva 422; ora viene accettato con 201 e conta nel limite di 5 endpoint per account. Ogni consegna a quell'endpoint fallisce poi senza nuovi tentativi, error su GET /webhooks/{id}/deliveries ne indica il motivo e 10 consegne fallite di fila disattivano l'endpoint. Dopo aver creato un endpoint, inviagli un evento di test con POST /webhooks/{id}/test e controlla il log delle consegne per verificare che sia raggiungibile.

  3. v1.3.3 Modificato

    Il dettaglio dell'utilizzo mostra i modelli di rotta, non i percorsi

    endpoints[].endpoint su GET /usage ora indica il modello di rotta invece del percorso richiesto, cioè api/v1/coins/{slug} invece di api/v1/coins/bitcoin, quindi ogni endpoint ha una sola riga invece di una per slug o id. Le richieste registrate in precedenza nel periodo di fatturazione corrente mantengono il loro percorso, per cui entrambe le forme possono comparire fino alla fine del periodo.

  4. v1.3.2 Corretto

    Profilo e trust score di un exchange corretti

    GET /exchanges/{slug} e GET /exchanges/{slug}/trust-score fallivano con un errore 500 per ogni exchange fin dal lancio della Data API. Ora entrambi rispondono; parametri e campi della risposta restano invariati, e un exchange senza rank restituisce score e breakdown come null.

  5. v1.3.2 Modificato

    Tipi del contratto corretti

    Il contratto OpenAPI pubblicato ora segnala come nullable ogni campo che può essere null e tipizza i valori frazionari come numeri (ad esempio invested su GET /calculators/dca e i valori degli indicatori); i campi comuni logo, last_updated e from/to della paginazione sono nullable su tutti gli endpoint, così come il name e il price delle coin su tutti gli endpoint di liste di coin e di prezzi. Inoltre tipizza la series del DCA come array, documenta le risposte di GET /coins/{slug}/markets, GET /coins/losers, GET /global/history/{metric} e GET /sentiment/altseason, documenta l'intervallo 1–365 di days su GET /sentiment/altseason (lo 0 è sempre stato rifiutato; omettilo per ottenere la lettura attuale) ed elenca i codici endpoint_unavailable (503) e http_error nello schema di errore. Nessuna richiesta o risposta è cambiata - solo il modo in cui vengono descritte.

  6. v1.3.1 Modificato

    Autenticazioni fallite limitate per chiave

    Le autenticazioni fallite erano limitate a 30 tentativi al minuto per IP, dopodiché ogni chiave dietro quell'IP riceveva 429. Ora una chiave può fallire 30 volte al minuto da un IP e un IP 300 volte, le chiavi che si sono autenticate all'incirca negli ultimi 15 minuti non vengono bloccate dal limite per IP, e una richiesta senza chiave restituisce 401 senza essere conteggiata. Le richieste bloccate ricevono 429 rate_limited con Retry-After.

  7. v1.3.1 Modificato

    Gli URL non canonici vengono reindirizzati

    Le richieste GET e HEAD il cui percorso ha una barra finale, una doppia barra o un /index.php iniziale ora ricevono un 301 verso l'URL pulito invece di essere servite - ad esempio da /api/v1/coins/ a /api/v1/coins. Gli altri metodi non sono interessati.

  8. v1.3.1 Corretto

    I periodi di capitalizzazione parziali vengono conteggiati con esattezza

    GET /calculators/compound-interest arrotondava la durata a periodi di capitalizzazione interi, quindi una durata che terminava a metà periodo veniva simulata troppo lunga o troppo corta: 6 mesi con capitalizzazione annually coprivano un anno intero (12 versamenti e un anno pieno di interessi), mentre 5 mesi non coprivano alcun periodo (nessun versamento, nessun interesse). Ora i periodi interi vengono calcolati come prima, l'ultimo periodo parziale matura interessi pro rata (interesse semplice sulla frazione) e ogni versamento entro la durata viene conteggiato. I risultati restano invariati quando la durata è un numero intero di periodi di capitalizzazione; parametri e campi della risposta restano invariati.

  9. v1.3.0 Modificato

    Il tasso dell'interesse composto è annuo, non per periodo

    L’API e la sua documentazione trattavano rate come tasso per periodo di capitalizzazione, mentre il calcolatore del sito e la relativa guida usavano un tasso annuo. GET /calculators/compound-interest applicava rate per intero a ogni periodo di capitalizzazione, quindi il 5% con capitalizzazione mensile cresceva come un 5% al mese. rate è ora il tasso nominale annuo: ogni periodo matura rate diviso per il numero di periodi all'anno (il 5% con capitalizzazione mensile matura il 5/12% al mese), come ora indica meta.note. Parametri e campi della risposta non cambiano; i risultati cambiano con tutte le frequenze di capitalizzazione tranne annually. Inoltre, quando contribution_frequency e compound_frequency valgono entrambe daily o entrambe weekly, i depositi non vengono più ritardati né persi a causa degli arrotondamenti in virgola mobile, quindi total_contributions può includere un deposito in più con duration_unit=months. Cambia così il significato di un parametro esistente: per riprodurre i risultati precedenti, moltiplica il tuo rate per il numero di periodi di capitalizzazione all'anno.

  10. v1.2.0 Aggiunto

    Indice Fear & Greed (0–100) accanto allo score grezzo

    Ogni lettura Fear & Greed ora include index accanto a score: l'indice Fear & Greed da 0 a 100 esattamente come mostrato su Bitculator (0–19 paura estrema, 20–39 paura, 40–59 neutrale, 60–79 avidità, 80–100 avidità estrema) — usalo per la visualizzazione. score è invariato: il composito grezzo da −100…+100 da cui deriva index. Vale per GET /sentiment/fear-greed (la lettura principale e ogni voce di intervals), fear_greed su GET /global e meta.fear_greed su GET /global/heatmap. Solo un'aggiunta; nessun campo esistente è cambiato.

  11. v1.1.2 Corretto

    La valutazione completamente diluita sconosciuta è null

    GET /coins/{slug} restituiva fully_diluted_valuation come 0 per le monete senza offerta massima (ad esempio Solana ed Ethereum, la cui offerta non ha un tetto). Ora ripiega sull'offerta totale ed è null quando nessuna delle due è nota, come già documentato dal contratto OpenAPI.

  12. v1.1.2 Corretto

    Fear & Greed senza dati sufficienti è null

    Una lettura Fear & Greed che non aveva ancora uno score veniva restituita come score: 0. Ora è null su GET /sentiment/fear-greed, così come fear_greed su GET /global e meta.fear_greed su GET /global/heatmap.

  13. v1.1.1 Corretto

    Valori null, ordinamento e movers corretti

    marketcap e dominance possono essere null per una coin senza offerta circolante, e lo score e il breakdown del trust score sono null per un exchange non classificato. POST /alarms restituisce 422 quando la coin non ha un valore attuale per la metrica scelta. /coins/recently-added e /wallets/timeline ora rispettano sort. /coins/gainers e /coins/losers sono ordinati in base alla variazione stessa (in precedenza, di fatto, per capitalizzazione di mercato), e i losers escludono le coin a 0.00. Gli ordinamenti crescenti restituiscono i valori null per ultimi. /prices risolve un simbolo ambiguo nella coin attiva con il rank più alto. Il contratto OpenAPI segnala i campi di mercato che possono essere null e tipizza il volume 24h come numero.

  14. v1.1.1 Aggiunto

    Gli approfondimenti dichiarano di essere scritti dall'IA

    Ogni approfondimento su GET /insights, GET /insights/{id} e GET /coins/{slug}/insights ora riporta generated_by: "ai" e il model che l'ha scritto. Solo un'aggiunta; nessun campo esistente è cambiato.

  15. v1.1.1 Modificato

    Huobi ora è HTX; CoinEx inattivo

    L'exchange Huobi è stato rinominato HTX e il suo slug è passato da huobi a htx; l'API non segue i reindirizzamenti di slug, quindi /exchanges/huobi ora restituisce 404. CoinEx è stato impostato come inattivo e non viene più restituito.

  16. v1.1.1 Corretto

    Le variazioni 24h e 7d non aggiornate sono null

    change_24h e change_7d ora sono null quando le variazioni di una coin non vengono ricalcolate da 15 minuti, invece di mostrare un movimento superato. Dal 18 settembre lo stesso vale per change_rank_24h e change_rank_7d.

  17. v1.1.0 Modificato

    Contratto OpenAPI arricchito

    Il contratto pubblicato ora include esempi a livello di media type, un unico schema di errore condiviso referenziato da ogni risposta 4xx/5xx, le risposte 401, 429 e 500 che ogni chiamata con chiave può restituire, gli header X-RateLimit-* e X-Quota-* su ogni risposta riuscita, la consegna alarm.triggered come callback su POST /webhooks, e i metadati di contatto, licenza e termini. Nessuna richiesta o risposta è cambiata - solo il modo in cui viene descritta.

  18. v1.1.0 Aggiunto

    Discovery leggibile dalle macchine

    Novità: /apis.json, /.well-known/api-catalog (RFC 9727), /.well-known/security.txt (RFC 9116), un bundle JSON Schema delle forme di risposta condivise, una pagina di stato pubblica con il suo gemello JSON, questo changelog e la politica di versionamento e deprecazione.

  19. v1.0.1 Modificato

    La quota della Data API non è più condivisa con MCP

    Le chiamate agli strumenti MCP hanno smesso di contare sulla quota mensile e sul limite di burst del piano Data API; da quel giorno il server MCP ha chiavi e piani propri. tokens[].kind su GET /usage ora può valere mcp, e il messaggio del 429 per quota superata recita «Your Data API plan has reached its monthly request limit.» (prima menzionava il piano embed).

  20. v1.0.1 Modificato

    Email verificata obbligatoria per creare chiavi

    Creare o ruotare una chiave Data API nella console per sviluppatori ora richiede un indirizzo email verificato; gli account senza email, come gli accessi con wallet, sono esentati. La creazione di chiavi è limitata a 10 al minuto. Le chiavi esistenti continuano a funzionare.

  21. v1.0.1 Corretto

    I volumi dei ticker mantengono i centesimi

    volume_usd su GET /tickers, GET /pairs, GET /pairs/{id}, GET /coins/{slug}/markets e GET /exchanges/{slug}/tickers veniva memorizzato come numero intero, quindi i centesimi andavano persi e i mercati sotto $0,50 mostravano 0. Ora i volumi mantengono due decimali, e i totali calcolati a partire da essi non ereditano più l'arrotondamento.

  22. v1.0.1 Modificato

    La variazione della sparkline è una percentuale per ogni periodo

    change su GET /coins/{slug}/sparkline e GET /exchanges/{slug}/sparkline era una frazione da 30d a 365d (0,05 significava +5%) ma una percentuale per 24h e 7d. Ora è una percentuale per ogni periodo (1.25 significa +1,25%), quindi i valori dei periodi più lunghi sono 100 volte più grandi di prima, e i movimenti sotto lo 0,5% non vengono più arrotondati a 0.

  23. v1.0.1 Corretto

    Minimo e massimo della sparkline corrispondono alla serie

    Su entrambi gli endpoint sparkline, low e high provenivano da un riepilogo calcolato su una finestra diversa e potevano contraddire points - ad esempio un low superiore ad alcuni prezzi della serie. Ora sono i veri estremi del periodo da cui è campionato points.

  24. v1.0.1 Modificato

    I wallet vaporware sono elencati

    GET /wallets, /wallets/timeline, /wallets/compare, /wallets/{slug} e /wallets/{slug}/assets ora restituiscono anche i wallet con lo stato vaporware, quindi status può assumere quel valore.

  25. v1.0.1 Corretto

    Testo delle fonti degli approfondimenti decodificato

    title ed excerpt delle fonti all'interno degli approfondimenti non contengono più entità HTML grezze come í.

  26. v1.0.1 Corretto

    L'updated_at di un articolo mostra l'ultima modifica

    Per un articolo mai modificato, updated_at su GET /articles e GET /articles/{slug} mostrava l'ultima volta in cui il record era cambiato per qualsiasi motivo, come un conteggio delle visualizzazioni o un voto. Ora mostra l'ultima modifica editoriale, ripiegando sulla data di pubblicazione, e POST /articles/{slug}/feedback non lo modifica più.

  27. v1.0.1 Aggiunto

    Sentiment degli approfondimenti

    Gli approfondimenti ora includono sentiment: bullish, bearish, sheepish oppure null se non classificati.

  28. v1.0.1 Aggiunto

    Otto SDK ufficiali

    Client TypeScript, Python, PHP, Go, Rust, Java, C# e C++, ciascuno copre ogni endpoint sullo stesso core di trasporto: autenticazione Bearer, unwrapping dell'envelope, cattura di X-Quota-*, retry su 429 e 5xx, errori tipizzati e paginazione.

  29. v1.0.1 Modificato

    Endpoint vincolati al piano

    Gli endpoint ora possono richiedere un piano. Al momento dell'introduzione, GET /sentiment/indicators richiedeva Pro, e GET /sentiment/bull-bear, GET /sentiment/altseason, GET /global, GET /global/heatmap e GET /global/history/{metric} richiedevano Starter. Una chiamata fuori dal tuo piano restituisce 403 plan_required con details.required_plan che indica il piano che la sblocca, e non consuma quota.

  30. v1.0.1 Modificato

    Endpoint delle liquidazioni disattivati

    I sei endpoint /liquidations sono stati disattivati su tutti i piani: restituiscono 503 endpoint_unavailable («This endpoint is temporarily unavailable.») e non consumano quota.

  31. v1.0.1 Modificato

    Quota Pro ridotta a 250.000

    La quota mensile del piano Pro è passata da 500.000 a 250.000 richieste.

  32. v1.0.1 Modificato

    Un endpoint per indicatore

    Il generico GET /coins/{slug}/indicators/{family} è diventato 13 endpoint documentati separatamente agli stessi percorsi: rsi, stoch-rsi, sma, cci, mfi, williams-r, price-volatility, volume-volatility, macd, obv, adx, vwap e cmf. Le chiamate esistenti restano invariate; un nome di indicatore sconosciuto ora riceve un semplice 404 senza l'elenco dei nomi validi.

  33. v1.0.1 Modificato

    Piani e quota propri per la Data API

    Al lancio, le chiamate alla Data API e le richieste dei widget embed attingevano a un unico pool mensile legato al piano embed. La Data API ora ha piani Free, Starter e Pro propri, un abbonamento e una quota mensile propri, con un proprio periodo di fatturazione: il mese di calendario in UTC su Free, ancorato al giorno di rinnovo sui piani a pagamento. GET /ping e GET /usage riportano il piano Data API, e /usage conta solo le chiamate alla Data API. I limiti sono rimasti invariati con la separazione.

  34. v1.0.1 Modificato

    Gli URL della documentazione sono cambiati

    Il riferimento è passato da /{locale}/documentation a /{locale}/documentation/api/v1, e la collection Postman e lo YAML OpenAPI da /documentation.postman e /documentation.openapi a /documentation/api/v1.postman e /documentation/api/v1.openapi. I vecchi percorsi sono stati rimossi senza reindirizzamenti; /api/v1/openapi.json è invariato.

  35. v1.0.0 Aggiunto

    Data API v1

    Lancio: 73 operazioni in 15 gruppi - coin, prezzi, mercati, exchange, wallet, global, sentiment, indicatori, liquidazioni, conversione, calcolatori, editoriale, allarmi, webhook e meta. Chiavi Bearer con l'abilità data-api, l'envelope { data, meta }, precisione a stringhe decimali, header X-Quota-* e webhook firmati. Le chiamate alla Data API e le richieste dei widget embed condividevano un'unica quota mensile sotto il piano embed, e le finestre più lunghe degli indicatori richiedevano Starter.

Resta aggiornato

Le deprecazioni vengono annunciate qui e via email a ogni titolare di chiave almeno sei mesi prima della rimozione - vedi la politica di deprecazione. L'indice leggibile dalle macchine su /apis.json riporta la data della voce più recente come marcatura modified.