API · עיון

ה-Data API בכתובת data-api.polymarket.com הוא ה"מחסן" לקריאה-בלבד של פולימרקט - ה-פוזיציות של כל ארנק, כל טייפ ה-עסקאות, וערך תיק חי, עם PnL מובנה. הוא ציבורי לחלוטין: ללא מפתח, ללא חתימה, ללא חשבון. זה הופך אותו למקום הקל ביותר להתחיל בו - אפשר לבנות בוט אנליטיקה או העתקת-מסחר שלם מעליו בלי לגעת אי פעם במפתח פרטי. כל דוגמה למטה היא קריאה אמיתית שאפשר להריץ ב-sandbox בעמוד הזה.

במבט חטוף
  • כתובת בסיס: https://data-api.polymarket.com · ללא אימות.
  • הכתובת שיש להעביר: ארנק הפרוקסי של הסוחר (כתובת הפולימרקט שלו און-צ׳יין), לא מפתח חותם.
  • מגבלת קצב: כ-1,000 בקשות / 10 שניות (/trades 200, /positions 150) - נחנק, לא נדחה.
  • מחזיר מערכי JSON פשוטים. שלבו עם Gamma (גילוי) ו-CLOB (מסחר).

/positions - מה ארנק מחזיק (עם PnL)

ה-endpoint העמל. העבירו ארנק וקבלו כל פוזיציה פתוחה, כל אחת כבר מועשרת בבסיס עלות וברווח/הפסד - כך שזה משמש גם כ-endpoint ה-PnL (ללא צורך במתמטיקת subgraph).

import requests
r = requests.get("https://data-api.polymarket.com/positions",
                 params={"user": PROXY_ADDRESS})
for p in r.json():
    print(p["title"], p["outcome"], p["size"],
          "avg", p["avgPrice"], "pnl", p["cashPnl"])
curl -s "https://data-api.polymarket.com/positions?user=$PROXY_ADDRESS"

תגובה אמיתית (פוזיציה אחת, מקוצרת):

[
  {
    "proxyWallet": "0xbfd068…a0c8",
    "asset":       "30114730…931285",   // the token_id (CLOB-tradeable)
    "conditionId": "0x4589bb…b3005c",
    "size":         100,                 // shares held
    "avgPrice":     0.01,                // your cost basis
    "curPrice":     0.00,                // current mark
    "currentValue": 0.00,
    "cashPnl":     -1.00,                // $ profit/loss
    "percentPnl":  -100,
    "realizedPnl":  0,
    "redeemable":   true,                // market resolved → can redeem
    "title":   "Bitcoin Up or Down - June 14, 8:00-8:05AM ET",
    "outcome": "Down", "outcomeIndex": 1
  }
]
שדהמשמעות
assetה-token_id - הזינו אותו ישירות ל-CLOB כדי לקרוא את ספר הפקודות או לסחור.
size / avgPriceהמניות המוחזקות ומחיר הכניסה הממוצע שלכם (בסיס עלות).
cashPnl / percentPnl / realizedPnl$ לא ממומש, % לא ממומש, ו-$ ממומש - ה-PnL שאחרת הייתם מחשבים בעצמכם.
redeemabletrue ברגע שהשוק מוכרע והפוזיציה ניתנת לפדיון.

/trades - טייפ העסקאות

כל מילוי, החדש ביותר תחילה. סננו לפי user= (היסטוריית ארנק אחד) ו/או market=, או פשוט משכו את הזרם המלא עם limit=. זהו מקור נתוני הבדיקה-לאחור והעתקת-המסחר שלכם.

curl -s "https://data-api.polymarket.com/trades?user=$PROXY_ADDRESS&limit=100"

תגובה אמיתית (עסקה אחת, מקוצרת):

[
  {
    "proxyWallet": "0xad05d2…3a3d",
    "side":        "BUY",
    "asset":       "54898429…124028",   // token_id traded
    "conditionId": "0x0e6eb3…a83290",
    "size":         10,
    "price":        0.10,
    "timestamp":    1781469243,          // unix seconds
    "title":  "Bitcoin Up or Down - June 14, 4:30-4:35PM ET",
    "outcome": "Down", "outcomeIndex": 1,
    "transactionHash": "0x4c0e78…38064d" // verify on PolygonScan
  }
]

כל עסקה נושאת מאחוריה את ה-proxyWallet - כך ש-/trades הוא גם האופן שבו אתם מגלים ארנקים לעקוב אחריהם: משכו מילויים אחרונים בשוק, ואז משכו את ה-/positions של כל ארנק.

/value - ערך התיק במספר אחד

בדיקת הבריאות המהירה ביותר - הערך הנוכחי הכולל של ארנק:

v = requests.get("https://data-api.polymarket.com/value",
                 params={"user": PROXY_ADDRESS}).json()[0]["value"]
print(f"${v:,.2f}")
curl -s "https://data-api.polymarket.com/value?user=$PROXY_ADDRESS"

תגובה אמיתית:

[ { "user": "0xbfd068…a0c8", "value": 2.3236 } ]

/activity - יומן הפעולה המלא און-צ׳יין (לא רק עסקאות)

ה-endpoint שרוב הבוטים מפספסים. /activity מחזיר את כל מה שארנק עשה און-צ׳יין, לא רק מילויים: סננו לפי type = TRADE, SPLIT, MERGE, REDEEM, REWARD או CONVERSION, ולפי start / end (unix שניות). כך אתם צופים בארנק מפצל (split) pUSD ל-Yes+No, ממזג (merge) חזרה, פודה (redeem) פוזיציה מוכרעת, או אוסף תגמולי עושה שוק - פרימיטיבי ה-CTF שספר הפקודות לעולם אינו מראה.

curl -s "https://data-api.polymarket.com/activity?user=$PROXY_ADDRESS&type=SPLIT,MERGE,REDEEM&limit=50"

שלבו אותו עם פרימיטיבי ה-CTF: /activity הוא צד הקריאה של split / merge / redeem, כך שאסטרטגיה שטובעת או פודה סטים יכולה ליישב את ההיסטוריה שלה און-צ׳יין בלי לגעת ב-node.

/holders - מי מחזיק שוק

המחזיקים המובילים לכל תוצאה של שוק - שימושי לבדיקות ריכוזיות ולגילוי לווייתנים:

curl -s "https://data-api.polymarket.com/holders?market=$CONDITION_ID&limit=20"

מתכון: עוקב ארנק ב-20 שורות

גלו ארנק פעיל מהטייפ, ואז שפכו את ספר הפוזיציות שלו עם PnL - הכול ללא מפתח:

import requests
D = "https://data-api.polymarket.com"

# 1) who just traded BTC?
who = requests.get(f"{D}/trades", params={"limit": 1}).json()[0]["proxyWallet"]

# 2) their open book + live PnL
for p in requests.get(f"{D}/positions", params={"user": who}).json():
    print(f"{p['title'][:40]:40} {p['outcome']:4} {p['size']:>6} sh  "
          f"PnL ${p['cashPnl']:+.2f} ({p['percentPnl']:+.0f}%)")

# 3) their total value
print("total $", requests.get(f"{D}/value", params={"user": who}).json()[0]["value"])
העבירו את ארנק הפרוקסי. השתמשו בכתובת ה-פרוקסי של הסוחר בפולימרקט (זו שמחזיקה כספים ומופיעה בטבלת המובילים), לא במפתח חותם/EOA. וזכרו שחותמות הזמן הן unix שניות.

הבא: CLOB API (קריאת ספר הפקודות, מסחר) · Gamma API (מציאת שווקים) · בניית בוט העתקת-מסחר.