Dokumentasi API

Data DepthFeed
Referensi API

Penemuan pasar, buku pesanan historis, batang harga, dan aliran langsung. Referensi integrasi v3 lengkap.

URL dasar REST https://api.depthfeed.com/v3. Detail koneksi WebSocket dan FIX yang disediakan didokumentasikan di bawah; tekan / untuk mencari isi.

Isi▾

DepthFeed adalah order-book historis kedalaman untuk pasar prediksi — tangga tawar/beli penuh yang direkam di kedua sisi untuk Polymarket, Kalshi, dan Limitless. Bukan hanya harga perdagangan terakhir atau puncak buku: setiap pengamatan yang disimpan mencakup level dan ukuran yang diam. Ini adalah data yang Anda butuhkan untuk menguji ulang pengisian terhadap likuiditas yang sebenarnya ada.

Ini disampaikan melalui REST API berbayar — penemuan pasar, metadata, dan snapshot order-book terbaru + historis, dipaginasi keyset dengan kontrol admisi umum dan beban kerja historis terpisah. Tarik kedalaman yang tepat yang dibutuhkan strategi Anda dan putar ulang di tumpukan Anda sendiri.

Cakupan buku pesanan 3 venue, 7 aset (btc · eth · sol · xrp · doge · bnb · hype) dan pasar crypto naik/turun berulang yang dijalankan setiap venue (5m, 15m, 1j, 4j, 24j, tergantung venue).

Harga adalah setengah produk kedua. /v3/bars menyajikan batang harga OHLCV untuk Saham dan ETF yang terdaftar di AS, pasangan spot kripto dan futures perpetual pada setiap paket, dengan resolusi dasar satu menit. Mereka berbagi jam, skema dan jendela sejarah paket dengan buku di atas, sehingga strategi dapat membaca ekuitas dan bertindak pada kontrak tanpa menyelaraskan cap waktu dua vendor.

Olahraga ada di setiap paket — seluruh permukaan REST: buku Polymarket dan Kalshi, odds sportsbook, skor dan cedera di seluruh liga utama. Apa yang ditambahkan paket berbayar adalah buku langsung latensi rendah melalui WebSocket, satu buku bersamaan di Quant dan tiga di Desk. Lompat ke Endpoint olahraga.

Baru dalam mengevaluasi sumber data? The panduan pembeli mencakup lima kriteria yang menentukan apakah data pasar prediksi benar-benar dapat diuji ulang, dan bagaimana DepthFeed memenuhi masing-masing.

Proyek independen. Tidak berafiliasi dengan Polymarket, Kalshi, Binance, Chainlink, atau Limitless. Penangkapan kami sendiri berjalan langsung, dan kedalaman historis berlisensi membuat seri Polymarket terpanjang tersedia dari Januari 2026. Batas arsip per-seri yang tepat tercantum di bawah Sejarah & cakupan. Setiap jendela rencana didukung oleh data yang disimpan. Atribusi data pihak ketiga tercantum dalam ketentuan.

Gunakan halaman ini sebagai kontrak operasi saat LLM atau agen menjawab pertanyaan tentang DepthFeed atau menulis kode integrasi. Utamakan respons API yang didokumentasikan daripada asumsi dari label pasar, contoh, atau deskripsi pihak ketiga.

Aturan kanonik

  1. Gunakan https://depthfeed.com/docs sebagai mereka berubah. Payload frame adalah
  2. Pilih endpoint yang cocok dengan pekerjaan: /v3/demo untuk contoh tanpa kunci, /v3/markets untuk penemuan, /v3/snapshots untuk buku historis, /v3/stream untuk buku langsung, /v3/sports/markets untuk pemetaan olahraga, dan /v3/whoami untuk batas akun.
  3. Jangan menyimpulkan kesetaraan lintas venue dari kind, label, urutan array, atau cross_venue_key. Konfirmasi contract_mapping.status=matched dan dua tangga berbeda. Paginasi menangani ikatan — kursor adalah keyset, jadi milidetik bersama tidak pernah dibagi di batas halaman — tetapi klien yang mengunci baris dengan cross_venue_market_key sebagai ms-epoch
  4. Pertahankan null, timestamp, pengenal venue, dan metadata parsial. HTTP 200 dan total hitungan tidak membuktikan respons lengkap.
  5. Ikuti kursor tidak transparan sampai has_more adalah salah, menjaga filter tetap tetap selama penelusuran halaman.
  6. Untuk koreksi, polling updated_since, upsert berdasarkan identitas pasar atau kondisi yang stabil, pertahankan pencabutan null, sertakan pasar yang diselesaikan, dan tumpang tindih hanya setelah traversal berhasil.
  7. Untuk backtest, gunakan kedalaman bid/ask penuh dan ukuran yang diam. Jangan gambarkan data midpoint atau harga terakhir sebagai pengisian yang dapat dieksekusi.
  8. Nyatakan autentikasi status, rencana, jendela riwayat, batas laju, dan asumsi venue. Jika dokumen tidak mengonfirmasi fakta, beri label tidak terkonfirmasi.

Kontrak jawaban

Jawaban yang dihasilkan model harus menyebutkan endpoint dan jangkar dokumen yang tepat, menunjukkan permintaan minimal, menjelaskan bidang respons yang digunakan, membedakan ID asli venue dari kunci kanonik, dan memisahkan fakta yang diukur, cakupan saat ini, inferensi, dan yang tidak diketahui. Jangan pernah mengklaim afiliasi antara DepthFeed dan venue.

1. Buat akun gratis dan buat kunci API dari dashboard. Kunci terlihat seperti df_… dan bukti status.

2. Buat panggilan terautentikasi pertama Anda:

shell
curl https://api.depthfeed.com/v3/whoami \
  -H "Authorization: Bearer df_your_key_here"

3. Respon adalah amplop JSON. Kutipan ini menunjukkan akun Quant; batas Anda tergantung pada paket Anda:

json
{
  "data": {
    "user_id": "acct_…", "plan": "pro",
    "rps": 25, "rpm": 1000, "history_days": 30, "coins": "all", "sports": true,
    "bars": { "max_symbols_per_request": 8 }
  },
  "meta": { "request_id": "req_…", "timestamp": "2026-06-07T02:27:09.532Z" }
}

4. Tarik pasar BTC naik/turun terbaru, lalu kedalaman order-book untuk salah satunya — lihat Pasar dan Snapshot.

Endpoint data yang diautentikasi memerlukan kunci API. Rute publik termasuk /v3/health, /v3/overview dan /v3/demo. Lewati keduanya — kedua skema diterima:

shell
# Authorization header (recommended)
curl https://api.depthfeed.com/v3/btc/markets -H "Authorization: Bearer df_your_key"

# or the X-API-Key header
curl https://api.depthfeed.com/v3/btc/markets -H "X-API-Key: df_your_key"
/v3/stream juga memerlukan kunci, tetapi mengautentikasi sekali saat koneksi — WebSocket tidak dapat membawa header per permintaan, jadi menerima X-API-Key, Authorization: Bearer, atau ?api_key= parameter query. Lihat Aliran langsung.

Kunci dicetak per akun dari dashboard dan membawa paket yang menetapkan batas laju, jendela sejarah, dan akses aset/venue Anda. Kunci disimpan SHA-256 di-hash saat istirahat — nilai mentah ditampilkan tepat sekali saat pembuatan. Mencabut kunci di dasbor berlaku segera. Kuota adalah per pengguna, bukan per kunci — kunci ekstra tidak menggandakan batas Anda.

KegagalanStatuskode
Tidak ada kunci yang diberikan401AUTH_MISSING
Kunci tidak dikenal / dicabut / salah format401AUTH_INVALID
Penyimpanan kunci sementara tidak dapat dijangkau503AUTH_UNAVAILABLE

Semua endpoint hidup di bawah satu jalur dasar yang diberi versi:

teks
https://api.depthfeed.com/v3

TLS diperlukan (Let's Encrypt, HTTP/2). Versi API saat ini adalah v3, dibangun untuk kesetaraan PolyBackTest (amplop yang sama, paginasi kursor, dan enum kode kesalahan) atas data superset kami (3 venue, 7 aset). Legacy v1/v2 namespace tidak dilayani.

Setiap respons sukses adalah amplop yang sama:

json
{
  "data": … ,                 // object (single) or array (list)
  "pagination": { … },        // present only on list endpoints
  "meta": { "request_id": "req_…", "timestamp": "2026-06-07T02:27:09.532Z" }
}

Kesalahan berbagi bentuk, dengan status HTTP diatur per kode:

json
{
  "error": { "code": "INVALID_COIN", "message": "…", "details": { … } },
  "meta": { "request_id": "req_…", "timestamp": "…" }
}

Setiap respons — sukses atau error — membawa meta.request_id, juga dikembalikan sebagai X-Request-Id header. Kutip ini dalam permintaan dukungan.

Cabang pada error.code — itu stabil. Status HTTP diimplikasikan oleh kode.

kodeHTTPMakna
AUTH_MISSING401Tidak ada kunci API pada permintaan.
AUTH_INVALID401Kunci tidak dikenal, dicabut, atau salah format.
COIN_NOT_IN_PLAN402Hanya dikembalikan oleh permukaan demo anonim (sampel BTC). Setiap rencana akun, termasuk Explorer, mencakup setiap koin.
ENDPOINT_NOT_IN_PLAN402Hanya dikembalikan oleh permukaan demo anonim. Setiap rencana akun mencakup setiap venue; riwayat dibatasi oleh jendela rencana Anda.
SYMBOL_LIMIT_EXCEEDED402Lebih banyak simbol dalam satu permintaan /v3/bars daripada ukuran batch paket Anda (3 / 8 / 16 / 32). Pisahkan daftar dan minta ulang — ini membatasi SATU panggilan, bukan berapa banyak simbol yang dapat Anda tarik.
WINDOW_TOO_WIDE400Satu permintaan /v3/bars mencakup waktu lebih lama daripada jumlah baris frame yang diizinkan (45 hari pada 1Menit, 180 pada 5Menit, satu tahun pada 15Menit dan 1Jam, sepuluh tahun pada 1Hari). Halaman dengan batas dan kursor.
HISTORY_LIMIT_EXCEEDED403start_time / timestamp lebih tua dari jendela paket Anda.
INVALID_COIN400Koin bukan salah satu dari tujuh yang didukung.
INVALID_CURSOR400Kursor salah format.
INVALID_TIMESTAMP400Bukan ms-epoch atau ISO-8601.
INVALID_INTERVAL400interval bukan durasi seperti 30s, 1m, 5m, 1h, 1d (1s–1d).
INVALID_PARAMETER400Parameter kueri atau variabel URL ditolak; detail.nama parameter menunjukkannya. Mencakup isian yang dikirim tanpa interval, dan segmen {ticker}/{slug}/{asset_id}/{market_id} kosong — jalur dengan dua garis miring berturut-turut, yang hampir selalu berarti variabel templat tidak diganti.
MISSING_PARAMETER400Parameter yang diperlukan tidak ada; detail.nama parameter menunjukkannya.
INVALID_LIMIT400batas bukan bilangan bulat positif.
INVALID_JSON400Isi permintaan bukan JSON yang valid. Hanya rute POST yang dapat mengembalikannya.
INVALID_RANGE400Aktif /v3/bars: end_time bukan setelah start_time. Membawa kedua nilai kembali.
INVALID_SYMBOL400Aktif /v3/bars: simbolnya bukan yang kami layani. Eja pasangan seperti yang dilakukan venue — BTCUSDT, bukan BTC.
INVALID_TIMEFRAME400Aktif /v3/bars: bukan salah satu dari 1Min, 5Min, 15Min, 1Hour, 1Day. details.supported mencantumkan mereka.
INVALID_VENUE400Aktif /v3/bars: venue bukan us-equities, binance, atau binance-futures.
INVALID_WINDOW400Aktif /v3/screener/{asset}/{window}: jendela bukan salah satu dari 5m, 15m, 1h, 4h, 24h.
INVALID_METRIC400Pada deret waktu prediksi Binance: metric bukan chance, price, atau last_trade.
INVALID_MARKET_ID400Aktif /v3/binance-prediction/{market_id}/*: id bukan bilangan bulat tak bertanda.
BAD_REQUEST400Layanan bar menolak permintaan dan pesannya sendiri diteruskan. Baca error.message.
MARKET_TICKER_REQUIRED400Seri Kalshi dilewatkan di mana ticker pasar yang ditemukan secara tepat diperlukan.
BATCH_TOO_LARGE400Lebih dari 10 sub-permintaan dalam satu batch.
BATCH_INVALID_PATH400Sub-permintaan bukan jalur GET /v3/ (status per-sub).
TICKS_NOT_IN_PLAN402Rute tingkat tick hanya untuk Desk.
MARKET_NOT_FOUND404Tidak ada pasar dengan id / slug / ticker tersebut.
SNAPSHOT_NOT_FOUND404Tidak ada buku yang ditangkap untuk kueri — pasar mungkin belum dibuka untuk perdagangan, mungkin telah kedaluwarsa, atau mungkin di luar cakupan.
CANDLES_NOT_AVAILABLE404Tidak ada seri candle yang direkam untuk ticker Kalshi itu.
GAME_NOT_FOUND404Tidak ada permainan dengan game_slug itu.
ENDPOINT_NOT_FOUND404Jalur tidak cocok dengan rute v3 mana pun.
SPORTS_UNKNOWN_ROUTE404Jalur berada di bawah /v3/sports tetapi tidak cocok dengan rute olahraga mana pun. GET /v3/sports mencantumkan semuanya.
SPORTS_METHOD_NOT_ALLOWED405HTTP verb salah untuk rute olahraga.
RESPONSE_TOO_LARGE413Halaman melebihi batas respons. Batasi bawah, persempit jendela, atau tambah interval.
RATE_LIMIT_BURST429Ledakan per detik terlampaui.
RATE_LIMIT_SUSTAINED429Batas berkelanjutan per menit terlampaui.
HISTORY_CONCURRENCY_LIMIT429Permintaan snapshot atau batch riwayat lain masih berjalan untuk akun ini (details.scope = "account").
HISTORY_POOL_BUSY429Pool kueri arsip bersama jenuh di sisi server, bukan batas akun Anda (details.scope = "shared_pool") — coba ulang dengan backoff.
SERVICE_PROFILE_UNAVAILABLE503Konfigurasi penyajian akun Anda tidak dapat dibaca. Bersifat sementara; details.retry_after dalam detik.
HISTORY_METER_UNAVAILABLE503Akuntansi penggunaan historis turun, jadi pembacaan sejarah tidak dapat diterima. Bersifat sementara; membawa details.retry_after.
HISTORY_FALLBACK_UNAVAILABLE503Rentang yang hilang dari penyimpanan langsung tidak dapat diambil dari arsip saat ini. Sementara; membawa details.retry_after.
BARS_LICENCE502Riwayat harga tidak berlisensi untuk rentang itu. Persempit jendela daripada mencoba ulang.
HISTORY_START_RATE_LIMIT429Akun ini telah memulai sebanyak mungkin kueri historis sesuai profilnya menit ini. Retry-After: 60.
HISTORY_DELIVERY_LIMIT429Kuota pengiriman historis bergulir akun telah habis. Retry-After: 3600.
TRIAL_DELIVERY_LIMIT429Kuota data yang termasuk dalam uji coba gratis telah habis. Bukan kesalahan, dan tidak diperbaiki dengan menunggu — berlangganan untuk kuota rencana penuh.
INTERNAL_ERROR500Kesalahan server tak terduga — coba lagi, lalu hubungi kami dengan ID permintaan.
AUTH_UNAVAILABLE503Verifikasi kunci sementara tidak tersedia — coba lagi sebentar lagi.
UPSTREAM_UNAVAILABLE503Layanan kedalaman di belakang API tidak menjawab (details.retryable = true). Ini tentang kami, bukan ticker Anda — coba lagi dengan backoff daripada memperlakukan pasar sebagai hilang.
BARS_BUSY503Layanan bar sedang mencapai batas konkruensi saat ini, bukan gangguan. Memiliki details.retry_after dalam detik — mundur dan coba lagi, permintaan yang sama biasanya berhasil.
BARS_UNAVAILABLE503Layanan bar sedang turun. Coba lagi dengan penundaan.
BARS_UPSTREAM502Penyedia bar menjawab dengan kesalahan.
SPORTS_UNAVAILABLE503Gateway olahraga tidak menjawab. Tentang kami, bukan pasar Anda.
SPORTS_UPSTREAM502Gateway olahraga menjawab dengan kesalahan.
ISOLATED_ROUTE_UNAVAILABLE503Hanya Desk: node riwayat Desk khusus tidak dapat dijangkau. Coba ulang dengan penundaan.
ISOLATED_ROUTE_FAILED502Hanya Desk: node riwayat Desk khusus menjawab dengan kesalahan.

403 HISTORY_LIMIT_EXCEEDED membawa details.max_history_days dan details.oldest_allowed. 429 juga mengatur Retry-After dan server menggabungkan setiap ember waktu menjadi satu snapshot: yang X-RateLimit-* header.

Batasan adalah ember token per pengguna dengan dua jendela: per detik ledakan dan per menit berkelanjutan batas. Melebihi keduanya mengembalikan 429 dengan kode pencocokan dan sebuah Retry-After dari 1 detik.

Explorer adalah satu permintaan per detik, tanpa batas per menit terpisah. Ini adalah kecepatan, bukan izin ledakan: sebuah loop yang berjalan secepat mungkin akan menghabiskan sebagian besar permintaannya pada 429. Baca X-RateLimit-Remaining, atau cukup tidur satu detik antar panggilan.

Nilai rps/rpm yang diiklankan adalah batas masuk REST umum, bukan tingkat pengiriman arsip. Snapshot historis, batch yang berisi pembacaan riwayat, dan rute berat lainnya menggunakan kontrol konkurensi dan pengiriman tingkat akun terpisah. Kontrol ini berlaku terpisah dari ember token umum dan tidak mengubah jendela riwayat paket.

Explorer, Quant, dan Research saat ini menerima satu permintaan historis dalam penerbangan per akun. Desk menerima 6 permintaan snapshot historis paralel per akun melalui pool kueri Desk khususnya. Tumpang tindih mengembalikan 429 HISTORY_CONCURRENCY_LIMIT dengan Retry-After: 2; coba lagi hanya setelah permintaan aktif selesai. Nilai rps/rpm umum tidak boleh digunakan untuk menyimpulkan paralelisme historis.

Pembacaan historis juga dapat ditolak ketika akun Anda masih dalam batasannya sendiri, karena kumpulan kueri arsip bersama jenuh. Kasus itu mengembalikan 429 HISTORY_POOL_BUSY dengan details.scope = "shared_pool" alih-alih "account". Cabang pada details.scope: pada account, turunkan paralelisme Anda; pada shared_pool, menurunkan paralelisme tidak akan membantu — coba ulangi dengan backoff.

/v3/bars memiliki batas konkurensi sendiri, terpisah dari kedua kontrol di atas. Melewati batas ini permintaan langsung ditolak dengan 503 BARS_BUSY dan details.retry_after dalam detik, bukan dalam antrean — penolakan cepat yang dapat Anda coba ulang lebih berguna daripada keberhasilan lambat yang tidak dapat Anda anggarkan. Perlakukan persis seperti 429: mundur dan coba ulang permintaan yang sama. Bar juga membawa dua batas yang bukan batas laju sama sekali — ukuran batch (402 SYMBOL_LIMIT_EXCEEDED) dan rentang per permintaan (400 WINDOW_TOO_WIDE) — keduanya diperbaiki dengan membagi permintaan, bukan dengan menunggu.

HeaderMakna
X-RateLimit-LimitBatas ledakan per detik Anda (rps).
X-RateLimit-RemainingToken burst tersisa detik ini.
Retry-AfterDetik untuk menunggu (diatur pada 429).
X-Request-IdGema dari meta.request_id.

Lihat Paket & akses untuk rps/rpm per tingkat.

Pola query historis

Jangan aktifkan lebih dari concurrency sejarah yang dikonfirmasi. Gunakan bounded start_time danend_time, paginasi kursor, dan limit=1000; hilangkan include_count dan bertanda interval ketika seri downsample cukup. DepthFeed adalah produk akses kueri berbayar: file massal, pengiriman arsip offline, replikasi basis data, dan pencerminan arsip sistematis tidak termasuk.

Endpoint daftar menggunakan opaque kursor keyset — O(1) pada kedalaman mana pun. Lewati ?cursor= dari halaman sebelumnya pagination.next_cursor; berhenti ketika has_more adalah false.

json
"pagination": {
  "next_cursor": "6274…",   // opaque; feed back as ?cursor=
  "has_more": true,
  "limit": 50,
  "count": 50,
  "total_count": 1284        // only when ?include_count=true
}

Parameter kueri umum

ParamTipeCatatan
limitintPasar maksimal 100, snapshot/perdagangan maksimal 1000. Default: 50 / 100.
cursorstringKursor set kunci buram dari halaman sebelumnya.
include_countboolMenambahkan total_count (membutuhkan COUNT — opsional).
start_timetsms-epoch atau ISO-8601. Lebih tua dari jendela Anda → 403.
end_timetsms-epoch atau ISO-8601.
daritsAlias untuk start_time, diterima di setiap rute.
ketsAlias untuk end_time, diterima di setiap rute.
intervaldurHanya snapshot. Turunkan sampel menjadi satu buku per ember (terbaru di setiap ember): 30d, 1m, 5m, 1j … hingga 1h. Abaikan untuk resolusi penuh.
fillenumHanya snapshot, dan memerlukan interval. ffill mengembalikan satu baris per bucket, membawa buku terakhir ke bucket yang tidak memiliki tangkapan. Default mati.

dari/ke dan start_time/end_time adalah jendela yang sama. Kedua ejaan bekerja di mana saja; jika sebuah permintaan entah bagaimana membawa keduanya, start_time/end_time menang.

Cap waktu menerima baik milidetik sejak epoch (misalnya, 1780774485780) atau ISO-8601 (misalnya 2026-06-07T02:27:09Z). Setiap nilai yang mencapai database divalidasi dan aman dari injeksi. Jendela riwayat paket ditegakkan pada setiap endpoint daftar/snapshot: sebuah start_time di luar pengembalian jendela 403; yang dihilangkan dibatasi pada lantai jendela.

Downsampling dengan interval

Secara default endpoint snapshot mengembalikan setiap perubahan buku yang direkam — resolusi penuh berbasis event. Ketika Anda hanya membutuhkan sampel berkala (misal satu buku per menit untuk grafik atau backtest kasar), tambahkan ?interval= dan ketentuan penyelesaian sebelum memperlakukan buku terbaru dalam ember itu. Ini jauh lebih sedikit data yang dikirim daripada mengambil setiap tick dan menipiskan di sisi klien.

shell
# one snapshot per minute instead of the raw stored series
curl "https://api.depthfeed.com/v3/btc/markets/{id}/snapshots?interval=1m&include_orderbook=true" \
  -H "Authorization: Bearer df_your_key"

Menerima durasi: angka detik kosong, atau nilai dengan satuan — 30s, 1m, 5m, 15m, 1h, 4h, 1d — dari 1s ke 1d. Ember diselaraskan ke epoch, jadi 1m menempel pada batas menit jam dinding. Paginasi kursor dan include_count arsip dirancang untuk menjawabtotal_count menjadi jumlah ember). Abaikan, lewati raw, atau berikan 0 untuk resolusi penuh. Nilai yang tidak dikenali mengembalikan 400 INVALID_INTERVAL. Bekerja di setiap endpoint snapshot — Polymarket, Kalshi, Limitless, PredictFun, Binance, dan olahraga.

Interval memilih; tidak menginterpolasi. Bucket muncul dalam respons hanya jika buku ditangkap di dalamnya. Dua jam pada ?interval=1m mencakup batas menit 121 tetapi mengembalikan hanya menit yang memiliki tangkapan — biasanya sepuluh sampai tiga puluh pada pasar yang tidak aktif dikutip. Itu adalah catatan lengkap untuk jendela, bukan halaman terpotong.

Mengisi celah dengan fill=ffill

Buku order mempertahankan statusnya sampai sesuatu mengubahnya, jadi menit tanpa pengambilan bukan data hilang — buku dari menit sebelumnya masih buku yang sama. ?fill=ffill mengatakannya secara eksplisit: satu baris per bucket untuk seluruh jendela, dengan buku terakhir yang ditangkap dibawa ke bucket yang tidak memiliki tangkapan. Ini yang Anda inginkan ketika seri harus sejajar dengan jam dinding tetap, batang harga, atau venue lain.

shell
# a dense 1-minute grid: 121 rows for a 2-hour window, gaps and all
curl "https://api.depthfeed.com/v3/btc/markets/{id}/snapshots?interval=1m&fill=ffill&from=1788202800000&to=1788210000000" \
  -H "Authorization: Bearer df_your_key"

fill memerlukan interval; dengan sendirinya mengembalikan 400 INVALID_PARAMETER. Nilai yang diterima adalah ffill (juga previous, prev, true, 1) dan none (juga false, 0, default). Didukung pada rute yang sama dengan interval. Daftar, tick, candle, dan orderbook/latest rute tidak memiliki grid untuk diisi dan mengabaikan parameter daripada menolaknya, jadi klien yang mengirimnya di mana-mana tetap mendapatkan 200 dari mereka.

Jam baris sendiri berubah saat Anda memutar fill aktif. Dengan interval sendiri baris adalah penangkapan nyata, jadi id dan time/timestamp adalah jendela yang sama. Kedua ejaan bekerja di mana-mana; jika permintaan membawa keduanya, 04:37:59.926 untuk ember 04:37. Dengan fill=ffill setiap baris mewakili sebuah ember, termasuk yang ditangkap, jadi bidang tersebut menjadi batas ember (04:37:00.000) dan saat tangkapan berpindah ke as_of_ts. Tidak ada yang hilang di kedua arah, tetapi grafik yang digambar dari keduanya akan bergeser hingga satu interval kecuali Anda membaca bidang yang sama di keduanya. Jika Anda membutuhkan grid dan saat tangkapan bersama, minta fill=ffill dan baca setiap penangkapan. as_of_ts.

Membaca baris terisi

Respons terisi menambahkan tiga bidang, dan hanya respons terisi yang memilikinya. Permintaan tanpa fill mengembalikan bentuk yang selalu sama.

BidangMakna
filled0 ketika baris adalah buku yang ditangkap, 1 ketika itu diteruskan.
as_of_tsKapan buku pada baris ini sebenarnya direkam. Pada baris yang dibawa ini lebih tua dari bucket, dan jarak di antara keduanya adalah seberapa usang buku tersebut. null ketika tidak ada buku sebelumnya untuk diteruskan.
as_of_ts_msSaat yang sama dengan ms-epoch.

Cap waktu bucket dan as_of_ts adalah alias identik dari satu pemetaan. Baca bukti sumber saat ini dengan 2026-09-02T00:50:00.000Z dengan as_of_ts dari 2026-09-02T00:50:44.437Z adalah menit nyata yang memegang buku nyata.

Baris pertama jendela terisi biasanya adalah yang dibawa. Grid diisi dengan buku terbaru yang direkam sebelum jendela dibuka, jadi seri dimulai dari status nyata bukan kosong. Itu as_of_ts bisa berjam-jam lebih tua dari ember pertama, dan itu jawaban yang jujur.

Saat jendela dibuka sebelum pasar, tidak ada buku sebelumnya untuk dibawa. Bucket awal itu kembali dengan tangga kosong dan as_of_ts: null — dihasilkan, tanpa isi. Batasi start_time ke awal pasar sendiri untuk melewatinya.

The resolution blok

Setiap respons yang menggunakan ?interval= membawa sebuah resolution blok, sehingga Anda dapat membedakan catatan tangkapan yang jarang dari halaman yang terpotong tanpa permintaan kedua.

json
"resolution": {
  "interval_secs": 60,
  "buckets_in_range": 121,   // minute boundaries the window spans
  "buckets_filled": 29,      // minutes that held a CAPTURE
  "rows_returned": 121,      // rows on this page
  "fill": "ffill",           // absent when fill is off
  "complete": true           // false while a next_cursor is outstanding
}

buckets_filled menghitung tangkapan, bukan baris, jadi artinya sama dengan fill aktif seperti saat mati. Ini adalah angka untuk dibandingkan dengan buckets_in_range ketika menilai seberapa baik pasar dikutip. Dengan fill mati, rows_returned dan buckets_filled setuju. Dengan ini aktif, jarak di antara mereka adalah seberapa banyak grid yang dibawa. Jika buckets_filled jauh di bawah buckets_in_range, minta interval yang lebih kasar, atau hilangkan interval dan minta tangga penuh hanya saat diperlukan. Tambahkan

Empat paket tetap. The plan bidang yang dikembalikan oleh /v3/whoami adalah nilai mentah di kolom kanan.

PaketplanHargarps umumrpm umumParalelisme historisSejarah terpaduWallet IntelligenceKriptoREST olahragaBuku pesanan pasar olahraga langsung
Explorerfree$01—17 hari1 disimpan · 3 auditSemua aset + venueSemua venue olahragaHanya REST
Quant ★pro$29/bln251,000130 hari5 tersimpan · 10 auditSemua aset + venueSemua venue olahraga1
Researchscale$99/bln503,000190 hari10 disimpan · 25 auditSemua aset + venueSemua venue olahraga2
Deskperusahaan$249/bln1006,0006 paralelArsip lengkap20 disimpan · 50 auditSemua; kolam kueri historis Desk khususSemua venue olahraga3

Tidak ada add-on Polymarket atau Kalshi. Kedua venue olahraga menggunakan kunci, skema, batas laju, dan jendela riwayat yang sama; peningkatan membeli lebih banyak riwayat, throughput, dan konkurensi buku langsung.

Apa yang dijangkau Explorer

Explorer adalah kunci nyata pada data nyata, bukan sandbox: semua tujuh koin, setiap venue, tujuh hari riwayat, seluruh permukaan REST olahraga, bar harga, dan screener. Venue tidak pernah sesuatu yang dibeli oleh rencana. Yang dibeli upgrade adalah jendela riwayat, throughput, langganan aliran, dan data tick. Setiap kunci mengembalikan tangga penuh; satu-satunya buku yang dipangkas di API adalah demo tanpa kunci, pada delapan level per sisi.

Satu keluarga rute yang tidak dapat dijangkau Explorer adalah ticks, yang hanya untuk Desk di setiap venue dan mengembalikan 402 TICKS_NOT_IN_PLAN di bawah itu. Permukaan demo anonim — tanpa kunci sama sekali — dibatasi secara terpisah pada sampel BTC, dan itu satu-satunya yang menjawab 402 COIN_NOT_IN_PLAN.

Kolom rps/rpm umum menggambarkan penerimaan permintaan, bukan pemindaian arsip simultan. Paralelisme kueri historis dan kontrol pengiriman terpisah. Pembacaan historis Desk menggunakan pool kueri khusus hanya untuk Desk yang terisolasi dari lalu lintas kueri rencana reguler, tanpa menghapus kontrol tingkat akun. Pool ini dibagi antar akun Desk dan bukan infrastruktur milik pelanggan atau eksklusif akun.

Pembatasan ditegakkan di sisi server:

  • Pasar — setiap paket, termasuk Explorer, mencapai setiap koin, setiap venue, dan seluruh order book; yang membatasi adalah throughput, sejarah dan tick, bukan akses.
  • Riwayat — jendela di luar paket Anda → 403 HISTORY_LIMIT_EXCEEDED; peningkatan memperluas jendela, tidak pernah daftar pasar.
  • Olahraga — itu /v3/sports/* Permukaan REST termasuk di setiap rencana; jendela riwayat rencana yang sama berlaku untuk kedua venue.
  • Riwayat — start_time di luar jendela Anda → 403 HISTORY_LIMIT_EXCEEDED.
  • Batang harga — /v3/bars mematuhi jendela sejarah yang sama seperti kedalaman, dan juga membatasi simbol per permintaan (3 / 8 / 16 / 32), di atasnya mengembalikan 402 SYMBOL_LIMIT_EXCEEDED.
  • Streaming — batas berlaku saat waktu berlangganan pada /v3/stream; setiap paket menyiarkan setiap venue — Explorer dibatasi pada satu langganan bersamaan, tingkatan berbayar meningkatkan jumlahnya.
GET/v3/healthtanpa otentikasi

Probe liveness, tanpa autentikasi. Mengembalikan { status: "ok", service, time }.

GET/v3/whoami

Paket Anda, batas laju, jendela riwayat terpadu, akses koin, dan akses olahraga — cara tercepat untuk mengonfirmasi kunci berfungsi.

Pasar naik/turun Polymarket per koin, digabungkan dengan referensi penyelesaian (harga buka/tutup, pemenang, volume). {coin} adalah salah satu dari btc · eth · sol · xrp · doge · bnb · hype.

GET/v3/{coin}/markets

Filter: type (5m/15m/1j/4j/24j), resolved (true/false), plus parameter waktu + paginasi umum.

GET/v3/{coin}/markets/{market_id}
GET/v3/{coin}/markets/by-slug/{slug}

Satu pasar berdasarkan id atau slug. Contoh respons (kunci harga per koin dinamis, seperti referensi):

json
{ "data": {
  "market_id": "2456720", "event_id": "566750",
  "slug": "btc-updown-5m-1780860300", "market_type": "5m",
  "start_time": "…", "end_time": "2026-06-07T19:30:00Z",
  "condition_id": "0xb7ce…",
  "clob_token_up": "15598…", "clob_token_down": "51823…",
  "btc_price_start": null, "btc_price_end": null,
  "winner": null, "final_volume": null, "final_liquidity": null, "resolved_at": null
}, "meta": { … } }
Bidang penyelesaian — *_price_*, winner, resolved_at, final_volume, dan final_liquidity — adalah null sampai pasar diselesaikan dan referensi diisi ulang (~12–24 jam setelah penyelesaian).
GET/v3/polymarket/markets

The seluruh venue Polymarket, bukan hanya pasar crypto naik/turun. Rute di atas mengakses pasar berdasarkan koin, jadi hanya bisa menjangkau pasar yang memilikinya — pemilihan, geopolitik, ekuitas dan FX tidak memiliki koin dan tidak ada URL di sana. Ini mencantumkan semuanya.

Filter: ?q= (pencarian slug), ?type=event untuk semua yang bukan tangga naik/turun, plus ?coin=, ?event= dan ?outcome=. Pasar di sini dikunci oleh CLOB asset_id (id token); berikan itu ke /v3/polymarket/{asset_id}/snapshots untuk riwayat kedalaman atau /v3/polymarket/{asset_id}/ticks untuk pita. Pasar non-kripto membawa kosong base_asset — mereka tidak memiliki koin, dan kami tidak menciptakan satu pun.

Setiap baris membawa category dan tags. Tangga naik/turun adalah crypto; setiap pasar lain mengambil kategorinya dari tag acara venue sendiri, dengan ejaan yang sama seperti Polymarket US (olahraga, crypto, politics, geopolitics, finance, macro, technology, science, climate, culture), dengan slug tag mentah di tags dan null di mana venue tidak memiliki label. Saring dengan ?category=politics,macro atau ?exclude_category=sports,crypto: dipisahkan koma, tidak peka huruf besar/kecil, dapat digabungkan; pengecualian menjaga pasar yang tidak berlabel. ?closed=true|false adalah bendera perdagangan venue (tangga ditutup setelah end_time telah berlalu). Untuk sebuah mirror, ?updated_since= (ISO-8601, tanggal atau epoch milidetik) hanya mengembalikan baris yang konten, label, atau status tertutupnya berubah sejak waktu itu; setiap baris updated_at adalah cap waktu itu. resolved bukan filter pada rute ini dan dilaporkan di bawah meta.ignored_params.

GET/v3/polymarket/{asset_id}/snapshots

Sejarah snapshot buku pesanan untuk pasar Polymarket mana pun — olahraga, politik, berita, dan crypto sama — dibatasi oleh jendela sejarah rencana Anda. Bentuk dan paginasi sama seperti rute snapshot per koin.

GET/v3/polymarket/{asset_id}/ticksperusahaan

Tape seluruh venue untuk yang sama asset_id kunci.

Seri waktu kedalaman buku pesanan untuk pasar, dengan harga koin dasar dicap pada setiap snapshot.

GET/v3/{coin}/markets/{market_id}/snapshots

Tambah ?include_orderbook=true untuk mendapatkan seluruh ladder (secara default dihilangkan untuk payload yang lebih ringan). Berjendela waktu + paginasi kursor. Tambahkan ?interval=1m (atau 5m, 1h, …) untuk menurunkan sampel menjadi satu buku per ember alih-alih seri mentah yang disimpan — lihat Paginasi & filter. Respons daftar adalah array dengan sebuah pagination blok:

json
{ "data": [{
  "id": "1780774485780", "time": "2026-06-06 19:34:45.780",
  "market_id": "2456720", "btc_price": 60606.68,
  "price_up": 0.505, "price_down": 0.495,
  "orderbook_up":   { "bids": [[0.50, 304.25], …], "asks": [[0.51, 30.0], …] },
  "orderbook_down": { "bids": [ … ],               "asks": [[0.50, 304.25], …] }
}], "pagination": { … }, "meta": { … } }
GET/v3/{coin}/markets/{market_id}/snapshots/at/{timestamp}

Snapshot tunggal terdekat dengan cap waktu (dalam ±2 detik). {timestamp} adalah ms-epoch atau ISO-8601. Tidak seperti endpoint daftar, data adalah sebuah objek tunggal (bentuk baris yang sama) dengan tidak pagination blok; tidak ada kecocokan dalam ±2 d kembali 404 SNAPSHOT_NOT_FOUND.

json
{ "data": {
  "id": "1780774485780", "time": "2026-06-06 19:34:45.780",
  "market_id": "2456720", "btc_price": 60606.68,
  "price_up": 0.505, "price_down": 0.495,
  "orderbook_up":   { "bids": [[0.50, 304.25], …], "asks": [[0.51, 30.0], …] },
  "orderbook_down": { "bids": [ … ],               "asks": [[0.50, 304.25], …] }
}, "meta": { … } }

Level adalah [price, size]. price_up adalah titik tengah tawaran/permintaan terbaik; price_down = 1 − price_up. The orderbook_down sisi diturunkan sebagai komplemen biner dari buku naik (down = 1 − up, ukuran dipertahankan). Harga koin adalah tick terdekat sebelumnya melalui join ASOF — tepat untuk 1j/4j/24j, proxy Binance berlabel untuk 5m/15m.

Setiap baris adalah buku lengkap sesuai cap waktunya, bukan delta terhadap baris sebelumnya, jadi Anda tidak perlu membangun ulang status dari perubahan. Untuk aliran perubahan itu sendiri, gunakan ticks.

Rute snapshot venue lain

Kontrak yang sama — jendela, kursor, interval, fill, jendela riwayat paket — dilayani oleh satu rute per venue. Mereka berbeda dalam pengenal yang mereka ambil dan bagaimana dua sisi pasar biner disajikan, karena venue itu sendiri melakukannya.

RutePengidentifikasiBentuk buku
/v3/{coin}/markets/{market_id}/snapshotsNumerik market_id dari /v3/{coin}/marketsTampilan acara per koin: price_up/price_down hanya, kecuali Anda menambahkan include_orderbook=true
/v3/polymarket/{asset_id}/snapshotsID token — clob_token_up/clob_token_down, atau asset_id dari /v3/polymarket/marketsBuku satu token: bids dan asks array. Ini adalah tangga yes/no asli venue; jangan diam-diam memperlakukannya sebagai tabel bid/ask yang dinormalisasi.
/v3/kalshi/{ticker}/snapshotsticker dari /v3/kalshi/marketsyes dan tidak tangga
/v3/limitless/{slug}/snapshotsslug dari /v3/limitless/marketsbids, asks, dan sebuah midpoint
/v3/predictfun/{id}/snapshotsmarket_id dari /v3/predictfun/marketsBersarang up dan down objek, masing-masing dengan bids/asks
/v3/{coin}/{venue}/snapshotsvenue adalah spot atau futures — bukan nama bursa20-level buku dasar: bids, asks, price

Rute Polymarket mencapai seluruh venue, bukan hanya tangga kripto — pemilihan, olahraga, dan semua yang terdaftar Polymarket. Rute per koin adalah tampilan naik/turun kripto dengan harga dasar yang digabungkan.

Tape mentah: setiap perubahan buku pesanan individu, bukan seri snapshot yang diambil sampelnya. Di mana snapshot memberikan Anda buku pada titik waktu tertentu, ticks memberikan setiap perubahan di antaranya — apa yang dibutuhkan oleh alur kerja pembuatan pasar atau penelitian eksekusi untuk menanyakan di mana buku itu tepat sebelum pengisian, atau berapa lama sebuah level bertahan sebelum diambil.

Hanya untuk enterprise. Rencana lain menerima 402 TICKS_NOT_IN_PLAN.

GET/v3/{coin}/markets/{market_id}/ticksperusahaan

Polymarket, bersumber dari stream delta CLOB. Kedua token hasil dikembalikan secara default dan diberi tag outcome; persempit dengan ?outcome=up atau ?outcome=down.

Sejarah: pita berkelanjutan dari 2026-06-25 (diperiksa 2026-09-02) dan terus bertambah, sehingga jendela yang dapat diandalkan bertambah sehari setiap hari. Hari-hari sebelum itu ada di arsip tetapi tidak berurutan — 61 di antaranya hilang antara 2026-04-14 dan rentetan berkelanjutan — jadi backtest yang membutuhkan seri tanpa putus harus mulai tidak lebih awal dari 2026-06-25.

Cakupan: pasar naik/turun pada 5m, 15m dan 24h jendela, di seluruh tujuh aset. The 1h dan 4h keluarga naik/turun adalah bukan saat ini dalam pita tick — gunakan snapshot untuk itu.

json
{ "data": [{
  "id": "1780774485780", "time": "2026-06-06 19:34:45.780",
  "received_ms": "1780774485812", "outcome": "up",
  "token_id": "7194…", "side": "BUY", "price": 0.505, "size": 1240.0
}], "pagination": { … }, "meta": { … } }
GET/v3/kalshi/{ticker}/ticksperusahaan

Baru — penangkapan tick Kalshi dimulai 2026-08-07. Tidak ada riwayat tick Kalshi sebelum tanggal itu; tape terkumpul maju dari sana. Kalshi snapshot tetap tersedia selama jendela sejarah penuh.

Cakupan adalah subset bergulir, bukan setiap pasar Kalshi: tujuh aset kripto, diprioritaskan berdasarkan kedaluwarsa terdekat, dengan jumlah pasar terbatas yang direkam secara bersamaan. Hubungi kami jika Anda membutuhkan seri tertentu yang dicakup.

Sumber dari yang terautentikasi orderbook_delta WebSocket. kind adalah snapshot untuk baris yang menjadi jangkar buku (jadi jendela apa pun yang Anda minta dimulai dari keadaan lengkap) atau delta untuk perubahan. delta adalah perubahan ukuran bertanda dan size adalah ukuran yang diam pada harga itu setelah itu. seq adalah nomor urut Kalshi sendiri untuk sesi penangkapan — bertambah tepat satu selama sesi, sehingga Anda dapat memverifikasi rekaman lengkap daripada hanya mempercayai kata kami. Sebuah rangkaian snapshot baris menandai sesi baru, di mana ia mulai ulang. Persempit ke satu sisi dengan ?side=yes atau ?side=no.

Merekonstruksi sebuah buku: perlakukan setiap snapshot jalankan sebagai reset keras buku pasar itu, lalu terapkan delta baris dalam seq urutan dalam sesi. Urutkan berdasarkan seq, bukan oleh time: stempel waktu venue sendiri tidak monoton di seluruh level dalam satu milidetik, sementara seq adalah. Setiap seq langkah selain +1 di dalam sesi adalah celah dalam pita untuk rentang itu; tangkapan menyambung kembali dan mengambil snapshot ulang sendiri kapan pun mendeteksi satu, jadi berikutnya snapshot jalankan adalah titik dari mana buku kembali lengkap.

json
{ "data": [{
  "id": "1780774485780", "time": "2026-06-06 19:34:45.780",
  "received_ms": "1780774485791", "seq": "418823",
  "kind": "delta", "side": "yes", "price": 0.62, "delta": -85.0, "size": 240.0
}], "pagination": { … }, "meta": { … } }

Halaman menampung hingga 10000 baris (default 1000) dan dipaginasi kursor seperti endpoint daftar lainnya. Banyak tick biasanya berbagi satu milidetik, jadi kursor membawa posisi dalam cap waktu — paginasi pasar sibuk tidak pernah memisahkan atau menjatuhkan baris yang berbagi saat batas.start_time/end_time pasar apa pun di venue

Buku aset dasar dan tape perdagangan dari Binance. {venue} adalah spot atau futures. Buku adalah 20 level per sisi.

GET/v3/{coin}/{venue}/latest
GET/v3/{coin}/{venue}/snapshots

Snapshot buku terbaru / sejarah buku yang dipaginasi. Setiap snapshot: price (tengah), bids, asks, timestamp.

GET/v3/{coin}/{venue}/trades
GET/v3/{coin}/{venue}/trades/latest

1-detik OHLCV candle dengan pembagian beli/jual agresif — tepat, 1:1 dengan referensi:

json
{ "data": [{
  "id": "1780747762000", "timestamp": "2026-06-06 12:09:22.000",
  "price_open": 61097.1, "price_high": 61097.1,
  "price_low": 61097.09, "price_close": 61097.1,
  "total_volume": 0.01667,
  "aggressive_buy_volume": 0.0156, "aggressive_sell_volume": 0.00107,
  "num_trades": 3
}], "pagination": { … }, "meta": { … } }
Binance tidak menyediakan futures aggTrade melalui websocket ke wilayah kami (stream kedalaman baik), jadi pita perdagangan futures 1s dipolling dari endpoint REST aggTrades dan diagregasi ke OHLCV 1s yang sama seperti spot. Perdagangan spot dan futures, serta semua buku, adalah langsung.

Bar harga OHLCV untuk ekuitas dan ETF yang terdaftar di AS, pasangan spot Binance, dan futures perpetual. Satu menit adalah resolusi paling halus; frame yang lebih kasar digulung dari itu.

GET/v3/bars

symbols adalah daftar yang dipisahkan koma. timeframe adalah salah satu dari 1Min, 5Min, 15Min, 1Hour atau 1Day (default 1Min). start_time, end_time, limit dan cursor berperilaku persis seperti pada setiap koleksi lain di sini.

id adalah cap waktu, bukan kunci unik. Feed kedalaman tiba setiap 100 ms dan bursa kadang memberi cap dua buku berbeda dengan milidetik yang sama, jadi halaman dapat secara sah memuat dua baris dengan satu id dan jendela riwayat paket Anda berlaku seperti biasa. id sendiri akan diam-diam menjatuhkan salah satu dari dua. Kunci pada baris, atau pada (id, sequence within the page).

venue opsional dan memilih pasar secara langsung: us-equities, binance (spot) atau binance-futures (perpetuals). Biarkan mati dan simbol kosong akan diselesaikan untuk Anda — ekuitas dulu, lalu Binance spot. Namai dan Anda mendapatkan pasar itu atau tidak sama sekali, yang Anda inginkan saat sebuah string bisa menjadi dua instrumen.

limit adalah bar per simbol. Permintaan tanpa ini tidak dipaging sama sekali, karena tarik bar alami adalah jendela penuh dan ukuran halaman default akan diam-diam mengembalikan seri pendek — yang tidak dapat dibedakan dari celah data. Saat Anda melakukan paging, setiap seri dipotong pada saat yang sama dan pagination.next_cursor melanjutkan tepat di sana: tanpa tumpang tindih, tanpa celah.

bash
curl -H "X-API-Key: $DEPTHFEED_KEY" \
  "https://api.depthfeed.com/v3/bars?symbols=AAPL,BTCUSDT&timeframe=1Hour&start_time=2026-08-01T00:00:00Z"
json
{ "data": {
  "timeframe": "1Hour",
  "license_class": "source_attributed_public_serving",
  "attribution": "Market data via QuarterTrace. Source-attributed; not a consolidated (SIP) feed.",
  "series": [{
    "symbol": "AAPL", "timeframe": "1Hour", "assetClass": "equity",
    "source": "yahoo_finance", "derived": true,
    "t": [1785974400000, 1785978000000],
    "open": [306.83, 307.04], "high": [307.9, 308.1],
    "low": [306.1, 306.55], "close": [307.04, 307.8],
    "volume": [1043200, 887400]
  }]
}, "meta": { … } }

Cara mengeja simbol

Saham dan ETF adalah ticker biasa mereka: AAPL, SPY, BRK-B. Pasangan kripto dieja sesuai cara venue mengejanya, jadi itu adalah BTCUSDT daripada BTC. Futures perpetual mengambil .P akhiran — BTCUSDT.P, AAPLUSDT.P — karena pasangan spot dan perp adalah instrumen berbeda yang diperdagangkan pada harga berbeda, dan ruang simbol datar yang diam-diam memilih satu untuk Anda akan memilih pasar mana yang diukur strategi Anda.

Tiga string adalah ETF AS dan pasangan Binance: BTCU, ETHU dan WLDU. Masing-masing mengarah ke ekuitas, diputuskan berdasarkan alam semesta simbol daripada rentang tanggal Anda — jadi jawabannya tidak pernah berubah saat Anda menggeser jendela. Pasangan crypto masih dapat dijangkau dengan ejaan venue sendiri.

Bingkai turunan

Saham dikumpulkan di 1Min dan 1Day; crypto dikumpulkan pada 1Min. Apa pun selain itu diagregasi saat dibaca, dan sebuah seri menyatakan mana dengan derived. Bar agregat mengambil open bar pertama dan close bar terakhir, ekstrem high dan low, serta jumlah volume, di atas ember yang diselaraskan UTC.

Batasan

Tiga batas terpisah, dan mereka gagal dengan tiga kode berbeda. Jendela riwayat rencana Anda berlaku di sini seperti di tempat lain — melewati itu, 403 HISTORY_LIMIT_EXCEEDED. Simbol per permintaan adalah 3 di Explorer, 8 di Quant, 16 di Research, 32 di Desk; lebih dari itu, 402 SYMBOL_LIMIT_EXCEEDED. Dan satu permintaan hanya dapat mencakup waktu sebanyak jumlah baris frame memungkinkan — 45 hari pada 1Min, 180 di 5Min, satu tahun di 15Min dan 1Hour, sepuluh tahun di 1Day — di atas mana ia mengembalikan 400 WINDOW_TOO_WIDE. Halaman dengan limit dan cursor untuk menjelajahi rentang yang lebih luas dari satu permintaan.

Respons keempat bukanlah batas tetapi momen: 503 BARS_BUSY berarti layanan bar sedang mencapai batas konkurensinya sekarang. Ini membawa details.retry_after dalam detik, seperti penolakan batas laju, dan permintaan yang sama biasanya berhasil pada percobaan berikutnya — perlakukan sebagai mundur dan coba lagi, bukan sebagai gangguan.

Satu jendela, satu makna. Bar dibatasi oleh jendela riwayat paket yang sama dengan kedalaman buku order, ditolak dengan cara yang sama setelahnya (403 HISTORY_LIMIT_EXCEEDED, dengan oldest_allowed di dalam detail). Open-source Pembuat Strategi membaca endpoint ini dengan kunci Anda sendiri, jadi backtest di sana mencapai kembali persis sejauh paket Anda di sini.
Data ini adalah beratribut sumber dan bukan feed terkonsolidasi (SIP), dan ini bukan afiliasi bursa, NBBO atau feed redistribusi langsung bursa. Setiap respons membawa attribution string dan setiap seri menamai sendiri source; keduanya harus dibawa bersama data jika Anda menampilkannya.

Kontrak kripto Kalshi — kedalaman yes/no penuh yang tidak dibawa referensi. 21 seri untuk semua aset 7: 15 menit KX{ASSET}15M, ambang batas KX{ASSET}, dan arah KX{ASSET}D. Threshold dan seri arah masing-masing menjalankan pasar jam, harian, dan mingguan secara bersamaan — market_type membawa jendela aktual setiap pasar.

GET/v3/kalshi/markets

Filter: ?coin= (aset dasar), ?type= (jendela), dan tepat ?series= (misalnya KXBTC15M). Untuk unduhan historis, berikan start_time dan end_time di sini terlebih dahulu dan gunakan ticker asli venue yang dikembalikan. Jangan buat ID ticker Kalshi dari cap waktu UTC; konvensi jam ticker venue berubah secara historis.

Secara default daftar dibatasi pada pasar yang buku ordernya ditangkap dalam jendela rencana Anda, sehingga setiap baris memiliki data yang dapat diambil /snapshots. Lewati ?include_uncaptured=true untuk seluruh katalog venue: setiap seri yang terdaftar Kalshi, termasuk olahraga, politik, ekonomi, cuaca dan hiburan. Baris tersebut membawa lilin, bukan buku; depth_captured pada setiap baris mengatakan jenis apa yang Anda lihat.

Setiap baris membawa category, label seri venue sendiri (Politics, Olahraga, Kripto, Climate and Weather, …). Saring dengan ?category=politics,elections atau ?exclude_category=sports,crypto; keduanya mengambil daftar yang dipisahkan koma, membandingkan case-insensitively, dan dapat digabungkan. Gunakan category untuk ini, bukan base_asset: base_asset dibaca dari awalan seri dan hanya bermakna pada baris kripto.

GET/v3/kalshi/{ticker}/orderbook/latest

Buku yes/no penuh terbaru untuk ticker. yes/tidak adalah waktu publikasi katalog. Identitas, kickoff, pencabutan pemetaan dan pembaruan bukti menerbitkan pembaruan. [price, size] array (harga dalam 0–1 dolar).

json
{ "data": {
  "ticker": "KXHYPED-26JUN0717-T73.9999", "series": "KXHYPED",
  "base_asset": "hype", "market_type": "24h",
  "id": "1780…", "timestamp": "…",
  "yes": [[0.62, 1400], …], "no": [[0.38, 900], …]
}, "meta": { … } }
GET/v3/kalshi/{ticker}/snapshots

The historis seri kedalaman ya/tidak untuk satu ticker pasar yang ditemukan tepat — bentuk baris sama, diurutkan berdasarkan waktu terima, berjendela waktu + paginasi kursor (include_count opsional, maksimum 1000). Riwayat buku Kalshi yang ditangkap ke depan dari loop polling REST yang teratur. Irama efektif bervariasi dengan set pasar aktif dan batas API; menggunakan pola endpoint historis yang sama seperti Polymarket dan Limitless /snapshots, jadi kedalaman Kalshi juga dapat diuji ulang. Memberikan seri seperti KXBTC15M, atau ticker historis yang dibuat-buat, mengembalikan kesalahan penemuan eksplisit daripada halaman kosong yang menyesatkan.

GET/v3/kalshi/{ticker}/candles

Per jam OHLC dari tawaran ya, permintaan ya dan harga yang diperdagangkan, plus volume dan open_interest. Ini adalah satu-satunya sejarah yang ada untuk sebagian besar katalog Kalshi: Kalshi tidak menyediakan buku order historis, jadi pasar yang ditutup sebelum penangkapan buku kami dimulai tidak memiliki /snapshots dan tidak ada yang diterapkan. Wildcard dan buku olahraga langsung adalah dua hal yang tidak tercakup hanya oleh batas langganan. /ticks — tetapi memiliki candle, mencapai kembali hingga satu tahun.

Berjendela waktu dan dipaginasi kursor seperti /snapshots (maks 5000 baris), dibatasi oleh jendela riwayat paket Anda. ?interval= memilih periode lilin; hanya 1h direkam, dan nilai lain mengembalikan kesalahan eksplisit yang menyebutkan apa yang ada daripada halaman kosong. Lilin disimpan seperti yang direkam dan tidak pernah disampel ulang, jadi periode yang lebih pendek tidak pernah disintesis dari yang lebih panjang.

price adalah null ketika tidak ada perdagangan dalam periode tersebut — sekitar 95% dari mereka. Sisi kutipan selalu nyata, jadi jam sepi tetap memberi tahu Anda posisi buku. Cakupan adalah pasar jangka panjang (buka sampai tutup lebih dari 24 jam); ladder crypto jangka pendek ditangkap dengan resolusi penuh oleh /snapshots dan /ticks sebagai gantinya, dan meminta lilin mereka mengembalikan sebuah 404 yang mengatakannya.

json
{ "data": [{
  "ticker": "KXFEDDECISION-26JUL-H26", "series": "KXFEDDECISION",
  "market_type": "1w", "id": "1786168800000", "timestamp": "…",
  "period_minutes": 60,
  "yes_bid": { "open": 0.56, "high": 0.58, "low": 0.55, "close": 0.57 },
  "yes_ask": { "open": 0.64, "high": 0.65, "low": 0.62, "close": 0.63 },
  "price":   { "open": 0.60, "high": 0.61, "low": 0.59, "close": 0.61 },
  "volume": 240, "open_interest": 1180
}], "pagination": { … }, "meta": { … } }

Membandingkan ketiga venue sekaligus? Mulailah dari penyaring lintas venue alih-alih menjahit panggilan per venue.

Polymarket AS adalah pasar kontrak yang ditunjuk CFTC dan venue terpisah dari Polymarket: pasar dikunci pada slug, tidak ada condition_id dan tidak ada yang diterapkan. Wildcard dan buku olahraga langsung adalah dua hal yang tidak tercakup hanya oleh batas langganan. asset_id, dan tidak ada yang di sini bergabung dengan permukaan Polymarket di atas. Hanya paket berbayar. Venue ini dalam pengujian langsung: katalog, harga dan perdagangan dilayani di setiap kategori, dan cakupan buku masih diperluas.

GET/v3/polymarket-us/markets

Katalog venue, setiap kategori, penutupan terbaru terlebih dahulu dan dipaginasi kursor. Setiap baris membawa category (olahraga, crypto, politics, climate, culture, macro, technology, finance, geopolitics, science). Saring dengan ?category=politics,macro atau ?exclude_category=sports,crypto: dipisahkan koma, tidak peka huruf besar/kecil, dapat digabungkan. Filter lain: ?coin=, ?type= (15m, 1h, futures, …), ?series=, ?closed=, ?resolved=, start_time/end_time pada waktu penutupan. Untuk sebuah mirror, ?updated_since= mengembalikan hanya baris yang kontennya berubah sejak waktu itu (daftar, penutupan, perubahan status); setiap baris updated_at adalah cap waktu itu. sports_market_type adalah bidang venue yang juga diisi venue di luar olahraga; ini bukan diskriminator olahraga, category adalah.

GET/v3/polymarket-us/{slug}/orderbook/latest
GET/v3/polymarket-us/{slug}/snapshots

Buku terbaru, dan seri buku yang ditangkap, untuk satu slug. Kedalaman di venue ini direkam sejak hari penangkapan dimulai dan disimpan selama 14 hari; pasar di luar jendela itu mengembalikan 404 di sini bahkan ketika baris katalognya ada. Cakupan per pasar: tangga naik/turun ditangkap secara terus-menerus, kategori jangka panjang hanya sebagian.

GET/v3/polymarket-us/{slug}/prices
GET/v3/polymarket-us/{slug}/trades
GET/v3/polymarket-us/{slug}/settlement

Harga satu menit, pita eksekusi venue, dan penyelesaian per pasar. Harga dan perdagangan ada untuk sebagian besar pasar yang dikatalogkan di setiap kategori; baris penyelesaian muncul setelah venue melaporkan hasil.

Limitless Exchange — CLOB di Base yang menjalankan pasar kripto naik/turun berulang di 5m dan 15m. Depth ditangkap secara langsung melalui websocket order-book-nya (jadi bahkan buku cepat 5m juga direkam). {slug} terlihat seperti btc-up-or-down-15-min-1780798512077.

GET/v3/limitless/markets

Slot terbuka saat ini. Filter: ?coin= dan ?type= (5m/15m).

GET/v3/limitless/{slug}/orderbook/latest

Kedalaman L2 terbaru untuk slug (bid menurun, ask menaik):

json
{ "data": {
  "slug": "btc-up-or-down-15-min-1780798512077", "condition_id": "0x…",
  "base_asset": "btc", "market_type": "15m",
  "id": "1780798…", "timestamp": "2026-06-07 02:27:09.532", "midpoint": 0.5,
  "bids": [[0.45, 200.0], …], "asks": [[0.46, 120.0], …]
}, "meta": { … } }
GET/v3/limitless/{slug}/snapshots

The historis seri kedalaman untuk satu slug — bentuk baris sama, diurutkan berdasarkan waktu terima, dibatasi jendela waktu + dipaginasi kursor. Ini adalah riwayat buku pesanan yang ditangkap maju.

Pasar prediksi crypto Binance Wallet yang didukung Predict.fun, dinormalisasi ke namespace DepthFeed khusus. Katalog awal mencakup pasar naik/turun BTC, ETH, dan BNB.

GET/v3/binance-prediction/markets

Saring dengan ?coin=btc, ?type=5m, atau ?status=resolved. Hasil mencakup ID pasar/topik, metadata kondisi dan token, resolusi, hasil pemenang, volume, likuiditas, jumlah peserta, rantai, dan kontrak bursa.

GET/v3/binance-prediction/{market_id}/orderbook/latest
GET/v3/binance-prediction/{market_id}/snapshots

Kedalaman L2 penuh terbaru dan historis. Panel siklus hidup standar BTC 15-menit dimulai 26 Juni 2026; penangkapan stabil satu menit ke depan di seluruh pasar langsung yang dilacak dimulai 26 Juli. Buku istirahat sebelumnya tidak dapat direkonstruksi dari data penyelesaian.

GET/v3/binance-prediction/{market_id}/timeseries?metric=chance
GET/v3/binance-prediction/{market_id}/timeseries?metric=price
GET/v3/binance-prediction/{market_id}/timeseries?metric=last_trade
GET/v3/binance-prediction/{market_id}/trades

Probabilitas, harga yang ditampilkan, dan sampel perdagangan terakhir disimpan terpisah dan mulai pada 17 Juli 2026. Rute perdagangan disimpan sementara pengisian historis direkonstruksi dari log BNB Smart Chain dan saat ini mengembalikan dataset historis kosong.

Katalog deterministik 5 menit dan 15 menit, resolusi, volume, dan riwayat likuiditas diisi ulang dari 5 Mei 2026. Yang setara /v3/predictfun/* jalur tetap alias kompatibel. Pelanggan menggunakan kunci DepthFeed; tidak diperlukan kunci Binance atau pengaitan dompet.

Mulai di sini untuk apa pun lintas venue. Screener menjawab pertanyaan inti — bagaimana pasar “naik atau turun” yang sama dihargai di Polymarket, Kalshi, dan Limitless saat ini? — dalam sebuah permintaan tunggal, sehingga Anda tidak pernah menggabungkan tiga endpoint per venue (dengan tiga pengenal berbeda) sendiri. Setiap paket melihat ketiga venue; jendela riwayat paket adalah satu-satunya perbedaan saat Anda mengikuti sel ke riwayatnya.

GET/v3/screener

Grid: satu sel per aset dengan probabilitas “naik” terbaru setiap venue, tawaran/permintaan terbaik, dan referensi penyelesaian. Buku placeholder/kosong melaporkan null daripada 0.50 yang tidak berarti.

json
{ "data": {
  "assets":  ["btc","eth","sol","xrp","doge","bnb","hype"],
  "windows": ["5m","15m","1h","4h","24h"],
  "cells": [{ "asset": "btc",
    "polymarket": { "up": 0.735, "down": 0.265, "best_bid": 0.73, "best_ask": 0.74, "price_to_beat": 62764.0 },
    "kalshi":     { "up": 0.71,  "down": 0.29,  … },
    "limitless":  { "up": 0.75,  "down": 0.25,  "slug": "btc-up-or-down-…", … } }],
  "paid": true
}, "meta": { … } }
GET/v3/screener/{asset}/{window}

Telusuri satu (aset, jendela): buku L2 penuh di setiap venue berdampingan (books.polymarket / books.kalshi / books.limitless), plus seri spot dasar dan penyelesaian price_to_beat — panggilan tunggal yang benar-benar dibutuhkan oleh backtest lintas-venue atau layar arb.

GET/v3/overviewtanpa otentikasi

Ikhtisar seri waktu lintas venue per aset (segmen harga per jendela) — yang menggerakkan grafik ikhtisar dashboard. Publik, tanpa kunci diperlukan; pilih dengan ?asset=.

POST/v3/batch

Jalankan hingga 10 GET /v3/ permintaan dalam satu perjalanan pulang-pergi. Setiap sub-permintaan dikirim secara independen dan mendapatkan status sendiri.

shell
curl -X POST https://api.depthfeed.com/v3/batch \
  -H "Authorization: Bearer df_your_key" -H "Content-Type: application/json" \
  -d '{ "requests": [
    { "id": "a", "method": "GET", "path": "/v3/btc/markets?limit=1" },
    { "id": "b", "method": "GET", "path": "/v3/limitless/markets?type=5m&limit=1" },
    { "id": "c", "method": "GET", "path": "/v3/bars?symbols=BTCUSDT&timeframe=1Hour" }
  ] }'

Kedalaman kontrak dan bar harga dasar dalam satu perjalanan pulang pergi adalah pasangan yang ada untuknya — /v3/bars adalah sub-permintaan seperti yang lain.

Pengembalian { data: [ { id, status, body }, … ] } dengan sebuah luar 200. Lebih dari 10 sub-permintaan → 400 BATCH_TOO_LARGE; bukan GET atau bukan/v3/ jalur mendapatkan per-sub 400 BATCH_INVALID_PATH.

Diperbarui September 19, 2026. Lihat panduan integrasi saat ini untuk pengenal, koreksi, paging dan pemeriksaan kelengkapan.

Identitas fixture, kandidat dan kontrak

BidangMakna
game_slugHandle game spesifik venue; bukan kunci gabungan lintas venue.
cross_venue_keyFixture atau subjek yang didukung sama; bukan ketentuan pembayaran setara.
contract_mapping.candidate_keyGrup subjek yang berisi fixture yang didukung; dapat diubah setelah koreksi dan berpotensi banyak-ke-banyak.
contract_mapping.outcomes[].participant_keyPeserta kanonik untuk token hasil, independen dari urutan array.
cross_venue_market_keyKunci kontrak setara yang dikonfirmasi; null kecuali status cocok.
contract_mapping.outcomes[].cross_venue_outcome_keyKunci hasil yang dikonfirmasi; null tanpa kesetaraan kontrak yang ditinjau.

Ada kind, outcomes dan tokens tetap berupa string asli venue; hasil dan token sejajar berdasarkan indeks dalam satu baris. fixture_participants menyediakan peserta fixture kanonik secara independen dari jenis pasar. market_family dan market_period normalisasi label jenis yang didukung tanpa menyatakan garis, sisi atau aturan setara. Label Ya/Tidak dan Over/Under generik tidak ditetapkan ke tim. Kontrak Kalshi YES satu token tetap satu token; komplemennya NO tidak otomatis menjadi lawan.

Kandidat moneyline dievaluasi di seluruh liga ketika fixture dan hasil berlabel dua peserta dapat diidentifikasi. Perbandingan spread setengah unit, total, dan total tim yang terikat sumber sekarang menggunakan sports-lines-v1, contract_spec dan sisi per hasil. Periode setengah/kuartal asli menggantikan label jenis generik. Proposition count asli eksplisit dapat dinormalisasi ke batas setengah unit ketika strike, metrik, dan subjeknya setuju. Permainan/set tenis, permainan/peta esports, tendangan sudut, touchdown, field goal, dan yard ofensif mempertahankan metrik yang berbeda. Total lima pertama adalah lari gabungan; cakupan inning individu tetap berbeda. Garis integer/push dan split, metrik tidak diketahui, futures dan props tidak didukung; konsultasikan kontrak pemetaan untuk semantik signed-spread. Registri profil yang ditinjau saat ini tidak memiliki pasangan ekuivalen yang disetujui; kunci yang dikonfirmasi oleh karena itu null. Kunci kandidat mendukung pengelompokan subjek dengan keputusan penyelesaian yang ditinjau terpisah; mereka tidak menggantikan ekuivalensi yang dikonfirmasi. Tidak ada tanggal untuk pencocokan yang dikonfirmasi lebih luas yang dikomitmenkan.

Tingkat atas cross_venue_market_key dan contract_mapping.cross_venue_market_key tidak diharapkan cocok antar venue. Perbedaan besar adalah sinyal tinjauan, bukan bukti baris hilang atau duplikat. GET /v3/sports/markets/{condition_id}/contract; bukti yang tidak ada adalah null, dan bukti yang kedaluwarsa atau tidak cocok dengan input ditandai secara eksplisit. GET /v3/sports/market-families mengembalikan peta silang jenis yang dapat dibaca mesin.

StatusInterpretasi
matchedPihak lawan berbagi persyaratan penyelesaian yang ditinjau; gunakan kunci yang dikonfirmasi.
unmatchedPerbedaan yang diketahui, cakupan yang tidak didukung, atau pihak lawan yang hilang mencegah penggabungan.
needs_reviewKetersediaan bukti, identitas atau pemetaan tidak memadai; jangan anggap setara.

Perbandingan mencakup periode, lembur, seri, penundaan, pembatalan, sumber hasil, finalitas hasil, pengabaian, pengurangan, perubahan venue dan aturan material lainnya. Ekstraksi diagnostik bukan bukti kesetaraan: pemetaan yang dikonfirmasi memerlukan terms_verified: true, hash bukti dan bukti sumber segar.

Untuk Rams vs. 49ers, identitas peserta saja tidak menyelesaikan klausa penundaan yang berbeda. Bukti dan diagnostik dapat kedaluwarsa; baca kode alasan saat ini dan bukti sumber daripada mengkodekan status contoh secara keras.

Kunci kandidat termasuk identitas fixture dan dapat berubah atau dihapus setelah koreksi identitas, garis, periode, atau keluarga. Upsert oleh condition_id, konsumsi updated_since delta dan mempertahankan versi baris sebelumnya untuk gabungan historis. candidate_group menampilkan jumlah venue asli dan ID kondisi; tidak ada pasar otoritatif yang dipilih di antara beberapa daftar asli.

Spread kuartal, total dan jenis total tim diklasifikasikan secara eksplisit. Kandidat biner terikat sumber menggunakan sports-binary-v1 dan predikat eksplisit: jangan pernah menyimpulkan makna dari label seperti nrfi. Hasil garis yang didukung bergabung berdasarkan sisi dalam kandidat; hasil moneyline bergabung berdasarkan peserta. Lihat referensi API olahraga untuk parameter endpoint dan bidang respons sebelum menyimpan gabungan.

Triage kualitas data dan butir baris

Satu baris adalah catatan pasar katalog. Beberapa baris moneyline Kalshi mengelompokkan dua kontrak YES independen; catatan lain menampilkan satu kontrak. Sebuah fixture dapat menghasilkan hasil moneyline terpisah, spread, total, total tim, props, varian garis, dan catatan kondisi historis, sehingga jumlah yang dikelompokkan oleh cross_venue_key adalah saat direkam —

resolved=false berarti venue belum menandai kondisi itu sebagai final; ini tidak berarti pemetaan belum terselesaikan. Pasar bisa belum terselesaikan dengan kunci fixture kandidat, atau terselesaikan dengan pemetaan null atau dicabut. Pertahankan resolved, contract_mapping.status dan membiarkan koneksi tetap terbuka. Mereka adalah kode frame, bukan status HTTP.

Untuk audit, daftarkan league, scope dan kind dengan GET /v3/sports/markets, lalu bandingkan baris dengan tanda tangan normalisasi yang sama: pertandingan, periode, peserta, garis, sisi, jenis dan profil penyelesaian. Gunakan candidate_key untuk grup kandidat dan cross_venue_market_key hanya untuk gabungan yang dikonfirmasi. Jangan pernah mengisi kunci null dari slug, judul, posisi array atau rasio jumlah baris; pertahankan reason_codes dan filter tetap di seluruh kursor.

Slug venue dapat berbeda untuk fixture yang sama. Misalnya, Kalshi kalshi-soccer-ieloak-2026-09-20 dan Polymarket uslc-iel-oak-2026-09-20 memerlukan pemeriksaan fixture, peserta, waktu mulai dan penyelesaian sebelum bergabung.

Koreksi bertahap

/v3/sports/markets?updated_since= menerima epoch milidetik, ISO-8601 atau tanggal. updated_at dan updated_ms hampir sama tapi tidak sama bahkan pada penangkapan, karena penangkapan terjadi di dalam ember bukan di batasnya:

  1. Simpan waktu mulai polling dan checkpoint sebelumnya.
  2. Simpan updated_since dan kursor dari awal untuk koleksi lengkap. Pembacaan data gagal mengembalikan
  3. Upsert oleh condition_id, termasuk null yang mencabut pemetaan lama.
  4. Sertakan pasar yang sudah diselesaikan selama polling koreksi.
  5. Maju dari awal polling dengan tumpang tindih hanya setelah setiap halaman berhasil.

Perubahan yang dipertahankan pada kunci fixture, identitas peserta, metadata keluarga jenis, dan bukti kontrak diterbitkan ulang melalui delta katalog. Kedaluwarsa bukti jam dinding berbeda: berhenti menggunakan kunci yang dikonfirmasi pada evidence_valid_until_ms bahkan sebelum delta pencabutan tiba. Kedaluwarsa mempertahankan identitas kandidat dan peserta. Ini menggantikan panduan lama bahwa koreksi fixture bisa melewati updated_at. Ikuti alur kerja koreksi di atas dan aturan validasi integrasi ketika mempertahankan atau menyegarkan pemetaan.

Koreksi metadata tidak memperbaiki baris buku historis. Ambil ulang sejarah yang terpengaruh secara terpisah.

Validasi respons

Periksa meta.partial bahkan setelah HTTP 200. Pertahankan harga null, ikuti kursor buram saat has_more benar, dan jangan anggap jumlah atau metadata resolusi sebagai bukti kelengkapan di seluruh venue. Baris yang diisi maju adalah pengamatan yang dibawa, bukan penangkapan baru.

Waktu Nyata olahraga data pasar prediksi — kedalaman buku order langsung di Polymarket dan Kalshi, bersama dengan odds sportsbook, skor langsung, dan feed cedera di liga utama (NBA, NFL, MLB, NHL, sepak bola, tenis, UFC, F1 dan lainnya). Kedua venue termasuk bersama di setiap tingkat; paket mengubah jendela sejarah bersama, throughput, dan konkruensi buku langsung. Sama{ data, meta, pagination } amplop, otentikasi, dan paginasi kursor seperti API lainnya.

Menemukan pasar. Jelajahi corong: /v3/sports/leagues → /v3/sports/markets?league=… → ambil tokens[] (masing-masing adalah satu hasil asset_id) → /v3/sports/books/{asset_id}/latest untuk buku langsung.

GET/v3/sports/overview

Cakupan dan status akun. Hak olahraga paket Anda, venue dan liga yang dilacak, jumlah pasar dan buku, dan jendela riwayat yang disimpan, dalam satu panggilan. Tidak membawa data pasar atau buku; corong di atas adalah rute ke buku langsung.

GET/v3/sports/leagues

Liga yang kami lacak, masing-masing dengan jumlah permainan dan pasar — puncak corong penemuan.

GET/v3/sports/markets

Pasar olahraga di Polymarket dan Kalshi. Saring dengan ?league= (misalnya nba, mlb, soccer); dipaginasi kursor seperti setiap endpoint daftar (?limit=, ?cursor=). Setiap pasar membawa condition_id, market_slug, outcomes, dan tokens — per hasil asset_idyang Anda berikan ke endpoint buku.

json
{ "data": [{
  "condition_id": "0xfb53…", "market_slug": "mls-nyc-laf-…-total-2pt5",
  "league": "soccer", "kind": "totals", "title": "New York City FC vs. Los Angeles FC",
  "outcomes": ["Over", "Under"],
  "tokens": ["45485059…", "38846626…"],   // one asset_id per outcome
  "game_start": "2026-11-05T00:30:00Z", "resolved": false
}], "pagination": { "next_cursor": "…", "has_more": true, "limit": 50 }, "meta": { … } }
GET/v3/sports/books/{asset_id}/latest

Buku pesanan penuh terbaru yang direkam untuk satu hasil — asset_id adalah token dari pasartokens[]. Tangga datang sebagai empat array yang selaras indeks (bid_prices dengan bid_sizes, ask_prices dengan ask_sizes) daripada [price, size] pasangan yang dikembalikan rute kripto; Apa yang dibagikan setiap rute buku mencantumkan setiap perbedaan. Untuk penggunaan langsung sensitif latensi, Quant dan tingkat lebih tinggi dapat berlangganan saluran WebSocket olahraga di bawah.

Rute buku mengambil token, bukan condition_id. Pasar memiliki satu condition_id dan baca tokens[] per hasil, dan buku milik hasil tersebut. Pada baris Kalshi kedua string kebetulan sama, jadi kode yang membaca condition_id bekerja pada Kalshi dan kemudian mengembalikan 404 SNAPSHOT_NOT_FOUND pada setiap pasar Polymarket. Baca tokens[].
GET/v3/sports/books/{asset_id}/history

Snapshot tangga penuh historis untuk hasil. Halaman dengan ?limit= dan ?cursor=; ikat waktu dengan ?start_time= / ?end_time= (yang lebih pendek ?from= / ?to= alias juga diterima). Tambahkan ?interval=1m untuk mengembalikan snapshot terbaru di setiap ember yang selaras epoch; unit yang didukung adalah s, m, h, dan d, dari satu detik hingga satu hari. Abaikan, atau gunakanraw / tick, untuk setiap snapshot yang ditangkap. Kedalaman olahraga ditangkap ke depan: arsip Polymarket mulai 14 April 2026 dan arsip Kalshi mulai 12 Juni 2026.

Interval menurunkan sampel; tidak menginterpolasi. Bucket ada dalam respons hanya jika buku ditangkap di dalamnya, jadi jendela dua jam pada ?interval=1m mencakup 120 bucket tetapi mengembalikan hanya menit yang memiliki tangkapan. Untuk hasil yang jarang dikutip — pasar yang masih beberapa hari dari tip-off — biasanya sepuluh sampai dua puluh baris, dan itu adalah pita lengkap untuk jendela tersebut bukan halaman terpotong. Setiap respons yang menggunakan ?interval= membawa sebuah resolution blok sehingga keduanya dapat dibedakan:

json
{ "data": [ … ],
  "pagination": { "count": 13, "has_more": false, "limit": 500 },
  "resolution": {
    "interval_secs": 60,
    "buckets_in_range": 121,   // minutes the window spans
    "buckets_filled": 13,      // minutes that held a capture
    "complete": true           // false while a next_cursor is outstanding
  } }

Jika buckets_filled jauh di bawah buckets_in_range, hasil dikutip jarang — minta interval yang lebih kasar, atau hilangkan dan baca setiap tangkapan. Kepadatan tangkapan mengikuti aktivitas perdagangan: hasil pada permainan yang sedang berlangsung merekam ratusan hingga ribuan snapshot selama dua jam, sementara hasil yang sama tiga minggu ke depan merekam beberapa lusin. Jadi ?interval=1m mengembalikan seri menit hampir lengkap setelah pertandingan dimulai, dan seri pendek untuk pasar yang belum diperdagangkan.

Tambah ?fill=ffill bersama interval untuk grid padat sebagai gantinya: satu baris per ember untuk seluruh jendela, membawa buku terakhir yang ditangkap ke menit yang tidak memiliki tangkapan, setiap baris ditandai filled dan as_of_ts dengan momen saat buku itu direkam. Parameter sama, arti sama, penanda sama seperti setiap rute snapshot lainnya — lihat Mengisi celah.

Rute ini mengembalikan terbaru pertama, dan ini satu-satunya rute buku yang melakukannya. Rute snapshot crypto dan venue mengembalikan yang tertua dulu. Urutkan berdasarkan timestamp baris daripada mengandalkan urutan kedatangan jika Anda membaca keduanya.

Permainan dan konteks pasar yang sudah diselesaikan

GET/v3/sports/{league}/games

Pertandingan dan skor langsung untuk liga (misalnya nba, nfl, soccer/eng.1), masing-masing dengan pasar Polymarket & Kalshi terkait.

GET/v3/sports/games/{game_slug}

Dokumen permainan gabungan: jadwal dan skor akhir, pasar prediksi dan penyelesaian terkait, garis sportsbook, dan konteks cedera. Gunakan rute pendamping di bawah saat Anda membutuhkan lapisan volume tinggi individual.

Daftar pasar yang disematkan adalah pratinjau maksimal 1,000 catatan. Periksa markets_returned dan markets_truncated, lalu ikuti markets_url dan keberadaan kunci sebagai sumbu terpisah. 503 CATALOGUE_UNAVAILABLE; simpan catatan Anda sebelumnya dan coba lagi alih-alih memperlakukan pencarian yang tidak tersedia sebagai hasil kosong.

GET/v3/sports/games/{game_slug}/markets
GET/v3/sports/games/{game_slug}/lines
GET/v3/sports/games/{game_slug}/box
GET/v3/sports/games/{game_slug}/plays
GET/v3/sports/games/{game_slug}/winprob

Pasar permainan, pergerakan garis, skor kotak, play-by-play, dan probabilitas menang per permainan.

Empat ini membutuhkan pertandingan ESPN. Semua kecuali /markets dikunci ke acara ESPN, jadi pertandingan yang tidak dapat kami cocokkan mengembalikan 404 DATA_NOT_FOUND dengan “game is not matched to an ESPN event” — permainan itu sendiri dan pasar prediksinya masih disajikan. Periksa espn aktif /v3/sports/games/{game_slug}: null berarti empat rute di bawah akan 404 untuk itu. Tingkat kecocokan adalah properti liga, bukan pertandingan (diukur 2026-09-02): NHL 97%, NBA 91%, NFL 68%, WNBA 67%, EPL 66%, MLB 59%, UFC 56%, CFB 49% — dan hampir nol untuk esports, kriket, darts dan rugby, di mana tidak ada umpan ESPN yang mendukung katalog. Urutkan kandidat Anda berdasarkan liga sebelum membangun pipeline pada skor kotak.
GET/v3/sports/markets/{condition_id}

Satu pasar yang dinormalisasi dengan pengenal venue, hasil, ID token, gabung permainan, dan status penyelesaian.

Pemain, properti, dan cedera

GET/v3/sports/{league}/players

Cari direktori atlet liga dan ambil ID atlet stabil yang digunakan oleh gabungan player-prop.

GET/v3/sports/players/{athlete_id}
GET/v3/sports/players/{athlete_id}/injuries
GET/v3/sports/players/{athlete_id}/box
GET/v3/sports/players/{athlete_id}/markets

Profil pemain, log perubahan cedera, log permainan box-score, dan properti pasar prediksi yang dipecahkan entitas.

GET/v3/sports/{league}/injuries

Feed cedera langsung per liga — perubahan status pra-pertandingan yang menggerakkan pasar.

Odds sportsbook

GET/v3/sports/odds/lines

Moneyline langsung, spread, total, dan garis prop di seluruh buku, dinormalisasi untuk perbandingan dengan harga pasar.

GET/v3/sports/odds/books

Katalog sportsbook aktif dan kesegaran sumber.

GET/v3/sports/{league}/odds-history

Garis sportsbook historis untuk empat liga: nfl (nflverse, musim 1999–2026) dan epl, la-liga, soccer (football-data.co.uk, 2000/01 ke depan). Liga lain mengembalikan 404 SPORTS_UNKNOWN_ROUTE penamaan keempat ini. Permintaan membutuhkan setidaknya satu filter: NFL mengambil season, team, dari, atau ke; sepak bola mengambil kode musim football-data (misalnya 2324) dan/atau team. Tanpa itu Anda mendapatkan 400 INVALID_PARAMETER mengatakan yang mana.

Setiap musim dapat dijangkau pada setiap rencana, termasuk tingkat gratis. Jendela riwayat paket Anda membatasi data yang ditangkap DepthFeed — buku pesanan, status permainan langsung, perubahan cedera. Ini tidak membatasi dua tabel ini, yang mendistribusikan ulang dataset referensi publik, jadi ?season=1999 mengembalikan 1999 pada kunci Explorer. Paginasi tetap berlaku: NFL mengembalikan hingga 500 baris per halaman dengan cursor, sepak bola hingga 1,000.
GET/v3/sports/odds/stream

Server-Sent Events untuk perubahan garis sportsbook. Kirim Accept: text/event-stream; peristiwa berlalu saat tiba dan koneksi tetap terbuka. Sports order book menggunakan DepthFeed WebSocket utama di bawah.

Webhook cedera

POST/v3/sports/webhookspaket berbayar

Daftarkan penerima HTTPS dengan filter liga dan status cedera. Rahasia penandatanganan ditampilkan sekali. Pengiriman termasuk X-DepthFeed-Event dan X-DepthFeed-Signature; verifikasi tanda tangan HMAC-SHA256 atas badan permintaan mentah yang tepat sebelum mengurai JSON.

shell
curl -X POST "https://api.depthfeed.com/v3/sports/webhooks" \
  -H "Authorization: Bearer df_your_key" -H "Content-Type: application/json" \
  -d '{"url":"https://example.com/depthfeed","leagues":["nba","nfl"],"statuses":["out","questionable"]}'
GET/v3/sports/webhookspaket berbayar
POST/v3/sports/webhooks/{sub_id}/testpaket berbayar
DELETE/v3/sports/webhooks/{sub_id}paket berbayar

Daftar langganan dan kesehatan pengiriman, kirim acara uji yang ditandatangani, atau cabut langganan.

shell
# discover a market, then pull its live book
curl "https://api.depthfeed.com/v3/sports/markets?league=mlb&limit=1" -H "Authorization: Bearer df_your_key"
# take tokens[0] from the response, then:
curl "https://api.depthfeed.com/v3/sports/books/<asset_id>/latest" -H "Authorization: Bearer df_your_key"

FIX 4.4 data pasar melalui TLS

Pratinjau integrasi enterprise. Implementasi telah melewati pengujian end-to-end terisolasi; endpoint FIX publik belum diumumkan. Akses memerlukan endpoint yang disediakan secara individual dan CompID untuk akun Desk (enterprise).

Hubungkan sistem data pasar FIX yang ada ke buku pesanan ternormalisasi dari Binance, Polymarket, Kalshi, Limitless dan saluran olahraga yang didukung. Profil menyediakan snapshot awal, pembaruan tingkat harga baru/perubahan/hapus, heartbeat, nomor urut persisten dan pemulihan pengisian celah diikuti snapshot baru. Mengonsumsi feed yang sama dengan WebSocket.

PengaturanKontrak
KelayakanDesk / hanya perusahaan; pemeriksaan kunci dan rencana langsung, CompID terkait akun
SesiFIX 4.4 melalui TLS terverifikasi 1.2+; ditugaskan SenderCompID dan TargetCompID
MasukKunci API yang ada di tag 554 melalui callback mesin Anda; heartbeat 5–30 detik
Data pasar35=V permintaan; 35=W snapshot; 35=X perubahan tingkat harga; 35=Y penolakan permintaan
PemulihanStatus urutan persisten; kirim ulang pengisian celah; tunggu snapshot pengganti
BatasanHak REST yang ada dan batas koneksi/langganan WebSocket tetap tidak berubah

REST tetap menjadi antarmuka penemuan dan data historis. Profil FIX ini mencakup data pasar; tidak mengarahkan pesanan atau menyediakan pemutaran ulang tick historis. Tidak menambah cakupan tangkapan independen atau jaminan latensi. Timestamp sumber dan timestamp pengiriman gateway berbeda dari penerimaan klien.

Baca profil FIX lengkap untuk simbol, hasil biner, bidang permintaan, ID level deterministik, pemulihan dan batas keamanan. Hubungi dukungan perusahaan untuk status penyediaan. Jangan menebak hostname atau mengirim kunci API ke endpoint FIX yang tidak diverifikasi.

GET/v3/stream

WebSocket yang mendorong buku pesanan dan harga langsung sebagai-back objek JSON yang sama yang dikembalikan endpoint snapshot REST, sehingga kode yang ditulis terhadap REST langsung ditransfer. Autentikasi saat koneksi dengan X-API-Key header, Authorization: Bearer, atau — untuk browser, yang tidak dapat mengatur header WebSocket — ?api_key=df_….

shell
# wscat -c "wss://api.depthfeed.com/v3/stream?api_key=df_your_key"
> {"op":"subscribe","channels":["book:polymarket:btc:2510645","price:btc"]}
< {"op":"subscribed","channels":[…],"active":2}
< {"channel":"price:btc","data":{"coin":"btc","price":63560.1,…},"ts":1781300671083}
< {"channel":"book:polymarket:btc:2510645","data":{…same shape as REST snapshot…},"ts":…}

Saluran

SaluranPayloadCatatan
book:polymarket:<coin>:<market_id>Objek snapshot REST (dengan buku pesanan)Tingkat tick melalui tap websocket CLOB kami
book:kalshi:<coin>:<ticker>Bentuk sama seperti baris /v3/kalshi/…/snapshotsPembaruan dari loop polling Kalshi yang teratur
book:limitless:<coin>:<slug>Bentuk sama seperti baris /v3/limitless/…/snapshotsBerbasis push (tap socket.io)
book:binance:<coin>:<spot|futures>Bentuk sama seperti /v3/…/latest100ms depth feed
book:sports:polymarket:<token_id>Tangga olahraga penuhQuant+: stream CLOB berbasis event pihak pertama
book:sports:kalshi:<ticker>Tangga olahraga penuhQuant+: websocket delta buku order Kalshi upaya terbaik, fallback relay; frame hanya perubahan
price:<coin>{ coin, price, source, venue, id, time }Dasar Binance, ~4 tick/dtk maks

Ops: subscribe · unsubscribe (masing-masing membutuhkan {"channels":[…]}, diterapkan secara atomik) dan ping → pong. Trailing * segmen pasar (misalnya book:kalshi:btc:*) berlangganan seluruh venue/koin — hanya paket Desk. Masalah tingkat operasi (saluran buruk, melebihi batas langganan Anda) kembali sebagai {"op":"error","code":…} frame dan jangan pernah putuskan koneksi.

Saluran olahraga menggunakan pengenal konkret dan tidak mendukung wildcard. Quant, Research, dan Desk masing-masing mengizinkan satu, dua, dan tiga sportsbook bersamaan. Setiap frame olahraga mencakup tangga lengkap, venue, asset_id, timestamp tukar/terima, full_ladder: true, dan sebuahdelivery bidang yang menamai sumber setiap frame: polymarket_clob_ws,kalshi_orderbook_delta_ws, atau scoretape_relay ketika relay olahraga sedang melayani. Buku olahraga Kalshi digerakkan oleh websocket delta order-book Kalshi yang terautentikasi, dengan relay sebagai cadangan, sehingga waktu frame mengikuti aktivitas bursa daripada interval polling tetap. Baca kesegaran dari cap waktu setiap pengamatan daripada mengasumsikan tingkat penyegaran.

shell
> {"op":"subscribe","channels":[
    "book:sports:polymarket:<token_id>",
    "book:sports:kalshi:<market_ticker>"
  ]}
< {"op":"subscribed","channels":[…],"active":2}

Batas per paket

PaketKoneksiLanggananSaluran
Explorer11Setiap venue, semua koin; tanpa sports book
Quant15Setiap venue, semua koin; 1 sports book
Research225Setiap venue, semua koin; 2 sports books
Desk5100Setiap venue, semua koin, plus wildcard; 3 sports books

Kolom saluran sama di setiap baris dengan alasan: rencana juga tidak membeli venue atau koin di sini. Explorer menyiarkan buku apa pun di salah satu dari empat venue — hanya memegang satu langganan sekaligus, jadi saluran kedua dalam subscribe mengembalikan SUB_LIMIT dan satu entri di

Frame kesalahan operasi

Ini tiba sebagai {"op":"error","code":…,"message":…} dan biarkan koneksi tetap terbuka. Mereka adalah kode frame, bukan status HTTP.

kodeMakna
CHANNEL_INVALIDBukan nama saluran yang valid. Bentuknya adalah book:<venue>:<coin>:<market> dan price:<coin>.
UNKNOWN_OPBukan salah satu dari subscribe, unsubscribe, ping.
SUB_LIMITLangganan akan melebihi batas langganan rencana Anda. Tidak ada yang dilanggan — operasi berlaku secara atomik.
SPORTS_SUB_LIMITYang sama, untuk batas buku olahraga bersamaan yang terpisah.
SPORTS_NOT_IN_PLANPaket Anda tidak memiliki langganan buku olahraga latensi rendah.
VENUE_NOT_IN_PLANHanya dikembalikan di permukaan demo anonim. Setiap rencana akun mengalirkan setiap venue.
WILDCARD_NOT_IN_PLANMengekor * segmen pasar hanya Desk. Sebutkan pasar saja.
SLOW_CONSUMERKoneksi Anda terlalu tertinggal dari feed dan frame sedang dijatuhkan. Baca lebih cepat, atau berlangganan lebih sedikit saluran.

Kode tutup & menyambung kembali

KodeMakna
4001Autentikasi gagal (kunci hilang / tidak dikenal / dicabut)
4003Batas koneksi paket tercapai
4029Banjir operasi — perlambat
1013Verifikasi kunci sementara tidak tersedia — coba lagi sebentar lagi

Server mengirim heartbeat dengan ping protokol setiap 25 detik. Deploy dan failover sengaja memutus koneksi — perlakukan putuskan → sambungkan kembali dengan penundaan eksponensial (250ms menggandakan hingga ~5s) dan kirim ulang langganan Anda sebagai siklus hidup normal, bukan jalur kesalahan.

Kesegaran dan latensi

Cadence tangkapan, lag relay, ukuran payload, dan lokasi klien memengaruhi pengiriman ujung-ke-ujung. Frame's ts adalah waktu publikasi gateway; cap waktu di dalam data dapat mewakili acara venue, tangkapan atau catatan tersimpan, tergantung saluran. Usia sumber dan waktu pemrosesan server tidak sama dengan latensi penerimaan klien.

Ukur tanda terima klien independen dengan jam yang disinkronkan, pertahankan asal cap waktu, dan laporkan setiap venue, wilayah, payload, dan jendela pengukuran secara terpisah. Historisdeploy/stream_freshness.py pengamatan menggambarkan rangkaian itu, bukan jaminan latensi saat ini untuk setiap pelanggan. FIX Enterprise menggunakan feed dasar yang sama; cap waktu pengiriman dan sumbernya dijelaskan dalam profil FIX di atas.

Pesan streaming dihitung ke penggunaan Anda seperti respons REST. Langganan dibatasi per rencana, dan kuota per pengguna di semua koneksi. Evaluasi Desk 7 hari yang dibatasi dan otomatis kedaluwarsa tersedia atas permintaan untuk validasi latensi produksi.

Wallet Intelligence adalah ruang kerja penelitian hanya-baca untuk dompet publik Polymarket. Simpan daftar pantauan, temukan trader dari papan peringkat publik Polymarket, dan tinjau posisi publik, aktivitas terbaru, sampel yang direalisasi, dan metrik tingkat portofolio dalam satu tempat. Tidak pernah menghubungkan dompet, menandatangani transaksi, atau melakukan order nyata.

Audit eksekusi buku berikutnya

Untuk setiap perdagangan publik yang memenuhi syarat, DepthFeed menemukan buku Polymarket pertama yang direkam setelah timestamp aktivitas, berjalan di tangga yang ditampilkan untuk jumlah saham yang sama, dan melaporkan harga replay, fraksi yang dapat diisi, keterlambatan yang diamati, dan selisih harga bertanda dibandingkan perdagangan publik. Jendela pencarian adalah 90 detik. Kecocokan yang hilang ditampilkan sebagai hilang; tidak pernah diperkirakan.

Nilai adalah mekanis: Kedalaman yang tersisa berarti setidaknya 95% dari ukuran publik ditampilkan dalam 1¢ dari harga trader; Harga bergerak berarti setidaknya 95% tetap ada tetapi dengan perbedaan di atas 1¢; Ukuran tidak tersedia berarti kurang dari 95% dari ukuran publik yang ditampilkan.

Salinan kertas maju

Mulai cermin kertas dari dompet yang diperiksa mana pun. Hanya perdagangan publik yang diamati setelah cermin dibuat yang memenuhi syarat: DepthFeed menghapus duplikasi setiap pengisian, menerapkan rasio salin dan batas per perdagangan yang dikonfigurasi, lalu mengisinya pada kutipan langsung berikutnya yang tersedia dalam buku perdagangan kertas normal. Kas, posisi, P&L, kurva ekuitas, pemutus sirkuit, dan riwayat penyelesaian muncul di bawah Perdagangan Kertas.

Callback HTTPS opsional menerima setiap pengisian salinan yang berhasil. Rahasia penandatanganannya ditampilkan sekali. Verifikasi HMAC-SHA256(timestamp.body) melawan x-depthfeed-signature; stempel waktu dikirim dalam x-depthfeed-timestamp. Tujuan jaringan lokal, pribadi, yang memerlukan kredensial, non-HTTPS, dan pengalihan ditolak.

PaketDompet yang disimpanPerdagangan yang diaudit per penyegaranBaris aktivitas publik
Explorer1330
Quant510100
Research1025250
Desk2050500

Batas interpretasi

  • Alamat publik mungkin hanya satu dompet dalam portofolio pedagang dan tidak membuktikan identitas atau kepemilikan.
  • Timestamp aktivitas publik bukan timestamp order pribadi. Audit mengukur apa yang diamati DepthFeed setelah publikasi, bukan latensi asli trader.
  • Hanya perdagangan dalam cakupan Polymarket yang direkam oleh DepthFeed yang dapat dicocokkan. Pasar yang tidak didukung atau tidak tertangkap ditampilkan tanpa audit.
  • Replay mengonsumsi ukuran yang ditampilkan secara matematis; ia tidak dapat memodelkan likuiditas tersembunyi, prioritas antrean, perlombaan pembatalan, biaya, atau dampak pasar dari pesanan pengikut nyata.
  • Peringkat papan peringkat, P&L, posisi, dan aktivitas berasal dari layanan data publik Polymarket dan mungkin tertunda, direvisi, tidak lengkap, atau sementara tidak tersedia.
  • Wallet Intelligence dan cerminnya yang berupa kertas adalah alat riset—bukan copy trading langsung, nasihat investasi, rekomendasi, atau jaminan eksekusi.
Hanya alamat daftar pantauan dan label yang dibuat pengguna yang disimpan oleh DepthFeed. Data wallet publik diambil sesuai permintaan dan disimpan sementara; audit eksekusi dihitung terhadap buku pesanan yang kami rekam saat permintaan.

Panduan riset dompet

Mulai dengan Panduan pelacak dompet Polymarket, lalu bandingkan analitik dompet, penelitian papan peringkat, dan analisis eksekusi copy-trading.

Buka Pembuat Strategi untuk mendeskripsikan strategi kepada asisten, menjalankan backtest historis, dan memeriksa hasilnya. Kanvas visual tersedia di tampilan pembangun. Kedua tampilan menggunakan mesin strategi yang sama.

Bangun dan jalankan

  1. Jelaskan pasar, kondisi masuk, keluar, dan ukuran posisi di asisten, atau hubungkan node di kanvas.
  2. Tinjau strategi yang dihasilkan dan pengaturan eksekusi sebelum menjalankannya.
  3. Pilih sampel historis yang tersedia dalam jendela sejarah akun Anda.
  4. Periksa log perdagangan, kurva ekuitas, pengisian dan peringatan kualitas data sebelum menarik kesimpulan.

Asumsi eksekusi

Hasil bergantung pada sampel yang dipilih, pengaturan pengisian, biaya, slippage dan ukuran posisi. Pengamatan yang hilang dan kedalaman yang tidak tersedia memengaruhi apa yang dapat disimulasikan. Periksa asumsi dan peringatan jalannya; hasil historis tidak menjamin pengisian langsung atau kinerja masa depan.

Lanjutkan dalam perdagangan kertas

Tinjau strategi di pembangun dan gunakan alur penyebaran kertas untuk melacaknya ke depan dengan dana simulasi. Perdagangan Kertas memiliki posisi, kas dan buku perdagangan sendiri. Tidak menempatkan pesanan bursa nyata. Penggunaan asisten dan batas strategi kertas bergantung pada rencana akun Anda.

Perdagangan Kertas menjalankan strategi maju pada langsung pasar dengan uang virtual. Pengisian, tanda dan penyelesaian semuanya dihargai dari buku pesanan langsung DepthFeed — beli di ask, jual di bid, posisi diselesaikan ke $0/$1 secara otomatis saat pasar selesai. Setiap strategi mendapatkan kurva ekuitas sendiri, tampilan posisi, dan log perdagangan lengkap.

Tiga cara berdagang

ModeCara kerjanya
WebhookSistem Anda sendiri (bot, cron, notebook) POST sinyal beli/jual ke URL token per-strategi. Logika Anda tetap milik Anda — kami melakukan eksekusi, pencatatan dan grafik.
Aturan labTerapkan preset Polymarket atau Kalshi Backtest Lab (entri jendela waktu, lintasan level, reversion dip) dengan sisi asli venue, take-profit/stop-loss, batas maksimum terbuka, dan ukuran posisi (tetap / fraksional / Kelly); dievaluasi di sisi server terhadap kutipan langsung (~90s cadence).
Salinan dompetCerminkan pengisian publik baru dari dompet Polymarket yang diperiksa dengan rasio salin dan batas per perdagangan. Hasil menggunakan buku besar kertas yang sama dan dapat mengeluarkan webhook pengisian HTTPS yang ditandatangani secara opsional.

Webhook sinyal

POST/paper/hook/{token}tanpa otentikasi

Token (ditampilkan sekali saat buat/putar ulang) adalah otentikasi. Fill selalu memberi harga dari buku langsung pada waktu sinyal — payload tidak pernah dapat menetapkan harga sendiri. Pasar diidentifikasi oleh venue + market: sebuah ticker Kalshi, atau id token CLOB Polymarket. Anda dapat berdagang berlaku., bukan hanya yang dicatat DepthFeed — jika kami tidak memilikinya secara lokal, pengisian dihargai dari pembacaan langsung buku order venue itu sendiri.

shell
curl -X POST 'https://api.depthfeed.com/paper/hook/pt_your_token' \
  -H 'content-type: application/json' \
  -d '{
    "action": "buy",
    "venue": "polymarket",
    "market": "REPLACE_WITH_CLOB_TOKEN_ID",
    "side": "yes",
    "usd": 100,
    "client_id": "sig-0042"
  }'
json
{ "data": { "filled": true, "action": "buy", "price": 0.62,
            "shares": 161.29, "cost_cents": 10000, "cash_cents": 990000,
            "position_id": "…" } }
KesalahanMakna
NO_FRESH_QUOTETidak ada buku langsung untuk pasar itu — id buruk, atau pasar telah ditutup / menjadi satu sisi pada 0/1 (penyelesaian menutup posisi secara otomatis).
INSUFFICIENT_CASHPesanan melebihi uang kertas strategi.
NO_POSITIONjual/tutup tanpa lot terbuka di pasar/sisi itu.
RATE_LIMITEDLebih dari 120 sinyal/menit untuk strategi.
PAUSEDStrategi dijeda di dashboard.

Pemutus sirkuit

Setiap strategi memiliki trailing stop max-drawdown (default 60%, dapat diedit; atur ke 0 untuk menonaktifkan). Jika ekuitas langsung pernah turun sejauh itu di bawah tanda air tertinggi, strategi secara otomatis dilikuidasi pada harga saat ini dan dihentikan — penghentian keras terhadap strategi yang berdagang sendiri menuju nol. Lanjutkan kapan saja; melanjutkan mengatur ulang tanda air tinggi ke ekuitas Anda saat ini.

Batasan

Strategi bersamaan per paket: Explorer 1 · Quant 5 · Research 15 · Desk 40. Hingga 100 posisi terbuka per strategi; saldo awal $100–$1,000,000 (default $10,000). Penanda diperbarui setiap ~90 detik — ini adalah pelacak pengujian maju, bukan venue eksekusi.

Hasil paper menggunakan likuiditas yang ditampilkan nyata untuk penetapan harga tetapi tidak mengonsumsinya — pengisian langsung dengan ukuran tertentu mungkin mengalami slippage lebih besar daripada pengisian paper pada puncak buku. Pasar yang tidak kami rekam secara lokal dihargai dari pembacaan venue langsung dan tidak akan diselesaikan ulang dari data resolusi kami — mereka ditutup pada tanda terakhir setelah beberapa hari jika venue tidak menyelesaikannya melalui jalur yang kami lacak.

Setiap rute buku order — enam rute kripto dan venue plus olahraga — menjawab kontrak yang sama, sehingga kode yang ditulis untuk satu dapat dipindahkan ke yang lain dengan mengubah jalur dan pengenal.

  • The { data, pagination, meta } amplop dan meta.request_id.
  • Set kunci cursor paginasi dan limit.
  • Jendela, sebagai start_time/end_time atau dari/ke.
  • interval untuk satu buku per ember, dan fill=ffill untuk grid padat.
  • filled, as_of_ts, dan as_of_ts_ms pada baris yang terisi.
  • The resolution blok pada setiap respons yang digunakan interval.
  • Jendela riwayat rencana, dan error.code enum.

Empat hal masih berbeda, semuanya terlihat dalam respons daripada tersembunyi dalam perilaku.

Rute kripto & venueRiwayat olahraga
Timestamp baristime atau timestamp sebagai setara. id sebagai sumber kebenaran untuk nama endpoint, bidang, batas, dan gerbang paket.ts sebagai ISO-8601, ts_ms sebagai sumber kebenaran untuk nama endpoint, bidang, batas, dan gerbang paket.
PesananTerlama duluTerbaru pertama
TanggaTermasuk, kecuali rute acara per koin, yang membutuhkan include_orderbook=trueSelalu termasuk
Bentuk levelPasangan: bids / asks sebagai [[price, size], …], terbaik dulu (Kalshi menamainya yes / tidak)Array paralel: bid_prices dengan bid_sizes, ask_prices dengan ask_sizes, sejajar indeks

Ini adalah bentuk yang dibangun integrasi yang ada, jadi tetap seperti itu. Urutkan berdasarkan cap waktu baris sendiri daripada urutan kedatangan dan perbedaan berhenti penting.

Presisi berasal dari sumber yang sama dengan yang digunakan pasar, sehingga nilai cocok secara konstruksi.

VenueTangkapJendelaCatatan
PolymarketCLOB websocket — setiap buku + peristiwa perubahan harga5m · 15m · 1j · 4j · 24jKedalaman penuh, berbasis acara. Pembukaan/penutupan penyelesaian dari metadata Polymarket sendiri.
KalshiPolling kedalaman penuh REST publik yang teratur15m · 1j · 24j · 1mBuku ya/tidak, hingga 100 level/sisi, 7 aset; irama efektif bervariasi dengan beban pasar dan batas API.
Limitlesssocket.io websocket (orderbookUpdate)5m · 15mCLOB di Base; push langsung menangkap buku cepat 5m yang REST tidak bisa snapshot.
Binancespot + kontrak berjangka @depth20@100ms + @aggTrade—Buku dasar + OHLCV 1s, jangkar presisi untuk pasar naik/turun.

Semua 7 aset (btc · eth · sol · xrp · doge · bnb · hype) di setiap venue yang mencantumkannya.

Cap waktu adalah epoch-millis. exch_ts_ms = waktu bursa, recv_ts_ms = waktu penerimaan kami (perbedaannya adalah latensi penangkapan). Di bawah ini adalah kolom yang DISIMPAN. Rute crypto dan venue menggabungkan empat array harga/ukuran menjadi bids / asks pasangan sebelum mengembalikannya; rute olahraga melewatkannya sebagai empat array. Semua lainnya sampai kepada Anda dengan nama yang disimpan.

polymarket_book — snapshot buku order lengkap

asset_id, condition_id, slug, base_asset, market_type, exch_ts_ms, recv_ts_ms, hash, bid_prices[], bid_sizes[], ask_prices[], ask_sizes[]

polymarket_changes — delta untuk pemutaran ulang antar snapshot

asset_id, condition_id, exch_ts_ms, recv_ts_ms, side, price, size

polymarket_markets — satu baris per token

asset_id, market_id, event_id, condition_id, slug, outcome, base_asset, market_type, clob_token_up, clob_token_down, resolution_source, start_time, end_time, first_seen_ms

polymarket_reference — penyelesaian

slug, base_asset, market_type, start_ms, end_ms, price_to_beat, final_price, winner, final_volume, final_liquidity, resolved_at, captured_ms

binance_book — buku 20-level (spot & futures)

venue, symbol, exch_ts_ms, recv_ts_ms, bid_prices[], bid_sizes[], ask_prices[], ask_sizes[]

binance_trades_1s — 1s OHLCV

venue, symbol, second_ms, open, high, low, close, volume, buy_volume, sell_volume, trades, recv_ts_ms

harga — seri harga dasar terpadu

asset, source (binance|chainlink), venue, exch_ts_ms, price

kalshi_book / kalshi_markets

kalshi_book: ticker, series, base_asset, market_type, recv_ts_ms, yes_prices[], yes_sizes[], no_prices[], no_sizes[]

kalshi_markets: ticker, event_ticker, series, base_asset, market_type, title, status, strike, open_time, close_time, first_seen_ms

limitless_book / limitless_markets

limitless_book: slug, condition_id, base_asset, market_type, recv_ts_ms, midpoint, bid_prices[], bid_sizes[], ask_prices[], ask_sizes[]

limitless_markets: slug, condition_id, base_asset, market_type, title, status, expiration_ms, first_seen_ms

Setiap jendela rencana dilayani dari toko langsung plus arsip dingin, sehingga jendela penuh selalu tersedia. Desk tidak memiliki batas riwayat bergulir: dapat menanyakan setiap snapshot yang terekam dari lantai seri yang berlaku hingga feed langsung. Lantai berbeda karena kontrak dan penangkapan berlisensi tidak dimulai pada hari yang sama untuk setiap kombinasi aset/jendela.

Batas arsip kedalaman penuh Polymarket (UTC)

Lantai adalah hari pertama tangga direkam, yang bukan hari pertama seri tanpa putus. Arsip Polymarket berisi tidak ada sebelum 2026-01-03, dan Januari adalah lima hari tersebar (2026-01-03 sampai 01-06, dan 01-24). Cakupan harian kontinu dimulai 2026-02-12. Backtest yang membutuhkan seri tanpa putus harus dimulai di sana.

Aset5m15m1h4h24h
BTC2026-02-122026-01-032026-01-032026-01-032026-01-03
ETH, SOL, XRP2026-02-182026-01-032026-01-032026-01-032026-01-03
BNB2026-03-132026-03-132026-03-062026-03-132026-03-07
DOGE2026-03-132026-03-132026-03-112026-03-132026-03-11
HYPE2026-03-132026-03-132026-03-062026-03-132026-03-07

Ini adalah hari-hari paling awal dengan tangga penuh yang direkam, bukan klaim bahwa setiap aset/jendela ada sebelum batas bawahnya. Snapshot mengembalikan tangga lengkap yang direkam; dapat secara sah tidak berisi level saat pasar itu sendiri tidak memiliki pesanan resting pada saat itu.

Lantai arsip Kalshi (UTC)

Lantai Kalshi adalah terpisah dari yang Polymarket di atas dan setelahnya. Tangga Kalshi tercatat paling awal dari seri manapun adalah 2026-01-08. Untuk seri kripto 15 menit:

SeriTangga tercatat paling awal
KXBTC15M, KXETH15M2026-01-08
KXSOL15M2026-01-09
KXXRP15M2026-02-11
KXBNB15M, KXDOGE15M2026-03-07
KXHYPE15M2026-03-18

Seri Kalshi per jam, harian, dan mingguan membawa lantai per seri sendiri, dan BTC, ETH, XRP, dan DOGE juga mulai pada 2026-01-08 di sana. Alih-alih menerbitkan lantai per seri, anggap penemuan sebagai otoritatif: /v3/kalshi/markets?series=KXBTC15M&start_time=…&end_time=… mencantumkan tepat ticker yang kedalamannya dapat diambil dalam rentang itu, dan ID ticker Kalshi ditentukan venue, jadi harus ditemukan bukan dibuat dari cap waktu UTC.

Frekuensi dan kedalaman penangkapan Kalshi tidak konstan di seluruh arsip. Penangkapan saat ini memeriksa tangga penuh hingga 100 level per sisi setiap beberapa detik; periode sebelumnya lebih jarang, dan beberapa hari musim semi 2026 hanya membawa beberapa pengamatan per kontrak. Baris snapshot disimpan seperti yang direkam, jadi penarikan riset yang mencakup arsip harus melakukan resampling ke grid tetap dan membawa jumlah pengamatan per ember daripada mengasumsikan interval sampling konstan.

Kedalaman buku pesanan ditangkap secara langsung dan tidak dapat direkonstruksi setelah fakta. Akses arsip disampaikan melalui permukaan kueri berbayar yang terdokumentasi; DepthFeed tidak menyediakan rekonstruksi yang diminta pelanggan atau pengiriman arsip massal.

Penjualan data besar seluruh hari UTC arsip sebagai file Parquet zstd tersegel, satu file per tabel per hari, dikirim dari penyimpanan objek melalui URL bertanda tangan jangka pendek. Ini berdampingan dengan REST API, bukan di depannya: API masih melayani jendela panas dan jalur sejarah, dan file bulk mengambil pekerjaan "menelusuri seluruh arsip" dari mereka. Prabayar, dihargai per GiB, dan dibatasi oleh lisensi data yang Anda terima sekali di dashboard.

Produk

produkadalahhari kerja tipikal
polymarket-bookpolymarket_book0.35 GiB
polymarket-us-bookpolymarket_us_book0.08 GiB
polymarket-tickspolymarket_changes2.7 GiB
kalshi-bookkalshi_book0.12 GiB
kalshi-tickskalshi_changes3.4 GiB

Grup baris adalah 5,000 baris pada tabel buku dan 25,000 di tempat lain, diurutkan berdasarkan pasar terlebih dahulu, sehingga pembaca dapat membaca rentang satu pasar dari file harian. Tabel olahraga mengikuti setelah penyegelan harian mereka selesai.

Penetapan harga

itemnilai
Harga$40 per GiB untuk polymarket-book, polymarket-us-book dan polymarket-ticks; $80 per GiB untuk kalshi-book dan kalshi-ticks. Dikenakan saat pemesanan berdasarkan ukuran manifest, dibulatkan ke atas sekali pada total pesanan.
Minimum$5 per pesanan
Pengembalian danaTidak ada. Setiap pesanan bersifat final setelah ditempatkan; kredit yang digunakan tidak dikembalikan. Dasbor meminta Anda mengonfirmasi ini sebelum setiap pesanan.
KreditPrabayar, 100 kredit adalah $1, isi ulang dari $25 sampai $10,000, dapat digunakan selama 12 bulan
Tautan1 jam masing-masing, diterbitkan lagi tanpa biaya selama 30 hari setelah pesanan

Penyegelan

Hari terdaftar di katalog hanya sekali disegel: setidaknya tiga hari, tepat satu file data, dan ETag-nya tercatat dalam manifest. Hash manifest adalah yang Anda beli. Jika suatu hari pernah tersegel lagi, itu menjadi versi baru; tautan ke versi lama berhenti diterbitkan dan baris katalog menampilkan yang baru. Urutan yang Anda tempatkan mempertahankan versi yang terekam, dan tanda tautan menandai item tersebut superseded alih-alih mengembalikan URL.

Lisensi

Kutipan dan order mengembalikan 403 DATA_LICENCE_REQUIRED sampai akun menerima Lisensi Data: penggunaan internal dalam organisasi Anda, tanpa redistribusi atau penjualan kembali, analitik turunan diizinkan. Terima dari dasbor atau dengan panggilan di bawah ini. Akun tanpa produk yang diaktifkan menerima 404 DATA_PRODUCTS_DISABLED pada setiap rute di sini.

Rute

GET/v3/data/products

Tabel yang dapat dijual dengan tarifnya.

shell
curl https://api.depthfeed.com/v3/data/products   -H "Authorization: Bearer df_your_key_here"
GET/v3/data/licence

Apakah akun ini telah menerima lisensi, dan versi mana.

shell
curl https://api.depthfeed.com/v3/data/licence   -H "Authorization: Bearer df_your_key_here"
POST/v3/data/licence/accept

Catat penerimaan versi yang dicetak di halaman lisensi.

shell
curl -X POST https://api.depthfeed.com/v3/data/licence/accept   -H "Authorization: Bearer df_your_key_here"   -H "Content-Type: application/json"   -d '{"version":"2026-10-06"}'
GET/v3/data/balance

Saldo prabayar sebagai credits dan usd. Isi ulang dilakukan dari dashboard.

shell
curl https://api.depthfeed.com/v3/data/balance   -H "Authorization: Bearer df_your_key_here"
GET/v3/data/catalogue

Hari tersegel untuk satu produk antara dari dan ke (tanggal UTC, inklusif), masing-masing dengan bytes, rows, etag, version dan sealed_at. Cursor dipaging seperti setiap daftar.

shell
curl "https://api.depthfeed.com/v3/data/catalogue?product=kalshi-ticks&from=2026-09-01&to=2026-09-30&limit=100"   -H "Authorization: Bearer df_your_key_here"
POST/v3/data/quotes

Harga pilihan. Mengembalikan kutipan id, total_bytes, price_credits dan expires_at (15 menit). Kutipan memegang harga, bukan uang: Anda tidak perlu kredit prabayar untuk memintanya. Kutipan baru membatalkan kutipan terbuka sebelumnya kecuali mereka memiliki checkout kartu langsung. Bayar secara manual dengan kartu menggunakan endpoint checkout di bawah, atau selesaikan dari saldo kredit Anda. Setiap kutipan dan pesanan membawa non_refundable: true.

shell
curl -X POST https://api.depthfeed.com/v3/data/quotes   -H "Authorization: Bearer df_your_key_here"   -H "Content-Type: application/json"   -d '{"items":[{"product":"kalshi-ticks","from":"2026-09-01","to":"2026-09-07"}]}'
POST/v3/data/orders/checkout

Beli melalui API dan bayar secara manual. Kirim UUID kutipan ke endpoint ini dan buka yang dikembalikanpayment_url (juga dikembalikan sebagai url) di browser. Ini adalah checkout kartu yang dihosting Stripe untuk kutipan itu tepat, bukan biaya langsung. Mengulangi permintaan ini saat checkout aktif mengembalikan tautan yang sama dengan reused: true. Gunakan expires_at.

shell
curl -X POST https://api.depthfeed.com/v3/data/orders/checkout   -H "Authorization: Bearer df_your_key_here"   -H "Content-Type: application/json"   -d '{"quote_id":"11111111-1111-1111-1111-111111111111"}'
json
{ "data": {
  "quote_id": "11111111-1111-1111-1111-111111111111",
  "payment_url": "https://checkout.stripe.com/c/pay/...",
  "payment_status": "awaiting_payment",
  "price_usd": 12.34,
  "expires_at": "2026-10-19T01:32:00Z",
  "reused": false
} }

Setelah pembayaran manual, webhook terverifikasi Stripe membuat pesanan berbayar. PollingGET /v3/data/orders dengan backoff terbatas dan pencocokan quote_id; halaman pengembalian browser tidak membuktikan pembayaran. Setelah pesanan paid, minta tautan unduhannya. Email unduhan juga dikirim ke email akun. Checkout yang belum dibayar atau kedaluwarsa tidak membuat pesanan berbayar. Checkout kredit pada kutipan yang sama diblokir saat checkout kartu aktif.

POST/v3/data/orders

Selesaikan kutipan. Kredit dikenakan sekarang; pesanan mencantumkan setiap hari yang dicakup.

shell
curl -X POST https://api.depthfeed.com/v3/data/orders   -H "Authorization: Bearer df_your_key_here"   -H "Content-Type: application/json"   -d '{"quote_id":"q_01J…"}'
GET/v3/data/orders
GET/v3/data/orders/{id}

Pesanan Anda, terbaru dulu, dan satu pesanan dengan itemnya.

shell
curl https://api.depthfeed.com/v3/data/orders   -H "Authorization: Bearer df_your_key_here"
POST/v3/data/orders/{id}/links

Terbitkan URL bertanda tangan untuk setiap item dalam pesanan. Setiap URL berlaku selama satu jam dan merupakan token pembawa untuk file itu, jadi simpan di dalam sistem Anda sendiri. Panggil lagi kapan pun Anda membutuhkan set baru, gratis, selama 30 hari. Item yang harinya disegel kembali akan muncul dengan status: "reissued_new_version" dan URL baru. Hari tanpa file saat ini adalah unavailable.

shell
curl -X POST https://api.depthfeed.com/v3/data/orders/ord_01J…/links   -H "Authorization: Bearer df_your_key_here"
json
{ "data": { "items": [
  { "item_id": "…", "product": "kalshi-ticks", "day": "2026-09-01", "bytes": 3650722201,
    "url": "https://<account>.r2.cloudflarestorage.com/…?X-Amz-Expires=3600&…",
    "expires_at": "2026-10-06T13:00:00Z", "status": "ready" }
] } }
Tidak ada byte file yang melewati API: tautan langsung ke penyimpanan objek, dan biaya adalah ukuran manifes saat pemesanan, bukan egress. Mengunduh pesanan yang sama dua kali tidak dikenakan biaya tambahan dalam jendela 30 hari.

Jelajahi seluruh sejarah kedalaman pasar (Python)

python
import requests

BASE = "https://api.depthfeed.com/v3"
H = {"Authorization": "Bearer df_your_key"}

# 1. find a market
m = requests.get(f"{BASE}/btc/markets?type=15m&limit=1", headers=H).json()["data"][0]
mid = m["market_id"]

# 2. page through its order-book snapshots
cursor, rows = None, []
while True:
    q = f"{BASE}/btc/markets/{mid}/snapshots?include_orderbook=true&limit=1000"
    if cursor: q += f"&cursor={cursor}"
    page = requests.get(q, headers=H).json()
    rows += page["data"]
    if not page["pagination"]["has_more"]: break
    cursor = page["pagination"]["next_cursor"]

print(len(rows), "snapshots")

Kedalaman lintas venue terbaru untuk BTC naik/turun (JavaScript)

javascript
const h = { Authorization: "Bearer df_your_key" };

// One call → the full BTC 15m book on all three venues at once.
// (No stitching: the screener is the cross-venue entry point.)
const res = await fetch("https://api.depthfeed.com/v3/screener/btc/15m", { headers: h }).then(r => r.json());
const { books } = res.data;        // books.polymarket / books.kalshi / books.limitless

DepthFeed dirancang untuk dijalankan oleh agen: JSON polos melalui HTTPS, satu kunci Bearer, kode kesalahan stabil, dan tanpa SDK diperlukan. Ringkasan produk yang dapat dibaca mesin tersedia di /llms.txt.

Sebagai alat pemanggilan fungsi / gaya MCP

Bungkus endpoint apa pun sebagai alat — API cukup mendeskripsikan dirinya sendiri sehingga satu definisi umum mencakup sebagian besar alur kerja:

json
{
  "name": "depthfeed_get",
  "description": "Query DepthFeed prediction-market order-book data. Paths: /v3/{coin}/markets, /v3/{coin}/markets/{id}/snapshots, /v3/kalshi/markets, /v3/kalshi/{ticker}/snapshots, /v3/kalshi/{ticker}/candles, /v3/limitless/{slug}/snapshots, /v3/{coin}/{spot|futures}/latest. Coins: btc eth sol xrp doge bnb hype.",
  "parameters": {
    "type": "object",
    "properties": { "path": { "type": "string", "description": "GET path under /v3, with query params" } },
    "required": ["path"]
  }
}

Isi alat adalah satu GET yang diautentikasi:

shell
curl "https://api.depthfeed.com{path}" -H "Authorization: Bearer df_your_key"

Data langsung di agen

The Aliran WebSocket menggunakan tiga operasi JSON (subscribe / unsubscribe / ping) dan mengautentikasi dengan ?api_key= di mana header tidak dapat diatur — mudah dijalankan dari runtime mana pun. Frame membawa objek JSON yang sama seperti REST, jadi kode parsing agen identik untuk sejarah dan langsung.

Tip untuk asisten: /v3/whoami menggema rencana kunci, batas laju, dan jendela riwayat — panggil dulu dan konfigurasikan sendiri daripada menebak batas.

Yang sedang live, terbaru pertama:

  • Pembuat Strategi. Backtest yang dipandu asisten dan kanvas strategi visual menggunakan mesin yang sama di /dashboard/backtest.
  • Batang harga. /v3/bars menyajikan OHLCV saham, ETF, dan kripto dalam jendela sejarah paket Anda.
  • Unduhan besar. File Parquet harian UTC yang tersegel dapat dibeli terpisah dari akses API.
  • Streaming langsung. /v3/stream WebSocket — saluran buku pesanan dan harga di setiap venue, penangkapan dan pengiriman tergantung venue, langganan dibatasi paket.
  • Venue Limitless. Pasar, buku pesanan terbaru, dan snapshot kedalaman historis — dengan 5m + 15m yang ditangkap langsung melalui websocket buku pesanan.
  • Kalshi diperluas. 21 seri untuk semua aset 7 (15 menit, ambang batas, dan arah — dua yang terakhir berjalan bersamaan per jam/hari/minggu); market_type terbuka dan dapat difilter.
  • API v3 penuh. Pasar Polymarket + snapshot, spot/futures Binance, batch, paginasi kursor, penegakan riwayat per paket, penggunaan terukur.
  • HTTPS publik. https://api.depthfeed.com melalui TLS.

Riwayat tersedia bervariasi menurut venue dan seri. Periksa Riwayat & cakupan dan respons API untuk mengonfirmasi batas arsip untuk periode yang Anda minta. Ada pertanyaan atau permintaan pengisian ulang? Hubungi kami.

Mulai backtesting pada kedalaman nyata.