/api/sd/basis/history
GETSebagianFRESH

Riwayat basis (per jam)

Deret basis per jam untuk tiap bursa dan sebagai agregat lintas bursa (median, rata-rata, berbobot OI) untuk satu koin.

GET/api/sd/basis/history
Cakupan sebagian. 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.

Permintaan

Parameter kueri

NamaTipeWajibDefaultNilai yang diizinkanDeskripsi
coinstringWajib——Simbol koin, tidak peka huruf besar/kecil (misalnya `BTC`). Nilai yang tidak diisi atau salah format mengembalikan 400. Contoh: BTC
kindstringOpsionalperpperp, spot_perp`perp`: harga mark terhadap harga indeks bursa yang sama. `spot_perp`: harga perpetual terhadap harga spot bursa yang sama.
rangestringOpsional24h24h, 7d, 30dRentang waktu ke belakang, satu titik per jam.
exchangestringOpsional——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.

KolomTipeSatuanDeskripsi
successboolean—true jika permintaan berhasil. Jika gagal, body-nya adalah `{ success: false, code, error, request_id }`.
schemastring—ID skema respons ini. ID hanya berubah jika kolom yang sudah ada berubah makna atau tipe.
nownumbermsWaktu server saat respons disusun.
coinstring—Simbol koin (huruf besar).
kindstring—`perp` atau `spot_perp`.
rangestring—Rentang waktu ke belakang yang diterapkan.
intervalstring—Jarak antartitik deret.
exchangestring|null—ID bursa (huruf kecil).
aggregatearray—Agregat lintas bursa untuk bagian ini.
aggregate[]object—Agregat lintas bursa untuk bagian ini.
aggregate[].tnumbermsAwal bucket waktu.
aggregate[].median_pctnumber%Median basis atas satu kontrak utama per bursa.
aggregate[].mean_pctnumber%Rata-rata sederhana atas himpunan yang sama dengan median.
aggregate[].oi_weighted_pctnumber%Basis berbobot open interest; baris tanpa bobot OI tidak dimasukkan.
aggregate[].n_exchangesnumber—Bursa dalam agregat.
seriesarray—Satu deret per bursa.
series[]object—Satu deret per bursa.
series[].exchangestring—ID bursa (huruf kecil).
series[].symbolstring—Simbol kontrak dalam bentuk penyimpanan CoinBoss.
series[].primaryboolean—True untuk kontrak yang mewakili bursanya dalam median dan rata-rata.
series[].in_aggregateboolean—True jika baris lolos aturan penyertaan.
series[].pointsarray—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.
historyobject—Seberapa banyak dari rentang yang diminta yang tersedia.
history.requested_fromnumbermsAwal rentang yang diminta.
history.available_fromnumbermsJam pertama yang tersimpan.
history.available_tonumbermsJam terakhir yang tersimpan.
history.n_hoursnumber—Jumlah jam yang tersedia dalam rentang.
history.expected_hoursnumber—Jumlah jam yang dimuat rentang tersebut jika lengkap.
history.completeboolean—True jika setiap jam dalam rentang yang diminta tersimpan.
coverageobject—Apa yang termasuk dan tidak termasuk dalam angka-angka ini. Bandingkan ini terlebih dahulu sebelum membandingkan total dengan sumber lain.
coverage.included_exchangesarray—Sumber yang data segarnya disertakan.
coverage.included_exchanges[]string—Sumber yang data segarnya disertakan.
coverage.unavailablearray—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[].exchangestring—ID bursa (huruf kecil).
coverage.unavailable[].reasonstring—Kode alasan yang dapat dibaca mesin.
coverage.unavailable[].detailstring—Penjelasan alasan yang dapat dibaca manusia.
coverage.stale_excludedarray—Baris yang tidak dimasukkan karena pembaruan terakhirnya berada di luar jendela kesegaran. kosong pada sampel yang dipakai untuk menghasilkan tabel ini
methodobject—Pernyataan teks biasa tentang rumus yang dipakai untuk respons ini, satu entri per kolom.
method.series.pointsstring—Catatan rumus untuk `series.points`, teks biasa.
method.aggregate.median_pctstring—Catatan rumus untuk `aggregate.median_pct`, teks biasa.
method.aggregate.oi_weighted_pctstring—Catatan rumus untuk `aggregate.oi_weighted_pct`, teks biasa.
method.intervalstring—Catatan rumus untuk `interval`, teks biasa.
metaobject—Silsilah data dan kesegaran respons ini.
meta.schemastring—ID skema respons ini. ID hanya berubah jika kolom yang sudah ada berubah makna atau tipe.
meta.sourcearray—Endpoint publik hulu tempat data dikumpulkan.
meta.source[]object—Endpoint publik hulu tempat data dikumpulkan.
meta.source[].exchangestring—ID bursa (huruf kecil).
meta.source[].endpointstring—Endpoint publik sumber yang dibaca kolektor (ditampilkan sebagai silsilah data; klien tidak pernah memanggilnya).
meta.observed_atnull—Stempel waktu yang diberikan sumber untuk data tersebut.
meta.received_atnumbermsWaktu kolektor CoinBoss menerima data.
meta.fetched_atnumbermsWaktu respons ini disusun.
meta.windowstring—Jendela waktu yang dicakup angka-angka ini.
meta.qualitystring—FRESH, PARTIAL, STALE, BROKEN, atau UNAVAILABLE, dinilai dari stempel waktu data dan cakupan.
meta.is_staleboolean—True jika data lebih lama dari jendela kesegarannya.
meta.cache_ttl_snumbersMasa hidup cache respons ini.
meta.fallbackstring—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": [
      • { … 5 },
      • { … 5 }
      ],
    • "series": [
      • { … 5 },
      • { … 5 }
      ],
    • "history": {
      • "requested_from": 1794452400000,
      • "available_from": 1794452400000,
      • "available_to": 1794538800000,
      • "n_hours": 25,
      • "expected_hours": 24,
      • "complete": true
      },
    • "coverage": {
      • "included_exchanges": [ … 8 ],
      • "unavailable": [ … 2 ],
      • "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": [ … 2 ],
      • "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.

ParameterHTTPLatensiHasil
coin=ETH&kind=spot_perp20041 msLolos FRESH
coin=BTC&exchange=binance20032 msLolos FRESH
coin=BTC&range=1y4001 msLolos 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

SebagianDiperiksa 2026-11-13 04:02:46 UTCHTTP 2001 msSkema sesuaiTitik data terbaru berusia 63m

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 →

KodeHTTPArtiTindakan
INVALID_PARAM400Parameter wajib tidak ada atau suatu nilai tidak diterima. `param` menyebutkan nama parameternya jika diketahui.Jangan mengulang tanpa perubahan; perbaiki permintaannya.
UNAUTHORIZED401Header `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.
FORBIDDEN403Rute ini bukan bagian dari API publik (internal atau khusus akun).Jangan mengulang.
NOT_FOUND404Rute tidak dikenal, atau koin / bursa / dana yang diminta tidak ada.Jangan mengulang; periksa path dan pengenal terhadap katalog.
RATE_LIMITED429Jumlah permintaan melebihi batas per menit. `Retry-After` memberikan jumlah detik untuk menunggu.Tunggu selama `Retry-After`, lalu ulangi dengan backoff.
INTERNAL500Error 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_FAILED503Sumber 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.
UNAVAILABLE501 / 503Dataset 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_FAILED200Beberapa endpoint lama menjawab HTTP 200 dengan `success: false`. Selalu periksa `success`, bukan hanya status HTTP.Bergantung pada pesannya; perlakukan sebagai permintaan yang gagal.

Coba

GET/api/sd/basis/historySebagian
Parameter

string — 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.

URL permintaanhttps://www.coinboss.com/api/sd/basis/history?coin=BTC
Pilih endpoint lalu tekan “Kirim permintaan”. Respons, header, dan waktu tempuhnya akan muncul di sini.