We Need More Crypto
Polymarket #polymarket #api #python

Polymarket API — полный гайд разработчика 2026

Практический гайд по Polymarket API и CLOB: аутентификация, ключевые endpoints, примеры кода на Python для получения котировок и отправки ордеров.

5 мин чтения
We Need More Crypto
Polymarket API — полный гайд разработчика 2026

Polymarket API открывает прямой доступ к одному из крупнейших рынков предсказаний — без браузера, без ручных кликов, с возможностью автоматизировать любую стратегию. Если ты хочешь строить ботов, агрегировать данные или интегрировать предсказательные рынки в собственный продукт, этот гайд даст тебе рабочую базу.

Здесь разберём Polymarket CLOB API с нуля: как устроена аутентификация, какие endpoints реально нужны, как отправить первый ордер на Python и на что обратить внимание, чтобы не словить бан по rate limit. Примеры кода — рабочие, без воды.

Если ты только знакомишься с платформой, сначала прочитай базовый гайд по Polymarket — там объясняется логика рынков, USDC-депозиты и принцип работы с позициями.

Архитектура Polymarket API

Polymarket использует два слоя инфраструктуры, и важно понимать разницу.

Gamma API — публичный REST API для чтения данных: список рынков, события, метаданные. Не требует аутентификации, подходит для агрегации и аналитики.

CLOB API — основной торговый интерфейс. Через него проходят все ордера, отмены, запросы баланса и истории сделок. Именно Polymarket CLOB API используется для автоматической торговли.

Базовые URL:

  • Gamma: https://gamma-api.polymarket.com
  • CLOB: https://clob.polymarket.com

Как устроен CLOB

CLOB (Central Limit Order Book) на Polymarket работает поверх сети Polygon. Каждый рынок имеет два токена — YES и NO, каждый торгуется отдельно. Цена токена отражает вероятность исхода и находится в диапазоне от 0 до 1 USDC.

Ордера подписываются локально через ECDSA и отправляются на сервер CLOB. Это означает, что приватный ключ никогда не покидает твою машину — сервер только верифицирует подпись.

Аутентификация

Polymarket API использует двухуровневую систему ключей.

L1 — кошелёк Polygon. Это твой основной Ethereum-адрес с USDC. Он подписывает транзакции и является владельцем средств.

L2 — API-ключ. Генерируется через интерфейс Polymarket (Settings → API Keys) или программно. Состоит из трёх компонентов: api_key, api_secret, api_passphrase. Используется для подписи HTTP-запросов.

Установка SDK:

pip install py-clob-client

Инициализация клиента:

from py_clob_client.client import ClobClient
from py_clob_client.clob_types import ApiCreds

HOST = "https://clob.polymarket.com"
KEY = "0xВАШ_ПРИВАТНЫЙ_КЛЮЧ"
CHAIN_ID = 137  # Polygon mainnet

client = ClobClient(HOST, key=KEY, chain_id=CHAIN_ID)

# Создать API-ключи (один раз)
creds = client.create_or_derive_api_creds()
print(creds)

После получения api_key, api_secret и api_passphrase — сохрани их в .env, не в коде.

from py_clob_client.clob_types import ApiCreds

creds = ApiCreds(
    api_key="...",
    api_secret="...",
    api_passphrase="..."
)

client = ClobClient(HOST, key=KEY, chain_id=CHAIN_ID, creds=creds)

Основные endpoints

Получение списка рынков

Через Gamma API — без аутентификации:

import requests

resp = requests.get("https://gamma-api.polymarket.com/markets?active=true&limit=20")
markets = resp.json()

for m in markets:
    print(m["question"], m["conditionId"])

Каждый рынок содержит conditionId — это основной идентификатор, который используется в CLOB API.

Получение котировок через Polymarket CLOB API

# Получить стакан ордеров для конкретного токена
token_id = "ТОКЕН_ID_YES_ИЛИ_NO"

orderbook = client.get_order_book(token_id)
print("Bids:", orderbook.bids[:5])
print("Asks:", orderbook.asks[:5])

Стакан возвращает массивы bids и asks с ценами и объёмами. Лучший bid — последний элемент в bids, лучший ask — первый в asks.

Получение последних сделок

trades = client.get_trades(
    market=condition_id,
    limit=50
)

Это полезно для анализа ликвидности и построения стратегий на основе потока ордеров. Подробнее о стратегиях на предсказательных рынках — в разделе стратегий Polymarket.

Отправка ордеров

Лимитный ордер

from py_clob_client.clob_types import OrderArgs, OrderType

order_args = OrderArgs(
    token_id="ТОКЕН_ID",
    price=0.65,       # цена в USDC (вероятность)
    size=10.0,        # объём в USDC
    side="BUY",
    order_type=OrderType.GTC  # Good Till Cancelled
)

signed_order = client.create_order(order_args)
resp = client.post_order(signed_order)
print(resp)

Параметр price — это вероятность исхода. Если ставишь 0.65 на YES, ты считаешь, что событие произойдёт с вероятностью выше 65%.

Рыночный ордер

order_args = OrderArgs(
    token_id="ТОКЕН_ID",
    price=0.99,       # для рыночного — ставь максимум
    size=10.0,
    side="BUY",
    order_type=OrderType.FOK  # Fill Or Kill
)

FOK-ордер исполняется немедленно или отменяется полностью — аналог рыночного ордера в CLOB-системе.

Отмена ордера

client.cancel(order_id="ID_ОРДЕРА")

# Отменить все открытые ордера
client.cancel_all()

Работа с балансом и позициями

# Баланс USDC
balance = client.get_balance_allowance()
print(balance)

# Открытые позиции
positions = client.get_positions()
for p in positions:
    print(p["market"], p["size"], p["avgPrice"])

Перед отправкой ордеров убедись, что USDC одобрен для CLOB-контракта. SDK делает это автоматически при первом запуске, но если используешь raw HTTP — нужно вручную вызвать approve на контракте USDC в сети Polygon.

Rate limits и обработка ошибок

Polymarket API документация указывает следующие ограничения:

  • Публичные endpoints — около 100 запросов в минуту
  • Приватные endpoints — более строгие лимиты, зависят от типа операции

При превышении лимита сервер возвращает 429 Too Many Requests. Правильная обработка:

import time

def safe_request(func, *args, retries=3, **kwargs):
    for attempt in range(retries):
        try:
            return func(*args, **kwargs)
        except Exception as e:
            if "429" in str(e):
                wait = 2 ** attempt
                print(f"Rate limit, ждём {wait}с")
                time.sleep(wait)
            else:
                raise
    raise Exception("Превышено число попыток")

Экспоненциальная задержка — стандартный подход. Не делай retry с фиксированным интервалом в 1 секунду — это не поможет при длительном throttling.

Если строишь полноценного торгового бота, изучи обзор инструментов для автоматической торговли — там разобраны готовые фреймворки, которые уже умеют работать с rate limits и переподключением.

Практические советы

Храни ключи в переменных окружения. Никогда не коммить api_secret в репозиторий. Используй python-dotenv или системные переменные.

Логируй все ордера. CLOB не всегда возвращает ошибку синхронно — иногда ордер принят, но не исполнен. Сохраняй order_id и периодически проверяй статус через client.get_order(order_id).

Тестируй на малых объёмах. Минимальный размер ордера — 1 USDC. Начинай с него, прежде чем масштабировать стратегию.

Следи за ликвидностью. На малоактивных рынках спред может быть 5–10%. Polymarket CLOB API позволяет получить полный стакан — анализируй глубину перед входом.

Используй WebSocket для real-time данных. REST-опрос каждые 5 секунд создаёт лишнюю нагрузку. CLOB поддерживает WebSocket-подписки на обновления стакана и сделки — это эффективнее для высокочастотных стратегий.

Заключение

Polymarket API — зрелый инструмент с понятной документацией и активным сообществом разработчиков. CLOB API даёт полный контроль над торговлей: от получения котировок до отправки подписанных ордеров напрямую в стакан.

Для старта достаточно Python, библиотеки py-clob-client и базового понимания того, как работают предсказательные рынки. Если ты уже знаком с основами работы на Polymarket, следующий шаг — написать простого бота, который отслеживает изменения котировок и реагирует на них автоматически.

Начни с read-only режима: собирай данные, строй модели, тестируй гипотезы. Торговые запросы через Polymarket API добавляй только после того, как логика стратегии проверена на исторических данных.

Частые вопросы

Нужен ли API-ключ для работы с Polymarket API?

Для чтения публичных данных — нет. Для отправки ордеров и управления позициями нужна L1-аутентификация через ECDSA-подпись кошелька и L2-ключ, который генерируется через интерфейс Polymarket.

Какой язык программирования лучше использовать для Polymarket API?

Python — наиболее популярный выбор: есть официальный SDK py-clob-client и большое сообщество. Подойдёт любой язык с поддержкой HTTP-запросов и библиотеками для работы с Ethereum-подписями.

Есть ли лимиты запросов к Polymarket CLOB API?

Да, публичные endpoints ограничены примерно 100 запросами в минуту. Приватные endpoints для торговли имеют более строгие лимиты — рекомендуется добавлять задержки между запросами и обрабатывать ошибку 429.

Как получить данные об открытых рынках через Polymarket API?

Используй GET /markets для получения списка активных рынков. Каждый рынок содержит condition_id, токены и текущие котировки. Фильтрацию можно делать по параметрам active и closed.

Можно ли запустить торгового бота на Polymarket без программирования?

Без базовых навыков Python или JavaScript — сложно. Но существуют готовые шаблоны ботов и no-code инструменты, которые подключаются к API через webhook. Подробнее об автоматизации — в нашем обзоре торговых ботов.

Что такое CLOB в контексте Polymarket API?

CLOB расшифровывается как Central Limit Order Book — централизованный стакан ордеров. Polymarket CLOB API позволяет размещать лимитные и рыночные ордера напрямую в стакан, минуя интерфейс сайта.

Telegram

Сигналы, стратегии и разборы рынков каждый день

Подписаться

Telegram-канал

Присоединяйся к нашему каналу — ежедневные сигналы, разборы стратегий, обзоры рынков и эксклюзивная аналитика.

  • Ежедневные обзоры рынков Polymarket
  • Реальные позиции с обоснованием
  • Стратегии заработка и арбитража

Читайте также

Telegram-канал — сигналы каждый день