Bitculator

Log perubahan

Log perubahan API

Setiap perubahan pada Data API dan kontraknya, yang terbaru di urutan teratas. Nomor versi mengikuti kebijakan pemversian dan penghentian.

  1. v1.3.3 Diubah

    Pembuatan dan uji webhook dibatasi 5 permintaan per menit

    POST /webhooks dan POST /webhooks/{id}/test kini berbagi batas 5 permintaan per menit per akun, di samping batas burst paket. Permintaan yang melebihinya mendapat 429 rate_limited dengan Retry-After. Event uji kini dikirim sekali, tanpa percobaan ulang; pengiriman lainnya tetap dicoba hingga 3 kali, dengan backoff di antara percobaan. Ini adalah batas anti-penyalahgunaan yang tidak mengubah kuota bulanan maupun batas burst setiap paket. Kebijakan pemversian dan penghentian diubah pada hari yang sama agar batas semacam ini dapat langsung berlaku; sebelumnya, penurunan rate limit apa pun yang dimiliki sebuah paket mengikuti linimasa penghentian enam bulan. Pada kedua endpoint ini, header X-RateLimit-* menunjukkan batas yang sisa permintaannya lebih sedikit di antara keduanya.

  2. v1.3.3 Diubah

    Hostname webhook diperiksa saat pengiriman, bukan saat pembuatan

    POST /webhooks tidak lagi mencari hostname dari URL di DNS. Endpoint ini tetap mengembalikan 422 jika URL tidak memakai https, memuat kredensial, atau memakai alamat IP non-publik sebagai host. Hostname yang tidak ditemukan di DNS, atau yang mengarah ke alamat non-publik, sebelumnya mendapat 422; kini diterima dengan 201 dan dihitung dalam batas 5 endpoint per akun. Setiap pengiriman ke endpoint seperti itu lalu gagal tanpa percobaan ulang, error pada GET /webhooks/{id}/deliveries menyebutkan alasannya, dan 10 pengiriman gagal berturut-turut menonaktifkan endpoint tersebut. Setelah membuat endpoint, kirim event uji dengan POST /webhooks/{id}/test lalu periksa log pengiriman untuk memastikan endpoint dapat dijangkau.

  3. v1.3.3 Diubah

    Rincian penggunaan menampilkan templat rute, bukan path

    endpoints[].endpoint pada GET /usage kini berisi templat rute, bukan path yang diminta: api/v1/coins/{slug}, bukan api/v1/coins/bitcoin. Dengan begitu, setiap endpoint memiliki satu baris, bukan satu baris per slug atau id. Permintaan yang tercatat lebih awal dalam periode penagihan saat ini tetap memakai path-nya, sehingga kedua bentuk bisa muncul sampai periode berakhir.

  4. v1.3.2 Diperbaiki

    Profil exchange dan trust score diperbaiki

    GET /exchanges/{slug} dan GET /exchanges/{slug}/trust-score telah gagal dengan 500 untuk setiap exchange sejak Data API diluncurkan. Kini keduanya merespons; parameter dan field respons tidak berubah, dan exchange tanpa peringkat mengembalikan score dan breakdown sebagai null.

  5. v1.3.2 Diubah

    Tipe dalam kontrak diperbaiki

    Kontrak OpenAPI yang diterbitkan kini menandai setiap field yang dapat bernilai null sebagai nullable dan menetapkan tipe nilai pecahan sebagai angka (misalnya invested pada GET /calculators/dca dan nilai indikator); field bersama logo dan last_updated serta field paging from/to bersifat nullable di setiap endpoint, begitu pula name dan price koin di setiap endpoint daftar koin dan endpoint harga. Kontrak ini juga menetapkan tipe series DCA sebagai array, mendokumentasikan respons GET /coins/{slug}/markets, GET /coins/losers, GET /global/history/{metric}, dan GET /sentiment/altseason, mendokumentasikan days pada GET /sentiment/altseason sebagai 1–365 (nilai 0 selalu ditolak; jangan sertakan parameter ini untuk pembacaan saat ini), serta mencantumkan kode endpoint_unavailable (503) dan http_error dalam skema error. Tidak ada permintaan atau respons yang berubah - hanya cara mendeskripsikannya.

  6. v1.3.1 Diubah

    Autentikasi gagal dibatasi per key

    Autentikasi yang gagal dulu dibatasi 30 percobaan per menit per IP, setelah itu setiap key di balik IP tersebut mendapat 429. Kini satu key boleh gagal 30 kali per menit dari satu IP dan satu IP 300 kali, key yang berhasil diautentikasi dalam sekitar 15 menit terakhir tidak diblokir oleh batas IP, dan permintaan tanpa key mengembalikan 401 tanpa dihitung. Permintaan yang diblokir mendapat 429 rate_limited dengan Retry-After.

  7. v1.3.1 Diubah

    URL non-kanonis dialihkan

    Permintaan GET dan HEAD yang path-nya memiliki garis miring di akhir, garis miring ganda, atau /index.php di awal kini mendapat 301 ke URL yang bersih alih-alih dilayani - misalnya /api/v1/coins/ ke /api/v1/coins. Metode lain tidak terpengaruh.

  8. v1.3.1 Diperbaiki

    Periode pemajemukan parsial dihitung secara tepat

    GET /calculators/compound-interest membulatkan durasi ke periode pemajemukan penuh, sehingga durasi yang berakhir di tengah periode disimulasikan terlalu panjang atau terlalu pendek: 6 bulan dengan pemajemukan annually berjalan setahun penuh (12 setoran dan bunga setahun penuh), sedangkan 5 bulan tidak menjalankan satu periode pun (tanpa setoran, tanpa bunga). Periode penuh kini berjalan seperti sebelumnya, periode parsial terakhir menghasilkan bunga secara pro rata (bunga sederhana untuk pecahannya), dan setiap setoran dalam durasi dihitung. Hasil tidak berubah bila durasi merupakan bilangan bulat periode pemajemukan; parameter dan field respons tidak berubah.

  9. v1.3.0 Diubah

    Suku bunga majemuk bersifat tahunan, bukan per periode

    API dan dokumentasinya memperlakukan rate sebagai suku bunga per periode pemajemukan, sedangkan kalkulator di situs web dan panduannya memakai suku bunga tahunan. GET /calculators/compound-interest menerapkan rate secara penuh pada setiap periode pemajemukan, sehingga 5% dengan pemajemukan bulanan tumbuh seperti 5% per bulan. rate kini adalah suku bunga nominal tahunan: setiap periode menghasilkan rate dibagi jumlah periode per tahun (5% dengan pemajemukan bulanan menghasilkan 5/12% per bulan), seperti yang kini dinyatakan meta.note. Parameter dan field respons tidak berubah; hasilnya berubah untuk setiap frekuensi pemajemukan kecuali annually. Selain itu, ketika contribution_frequency dan compound_frequency sama-sama daily atau sama-sama weekly, setoran tidak lagi tertunda atau hilang akibat pembulatan floating-point, sehingga total_contributions bisa lebih tinggi satu setoran dengan duration_unit=months. Ini mengubah makna parameter yang sudah ada: untuk mereproduksi hasil sebelumnya, kalikan rate Anda dengan jumlah periode pemajemukan per tahun.

  10. v1.2.0 Ditambahkan

    Indeks Fear & Greed (0–100) di samping score mentah

    Setiap pembacaan Fear & Greed kini memuat index di samping score: indeks Fear & Greed 0–100 persis seperti yang ditampilkan Bitculator (0–19 ketakutan ekstrem, 20–39 ketakutan, 40–59 netral, 60–79 keserakahan, 80–100 keserakahan ekstrem) — gunakan ini untuk tampilan. score tidak berubah: nilai komposit mentah −100…+100 yang menjadi dasar index. Berlaku untuk GET /sentiment/fear-greed (pembacaan utama dan setiap entri di intervals), fear_greed pada GET /global, dan meta.fear_greed pada GET /global/heatmap. Hanya penambahan; tidak ada field yang diubah.

  11. v1.1.2 Diperbaiki

    Valuasi terdilusi penuh yang tidak diketahui kini null

    GET /coins/{slug} mengembalikan fully_diluted_valuation sebagai 0 untuk koin tanpa pasokan maksimum (misalnya Solana dan Ethereum, yang pasokannya tidak dibatasi). Kini nilainya beralih ke pasokan total dan bernilai null jika keduanya tidak diketahui, sebagaimana sudah didokumentasikan kontrak OpenAPI.

  12. v1.1.2 Diperbaiki

    Fear & Greed tanpa cukup data bernilai null

    Pembacaan Fear & Greed yang belum memiliki skor dilaporkan sebagai score: 0. Kini nilainya null pada GET /sentiment/fear-greed, begitu pula fear_greed pada GET /global dan meta.fear_greed pada GET /global/heatmap.

  13. v1.1.1 Diperbaiki

    Nilai null, pengurutan, dan movers diperbaiki

    marketcap dan dominance dapat bernilai null untuk koin tanpa suplai beredar, serta score dan breakdown trust score bernilai null untuk bursa yang belum berperingkat. POST /alarms mengembalikan 422 jika koin tidak memiliki nilai saat ini untuk metrik yang dipilih. /coins/recently-added dan /wallets/timeline kini mematuhi sort. /coins/gainers dan /coins/losers diurutkan berdasarkan perubahannya sendiri (sebelumnya secara efektif berdasarkan kapitalisasi pasar), dan losers mengecualikan koin di 0.00. Pengurutan menaik menempatkan nilai null di akhir. /prices memetakan simbol ambigu ke koin aktif dengan peringkat tertinggi. Kontrak OpenAPI menandai field pasar yang dapat bernilai null dan menetapkan tipe volume 24 jam sebagai angka.

  14. v1.1.1 Ditambahkan

    Wawasan menyatakan bahwa ditulis oleh AI

    Setiap wawasan pada GET /insights, GET /insights/{id}, dan GET /coins/{slug}/insights kini memuat generated_by: "ai" dan model yang menulisnya. Hanya penambahan; tidak ada field yang diubah.

  15. v1.1.1 Diubah

    Huobi kini HTX; CoinEx nonaktif

    Exchange Huobi berganti nama menjadi HTX dan slug-nya berubah dari huobi menjadi htx; API tidak mengikuti pengalihan slug, sehingga /exchanges/huobi kini mengembalikan 404. CoinEx dinonaktifkan dan tidak lagi dikembalikan.

  16. v1.1.1 Diperbaiki

    Perubahan 24 jam dan 7 hari yang usang bernilai null

    change_24h dan change_7d kini bernilai null ketika perubahan sebuah koin belum dihitung ulang selama 15 menit, alih-alih menampilkan pergerakan yang sudah usang. Sejak 18 September, hal yang sama berlaku untuk change_rank_24h dan change_rank_7d.

  17. v1.1.0 Diubah

    Kontrak OpenAPI diperkaya

    Kontrak yang diterbitkan kini memuat contoh di level media type, satu skema error bersama yang dirujuk dari setiap respons 4xx/5xx, respons 401, 429, dan 500 yang bisa dikembalikan setiap panggilan ber-key, header X-RateLimit-* dan X-Quota-* pada setiap respons sukses, pengiriman alarm.triggered sebagai callback pada POST /webhooks, serta metadata kontak, lisensi, dan ketentuan. Tidak ada permintaan atau respons yang berubah - hanya cara mendeskripsikannya.

  18. v1.1.0 Ditambahkan

    Penemuan yang dapat dibaca mesin

    Baru: /apis.json, /.well-known/api-catalog (RFC 9727), /.well-known/security.txt (RFC 9116), bundel JSON Schema untuk bentuk respons bersama, halaman status publik dengan kembaran JSON-nya, log perubahan ini, serta kebijakan pemversian dan penghentian.

  19. v1.0.1 Diubah

    Kuota Data API tidak lagi dibagi dengan MCP

    Panggilan alat MCP tidak lagi dihitung terhadap kuota bulanan dan batas burst paket Data API; sejak hari itu server MCP memiliki key dan paketnya sendiri. tokens[].kind pada GET /usage kini bisa bernilai mcp, dan pesan 429 saat melebihi kuota berbunyi "Your Data API plan has reached its monthly request limit." (sebelumnya menyebut paket embed).

  20. v1.0.1 Diubah

    Email terverifikasi diperlukan untuk membuat key

    Membuat atau merotasi key Data API di konsol developer kini memerlukan alamat email terverifikasi; akun tanpa email, seperti akun yang masuk dengan wallet, dikecualikan. Pembuatan key dibatasi 10 per menit. Key yang sudah ada tetap berfungsi.

  21. v1.0.1 Diperbaiki

    Volume ticker mempertahankan nilai sennya

    volume_usd pada GET /tickers, GET /pairs, GET /pairs/{id}, GET /coins/{slug}/markets, dan GET /exchanges/{slug}/tickers disimpan sebagai bilangan bulat, sehingga sen hilang dan pasar di bawah $0,50 menampilkan 0. Volume kini mempertahankan dua desimal, dan total yang dibangun darinya tidak lagi mewarisi pembulatan tersebut.

  22. v1.0.1 Diubah

    Perubahan sparkline berupa persen untuk setiap periode

    change pada GET /coins/{slug}/sparkline dan GET /exchanges/{slug}/sparkline berupa pecahan untuk 30d hingga 365d (0,05 berarti +5%) tetapi berupa persen untuk 24h dan 7d. Kini nilainya berupa persen untuk setiap periode (1.25 berarti +1,25%), sehingga nilai untuk periode yang lebih panjang 100 kali lebih besar dari sebelumnya, dan pergerakan di bawah 0,5% tidak lagi dibulatkan menjadi 0.

  23. v1.0.1 Diperbaiki

    Low dan high sparkline sesuai dengan seri

    Pada kedua endpoint sparkline, low dan high berasal dari ringkasan yang dibangun atas jendela berbeda dan bisa bertentangan dengan points - misalnya low di atas harga-harga dalam seri. Kini keduanya adalah nilai ekstrem sebenarnya dari periode tempat points diambil sampelnya.

  24. v1.0.1 Diubah

    Wallet vaporware ikut dicantumkan

    GET /wallets, /wallets/timeline, /wallets/compare, /wallets/{slug}, dan /wallets/{slug}/assets kini juga mengembalikan wallet berstatus vaporware, sehingga status dapat memuat nilai tersebut.

  25. v1.0.1 Diperbaiki

    Teks sumber wawasan didekode

    title dan excerpt sumber di dalam wawasan tidak lagi memuat entitas HTML mentah seperti í.

  26. v1.0.1 Diperbaiki

    updated_at artikel menunjukkan suntingan terakhir

    Untuk artikel yang tidak pernah disunting, updated_at pada GET /articles dan GET /articles/{slug} menunjukkan waktu terakhir record berubah karena alasan apa pun, seperti jumlah tayangan atau sebuah vote. Kini nilainya menunjukkan suntingan editorial terakhir, atau tanggal terbit jika tidak ada, dan POST /articles/{slug}/feedback tidak lagi mengubahnya.

  27. v1.0.1 Ditambahkan

    Sentimen wawasan

    Wawasan kini menyertakan sentiment: bullish, bearish, sheepish, atau null jika belum diklasifikasikan.

  28. v1.0.1 Ditambahkan

    Delapan SDK resmi

    Client TypeScript, Python, PHP, Go, Rust, Java, C#, dan C++, masing-masing mencakup setiap endpoint di atas inti transport yang sama: autentikasi Bearer, pembongkaran envelope, penangkapan X-Quota-*, retry pada 429 dan 5xx, error bertipe, dan paging.

  29. v1.0.1 Diubah

    Endpoint yang dibatasi paket

    Endpoint kini dapat mensyaratkan sebuah paket. Saat diperkenalkan, GET /sentiment/indicators memerlukan Pro, sedangkan GET /sentiment/bull-bear, GET /sentiment/altseason, GET /global, GET /global/heatmap, dan GET /global/history/{metric} memerlukan Starter. Panggilan di luar paket Anda mengembalikan 403 plan_required dengan details.required_plan yang menyebutkan paket yang membukanya, dan tidak memakai kuota.

  30. v1.0.1 Diubah

    Endpoint likuidasi dinonaktifkan

    Keenam endpoint /liquidations dinonaktifkan di semua paket: endpoint tersebut mengembalikan 503 endpoint_unavailable ("This endpoint is temporarily unavailable.") dan tidak memakai kuota.

  31. v1.0.1 Diubah

    Kuota Pro diturunkan menjadi 250.000

    Kuota bulanan paket Pro turun dari 500.000 menjadi 250.000 permintaan.

  32. v1.0.1 Diubah

    Satu endpoint per indikator

    GET /coins/{slug}/indicators/{family} yang generik menjadi 13 endpoint yang didokumentasikan terpisah pada path yang sama: rsi, stoch-rsi, sma, cci, mfi, williams-r, price-volatility, volume-volatility, macd, obv, adx, vwap, dan cmf. Panggilan yang ada tidak berubah; nama indikator yang tidak dikenal kini mendapat 404 biasa tanpa daftar nama yang valid.

  33. v1.0.1 Diubah

    Paket dan kuota tersendiri untuk Data API

    Saat peluncuran, panggilan Data API dan permintaan widget embed menarik dari satu kumpulan bulanan yang terikat pada paket embed. Data API kini memiliki paket Free, Starter, dan Pro, langganan, dan kuota bulanannya sendiri, dengan periode penagihannya sendiri: bulan kalender dalam UTC pada Free, dan berpatokan pada hari perpanjangan pada paket berbayar. GET /ping dan GET /usage melaporkan paket Data API, dan /usage hanya menghitung panggilan Data API. Batas tidak berubah saat pemisahan.

  34. v1.0.1 Diubah

    URL dokumentasi dipindahkan

    Referensi dipindahkan dari /{locale}/documentation ke /{locale}/documentation/api/v1, dan koleksi Postman serta YAML OpenAPI dari /documentation.postman dan /documentation.openapi ke /documentation/api/v1.postman dan /documentation/api/v1.openapi. Path lama dihapus tanpa pengalihan; /api/v1/openapi.json tidak berubah.

  35. v1.0.0 Ditambahkan

    Data API v1

    Peluncuran: 73 operasi dalam 15 grup - koin, harga, pasar, exchange, wallet, global, sentimen, indikator, likuidasi, konversi, kalkulator, editorial, alarm, webhook, dan meta. Key Bearer dengan kemampuan data-api, envelope { data, meta }, presisi string desimal, header X-Quota-*, dan webhook yang ditandatangani. Panggilan Data API dan permintaan widget embed berbagi satu kuota bulanan di bawah paket embed, dan jendela indikator yang lebih panjang memerlukan Starter.

Tetap terinformasi

Penghentian diumumkan di sini dan lewat email ke setiap pemilik key setidaknya enam bulan sebelum penghapusan - lihat kebijakan penghentian. Indeks yang dapat dibaca mesin di /apis.json memuat tanggal entri terbaru sebagai stempel modified-nya.