API · Довідник

Data API на data-api.polymarket.com - це «склад» Полімаркет лише для читання: позиції кожного гаманця, повна стрічка угод і жива вартість портфеля з вбудованим PnL. Він повністю публічний: без ключа, без підпису, без облікового запису. Це робить його найлегшим місцем для старту - можна побудувати цілий аналітичний або копітрейдинг-бот на ньому, жодного разу не торкнувшись приватного ключа. Кожен приклад нижче - це реальний виклик, який ви можете запустити в пісочниці на цій сторінці.

Швидкий огляд
  • Базовий URL: https://data-api.polymarket.com · без автентифікації.
  • Адреса для передачі: проксі-гаманець трейдера (його ончейн-адреса Полімаркет), а не ключ підпису.
  • Ліміт запитів: ~1000 запитів / 10 с (/trades 200, /positions 150) - сповільнення, не відмова.
  • Повертає прості JSON-масиви. Поєднуйте з Gamma (пошук) і CLOB (торгівля).

/positions - що тримає гаманець (з PnL)

Робочий ендпоінт. Передайте гаманець і отримайте кожну відкриту позицію, кожну вже збагачену собівартістю й прибутком/збитком - тож це заодно й ендпоінт PnL (математика сабграфа не потрібна).

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
  }
]
ПолеЗначення
assettoken_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 - повний журнал ончейн-дій (не лише угоди)

Ендпоінт, який пропускає більшість ботів. /activity повертає все, що гаманець робив ончейн, не лише виконання: фільтруйте за type = TRADE, SPLIT, MERGE, REDEEM, REWARD чи CONVERSION і за start / end (unix-секунди). Саме так ви спостерігаєте, як гаманець розділяє pUSD на Yes+No, зливає назад, погашає вирішену позицію чи збирає винагороди мейкера - примітиви CTF, яких книга замовлень ніколи не показує.

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

Поєднуйте з примітивами CTF: /activity - це бік читання split / merge / redeem, тож стратегія, яка карбує чи погашає набори, може звірити власну ончейн-історію, не торкаючись ноди.

/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 (знаходити ринки) · Побудувати копітрейдинг-бот.