Riwayat basis (per jam)
Deret basis per jam untuk tiap bursa dan sebagai agregat lintas bursa (median, rata-rata, berbobot OI) untuk satu koin.
/api/sd/basis/historyPermintaan
Parameter kueri
| Nama | Tipe | Wajib | Default | Nilai yang diizinkan | Deskripsi |
|---|---|---|---|---|---|
| coin | string | Wajib | — | — | Simbol koin, tidak peka huruf besar/kecil (misalnya `BTC`). Nilai yang tidak diisi atau salah format mengembalikan 400. Contoh: BTC |
| kind | string | Opsional | perp | perp, spot_perp | `perp`: harga mark terhadap harga indeks bursa yang sama. `spot_perp`: harga perpetual terhadap harga spot bursa yang sama. |
| range | string | Opsional | 24h | 24h, 7d, 30d | Rentang waktu ke belakang, satu titik per jam. |
| exchange | string | Opsional | — | — | Satu ID bursa. Default: semua bursa. ID yang tidak dikenal mengembalikan 400. |
Contoh permintaan
curl -s "https://www.coinboss.com/api/sd/basis/history?coin=BTC"Kolom respons
Tabel kolom dihasilkan dari respons nyata, sehingga memuat persis apa yang dikembalikan endpoint. Path memakai a[] untuk item array dan {*} untuk objek yang kuncinya berupa nama dinamis seperti koin atau bursa.
| Kolom | Tipe | Satuan | Deskripsi |
|---|---|---|---|
| success | boolean | — | true jika permintaan berhasil. Jika gagal, body-nya adalah `{ success: false, code, error, request_id }`. |
| schema | string | — | ID skema respons ini. ID hanya berubah jika kolom yang sudah ada berubah makna atau tipe. |
| now | number | ms | Waktu server saat respons disusun. |
| coin | string | — | Simbol koin (huruf besar). |
| kind | string | — | `perp` atau `spot_perp`. |
| range | string | — | Rentang waktu ke belakang yang diterapkan. |
| interval | string | — | Jarak antartitik deret. |
| exchange | string|null | — | ID bursa (huruf kecil). |
| aggregate | array | — | Agregat lintas bursa untuk bagian ini. |
| aggregate[] | object | — | Agregat lintas bursa untuk bagian ini. |
| aggregate[].t | number | ms | Awal bucket waktu. |
| aggregate[].median_pct | number | % | Median basis atas satu kontrak utama per bursa. |
| aggregate[].mean_pct | number | % | Rata-rata sederhana atas himpunan yang sama dengan median. |
| aggregate[].oi_weighted_pct | number | % | Basis berbobot open interest; baris tanpa bobot OI tidak dimasukkan. |
| aggregate[].n_exchanges | number | — | Bursa dalam agregat. |
| series | array | — | Satu deret per bursa. |
| series[] | object | — | Satu deret per bursa. |
| series[].exchange | string | — | ID bursa (huruf kecil). |
| series[].symbol | string | — | Simbol kontrak dalam bentuk penyimpanan CoinBoss. |
| series[].primary | boolean | — | True untuk kontrak yang mewakili bursanya dalam median dan rata-rata. |
| series[].in_aggregate | boolean | — | True jika baris lolos aturan penyertaan. |
| series[].points | array | — | Pasangan `[hour start in ms, basis in %]`, yang terlama lebih dulu. |
| series[].points[] | array | — | Pasangan `[hour start in ms, basis in %]`, yang terlama lebih dulu. |
| series[].points[][] | number | — | Pasangan `[hour start in ms, basis in %]`, yang terlama lebih dulu. |
| history | object | — | Seberapa banyak dari rentang yang diminta yang tersedia. |
| history.requested_from | number | ms | Awal rentang yang diminta. |
| history.available_from | number | ms | Jam pertama yang tersimpan. |
| history.available_to | number | ms | Jam terakhir yang tersimpan. |
| history.n_hours | number | — | Jumlah jam yang tersedia dalam rentang. |
| history.expected_hours | number | — | Jumlah jam yang dimuat rentang tersebut jika lengkap. |
| history.complete | boolean | — | True jika setiap jam dalam rentang yang diminta tersimpan. |
| coverage | object | — | Apa yang termasuk dan tidak termasuk dalam angka-angka ini. Bandingkan ini terlebih dahulu sebelum membandingkan total dengan sumber lain. |
| coverage.included_exchanges | array | — | Sumber yang data segarnya disertakan. |
| coverage.included_exchanges[] | string | — | Sumber yang data segarnya disertakan. |
| coverage.unavailable | array | — | Sumber yang tidak dapat disertakan, masing-masing dengan alasannya. Sumber tersebut tidak pernah dihitung sebagai 0. |
| coverage.unavailable[] | object | — | Sumber yang tidak dapat disertakan, masing-masing dengan alasannya. Sumber tersebut tidak pernah dihitung sebagai 0. |
| coverage.unavailable[].exchange | string | — | ID bursa (huruf kecil). |
| coverage.unavailable[].reason | string | — | Kode alasan yang dapat dibaca mesin. |
| coverage.unavailable[].detail | string | — | Penjelasan alasan yang dapat dibaca manusia. |
| coverage.stale_excluded | array | — | Baris yang tidak dimasukkan karena pembaruan terakhirnya berada di luar jendela kesegaran. kosong pada sampel yang dipakai untuk menghasilkan tabel ini |
| method | object | — | Pernyataan teks biasa tentang rumus yang dipakai untuk respons ini, satu entri per kolom. |
| method.series.points | string | — | Catatan rumus untuk `series.points`, teks biasa. |
| method.aggregate.median_pct | string | — | Catatan rumus untuk `aggregate.median_pct`, teks biasa. |
| method.aggregate.oi_weighted_pct | string | — | Catatan rumus untuk `aggregate.oi_weighted_pct`, teks biasa. |
| method.interval | string | — | Catatan rumus untuk `interval`, teks biasa. |
| meta | object | — | Silsilah data dan kesegaran respons ini. |
| meta.schema | string | — | ID skema respons ini. ID hanya berubah jika kolom yang sudah ada berubah makna atau tipe. |
| meta.source | array | — | Endpoint publik hulu tempat data dikumpulkan. |
| meta.source[] | object | — | Endpoint publik hulu tempat data dikumpulkan. |
| meta.source[].exchange | string | — | ID bursa (huruf kecil). |
| meta.source[].endpoint | string | — | Endpoint publik sumber yang dibaca kolektor (ditampilkan sebagai silsilah data; klien tidak pernah memanggilnya). |
| meta.observed_at | null | — | Stempel waktu yang diberikan sumber untuk data tersebut. |
| meta.received_at | number | ms | Waktu kolektor CoinBoss menerima data. |
| meta.fetched_at | number | ms | Waktu respons ini disusun. |
| meta.window | string | — | Jendela waktu yang dicakup angka-angka ini. |
| meta.quality | string | — | FRESH, PARTIAL, STALE, BROKEN, atau UNAVAILABLE, dinilai dari stempel waktu data dan cakupan. |
| meta.is_stale | boolean | — | True jika data lebih lama dari jendela kesegarannya. |
| meta.cache_ttl_s | number | s | Masa hidup cache respons ini. |
| meta.fallback | string | — | Apa yang dikembalikan endpoint ketika kolektor atau sumber gagal. |
Dihasilkan 2026-11-11 23:00 UTC dari 3 respons nyata.
Contoh respons
/api/sd/basis/history?coin=BTC · Respons nyata yang direkam 2026-11-13 04:02:46 UTC. Array dan map yang panjang dipersingkat untuk tampilan: series berisi 20 item; aggregate berisi 25 item; meta.source berisi 20 item; series[].points berisi 25 item; coverage.included_exchanges berisi 20 item.
- "success"true
- "schema""coinboss.sd.basis/1"
- "now"1794542288014
- "coin""BTC"
- "kind""perp"
- "range""24h"
- "interval""1h"
- "exchange"null
- "aggregate"
- "series"
- "history"
- "requested_from"1794452400000
- "available_from"1794452400000
- "available_to"1794538800000
- "n_hours"25
- "expected_hours"24
- "complete"true
- "coverage"
- "included_exchanges"
- "unavailable"
- "stale_excluded"
- "method"
- "series.points""[hour_ts, (mark_price - index_price) / index_price * 100] from the first collector round after each full hour; hours where the two timestamps were more than 60 …"
- "aggregate.median_pct""median over one primary contract per exchange in that hour; excluded: |value| > 10, contracts with no trade in 24 h, exchanges whose index is not a comparable i…"
- "aggregate.oi_weighted_pct""sum(value * oi_usd) / sum(oi_usd) over all included contracts that have an OI snapshot for the same hour (oi_history / sd_contract_hourly, single-sided); null w…"
- "interval""fixed 1 h buckets, no interpolation; missing hours are simply absent"
- "meta"
- "schema""coinboss.sd.basis/1"
- "source"
- "observed_at"null
- "received_at"1794538827406
- "fetched_at"1794542288014
- "window""24h"
- "quality""FRESH"
- "is_stale"false
- "cache_ttl_s"300
- "fallback""history is served as stored; hours without a snapshot are absent, never interpolated"
Sampel terverifikasi
Selain contoh di atas, probe memanggil endpoint ini dengan parameter berikut dan memeriksa skemanya setiap kali.
| Parameter | HTTP | Latensi | Hasil |
|---|---|---|---|
| coin=ETH&kind=spot_perp | 200 | 41 ms | Lolos FRESH |
| coin=BTC&exchange=binance | 200 | 32 ms | Lolos FRESH |
| coin=BTC&range=1y | 400 | 1 ms | Lolos mengembalikan error yang diharapkan |
Diperiksa 2026-11-13 03:58:08 UTC
Detail
- Autentikasi
- Tidak ada. Endpoint publik.
- Batas permintaan
- 1200 permintaan per menit per IP
- Cache server
- 5m
- Mikro-cache edge
- 10s
- Frekuensi pembaruan
- Putaran kolektor setiap 60 detik; sebuah baris dianggap segar selama 180 detik. Snapshot per jam mengisi riwayat.
- Jendela
- 24h / 7d / 30d, bucket per jam.
- Sumber data
- Harga mark, harga indeks, dan harga terakhir yang dipublikasikan 21 bursa derivatif, ditambah harga spot bursa yang sama, dikumpulkan dan disimpan oleh CoinBoss (sd_px_latest, sd_px_hourly).
- Cakupan bursa
- 21 bursa. Bursa yang tidak memublikasikan harga indeks atau harga mark tercantum di `coverage.unavailable`; baris yang kedua sisi harganya terpaut lebih dari 60 detik mengembalikan `null`. Baris yang tidak dimasukkan ke agregat tercantum di `coverage.excluded_from_aggregate` beserta alasannya.
- Paginasi
- Tanpa paginasi; `range` membatasi jumlah titik.
- Pengurutan
- Waktu, menaik.
- Satuan
- All basis values in percent. Prices in the quote currency of the contract (USDT / USDC / USD). `oi_usd` single-sided.
- Metode
- Each point is the snapshot taken in the first ten minutes of the hour. The OI weight of a historical hour is the open interest recorded in that hour; without it `oi_weighted_pct` is `null`.
- Stempel waktu
- Milidetik epoch Unix (UTC) kecuali deskripsi kolom menyatakan lain
- Format respons
- json
- Stabilitas
- Stabil
- Tersedia sejak
- 2026-11-11
Status langsung
Pengumpulan dimulai pada 2026-11-11. Respons melaporkan `history.available_from`, `n_hours` terhadap `expected_hours`, dan `complete`; jam tanpa data tidak dicantumkan, bukan diinterpolasi.
Ketersediaan, 30 hari terakhir
100% dari 408 pemeriksaan lolos
Error
Panggilan yang gagal memiliki satu bentuk yang sama di semua endpoint. Daftar lengkapnya ada di halaman error. Error dan batas permintaan →
| Kode | HTTP | Arti | Tindakan |
|---|---|---|---|
| INVALID_PARAM | 400 | Parameter wajib tidak ada atau suatu nilai tidak diterima. `param` menyebutkan nama parameternya jika diketahui. | Jangan mengulang tanpa perubahan; perbaiki permintaannya. |
| UNAUTHORIZED | 401 | Header `CB-API-KEY` dikirim tetapi kuncinya tidak dikenal atau sudah dicabut. Data publik tidak memerlukan kunci — hapus header tersebut atau gunakan kunci yang valid. | Jangan mengulang tanpa perubahan. |
| FORBIDDEN | 403 | Rute ini bukan bagian dari API publik (internal atau khusus akun). | Jangan mengulang. |
| NOT_FOUND | 404 | Rute tidak dikenal, atau koin / bursa / dana yang diminta tidak ada. | Jangan mengulang; periksa path dan pengenal terhadap katalog. |
| RATE_LIMITED | 429 | Jumlah permintaan melebihi batas per menit. `Retry-After` memberikan jumlah detik untuk menunggu. | Tunggu selama `Retry-After`, lalu ulangi dengan backoff. |
| INTERNAL | 500 | Error server yang tidak terduga. Pesannya sengaja dibuat generik; sertakan `request_id` saat melaporkannya. | Ulangi sekali setelah beberapa detik; laporkan beserta ID permintaan jika masih terjadi. |
| UPSTREAM_FAILED | 503 | Sumber data di balik endpoint ini tidak menjawab tepat waktu. Tidak ada angka usang atau angka pengganti yang dikembalikan sebagai gantinya. | Ulangi dengan backoff; periksa halaman status. |
| UNAVAILABLE | 501 / 503 | Dataset untuk sementara belum siap (cache sedang diisi) atau endpoint belum memiliki sumber publik yang sah. | Ulangi nanti; katalog menandai endpoint yang memang tidak tersedia secara desain. |
| REQUEST_FAILED | 200 | Beberapa endpoint lama menjawab HTTP 200 dengan `success: false`. Selalu periksa `success`, bukan hanya status HTTP. | Bergantung pada pesannya; perlakukan sebagai permintaan yang gagal. |
Coba
/api/sd/basis/historySebagianstring — Coin symbol, case-insensitive (for example `BTC`). Missing or malformed values return 400.
string · default perp — `perp`: mark price against the index price of the same exchange. `spot_perp`: perpetual price against the spot price of the same exchange.
string · default 24h — Look-back range, one point per hour.
string — One exchange id. Default: all exchanges. An unknown id returns 400.
https://www.coinboss.com/api/sd/basis/history?coin=BTCLainnya di kategori ini
- Basis futures (semua bursa) /api/sd/basis
- Riwayat basis (per jam) /api/sd/basis/history
- Peringkat koin berdasarkan basis /api/sd/basis/rank
- Daftar basis futures-spot /api/derivatives/basis
- Selisih harga BTC harian antara Coinbase dan Kraken /api/p3/cb-kr-spread
- Indeks premium Bitcoin Coinbase /api/p3/coinbase-premium
- Daftar indeks premium perpetual /api/p3/premium-index
- Riwayat indeks premium untuk satu koin /api/p3/premium-index/history
- Candlestick indeks premium /api/p3/premium-index/klines
- Premium OTC USDT terhadap kurs valas fiat /api/usdt-premium
- Daftar lengkap basis futures-spot /api/basis/list