Polymarket API rate limits — Gamma, Data & CLOB
Dokumentasi tepat dan khusus pembangun tentang had kadar API Polymarket (Gamma /markets, penyenaraian gabungan, had keseluruhan) dan strategi praktikal untuk elakkan throttling.
Polymarket API rate limits — Gamma, Data & CLOB
Had kadar API Polymarket adalah throttle yang perlu anda reka bentuk di sekelilingnya apabila membina bot, papan pemuka, atau analitik. Panduan ini menyenaraikan had yang didokumentasikan untuk setiap permukaan awam (Gamma, Data, CLOB, dan Market WebSocket), menerangkan kekangan penting Gamma /markets (termasuk peraturan 300 req / 10 s untuk /markets dan pagination berasaskan cursor), dan memberi strategi konkrit—pembungkusan (batching), caching, pagination cursor, exponential backoff—untuk memastikan klien anda boleh dipercayai di bawah beban.
Perkara penting
- Endpoint
/marketsGamma: 300 permintaan setiap 10 saat; gunakan parameterlimitdanafter_cursoruntuk pagination (jangan gunakanoffset). - Had penyenaraian gabungan: panggilan penyenaraian
/markets+/eventsberkongsi had 900 req / 10 s; keseluruhan Gamma: 4000 req / 10 s. - Gunakan API CLOB dan Data untuk bacaan terspesialisasi; CLOB memerlukan API key + HMAC untuk panggilan dagangan, bacaan adalah awam.
- WebSocket (
wss://ws-subscriptions-clob.polymarket.com/ws/market) menyediakan data masa nyata; utamakan WS untuk kemas kini buku langsung berbanding polling. - Corak mitigasi: request coalescing, caching TTL, exponential backoff dengan jitter, penjadualan yang sedar kadar, dan pengambilan sensitif pagination.
Mengapa had kadar penting
Had kadar melindungi infrastruktur bersama Polymarket dan menghalang klien bising daripada merendahkan pengalaman pengguna lain. Untuk pembangun yang membina bot arbitrage atau sistem analitik, terkena had menyebabkan permintaan ditolak serta-merta dan boleh merosakkan aliran yang sensitif kepada masa. Merancang corak permintaan dari awal mengurangkan kejutan dan menjadikan sistem lebih tahan.
Had kadar dan endpoint Polymarket yang didokumentasikan
Gamma (metadata pasaran utama)
- Base URL: https://gamma-api.polymarket.com
- Had penting:
/markets: maks 300 permintaan setiap 10 saat. Gunakan parameterlimit(maks 1000) dan pagination berasaskan cursor melaluiafter_cursor. API menolakoffsetdengan HTTP 422.- Had penyenaraian gabungan
/markets+/events: 900 permintaan setiap 10 saat. - Permukaan Gamma keseluruhan: 4000 permintaan setiap 10 saat.
Nota praktikal:
- Sentiasa utamakan
after_cursoryang dikembalikan oleh panggilan sebelumnya; jangan cuba meniru keyset menggunakanoffset. - Laraskan
limituntuk mengurangkan pusingan panggilan. Jika anda perlukan senarai pasaran penuh,limit=1000mengurangkan bilangan panggilan.
Data (positions, trades, holders)
- Base URL: https://data-api.polymarket.com
- Auth: Tiada untuk bacaan awam.
- Dokumen ringkas permukaan ini tetapi tidak menyenaraikan nombor kadar per-endpoint untuk Data. Anggap Data sebagai awam, tetapi laksanakan kawalan klien sisi yang sama konservatif seperti Gamma (batching, caching, backoff).
CLOB (order book dan dagangan)
- Base URL: https://clob.polymarket.com
- Bacaan adalah awam. Dagangan memerlukan API key + HMAC.
- Permukaan CLOB mendedahkan order book, midpoint, sejarah harga, dan penempatan/pembatalan pesanan. Dokumen tidak menerbitkan nombor kadar per-endpoint yang jelas untuk bacaan CLOB; anggap laluan dagangan sensitif kadar dan gunakan CLOB WebSocket atau Market WS untuk data buku langsung bila boleh.
Market WebSocket (kemas kini pasaran masa nyata)
- URL: wss://ws-subscriptions-clob.polymarket.com/ws/market
- Tiada pengesahan diperlukan untuk data pasaran.
- Feed: real-time book, price_change, best_bid_ask (dayakan dengan custom_feature_enabled: true), last_trade_price, tick_size_change.
- PING heartbeat setiap 10 saat. Maks 500 instrumen setiap sambungan.
Perincian Gamma /markets yang mesti anda patuhi
- Pagination: hanya
after_cursor. API mengembalikannext_cursor— hantarkan semula tanpa ubah pada panggilan seterusnya. limitlalai ialah 20, maks 1000. Gunakanlimityang lebih besar untuk sync pukal.- Parameter penapis yang diterima termasuk array untuk
slug,id,condition_ids,clob_token_ids,question_ids,market_maker_addressdan lain-lain seperticlosed,active,archived,tag_id. - Pengurutan:
ordermenerima senarai medan berkoma (contohvolume24hr,liquidity) danascendingadalah boolean dengan lalai true.
Isyarat ralat biasa dan bagaimana bertindak
- HTTP 429 (rate limited): hentikan polling segera, back off, dan cuba semula dengan exponential backoff dan jitter.
- HTTP 422 semasa menggunakan
offset: beralih kepada paginationafter_cursor. - Respons separa atau halaman kosong: hormati cursor; semak penapis anda. Jika anda percaya anda telah mencapai kuota sisi pelayan, kurangkan concurrency permintaan klien.
Corak reka bentuk untuk mengelak throttles
- Cache dengan agresif
- Cache senarai pasaran dan metadata untuk TTL pendek (30s–2m) bergantung pada penggunaan. Senarai pasaran dan acara jarang berubah setiap saat.
- Cache mengikut kunci pertanyaan (penapis + order). Nyahsah cache hanya apabila anda menerima acara perubahan (contohnya, daripada WebSocket) atau selepas tamat TTL.
- Batch dan tingkatkan
limit
- Untuk full-sync, gunakan
limit=1000untuk mengurangkan pusingan terhadap/markets. - Tarik halaman lebar semasa tingkap luar puncak dan gunakan kemas kini inkremental daripada WebSocket.
- Gunakan WebSocket untuk data masa nyata
- Untuk kemas kini buku pesanan atau pergerakan harga langsung, langgan Market WS daripada melakukan polling Gamma atau bacaan CLOB. WS menyokong sehingga 500 instrumen setiap sambungan; bahagikan pelanggan jika anda memerlukan >500.
- Penjadualan yang sedar kadar dan backoff
- Laksanakan limiter klien sisi seperti leaky-bucket atau token-bucket yang sepadan dengan puncak yang didokumentasikan (contohnya, 300/10s untuk
/markets). - Apabila anda menerima 429, gunakan exponential backoff dengan jitter dan secara progresif tingkatkan jangka masa percubaan semula.
- Gabungkan permintaan serentak yang serupa
- Jika berbilang bahagian aplikasi anda meminta pertanyaan
/marketsyang sama serentak, gabungkan mereka kepada satu permintaan sedang berjalan dan edarkan respons kepada peminta lain.
- Penyegerakan berasaskan cursor terlebih dahulu
- Sentiasa ikut pagination berasaskan cursor. Untuk sync langsung, minta halaman pertama kemudian langgan delta jika disokong. Jangan cuba fetch cursor secara serampangan serentak yang boleh melebihi had per-endpoint Gamma.
Strategi fetch contoh
- Tugas pengindeksan pukal (bukan masa nyata): fetch
/markets?limit=1000kemudian ikutnext_cursorsehingga habis. Tidur sebentar antara halaman, dan hormati had endpoint 300/10s. - UI hampir-masa-nyata: fetch set asas sekali (cache 30s), kemudian buka WebSocket untuk delta dan kemas kini best_bid_ask.
- Mikro-klien watchlist: bahagikan watchlist merentasi berbilang sambungan WS jika >500 instrumen.
Panduan operasi untuk bot dan klien berkeluaran tinggi
- Gunakan CLOB WebSocket atau bacaan CLOB untuk data peringkat buku dan Gamma untuk metadata yang berubah lebih perlahan.
- Simpan kelayakan dagangan (CLOB API key + HMAC) dengan selamat; endpoint dagangan memerlukan pengesahan.
- Pantau kadar 429 anda dan metrik latensi per-instrumen per-endpoint. Jika anda kerap menghampiri had yang didokumentasikan, minta akses atau hubungi saluran rasmi Polymarket (Builder Program adalah laluan untuk integrasi volum lebih tinggi dan atribusi).
Bagaimana ini mempengaruhi pembangunan dan penyebaran anda
Jika anda membina bot dagangan atau perkhidmatan analitik, rancang aliran data berlapis: fetch pukal awal dari Gamma dengan limit besar, diikuti langganan WebSocket untuk kemas kini langsung, dan set kecil polling berkala Gamma (dicache) untuk mana-mana metadata yang tidak ada dalam feed WS. Laksanakan limitasi sisi klien, coalescing, dan pagination-aware untuk mengelakkan terkena had /markets 300 req / 10 s yang didokumentasikan serta had penyenaraian gabungan dan keseluruhan Gamma.
Ringkasan penutup
Had kadar API Polymarket jelas untuk permukaan penyenaraian Gamma dan Market WS menawarkan alternatif skala untuk feed langsung. Reka bentuk sekitar pagination berasaskan cursor (after_cursor), gunakan limit secara strategik, dan utamakan WebSockets untuk data kekerapan tinggi. Mengikuti corak ini akan mengurangkan throttling dan menjadikan integrasi anda lebih boleh dipercayai.
Soalan Lazim
Apakah had /markets pada Gamma?
Endpoint /markets Gamma dihadkan kepada 300 permintaan setiap 10 saat. Gunakan limit (maks 1000) dan pagination berasaskan cursor melalui after_cursor. Jangan gunakan offset—API menolaknya dengan HTTP 422.
Adakah terdapat had gabungan untuk endpoint Gamma?
Ya. Panggilan penyenaraian kepada /markets dan /events berkongsi cap gabungan 900 permintaan setiap 10 saat. Tambahan pula, permukaan Gamma keseluruhan dihadkan kepada 4000 permintaan setiap 10 saat.
Patutkah saya poll Gamma atau gunakan WebSocket untuk kemas kini langsung?
Utamakan Market WebSocket (wss://ws-subscriptions-clob.polymarket.com/ws/market) untuk kemas kini buku dan harga langsung—ia lebih cekap dan mengelakkan polling berulang. Gunakan Gamma untuk metadata yang berubah lebih perlahan dan sync pukal awal.
Apa yang klien saya patut lakukan pada respons HTTP 429?
Anggap 429 sebagai isyarat untuk hentikan polling agresif. Laksanakan exponential backoff dengan jitter, kurangkan concurrency, dan gabungkan permintaan yang serupa. Jejak 429 untuk laraskan rate limiter anda secara dinamik.
Adakah API CLOB memerlukan pengesahan?
Bacaan CLOB adalah awam. Operasi dagangan pada CLOB memerlukan API key ditambah pengesahan HMAC. Hormati had dagangan dan utamakan feed WS untuk kemas kini buku.
Panduan berkaitan
Untuk tujuan pendidikan sahaja. Bukan nasihat kewangan, undang-undang atau cukai. Polymarket mungkin tidak tersedia di bidang kuasa anda.