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.
/api/meta/qualityPermintaan
Parameter kueri
| Nama | Tipe | Wajib | Default | Nilai yang diizinkan | Deskripsi |
|---|---|---|---|---|---|
| exchange | string | Opsional | — | — | Kembalikan hanya bursa ini (ID huruf kecil, misalnya `binance`). |
| family | string | Opsional | — | — | 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.
| 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 (`coinboss.meta.quality/1`). |
| now | number | ms | Waktu server saat respons disusun. |
| families | array | — | 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[].id | string | — | Pengenal. |
| families[].scope | string | — | `exchange` untuk keluarga yang dinilai per bursa dalam `matrix`. |
| families[].title | string | — | Judul tampilan keluarga. |
| families[].what | string | — | Deskripsi singkat tentang data yang dicakup keluarga tersebut. |
| families[].table | string | — | Nama dataset internal yang menjadi dasar penilaian keluarga; hanya bersifat informatif. |
| families[].cadence | string | — | Jadwal pengumpulan keluarga dalam teks biasa; null jika tidak dinyatakan. |
| families[].fresh_within_s | number | s | Jendela kesegaran: data yang lebih baru dari ini dianggap segar. |
| exchanges | array | — | Bursa. |
| exchanges[] | string | — | Bursa. |
| matrix | object | — | 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.{*}.{*}.status | string | — | Status. |
| matrix.{*}.{*}.lag_s | number|null | s | Waktu 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_at | number|null | ms | Stempel waktu. |
| matrix.{*}.{*}.fetched_at | number|null | ms | Waktu CoinBoss mengambil data dari sumber. |
| matrix.{*}.{*}.fresh_within_s | number|null | s | Jendela kesegaran: data yang lebih baru dari ini dianggap segar. |
| matrix.{*}.{*}.coverage | object|null | — | Apa yang disertakan dan apa yang tidak ada. |
| matrix.{*}.{*}.coverage.rows | number | — | Baris hasil. bisa tidak ada |
| matrix.{*}.{*}.coverage.rows_fresh | number | — | Baris yang diperbarui dalam jendela kesegaran. bisa tidak ada |
| matrix.{*}.{*}.coverage.rows_usable | number | — | Baris dalam jendela layak pakai. bisa tidak ada |
| matrix.{*}.{*}.coverage.rows_orphan | number | — | Baris yang kontraknya sudah tidak tercatat. bisa tidak ada |
| matrix.{*}.{*}.coverage.rows_invalid | number | — | Baris yang ditolak validasi. bisa tidak ada |
| matrix.{*}.{*}.reason | string|null | — | Kode alasan. |
| matrix.{*}.{*}.coverage.rows_no_liveness | number | count | Baris funding pada kontrak tanpa bukti perdagangan aktif (sudah delisting atau tanpa volume); tidak dihitung dalam jumlah kesegaran. bisa tidak ada |
| matrix.{*}.{*}.coverage.rows_unknown_interval | number | count | Baris funding yang baru diperbarui tetapi interval penyelesaiannya tidak diketahui, sehingga tidak dapat dinormalkan ke 8 jam. bisa tidak ada |
| matrix.{*}.{*}.coverage.symbols | number | — | Simbol. bisa tidak ada |
| matrix.{*}.{*}.coverage.events_1h | number | count | Order likuidasi yang tersimpan dari bursa tersebut dalam satu jam terakhir; ukuran order minimum berbeda antar bursa. bisa tidak ada |
| matrix.{*}.{*}.coverage.events_24h | number | count | Order likuidasi yang tersimpan dari bursa tersebut dalam 24 jam terakhir; ukuran order minimum berbeda antar bursa. bisa tidak ada |
| matrix.{*}.{*}.via | string | — | Jalur pengumpulan. bisa tidak ada |
| matrix.{*}.{*}.coverage.books | number | count | Jumlah order book yang dilacak. bisa tidak ada |
| matrix.{*}.{*}.coverage.books_fresh | number | count | Jumlah order book yang diperbarui dalam jendela kesegaran. bisa tidak ada |
| matrix.{*}.{*}.coverage.books_reaching_2pct | number | count | Jumlah order book yang cukup dalam untuk mencakup ±2 % di sekitar harga tengah. bisa tidak ada |
| matrix.{*}.{*}.coverage.contracts | number | — | Baris per kontrak. bisa tidak ada |
| matrix.{*}.{*}.coverage.contracts_fresh | number | count | Jumlah kontrak yang diperbarui dalam jendela kesegaran. bisa tidak ada |
| matrix.{*}.{*}.coverage.with_mark_and_index | number | count | Jumlah kontrak yang memiliki harga mark sekaligus harga indeks. bisa tidak ada |
| matrix.{*}.{*}.coverage.delivery_contracts | number | count | Jumlah kontrak berjangka (dengan tanggal jatuh tempo). bisa tidak ada |
| matrix.{*}.{*}.note | string | — | Catatan. bisa tidak ada |
| matrix.{*}.{*}.coverage.coins | number | — | Koin. bisa tidak ada |
| matrix.{*}.{*}.coverage.rows_without_oi | number | count | Baris kontrak bermargin koin, bermargin USDC, atau kontrak berjangka yang tidak memuat nilai open interest dalam USD. bisa tidak ada |
| matrix.{*}.{*}.coverage.with_mark_iv | number | count | Jumlah kontrak opsi yang memiliki volatilitas tersirat mark. bisa tidak ada |
| matrix.{*}.{*}.coverage.with_greeks | number | count | Jumlah kontrak opsi yang memiliki greeks. bisa tidak ada |
| datasets | array | — | 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[].family | string | — | ID dataset, misalnya `etf` atau `cme`. |
| datasets[].id | string | — | Pengenal. |
| datasets[].title | string | — | Nama tampilan dataset. |
| datasets[].source | string | — | Asal nilai tersebut. |
| datasets[].endpoint | string | — | Endpoint publik yang menyajikan dataset tersebut. |
| datasets[].status | string | — | Status. |
| datasets[].lag_s | number | s | Usia titik data terbaru saat respons disusun. |
| datasets[].source_at | number | ms | Stempel waktu. |
| datasets[].fetched_at | number | ms | Waktu CoinBoss mengambil data dari sumber. |
| datasets[].fresh_within_s | number | s | Jendela kesegaran: data yang lebih baru dari ini dianggap segar. |
| datasets[].coverage | object | — | Apa yang disertakan dan apa yang tidak ada. |
| datasets[].coverage.funds_total | number | count | Jumlah dana yang dilacak. bisa tidak ada |
| datasets[].coverage.funds_covered | number | count | Jumlah dana dengan pengungkapan yang layak pakai. bisa tidak ada |
| datasets[].coverage.funds_unavailable | number | count | Jumlah dana yang penerbitnya tidak memublikasikan pengungkapan yang dapat dibaca mesin. bisa tidak ada |
| datasets[].coverage.funds_failing | number | count | Jumlah dana yang pengungkapannya tidak dapat dibaca pada putaran pengumpulan terakhir. bisa tidak ada |
| datasets[].coverage.as_of | string | — | Tanggal pengungkapan terbaru di antara dana yang tercakup (YYYY-MM-DD). bisa tidak ada |
| datasets[].coverage.as_of_min | string | — | Tanggal pengungkapan terlama di antara dana yang tercakup (YYYY-MM-DD). bisa tidak ada |
| datasets[].reason | string|null | — | Kode alasan. |
| datasets[].coverage.contracts | number | — | Baris per kontrak. bisa tidak ada |
| datasets[].coverage.report_date | string | — | Tanggal laporan Commitments of Traders CFTC terbaru (YYYY-MM-DD). bisa tidak ada |
| datasets[].coverage.products | number | count | Jumlah produk CME yang tercakup. bisa tidak ada |
| datasets[].coverage.trade_date | string | — | Tanggal perdagangan laporan harian CME terbaru (YYYY-MM-DD). bisa tidak ada |
| summary | object | — | Blok ringkasan. kunci dinamis: FRESH,PARTIAL,STALE,BROKEN,UNAVAILABLE |
| summary.{*} | number | — | Blok ringkasan. |
| by_family | object | — | 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.{*}.{*} | number | count | Jumlah bursa dengan status tersebut untuk keluarga tersebut. |
| alerts | array | — | 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[].level | string | — | Level. |
| alerts[].exchange | string | — | ID bursa, huruf kecil (misalnya `binance`). |
| alerts[].family | string | — | Keluarga data yang menjadi pokok peringatan. |
| alerts[].code | string | — | Kode. |
| alerts[].detail | string | — | Detail. |
| alerts[].opened_at | number | ms | Stempel waktu. |
| alerts[].last_seen_at | number | ms | Stempel waktu. |
| alerts[].resolved_at | number|null | ms | Stempel waktu. |
| alerts[].hits | number | count | Jumlah putaran patroli (satu setiap 5 menit) yang mengamati kondisi tersebut sejak peringatan dibuka. |
| alerts[].open | boolean | — | Harga pembukaan periode tersebut. |
| monitor | object | — | Kesehatan pemantauan itu sendiri: waktu dan usia putaran patroli terakhir, `patrol_ok`, dan usia heartbeat kolektor. |
| monitor.patrol_last_run_at | number | ms | Stempel waktu. |
| monitor.patrol_age_s | number | s | Jumlah detik sejak event tersebut. |
| monitor.patrol_ok | boolean | — | true jika patroli berjalan dalam 15 menit terakhir; jika false, daftar `alerts` mungkin sudah tidak mutakhir sementara matriks tetap langsung. |
| monitor.collector_heartbeat_age_s | number | s | Jumlah detik sejak event tersebut. |
| errors | null | — | Map dari ID keluarga ke kode galat untuk keluarga yang pemeriksaan kualitasnya sendiri gagal; null jika semua pemeriksaan berjalan. |
| legend | object | — | 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`). |
| method | object | — | Catatan rumus / metode. |
| method.status | string | — | Status. |
| method.lag_s | string | — | Pernyataan teks biasa tentang cara `lag_s` dihitung. |
| method.source_at | string | — | String tanggal-waktu. |
| method.fetched_at | string | — | String tanggal-waktu. |
| meta | object | — | Envelope respons ini: ID skema, sistem penghasil, stempel waktu, masa berlaku cache, dan kesegaran. |
| meta.schema | string | — | ID skema respons ini; nilainya sama dengan `schema` di tingkat teratas. |
| meta.source | array | — | Asal nilai tersebut. |
| meta.source[] | object | — | Asal nilai tersebut. |
| meta.source[].system | string | — | Sistem yang menghasilkan data; selalu `coinboss` untuk endpoint pusat pengembang. |
| meta.source[].component | string | — | Komponen di balik data: probe endpoint dan patroli kualitas data. |
| meta.observed_at | null | — | Stempel waktu. |
| meta.received_at | number | ms | Stempel waktu. |
| meta.fetched_at | number | ms | Waktu CoinBoss mengambil data dari sumber. |
| meta.window | string | — | Jendela. |
| meta.cache_ttl_s | number | s | Masa berlaku cache sisi server untuk respons ini. |
| meta.quality | string | — | Biasanya `FRESH`; `PARTIAL` jika patroli kualitas belum berjalan dalam 15 menit (hanya daftar peringatan yang terpengaruh). |
| meta.is_stale | boolean | — | true jika baris lebih lama daripada jendela kesegaran; baris usang tidak dipakai dalam total. |
| meta.fallback | string | — | 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"
- "exchanges"
- "aster"
- "backpack"
- "binance"
- "bingx"
- "bitfinex"
- "bitget"
- "bitstamp"
- "bitunix"
- "matrix"
- "aster"
- "backpack"
- "datasets"
- "summary"
- "FRESH"161
- "PARTIAL"7
- "by_family"
- "ticker"
- "oi"
- "alerts"
- "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"
- "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.
| Parameter | HTTP | Latensi | Hasil |
|---|---|---|---|
| exchange=binance | 200 | 1 ms | Lolos FRESH |
| family=funding | 200 | 1 ms | Lolos 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
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/meta/qualityTersediastring — Return only this exchange (lower-case id, for example `binance`).
string — Return only this data family (for example `oi`, `funding`, `liquidation`).
https://www.coinboss.com/api/meta/qualityLainnya di kategori ini
- Matriks kualitas data (tampilan kolektor) /api/sd/quality
- Katalog API /api/meta/catalog
- Catatan perubahan dan kebijakan versi /api/meta/changelog
- Dokumentasi endpoint /api/meta/endpoint
- Dokumen OpenAPI /api/meta/openapi
- Matriks kualitas data /api/meta/quality
- Status layanan /api/meta/status
- Memeriksa apakah suatu simbol koin dikenal oleh platform /api/coin-exists
- Peta simbol koin ke path ikon yang di-host secara lokal /api/coin-icons
- Ringkasan agregat halaman koin /api/content/coin
- Ringkasan bagian seluruh situs /api/content/summary
- Tabel kurs valas fiat /api/currency/fx
- Peta id bursa ke path ikon yang di-host secara lokal /api/exchange-icons
- Pemeriksaan liveness /api/health
- Statistik halaman riset /api/research/stats