Polymarket API rate limits — Gamma, Data & CLOB
Exact, developer-focused documentation of Polymarket API rate limits (Gamma /markets, combined listings, overall limits) and practical strategies to avoid throttling.
Polymarket API rate limits — Gamma, Data & CLOB
Polymarket API রেট লিমিটগুলো হল সেই সীমাবদ্ধতা যেগুলো আপনাকে বট, ড্যাশবোর্ড বা অ্যানালিটিক্স তৈরির সময়ে ডিজাইন করতে হবে। এই গাইডটি প্রতিটি পাবলিক সারফেসের (Gamma, Data, CLOB, এবং Market WebSocket) দলীয় লিমিট নথিবদ্ধ করে, Gamma /markets-এর গুরুত্বপূর্ণ কনস্ট্রেইন্টগুলো (উদাহরণ: /markets 300 req / 10 s নিয়ম এবং কার্সর-ভিত্তিক পেজিনেশন) ব্যাখ্যা করে, এবং ক্লায়েন্টকে থ্রটলিং থেকে রক্ষা করতে ব্যাচিং, ক্যাশিং, কার্সর পেজিনেশন, এক্সপোনেনশিয়াল ব্যাকঅফের মতো কংক্রিট কৌশল দেয়।
মূল গ্রহণযোগ্য পয়েন্ট
- Gamma-এর
/marketsএন্ডপয়েন্ট: 300 অনুরোধ প্রতি 10 সেকেন্ড; পেজিনেশনের জন্যlimitপ্যারামিটার এবংafter_cursorব্যবহার করুন (ইনস্টেডoffsetব্যবহার করবেন না)। - মিলিত লিস্টিং সীমা:
/markets+/eventsকলগুলো একটি 900 req / 10 s ক্যাপ শেয়ার করে; Gamma মোট ওভারঅল: 4000 req / 10 s। - বিশেষ পড়ে পড়া (specialized reads) জন্য CLOB এবং Data API ব্যবহার করুন; CLOB ট্রেডিং কলগুলোর জন্য API key + HMAC লাগে, পড়াগুলো পাবলিক।
- WebSocket (
wss://ws-subscriptions-clob.polymarket.com/ws/market) রিয়েল-টাইম ডেটা দেয়; লাইভ বুক আপডেটের জন্য পোলিংয়ের বদলে WS ব্যবহার করুন। - ক্ষতিপূরণ প্যাটার্ন: রিকোয়েস্ট কোঅ্যালেসিং, ক্যাশ TTL, এক্সপোনেনশিয়াল ব্যাকঅফ উইথ জিটার, রেট-অ্যাওয়ার কিউইং, এবং পেজিনেশন-অ্যাওয়ার ফেচিং।
কেন রেট লিমিটগুলো গুরুত্বপূর্ণ
রেট লিমিটগুলো Polymarket-এর শেয়ার করা ইনফ্রাস্ট্রাকচারকে সুরক্ষিত রাখে এবং উচ্চ-শব্দযুক্ত ক্লায়েন্টগুলোর কারণে অন্যদের অভিজ্ঞতা ক্ষতিগ্রস্ত হওয়া রোধ করে। আরবিট্রেজ বট বা অ্যানালিটিক্স সিস্টেম নির্মাণ করা ডেভেলপারদের জন্য একটি লিমিটে আটকালেই অনুরোধ প্রত্যাখ্যান হয় এবং টাইম-সেন্সিটিভ ফ্লো ভেঙে যেতে পারে। আগে থেকেই রিকোয়েস্ট প্যাটার্নগুলো পরিকল্পনা করলে অপ্রত্যাশিত সমস্যা কমে এবং সিস্টেমগুলো বেশি মজবুত হয়।
নথিভুক্ত Polymarket রেট লিমিট এবং এন্ডপয়েন্টগুলো
Gamma (প্রাথমিক মার্কেট মেটাডেটা)
- Base URL: https://gamma-api.polymarket.com
- লক্ষণীয় লিমিটসমূহ:
/markets: সর্বোচ্চ 300 অনুরোধ প্রতি 10 সেকেন্ড। পেজিনেশনের জন্যlimitপ্যারামিটার (max 1000) এবংafter_cursor-এর মাধ্যমে কার্সর-ভিত্তিক পেজিনেশন ব্যবহার করুন। APIoffset-কে HTTP 422 দিয়ে প্রত্যাখ্যান করে।- মিলিত
/markets+/eventsলিস্টিং লিমিট: 900 অনুরোধ প্রতি 10 সেকেন্ড। - Gamma API সারফেস মোট: 4000 অনুরোধ প্রতি 10 সেকেন্ড।
প্রায়োগিক নোট:
- সর্বদা পূর্ববর্তী কল থেকে ফেরত পাওয়া
after_cursorব্যবহার করুন;offsetঅনুকরণ করার চেষ্টা করবেন না। - রাউন্ড ট্রিপ কমানোর জন্য
limitটিউন করুন। পূর্ণ মার্কেট লিস্ট দরকার হলেlimit=1000ব্যবহার করলে কল কমে।
Data (positions, trades, holders)
- Base URL: https://data-api.polymarket.com
- Auth: পাবলিক রিডগুলোর জন্য কোন auth লাগে না।
- ডকুমেন্টটি সারফেসটি সংক্ষেপে উল্লেখ করে কিন্তু Data-এর প্রতিটি এন্ডপয়েন্টের রেট নম্বর তালিকাভুক্ত করে না। Data-কে পাবলিক হিসেবে ধরণ করুন, কিন্তু Gamma-এর মত কনজার্ভেটিভ ক্লায়েন্ট-কন্ট্রোল (ব্যাচিং, ক্যাশিং, ব্যাকঅফ) প্রয়োগ করুন।
CLOB (অর্ডার বই এবং ট্রেডিং)
- Base URL: https://clob.polymarket.com
- পড়াগুলো পাবলিক। ট্রেডিং-এর জন্য API key + HMAC লাগে।
- CLOB সারফেস অর্ডার বুক, midpoint, প্রাইস হিস্ট্রি, এবং অর্ডার প্লেসমেন্ট/ক্যানসেলেশন এক্সপোজ করে। ডকুমেন্টটি CLOB রিডগুলোর জন্য স্পষ্ট এন্ডপয়েন্ট-নির্দিষ্ট রেট সংখ্যা প্রকাশ করে না; ট্রেডিং পাথগুলোকে রেট-সেনসিটিভ হিসেবে বিবেচনা করুন এবং সম্ভব হলে লাইভ বুক ডেটার জন্য CLOB WebSocket বা Market WS ব্যবহার করুন।
Market WebSocket (রিয়েল-টাইম মার্কেট আপডেট)
- URL: wss://ws-subscriptions-clob.polymarket.com/ws/market
- মার্কেট ডেটার জন্য কোন auth প্রয়োজন নেই।
- ফিডস: রিয়েল-টাইম বুক, price_change, best_bid_ask (সক্ষম করতে
custom_feature_enabled: true), last_trade_price, tick_size_change। - PING হার্টবিট প্রতি 10 সেকেন্ডে। প্রতিটি কানেকশনে সর্বোচ্চ 500 ইনস্ট্রুমেন্ট।
Gamma /markets নির্দিষ্ট নিয়ম যা আপনি মানবেন
- পেজিনেশন: কেবল
after_cursor। APInext_cursorফেরত দেয় — এটাকে অপর কলেই অপরিবর্তিতভাবে পাঠান। limit-এর ডিফল্ট 20, সর্বোচ্চ 1000। ব্যাচ সিঙ্কের জন্য বড়limitব্যবহার করুন।- গ্রহণযোগ্য ফিল্টার প্যারামিটারগুলোর মধ্যে আছে
slug,id,condition_ids,clob_token_ids,question_ids,market_maker_address-এর মতো অ্যারে এবংclosed,active,archived,tag_idইত্যাদি। - অর্ডারিং:
orderকমা-সেপারেটেড ফিল্ড তালিকা গ্রহণ করে (উদাহরণ:volume24hr,liquidity) এবংascendingএকটি বুলিয়ান, ডিফল্ট true।
সাধারণ এরর সিগন্যাল এবং কীভাবে প্রতিক্রিয়া করবেন
- HTTP 429 (rate limited): তাত্ক্ষণিক পোলিং বন্ধ করুন, ব্যাকঅফ নিন, এবং এক্সপোনেনশিয়াল ব্যাকঅফ ও জিটার সহ পুনরায় চেষ্টা করুন।
- HTTP 422 যখন
offsetব্যবহার করা হয়:after_cursorপেজিনেশনে স্যুইচ করুন। - পার্শিয়াল রেসপন্স বা ফাঁকা পেজ: কার্সরগুলোকে সম্মান করুন; আপনার ফিল্টারগুলো যাচাই করুন। যদি আপনি মনে করেন সার্ভার-সাইড কোটা ছোঁয়েছেন, ক্লায়েন্ট কনকারেন্সি কমান।
থ্রটল এড়াতে ডিজাইন প্যাটার্নসমূহ
- আগ্রেসিভলি ক্যাশ করুন
- মারকেট লিস্ট এবং মেটাডেটা সংক্ষিপ্ত TTL-এ ক্যাশ করুন (30s–2m) ব্যবহারের উপর নির্ভর করে। মার্কেট এবং ইভেন্ট লিস্টগুলি প্রতি সেকেন্ডে বদলায় না।
- কুবেরি কী (ফিল্টার + অর্ডার) অনুযায়ী ক্যাশ করুন। ক্যাশ ইনভ্যালিডেট করুন কেবল তখনই যখন আপনি পরিবর্তন ইভেন্ট পান (উদাহরণ: WebSocket থেকে) অথবা TTL মেয়াদ শেষ হয়।
- ব্যাচ করুন এবং
limitবাড়ান
- ফুল-সিঙ্কের জন্য
/markets-এlimit=1000ব্যবহার করে রাউন্ড ট্রিপ কমান। - অফ-পিক উইন্ডোতে বিস্তৃত পেজ টেনে নিন এবং WebSocket থেকে ইনক্রিমেন্টাল আপডেট ব্যবহার করুন।
- লাইভ ডেটার জন্য WebSocket ব্যবহার করুন
- লাইভ অর্ডার-বুক আপডেট বা প্রাইস মুভমেন্টের জন্য Market WS সাবস্ক্রাইব করুন পোলিংয়ের বদলে। WS প্রতি কানেকশনে 500 ইনস্ট্রুমেন্ট পর্যন্ত সাপোর্ট করে; >500 দরকার হলে ক্লায়েন্টগুলো শার্ড করুন।
- রেট-অ্যাওয়ার কিউইং এবং ব্যাকঅফ
- ক্লায়েন্ট সাইডে লিকি-বাকেট বা টোকেন-বাকেট লিমিটার ইমপ্লিমেন্ট করুন যা নথিভুক্ত পিকগুলোর সাথে মেলে (উদাহরণ:
/marketsজন্য 300/10s)। - যখন 429 পান, এক্সপোনেনশিয়াল ব্যাকঅফ উইথ জিটার প্রয়োগ করুন এবং ধীরে ধীরে রিট্রাই উইন্ডো বাড়ান।
- একই ধরনের সমলযোগ্য concurrent রিকোয়েস্টগুলো কোঅ্যালেস করুন
- আপনার অ্যাপের বিভিন্ন অংশ একই
/marketsকুয়েরি একসাথে করলে, সেগুলোকে একক ইন-ফ্লাইট রিকোয়েস্টে কোঅ্যালেস করে রেসপন্স ফ্যান-আউট করুন।
- কার্সর-প্রথম সিঙ্ক্রোনাইজেশন
- সর্বদা কার্সর-ভিত্তিক পেজিনেশন অনুসরণ করুন। লাইভ সিঙ্কের জন্য প্রথম পাতা নিয়ে তারপর ডেল্টার জন্য সাবস্ক্রাইব করুন যদি সাপোর্ট করে। নৈভ কনকারেন্ট কার্সর ফেচ করা থেকে বিরত থাকুন যা Gamma-এর প্রতি-এন্ডপয়েন্ট লিমিট অতিক্রম করতে পারে।
উদাহরণ ফেচ কৌশল
- বাল্ক ইনডেক্সিং জব (নন-রিয়েলটাইম):
/markets?limit=1000ফেচ করুন তারপরnext_cursorঅনুসরণ করে শেষ না হওয়া পর্যন্ত। পেজগুলোর মাঝে সামান্য স্লিপ দিন এবং 300/10s এন্ডপয়েন্ট লিমিট সম্মান করুন। - নিকট-রিয়েলটাইম UI: একবার বেস সেট ফেচ করুন (ক্যাশ 30s), তারপর ডেল্টা এবং best_bid_ask আপডেটের জন্য WebSocket খুলুন।
- ওয়াচলিস্ট মাইক্রো-ক্লায়েন্ট: যদি >500 ইনস্ট্রুমেন্ট থাকে তবে WS কানেকশনগুলো শার্ড করুন।
বট এবং উচ্চ-থ্রুপুট ক্লায়েন্টদের জন্য অপারেশনাল নির্দেশিকা
- বুক-লেভেল ডেটার জন্য CLOB WebSocket বা CLOB রিড ব্যবহার করুন এবং ধীর গতির মেটাডেটার জন্য Gamma ব্যবহার করুন।
- ট্রেডিং ক্রেডেনশিয়ালগুলো (CLOB API key + HMAC) নিরাপদ রাখুন; ট্রেডিং এন্ডপয়েন্টগুলো অটেনটিকেটেড।
- আপনার 429 রেট এবং ইনস্ট্রুমেন্ট-ভিত্তিক প্রতি-এন্ডপয়েন্ট ল্যাটেন্সি মেট্রিক্স মনিটর করুন। যদি আপনি নিয়মিত নথিভুক্ত ক্যাপগুলোর কাছাকাছি পৌঁছান, তাহলে অ্যাক্সেসের অনুরোধ করুন বা অফিসিয়াল Polymarket চ্যানেলগুলোর মাধ্যমে যোগাযোগ করুন (উচ্চ ভলিউম ইন্টিগ্রেশনের জন্য Builder Program হলো উপযুক্ত পথ এবং এটিই অ্যাট্রিবিউশন দেয়)।
কিভাবে এটা আপনার ডেভেলপমেন্ট এবং ডিপ্লয়মেন্টকে প্রভাবিত করে
- যদি আপনি একটি ট্রেডিং বট বা অ্যানালিটিক্স সার্ভিস তৈরি করেন, লেয়ারের ডাটা ফ্লো পরিকল্পনা করুন: প্রথমে Gamma থেকে বড়
limit-সহ বাল্ক ফেচ, তারপর লাইভ আপডেটের জন্য WebSocket সাবস্ক্রিপশন, এবং WS ফিডে না থাকা যেকোন মেটাডেটার জন্য ছোট একটি পিরিয়ডিক Gamma পোল (ক্যাশ করা)। ক্লায়েন্ট-সাইড রেট লিমিটিং, কোঅ্যালেসিং, এবং কার্সর-অ্যাওয়ার পেজিনেশন ইমপ্লিমেন্ট করে/markets-এর 300 req / 10 s ক্যাপ এবং মিলিত লিস্টিং ও Gamma ওভারঅল ক্যাপ এড়ান।
সমাপ্তি সারসংক্ষেপ
Polymarket API রেট লিমিটগুলো Gamma-এর লিস্টিং সারফেসগুলোর জন্য স্পষ্ট এবং Market WS লাইভ ফিডের জন্য একটি স্কেলেবল বিকল্প দেয়। কার্সর-ভিত্তিক পেজিনেশন (after_cursor)-এর সাথে ডিজাইন করুন, কৌশলগতভাবে limit ব্যবহার করুন, এবং উচ্চ-ফ্রিকোয়েন্সি ডেটার জন্য WebSocket কে অগ্রাধিকার দিন। এই প্যাটার্নগুলো অনুসরণ করলে থ্রটলিং কমবে এবং আপনার ইন্টিগ্রেশনগুলো বিশ্বস্ত হবে।
Frequently asked questions
What is the /markets rate limit on Gamma?
Gamma-এর /markets এন্ডপয়েন্ট 300 অনুরোধ প্রতি 10 সেকেন্ডে সীমাবদ্ধ। limit (max 1000) এবং after_cursor-এর মাধ্যমে কার্সর-ভিত্তিক পেজিনেশন ব্যবহার করুন। offset ব্যবহার করবেন না — API সেটিকে HTTP 422 দিয়ে প্রত্যাখ্যান করে।
Are there combined limits for Gamma endpoints?
হ্যাঁ। /markets এবং /events-এ লিস্টিং কলগুলো একটি মিলিত ক্যাপ 900 অনুরোধ প্রতি 10 সেকেন্ড ভাগ করে নেয়। অতিরিক্তভাবে, Gamma API সারফেস মোট 4000 অনুরোধ প্রতি 10 সেকেন্ডে সীমাবদ্ধ।
Should I poll Gamma or use the WebSocket for live updates?
লাইভ বুক এবং প্রাইস আপডেটের জন্য Market WebSocket (wss://ws-subscriptions-clob.polymarket.com/ws/market) অগ্রাধিকার দিন—এটি বেশি কার্যকর এবং বারবার পোলিং এড়ায়। ধীরগতির মেটাডেটা এবং প্রাথমিক বাল্ক সিঙ্কের জন্য Gamma ব্যবহার করুন।
What should my client do on HTTP 429 responses?
429-কে আগ্রাসী পোলিং বন্ধ করার সিগন্যাল হিসেবে নিন। এক্সপোনেনশিয়াল ব্যাকঅফ উইথ জিটার ইমপ্লিমেন্ট করুন, কনকারেন্সি কমান, এবং একই রকম রিকোয়েস্টগুলো কোঅ্যালেস করুন। আপনার রেট লিমিটার ডাইনামিকভাবে সামঞ্জস্য করতে 429-গুলো ট্র্যাক করুন।
Does the CLOB API require authentication?
CLOB রিড পাবলিক। CLOB-এ ট্রেডিং অপারেশনগুলোর জন্য API key প্লাস HMAC অটেনটিকেশন প্রয়োজন। ট্রেডিং রেট লিমিটগুলোকে সম্মান করুন এবং বুক আপডেটের জন্য WS ফিডগুলোকে অগ্রাধিকার দিন।
সম্পর্কিত গাইডসমূহ
শিক্ষামূলক উদ্দেশ্যে בלבד। আর্থিক, আইনি বা কর-সম্পর্কীয় পরামর্শ নয়। হতে পারে আপনার এলাকা/নির্ধারিত অঞ্চলে Polymarket উপলব্ধ না থাকে।