/api/meta/quality
GETTersediaFRESH

Matriks kualitas data

Matriks bursa × keluarga data dengan FRESH / PARTIAL / STALE / BROKEN / UNAVAILABLE, stempel waktu sumber dan pengambilan, lag, cakupan, dan alasan untuk setiap celah.

GET/api/meta/quality

Permintaan

Parameter kueri

NamaTipeWajibDefaultNilai yang diizinkanDeskripsi
exchangestringOpsional——Kembalikan hanya bursa ini (ID huruf kecil, misalnya `binance`).
familystringOpsional——Kembalikan hanya keluarga data ini (misalnya `oi`, `funding`, `liquidation`).

Contoh permintaan

curl -s "https://www.coinboss.com/api/meta/quality"

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 (`coinboss.meta.quality/1`).
nownumbermsWaktu server saat respons disusun.
familiesarray—Keluarga data yang dinilai per bursa (ticker, open interest, funding, likuidasi, order book, opsi, dan lainnya).
families[]object—Satu keluarga: `id`, `scope`, `title`, `what`, `table`, `cadence`, dan `fresh_within_s`.
families[].idstring—Pengenal.
families[].scopestring—`exchange` untuk keluarga yang dinilai per bursa dalam `matrix`.
families[].titlestring—Judul tampilan keluarga.
families[].whatstring—Deskripsi singkat tentang data yang dicakup keluarga tersebut.
families[].tablestring—Nama dataset internal yang menjadi dasar penilaian keluarga; hanya bersifat informatif.
families[].cadencestring—Jadwal pengumpulan keluarga dalam teks biasa; null jika tidak dinyatakan.
families[].fresh_within_snumbersJendela kesegaran: data yang lebih baru dari ini dianggap segar.
exchangesarray—Bursa.
exchanges[]string—Bursa.
matrixobject—Matriks dengan kunci baris dan kolom. kunci dinamis: aster,backpack,binance,bingx,bitfinex,bitget
matrix.{*}object—Matriks dengan kunci baris dan kolom. kunci dinamis: ticker,oi,funding,funding_settle,liquidation,ls
matrix.{*}.{*}object—Matriks dengan kunci baris dan kolom.
matrix.{*}.{*}.statusstring—Status.
matrix.{*}.{*}.lag_snumber|nullsWaktu sekarang dikurangi stempel waktu data tersimpan terbaru untuk bursa (kunci pertama) dan keluarga (kunci kedua) tersebut; null jika keluarga itu tidak tersedia di sana.
matrix.{*}.{*}.source_atnumber|nullmsStempel waktu.
matrix.{*}.{*}.fetched_atnumber|nullmsWaktu CoinBoss mengambil data dari sumber.
matrix.{*}.{*}.fresh_within_snumber|nullsJendela kesegaran: data yang lebih baru dari ini dianggap segar.
matrix.{*}.{*}.coverageobject|null—Apa yang disertakan dan apa yang tidak ada.
matrix.{*}.{*}.coverage.rowsnumber—Baris hasil. bisa tidak ada
matrix.{*}.{*}.coverage.rows_freshnumber—Baris yang diperbarui dalam jendela kesegaran. bisa tidak ada
matrix.{*}.{*}.coverage.rows_usablenumber—Baris dalam jendela layak pakai. bisa tidak ada
matrix.{*}.{*}.coverage.rows_orphannumber—Baris yang kontraknya sudah tidak tercatat. bisa tidak ada
matrix.{*}.{*}.coverage.rows_invalidnumber—Baris yang ditolak validasi. bisa tidak ada
matrix.{*}.{*}.reasonstring|null—Kode alasan.
matrix.{*}.{*}.coverage.rows_no_livenessnumbercountBaris funding pada kontrak tanpa bukti perdagangan aktif (sudah delisting atau tanpa volume); tidak dihitung dalam jumlah kesegaran. bisa tidak ada
matrix.{*}.{*}.coverage.rows_unknown_intervalnumbercountBaris funding yang baru diperbarui tetapi interval penyelesaiannya tidak diketahui, sehingga tidak dapat dinormalkan ke 8 jam. bisa tidak ada
matrix.{*}.{*}.coverage.symbolsnumber—Simbol. bisa tidak ada
matrix.{*}.{*}.coverage.events_1hnumbercountOrder likuidasi yang tersimpan dari bursa tersebut dalam satu jam terakhir; ukuran order minimum berbeda antar bursa. bisa tidak ada
matrix.{*}.{*}.coverage.events_24hnumbercountOrder likuidasi yang tersimpan dari bursa tersebut dalam 24 jam terakhir; ukuran order minimum berbeda antar bursa. bisa tidak ada
matrix.{*}.{*}.viastring—Jalur pengumpulan. bisa tidak ada
matrix.{*}.{*}.coverage.booksnumbercountJumlah order book yang dilacak. bisa tidak ada
matrix.{*}.{*}.coverage.books_freshnumbercountJumlah order book yang diperbarui dalam jendela kesegaran. bisa tidak ada
matrix.{*}.{*}.coverage.books_reaching_2pctnumbercountJumlah order book yang cukup dalam untuk mencakup ±2 % di sekitar harga tengah. bisa tidak ada
matrix.{*}.{*}.coverage.contractsnumber—Baris per kontrak. bisa tidak ada
matrix.{*}.{*}.coverage.contracts_freshnumbercountJumlah kontrak yang diperbarui dalam jendela kesegaran. bisa tidak ada
matrix.{*}.{*}.coverage.with_mark_and_indexnumbercountJumlah kontrak yang memiliki harga mark sekaligus harga indeks. bisa tidak ada
matrix.{*}.{*}.coverage.delivery_contractsnumbercountJumlah kontrak berjangka (dengan tanggal jatuh tempo). bisa tidak ada
matrix.{*}.{*}.notestring—Catatan. bisa tidak ada
matrix.{*}.{*}.coverage.coinsnumber—Koin. bisa tidak ada
matrix.{*}.{*}.coverage.rows_without_oinumbercountBaris kontrak bermargin koin, bermargin USDC, atau kontrak berjangka yang tidak memuat nilai open interest dalam USD. bisa tidak ada
matrix.{*}.{*}.coverage.with_mark_ivnumbercountJumlah kontrak opsi yang memiliki volatilitas tersirat mark. bisa tidak ada
matrix.{*}.{*}.coverage.with_greeksnumbercountJumlah kontrak opsi yang memiliki greeks. bisa tidak ada
datasetsarray—Pemeriksaan kualitas dataset yang tidak bersifat per bursa (misalnya data harian ETF spot dan CME), masing-masing dengan status, jeda, cakupan, dan alasan.
datasets[]object—Satu dataset seluruh pasar yang tidak terikat pada satu bursa (opsi, ETF spot, CME, order book, basis).
datasets[].familystring—ID dataset, misalnya `etf` atau `cme`.
datasets[].idstring—Pengenal.
datasets[].titlestring—Nama tampilan dataset.
datasets[].sourcestring—Asal nilai tersebut.
datasets[].endpointstring—Endpoint publik yang menyajikan dataset tersebut.
datasets[].statusstring—Status.
datasets[].lag_snumbersUsia titik data terbaru saat respons disusun.
datasets[].source_atnumbermsStempel waktu.
datasets[].fetched_atnumbermsWaktu CoinBoss mengambil data dari sumber.
datasets[].fresh_within_snumbersJendela kesegaran: data yang lebih baru dari ini dianggap segar.
datasets[].coverageobject—Apa yang disertakan dan apa yang tidak ada.
datasets[].coverage.funds_totalnumbercountJumlah dana yang dilacak. bisa tidak ada
datasets[].coverage.funds_coverednumbercountJumlah dana dengan pengungkapan yang layak pakai. bisa tidak ada
datasets[].coverage.funds_unavailablenumbercountJumlah dana yang penerbitnya tidak memublikasikan pengungkapan yang dapat dibaca mesin. bisa tidak ada
datasets[].coverage.funds_failingnumbercountJumlah dana yang pengungkapannya tidak dapat dibaca pada putaran pengumpulan terakhir. bisa tidak ada
datasets[].coverage.as_ofstring—Tanggal pengungkapan terbaru di antara dana yang tercakup (YYYY-MM-DD). bisa tidak ada
datasets[].coverage.as_of_minstring—Tanggal pengungkapan terlama di antara dana yang tercakup (YYYY-MM-DD). bisa tidak ada
datasets[].reasonstring|null—Kode alasan.
datasets[].coverage.contractsnumber—Baris per kontrak. bisa tidak ada
datasets[].coverage.report_datestring—Tanggal laporan Commitments of Traders CFTC terbaru (YYYY-MM-DD). bisa tidak ada
datasets[].coverage.productsnumbercountJumlah produk CME yang tercakup. bisa tidak ada
datasets[].coverage.trade_datestring—Tanggal perdagangan laporan harian CME terbaru (YYYY-MM-DD). bisa tidak ada
summaryobject—Blok ringkasan. kunci dinamis: FRESH,PARTIAL,STALE,BROKEN,UNAVAILABLE
summary.{*}number—Blok ringkasan.
by_familyobject—Jumlah bursa pada setiap status, per keluarga. Kunci luar adalah ID keluarga. kunci dinamis: ticker,oi,funding,funding_settle,liquidation,ls
by_family.{*}object—Jumlah per status untuk satu keluarga, dengan status sebagai kuncinya (`FRESH`, `PARTIAL`, `STALE`, `BROKEN`, `UNAVAILABLE`). kunci dinamis: FRESH,PARTIAL,STALE,BROKEN,UNAVAILABLE
by_family.{*}.{*}numbercountJumlah bursa dengan status tersebut untuk keluarga tersebut.
alertsarray—Peringatan patroli kualitas data yang masih terbuka atau telah diselesaikan dalam 7 hari terakhir, yang terbuka lebih dahulu; difilter menurut parameter permintaan.
alerts[]object—Satu peringatan: `level`, `exchange`, `family`, `code`, `detail`, waktu dibuka / terakhir terlihat / diselesaikan, `hits`, dan `open`.
alerts[].levelstring—Level.
alerts[].exchangestring—ID bursa, huruf kecil (misalnya `binance`).
alerts[].familystring—Keluarga data yang menjadi pokok peringatan.
alerts[].codestring—Kode.
alerts[].detailstring—Detail.
alerts[].opened_atnumbermsStempel waktu.
alerts[].last_seen_atnumbermsStempel waktu.
alerts[].resolved_atnumber|nullmsStempel waktu.
alerts[].hitsnumbercountJumlah putaran patroli (satu setiap 5 menit) yang mengamati kondisi tersebut sejak peringatan dibuka.
alerts[].openboolean—Harga pembukaan periode tersebut.
monitorobject—Kesehatan pemantauan itu sendiri: waktu dan usia putaran patroli terakhir, `patrol_ok`, dan usia heartbeat kolektor.
monitor.patrol_last_run_atnumbermsStempel waktu.
monitor.patrol_age_snumbersJumlah detik sejak event tersebut.
monitor.patrol_okboolean—true jika patroli berjalan dalam 15 menit terakhir; jika false, daftar `alerts` mungkin sudah tidak mutakhir sementara matriks tetap langsung.
monitor.collector_heartbeat_age_snumbersJumlah detik sejak event tersebut.
errorsnull—Map dari ID keluarga ke kode galat untuk keluarga yang pemeriksaan kualitasnya sendiri gagal; null jika semua pemeriksaan berjalan.
legendobject—Definisi teks biasa untuk setiap status sel. kunci dinamis: FRESH,PARTIAL,STALE,BROKEN,UNAVAILABLE
legend.{*}string—Definisi status yang disebutkan kuncinya (`FRESH`, `PARTIAL`, `STALE`, `BROKEN`, `UNAVAILABLE`).
methodobject—Catatan rumus / metode.
method.statusstring—Status.
method.lag_sstring—Pernyataan teks biasa tentang cara `lag_s` dihitung.
method.source_atstring—String tanggal-waktu.
method.fetched_atstring—String tanggal-waktu.
metaobject—Envelope respons ini: ID skema, sistem penghasil, stempel waktu, masa berlaku cache, dan kesegaran.
meta.schemastring—ID skema respons ini; nilainya sama dengan `schema` di tingkat teratas.
meta.sourcearray—Asal nilai tersebut.
meta.source[]object—Asal nilai tersebut.
meta.source[].systemstring—Sistem yang menghasilkan data; selalu `coinboss` untuk endpoint pusat pengembang.
meta.source[].componentstring—Komponen di balik data: probe endpoint dan patroli kualitas data.
meta.observed_atnull—Stempel waktu.
meta.received_atnumbermsStempel waktu.
meta.fetched_atnumbermsWaktu CoinBoss mengambil data dari sumber.
meta.windowstring—Jendela.
meta.cache_ttl_snumbersMasa berlaku cache sisi server untuk respons ini.
meta.qualitystring—Biasanya `FRESH`; `PARTIAL` jika patroli kualitas belum berjalan dalam 15 menit (hanya daftar peringatan yang terpengaruh).
meta.is_staleboolean—true jika baris lebih lama daripada jendela kesegaran; baris usang tidak dipakai dalam total.
meta.fallbackstring—Catatan teks biasa tentang apa yang dikembalikan endpoint ini ketika inputnya usang atau tidak ada.

Dihasilkan 2026-11-11 23:01 UTC dari 3 respons nyata.

Contoh respons

/api/meta/quality · Respons nyata yang direkam 2026-11-13 03:59:28 UTC. Array dan map yang panjang dipersingkat untuk tampilan: alerts berisi 11 item; legend berisi 5 item; matrix berisi 30 item; summary berisi 5 item; datasets berisi 12 item; families berisi 12 item.

  • {
    • "success": true,
    • "schema": "coinboss.meta.quality/1",
    • "now": 1794542368785,
    • "families": [
      • { … 7 },
      • { … 7 }
      ],
    • "exchanges": [
      • "aster",
      • "backpack",
      • "binance",
      • "bingx",
      • "bitfinex",
      • "bitget",
      • "bitstamp",
      • "bitunix"
      ],
    • "matrix": {
      • "aster": { … 2 },
      • "backpack": { … 2 }
      },
    • "datasets": [
      • { … 12 },
      • { … 12 }
      ],
    • "summary": {
      • "FRESH": 161,
      • "PARTIAL": 7
      },
    • "by_family": {
      • "ticker": { … 2 },
      • "oi": { … 2 }
      },
    • "alerts": [
      • { … 10 },
      • { … 10 }
      ],
    • "monitor": {
      • "patrol_last_run_at": 1794542347666,
      • "patrol_age_s": 22,
      • "patrol_ok": true,
      • "collector_heartbeat_age_s": 18
      },
    • "errors": null,
    • "legend": {
      • "FRESH": "newest stored data point is inside the fresh window for this family",
      • "PARTIAL": "some contracts / rows are outside the fresh window or miss a required field"
      },
    • "method": {
      • "status": "judged from data timestamps in CoinBoss storage every request (30 s in-process cache); a running collector process is not treated as evidence",
      • "lag_s": "now − newest stored data timestamp for the exchange / family",
      • "source_at": "newest stored data timestamp (exchange timestamp when the exchange provides one, otherwise collector receive time)",
      • "fetched_at": "last successful upstream call recorded by the collector health log; null for WebSocket feeds and collectors that do not log per-call health"
      },
    • "meta": {
      • "schema": "coinboss.meta.quality/1",
      • "source": [ … 1 ],
      • "observed_at": null,
      • "received_at": 1794542369610,
      • "fetched_at": 1794542368785,
      • "window": "latest",
      • "cache_ttl_s": 20,
      • "quality": "FRESH",
      • "is_stale": false,
      • "fallback": "matrix is always computed from storage; when the 5-minute patrol itself stops (monitor.patrol_ok=false) only the alerts list may be outdated"
      }
    }

Sampel terverifikasi

Selain contoh di atas, probe memanggil endpoint ini dengan parameter berikut dan memeriksa skemanya setiap kali.

ParameterHTTPLatensiHasil
exchange=binance2001 msLolos FRESH
family=funding2001 msLolos FRESH

Diperiksa 2026-11-13 03:59:28 UTC

Detail

Autentikasi
Tidak ada. Endpoint publik.
Batas permintaan
1200 permintaan per menit per IP
Cache server
20s
Mikro-cache edge
10s
Frekuensi pembaruan
Dievaluasi saat diminta dari stempel waktu data terbaru setiap pasangan bursa × keluarga data.
Sumber data
Tabel mentah CoinBoss (stempel waktu baris terbaru), log kesehatan kolektor. Proses yang berjalan tidak pernah dihitung sebagai data yang sehat.
Stempel waktu
Milidetik epoch Unix (UTC) kecuali deskripsi kolom menyatakan lain
Format respons
json
Stabilitas
Stabil
Tersedia sejak
2026-11-11

Status langsung

TersediaDiperiksa 2026-11-13 03:59:28 UTCHTTP 200856 msSkema sesuaiTitik data terbaru berusia 0s

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/meta/qualityTersedia
Parameter

string — Return only this exchange (lower-case id, for example `binance`).

string — Return only this data family (for example `oi`, `funding`, `liquidation`).

URL permintaanhttps://www.coinboss.com/api/meta/quality
Pilih endpoint lalu tekan “Kirim permintaan”. Respons, header, dan waktu tempuhnya akan muncul di sini.