API · রেফারেন্স
gamma-api.polymarket.com-এ Gamma API হলো "ক্যাটালগ" - এভাবেই আপনি
বাজার ও ইভেন্ট আবিষ্কার করেন এবং CLOB-এর ট্রেড করতে যে টোকেন ID লাগে তা পান। এটি পাবলিক,
কোনো অথ নয়, তাই আপনি এখনই একটি ব্রাউজার বা curl থেকে প্রতিটি এন্ডপয়েন্ট অন্বেষণ করতে পারেন, আর
এই পাতার লাইভ সরঞ্জামগুলোও পারে।
- বেস URL:
https://gamma-api.polymarket.com· কোনো প্রমাণীকরণ নয়, শুধু-পড়া। - রেট-সীমা: সামগ্রিকভাবে ~4,000 অনুরোধ / 10s (
/events~500,/markets~300)। - প্রায় প্রতিটি বটের ধাপ 1: একটি বাজারকে তার টোকেন ID-তে পরিণত করুন, তারপর CLOB-এ সেগুলো ট্রেড করুন।
- সবকিছু JSON। তিনটি গুরুত্বপূর্ণ ক্ষেত্র JSON-এর স্ট্রিং হিসেবে ফেরত আসে যা আপনাকে আবার পার্স করতে হবে (নিচে দেখুন)।
যেসব এন্ডপয়েন্ট আপনি আসলে ব্যবহার করবেন
| এন্ডপয়েন্ট | ফেরত দেয় | যার জন্য ব্যবহার করবেন |
|---|---|---|
GET /markets | মেটাডেটা, লাইভ দাম ও টোকেন ID সহ বাজার। | একটি স্লাগকে টোকেন ID-তে রূপ দিন; ট্রেডযোগ্য বাজার স্ক্যান করুন। |
GET /events | ইভেন্ট (সম্পর্কিত বাজারের একটি দল) তাদের শিশু-বাজারসহ। | বিষয় অনুযায়ী ব্রাউজ করুন; বহু-ফলাফল কার্ড রেন্ডার করুন। |
GET /public-search?q= | ইভেন্ট ও বাজারের ওপর ফুল-টেক্সট অনুসন্ধান। | কেবল একটি নাম জানা থাকলে একটি বাজার খুঁজুন। |
GET /tags | শ্রেণি-ট্যাগ (politics, crypto, sports...)। | বৈধ tag_slug ফিল্টার আবিষ্কার করুন। |
/markets ও /events-এ সাধারণ কোয়েরি-প্যারামিটার:
active=true, closed=false, slug=, tag_slug=,
order=volume24hr, ascending=false, পেজিংয়ের জন্য limit= ও offset=।
GET /markets - অনুরোধ ও প্রতিক্রিয়া
স্লাগ দিয়ে একটি বাজার চান। আপনি একটি অ্যারে ফেরত পান (একটি বাজারের জন্যও), তাই উপাদান [0] নিন:
curl -s "https://gamma-api.polymarket.com/markets?slug=will-it-rain-in-nyc-today" | jq '.[0]'
import requests, json
m = requests.get("https://gamma-api.polymarket.com/markets",
params={"slug": "will-it-rain-in-nyc-today"}).json()[0]
একটি ছাঁটা, টীকাযুক্ত প্রতিক্রিয়া (একটি বট যেসব ক্ষেত্রের পরোয়া করে):
{
"id": "519284",
"question": "Will it rain in NYC today?",
"slug": "will-it-rain-in-nyc-today",
"conditionId": "0x1f2e...c0", // the market id (NOT what you trade on)
"active": true, // listed and live
"closed": false, // not yet resolved
"acceptingOrders": true, // the CLOB is currently taking orders
"outcomes": "[\"Yes\", \"No\"]", // JSON string -> parse it
"clobTokenIds": "[\"7142...\", \"1098...\"]", // JSON string, aligned with outcomes
"outcomePrices": "[\"0.62\", \"0.38\"]", // JSON string, last prices
"bestBid": 0.61,
"bestAsk": 0.63,
"lastTradePrice": 0.62,
"volume24hr": 48213.5,
"endDate": "2026-06-16T00:00:00Z"
}
দুটি ফলাফল টোকেন ID clobTokenIds-এর ভেতরে থাকে। এগুলোই
CLOB ট্রেড করে - এগুলো পড়ুন এবং আপনি একটি অর্ডার দিতে পারবেন।
#1 ফাঁদ: JSON-এনকোডেড স্ট্রিং ক্ষেত্র
Gamma clobTokenIds, outcomes ও outcomePrices-কে
JSON-এর ভেতরে JSON-এনকোডেড স্ট্রিং হিসেবে ফেরত দেয়, তাই আপনাকে সেগুলো দ্বিতীয়বার ডিকোড করতে হবে। এবং কখনও
হার্ডকোড করবেন না কোন টোকেন "Yes": পার্সড outcomes অ্যারে পড়ুন এবং নাম দিয়ে মেলান, কারণ ক্রম
নিশ্চিত নয়।
import requests, json
m = requests.get("https://gamma-api.polymarket.com/markets",
params={"slug": SLUG}).json()[0]
outcomes = json.loads(m["outcomes"]) # e.g. ["Yes", "No"]
token_ids = json.loads(m["clobTokenIds"]) # aligned with outcomes
prices = json.loads(m["outcomePrices"]) # aligned with outcomes
yes_token = token_ids[outcomes.index("Yes")]
print(yes_token, prices[outcomes.index("Yes")])
const r = await fetch(`https://gamma-api.polymarket.com/markets?slug=${SLUG}`);
const m = (await r.json())[0];
const outcomes = JSON.parse(m.outcomes);
const tokenIds = JSON.parse(m.clobTokenIds);
const yesToken = tokenIds[outcomes.indexOf("Yes")];
curl -s "https://gamma-api.polymarket.com/markets?slug=$SLUG" | jq -r '.[0].clobTokenIds | fromjson | .[0]'
একটি আসল বাজারে চেষ্টা করুন - একটি স্লাগ পেস্ট করুন এবং তার টোকেন ID লাইভ টানুন:
ট্রেডযোগ্য বাজার স্ক্যান করুন
একটি সাধারণ বটের আবিষ্কার-কোয়েরি এক শ্রেণিতে সক্রিয়, খোলা বাজার চায়, ব্যস্ততম আগে:
GET https://gamma-api.polymarket.com/markets
?active=true&closed=false&order=volume24hr&ascending=false&limit=20&tag_slug=politics
কাজ করার আগে ফলাফলকে ক্লায়েন্ট-সাইডে সত্যিই ট্রেডযোগ্য বাজারে ফিল্টার করুন:
# keep only markets the CLOB will accept orders on right now
tradeable = [m for m in markets
if m.get("active") and not m.get("closed") and m.get("acceptingOrders")]
লাইভ অনুসন্ধান করুন (এটি /public-search কল করে, তারপর প্রতি বাজারের টোকেন ID লোড করে):
পেজিং ও তাজাত্ব
- পেজিং:
limitওoffsetযোগ করুন এবং একটি ছোট পাতা না পাওয়া পর্যন্ত হাঁটুন।/events-এlimit≤ 500,/markets-এ ≤ 300 রাখুন। - তাজাত্ব: দাম (
bestBid,bestAsk,lastTradePrice) অবিরত নড়ে। Gamma আবিষ্কার ও রুক্ষ দামের জন্য ঠিক, তবে কোট ও ট্রেড করুন লাইভ CLOB বুক থেকে, ক্যাশ করা Gamma দাম থেকে নয়। - ক্যাশিং: স্লাগ -> token_id ম্যাপিং ক্যাশ করুন (এটি স্থিতিশীল), দাম নয়।
GET /events - বহু-ফলাফল দল
একটি ইভেন্ট সম্পর্কিত বাজার বান্ডিল করে (যেমন "NYC Mayoral Election" প্রতি প্রার্থীতে একটি বাজার ধরে)। বহু-ফলাফল কার্ড রেন্ডার করতে বা একটি বিষয়ের প্রতিটি বাজার খুঁজতে এটি ব্যবহার করুন:
curl -s "https://gamma-api.polymarket.com/events?slug=nyc-mayor-2025" | jq '.[0].markets | length'
প্রতিটি ইভেন্টের একটি markets অ্যারে আছে; প্রতিটি এন্ট্রিতে একটি শীর্ষ-স্তরের বাজারের মতোই একই
clobTokenIds / outcomes স্ট্রিং ক্ষেত্র থাকে, তাই একই পার্সিং প্রযোজ্য।
conditionId এবং তার clobTokenIds দেয় (প্রতি ফলাফলে একটি)। CLOB
token_id-তে ট্রেড করে, কখনও conditionId-তে নয় - এদের গুলিয়ে ফেলা সবচেয়ে সাধারণ প্রথম-বট বাগ।ক্ষেত্র-রেফারেন্স (যেগুলো কামড়ায়)
| ক্ষেত্র | অর্থ |
|---|---|
conditionId | বাজার-শনাক্তকারী। নিষ্পত্তি ও অন-চেইন লুকআপে ব্যবহৃত, অর্ডার দেওয়ায় নয়। |
clobTokenIds | ফলাফল-টোকেন ID-এর JSON স্ট্রিং অ্যারে। পার্স করুন; এগুলো CLOB-এ ট্রেড করুন। |
outcomes / outcomePrices | JSON স্ট্রিং অ্যারে, clobTokenIds-এর সঙ্গে index-সারিবদ্ধ। |
active / closed | তালিকাভুক্ত-ও-লাইভ / নিষ্পন্ন। একটি ট্রেডযোগ্য বাজার হলো active && !closed। |
acceptingOrders | CLOB এখনই অর্ডার নেবে কি না। কোট করার আগে এটি যাচাই করুন। |
bestBid / bestAsk / lastTradePrice | ইঙ্গিতমূলক দাম। প্রামাণিক দাম CLOB বুক থেকে আসে। |
এরপর: CLOB API (একটি token_id-তে ট্রেড করুন) · Data API (ইতিহাস ও PnL) · একটি ত্রুটি ঠিক করুন।



