skills/polymarket/SKILL.md
Polymarket is a decentralized prediction market platform built on Polygon. Use this skill to interact with the Polymarket APIs for market discovery, price data, order placement, portfolio management, WebSocket streaming, and bridging/withdrawals.
npx skillsauth add outsharp/shipp-skills polymarketInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Polymarket is a decentralized prediction market where users trade on the outcomes of real-world events. It uses a hybrid-decentralized Central Limit Order Book (CLOB) with off-chain matching and on-chain settlement on Polygon.
Check this skill and the official documentation FREQUENTLY. The canonical machine-readable index of all docs lives at:
https://docs.polymarket.com/llms.txt
Always consult llms.txt to discover every available page before building. It is the single source of truth for endpoint references, SDK docs, WebSocket channels, builder program details, and getting-started guides.
| Term | Definition |
|---|---|
| Event | A collection of related markets grouped under a common topic (e.g., "2024 US Presidential Election"). |
| Market | A single tradeable binary outcome within an event. Each market has Yes and No sides, a condition ID, question ID, and pair of token IDs. |
| Token | Represents a position in a specific outcome (Yes or No). Prices range from 0.00 to 1.00. Winning tokens redeem for $1 USDCe. Also called outcome token. |
| Token ID | The unique identifier for a specific outcome token. Required when placing orders or querying prices. |
| Condition ID | On-chain identifier for a market's resolution condition. Used in CTF operations and as the market identifier in the CLOB. |
| Question ID | Identifier linking a market to its resolution oracle (UMA). |
| Slug | Human-readable URL identifier for a market or event (e.g., polymarket.com/event/[slug]). |
| CLOB | Central Limit Order Book — Polymarket's off-chain order matching system. Orders are matched here before on-chain settlement. |
| Tick Size | Minimum price increment for a market. Usually 0.01 (1 cent) or 0.001 (0.1 cent). |
| Fill | When an order is matched and executed. Orders can be partially or fully filled. |
| Negative Risk (NegRisk) | A multi-outcome event where only one outcome can resolve Yes. Requires negRisk: true in order parameters. |
| CTF | Conditional Token Framework — the on-chain smart contracts that manage outcome tokens. |
| Split | Convert USDCe into a complete set of outcome tokens (one Yes + one No). |
| Merge | Convert a complete set of outcome tokens back into USDCe. |
| Redeem | After resolution, exchange winning tokens for $1 USDCe each. |
| USDCe | Bridged USDC on Polygon — the stablecoin used as collateral on Polymarket. |
| Funder Address | The wallet address that holds funds and tokens for trading. |
| Signature Type | Identifies wallet type: 0 = EOA, 1 = Magic Link proxy (POLY_PROXY), 2 = Gnosis Safe proxy. |
Full glossary: https://docs.polymarket.com/quickstart/reference/glossary.md
| Type | Name | Description | |---|---|---| | GTC | Good-Til-Cancelled | Remains open until filled or manually cancelled. | | GTD | Good-Til-Date | Expires at a specified time if not filled. | | FOK | Fill-Or-Kill | Must be filled entirely and immediately, or cancelled. No partial fills. | | FAK | Fill-And-Kill | Fills as much as possible immediately, then cancels any remaining unfilled portion. |
| API | Base URL | Description |
|---|---|---|
| CLOB API | https://clob.polymarket.com | Order management, prices, orderbooks, trading |
| Gamma API | https://gamma-api.polymarket.com | Market discovery, metadata, events, tags |
| Data API | https://data-api.polymarket.com | User positions, activity, trade history |
| CLOB WebSocket | wss://ws-subscriptions-clob.polymarket.com/ws/ | Orderbook updates, order status |
| RTDS WebSocket | wss://ws-live-data.polymarket.com | Low-latency crypto prices, comments |
Endpoints reference: https://docs.polymarket.com/quickstart/reference/endpoints.md
All detailed examples, request/response schemas, and walkthroughs live in the official docs. Always consult these before building:
| Resource | URL | |---|---| | Full documentation index (llms.txt) | https://docs.polymarket.com/llms.txt | | Developer Quickstart | https://docs.polymarket.com/quickstart/overview.md | | Fetching Market Data | https://docs.polymarket.com/quickstart/fetching-data.md | | Placing Your First Order | https://docs.polymarket.com/quickstart/first-order.md | | API Rate Limits | https://docs.polymarket.com/quickstart/introduction/rate-limits.md | | Endpoints Reference | https://docs.polymarket.com/quickstart/reference/endpoints.md | | Glossary | https://docs.polymarket.com/quickstart/reference/glossary.md | | CLOB Introduction | https://docs.polymarket.com/developers/CLOB/introduction.md | | Authentication | https://docs.polymarket.com/developers/CLOB/authentication.md | | Client Methods Overview | https://docs.polymarket.com/developers/CLOB/clients/methods-overview.md | | Public Methods | https://docs.polymarket.com/developers/CLOB/clients/methods-public.md | | L1 Methods | https://docs.polymarket.com/developers/CLOB/clients/methods-l1.md | | L2 Methods | https://docs.polymarket.com/developers/CLOB/clients/methods-l2.md | | Orders Overview | https://docs.polymarket.com/developers/CLOB/orders/orders.md | | Place Single Order | https://docs.polymarket.com/developers/CLOB/orders/create-order.md | | Place Multiple Orders | https://docs.polymarket.com/developers/CLOB/orders/create-order-batch.md | | Cancel Orders | https://docs.polymarket.com/developers/CLOB/orders/cancel-orders.md | | WebSocket Overview | https://docs.polymarket.com/developers/CLOB/websocket/wss-overview.md | | Market Channel | https://docs.polymarket.com/developers/CLOB/websocket/market-channel.md | | User Channel | https://docs.polymarket.com/developers/CLOB/websocket/user-channel.md | | Gamma Structure | https://docs.polymarket.com/developers/gamma-markets-api/gamma-structure.md | | How to Fetch Markets | https://docs.polymarket.com/developers/gamma-markets-api/fetch-markets-guide.md | | Negative Risk Overview | https://docs.polymarket.com/developers/neg-risk/overview.md | | CTF Overview | https://docs.polymarket.com/developers/CTF/overview.md | | Builder Program | https://docs.polymarket.com/developers/builders/builder-intro.md | | Market Makers Introduction | https://docs.polymarket.com/developers/market-makers/introduction.md | | Bridge Overview | https://docs.polymarket.com/developers/misc-endpoints/bridge-overview.md | | Polymarket Platform | https://polymarket.com |
Polymarket uses a two-level authentication system. Public endpoints (market data, prices, orderbooks) require no authentication.
L1 uses the wallet's private key to sign an EIP-712 message. It proves ownership of the wallet and is used to create or derive L2 API credentials.
L1 Headers (for direct REST calls):
| Header | Description |
|---|---|
| POLY_ADDRESS | Polygon signer address |
| POLY_SIGNATURE | EIP-712 signature |
| POLY_TIMESTAMP | Current UNIX timestamp |
| POLY_NONCE | Nonce (default 0) |
The POLY_SIGNATURE is generated by signing an EIP-712 struct with domain ClobAuthDomain (version 1, chainId 137).
TypeScript example:
import { ClobClient } from "@polymarket/clob-client";
import { Wallet } from "ethers"; // v5.8.0
const HOST = "https://clob.polymarket.com";
const CHAIN_ID = 137; // Polygon mainnet
const signer = new Wallet(process.env.PRIVATE_KEY);
const client = new ClobClient(HOST, CHAIN_ID, signer);
const apiCreds = await client.createOrDeriveApiKey();
// Returns: { apiKey, secret, passphrase }
Python example:
from py_clob_client.client import ClobClient
import os
client = ClobClient(
host="https://clob.polymarket.com",
chain_id=137,
key=os.getenv("PRIVATE_KEY"),
)
api_creds = client.create_or_derive_api_creds()
# Returns: { "apiKey": "...", "secret": "...", "passphrase": "..." }
Full L1 auth details: https://docs.polymarket.com/developers/CLOB/authentication.md
L2 uses the API credentials (apiKey, secret, passphrase) derived from L1. Requests are signed with HMAC-SHA256 using the secret.
L2 Headers (for direct REST calls):
| Header | Description |
|---|---|
| POLY_ADDRESS | Polygon signer address |
| POLY_SIGNATURE | HMAC-SHA256 signature |
| POLY_TIMESTAMP | Current UNIX timestamp |
| POLY_API_KEY | User's API apiKey value |
| POLY_PASSPHRASE | User's API passphrase value |
TypeScript example (full L2 client):
import { ClobClient } from "@polymarket/clob-client";
import { Wallet } from "ethers"; // v5.8.0
const signer = new Wallet(process.env.PRIVATE_KEY);
const apiCreds = {
apiKey: process.env.API_KEY,
secret: process.env.SECRET,
passphrase: process.env.PASSPHRASE,
};
const client = new ClobClient(
"https://clob.polymarket.com",
137,
signer,
apiCreds,
2, // Signature type: 0=EOA, 1=POLY_PROXY, 2=GNOSIS_SAFE
process.env.FUNDER_ADDRESS, // proxy wallet address
);
Python example (full L2 client):
from py_clob_client.client import ClobClient
from py_clob_client.clob_types import ApiCreds
import os
api_creds = ApiCreds(
api_key=os.getenv("API_KEY"),
api_secret=os.getenv("SECRET"),
api_passphrase=os.getenv("PASSPHRASE"),
)
client = ClobClient(
host="https://clob.polymarket.com",
chain_id=137,
key=os.getenv("PRIVATE_KEY"),
creds=api_creds,
signature_type=2, # 0=EOA, 1=POLY_PROXY, 2=GNOSIS_SAFE
funder=os.getenv("FUNDER_ADDRESS"),
)
| Type | Value | Description | |---|---|---| | EOA | 0 | Standard Ethereum wallet. Funder is the EOA address. Needs POL for gas. | | POLY_PROXY | 1 | Magic Link email/Google login proxy wallet. User must export PK from Polymarket.com. | | GNOSIS_SAFE | 2 | Gnosis Safe multisig proxy wallet. Most common for Polymarket.com users. |
Full auth guide: https://docs.polymarket.com/developers/CLOB/authentication.md
Polymarket provides official SDKs. Prefer these for production integrations:
| SDK | Install | Source |
|---|---|---|
| TypeScript | npm install @polymarket/clob-client | GitHub |
| Python | pip install py-clob-client | GitHub |
| Rust | cargo add polymarket-client-sdk | — |
For builders routing orders for users, also install:
| Package | Install | Purpose |
|---|---|---|
| Builder Signing SDK | npm install @polymarket/builder-signing-sdk | Builder order attribution |
Polymarket uses Cloudflare-based throttling (requests are delayed, not immediately rejected). Key limits:
| Endpoint | Limit | |---|---| | General Rate Limiting | 15,000 requests / 10s |
| Endpoint | Limit |
|---|---|
| Gamma (General) | 4,000 / 10s |
| /events | 500 / 10s |
| /markets | 300 / 10s |
| /markets & /events listing | 900 / 10s |
| Search | 350 / 10s |
| Tags | 200 / 10s |
| Comments | 200 / 10s |
| Endpoint | Limit |
|---|---|
| CLOB (General) | 9,000 / 10s |
| /book | 1,500 / 10s |
| /price | 1,500 / 10s |
| /midprice | 1,500 / 10s |
| /books, /prices, /midprices | 500 / 10s |
| Price History | 1,000 / 10s |
| Endpoint | Burst Limit | Sustained Limit |
|---|---|---|
| POST /order | 3,500 / 10s (500/s) | 36,000 / 10min (60/s) |
| DELETE /order | 3,000 / 10s (300/s) | 30,000 / 10min (50/s) |
| POST /orders (batch) | 1,000 / 10s (100/s) | 15,000 / 10min (25/s) |
| DELETE /orders (batch) | 1,000 / 10s (100/s) | 15,000 / 10min (25/s) |
| DELETE /cancel-all | 250 / 10s (25/s) | 6,000 / 10min (10/s) |
| Endpoint | Limit |
|---|---|
| Data API (General) | 1,000 / 10s |
| /trades | 200 / 10s |
| /positions | 150 / 10s |
| /closed-positions | 150 / 10s |
Full rate limits: https://docs.polymarket.com/quickstart/introduction/rate-limits.md
Below is a summary organized by API. For full request/response schemas, see the linked docs or browse https://docs.polymarket.com/llms.txt.
Base: https://gamma-api.polymarket.com
| Endpoint | Method | Description | Docs |
|---|---|---|---|
| /events | GET | List events (filter by active, closed, tag_id, series_id, etc.) | List Events |
| /events/{id} | GET | Get event by ID | Get Event by ID |
| /events/{slug} | GET | Get event by slug | Get Event by Slug |
| /events/tags | GET | Get event tags | Get Event Tags |
| /markets | GET | List markets (filter by various criteria) | List Markets |
| /markets/{id} | GET | Get market by ID | Get Market by ID |
| /markets/{slug} | GET | Get market by slug | Get Market by Slug |
| /tags | GET | List tags | List Tags |
| /tags/{id} | GET | Get tag by ID | Get Tag by ID |
| /tags/{slug} | GET | Get tag by slug | Get Tag by Slug |
| /series | GET | List series | List Series |
| /series/{id} | GET | Get series by ID | Get Series by ID |
| /sports | GET | Get sports metadata | Get Sports Metadata |
| /sports/market-types | GET | Get valid sports market types | Get Valid Sports Market Types |
| /teams | GET | List teams | List Teams |
| /search | GET | Search markets, events, and profiles | Search |
| /comments | GET | List comments | List Comments |
| /profiles/{address} | GET | Get public profile by wallet address | Get Profile |
Gamma structure guide: https://docs.polymarket.com/developers/gamma-markets-api/gamma-structure.md
Base: https://clob.polymarket.com
| Endpoint | Method | Auth | Description | Docs |
|---|---|---|---|---|
| /price | GET | No | Get current price for a token and side | Get Market Price |
| /prices | POST | No | Get prices for multiple tokens and sides | Get Multiple Market Prices |
| /midpoint | GET | No | Get midpoint price for a token | Get Midpoint Price |
| /book | GET | No | Get order book for a token | Get Order Book Summary |
| /books | POST | No | Get order books for multiple tokens | Get Multiple Order Books |
| /prices-history | GET | No | Get historical price data for a token | Get Price History |
| /spreads | GET | No | Get bid-ask spreads for multiple tokens | Get Bid-Ask Spreads |
Base: https://clob.polymarket.com
| Endpoint | Method | Auth | Description | Docs |
|---|---|---|---|---|
| /order | POST | L2 | Place a single order | Place Single Order |
| /order | DELETE | L2 | Cancel a single order | Cancel Orders |
| /orders | POST | L2 | Place multiple orders (batch, up to 15) | Place Multiple Orders |
| /orders | DELETE | L2 | Cancel multiple orders | Cancel Orders |
| /cancel-all | DELETE | L2 | Cancel all open orders | Cancel Orders |
| /cancel-market-orders | DELETE | L2 | Cancel all orders for a specific market | Cancel Orders |
| Endpoint | Method | Auth | Description | Docs |
|---|---|---|---|---|
| /data/order/{orderId} | GET | L2 | Get a specific order | Get Order |
| /data/orders | GET | L2 | Get active/open orders | Get Active Orders |
| /data/trades | GET | L2 | Get user's trades | Get Trades |
| /order/scoring | GET | L2 | Check order reward scoring eligibility | Check Scoring |
| Endpoint | Method | Auth | Description |
|---|---|---|---|
| /auth/api-key | POST | L1 | Create new API credentials |
| /auth/derive-api-key | GET | L1 | Derive existing API credentials |
| /auth/api-keys | GET | L2 | List API keys |
| /auth/api-key | DELETE | L2 | Delete/revoke an API key |
Base: https://data-api.polymarket.com
| Endpoint | Method | Description | Docs |
|---|---|---|---|
| /positions | GET | Get current positions for a user | Get Current Positions |
| /closed-positions | GET | Get closed positions for a user | Get Closed Positions |
| /positions/market | GET | Get positions for a market | Get Positions for Market |
| /positions/value | GET | Get total value of a user's positions | Get Total Value |
| /top-holders | GET | Get top holders for markets | Get Top Holders |
| /trades | GET | Get trades for a user or markets | Get Trades |
| /activity | GET | Get user on-chain activity | Get User Activity |
| /leaderboard | GET | Get trader leaderboard rankings | Get Leaderboard |
| /open-interest | GET | Get open interest | Get Open Interest |
| /volume | GET | Get live volume for an event | Get Live Volume |
| Endpoint | Method | Description | Docs |
|---|---|---|---|
| /deposit | POST | Create deposit addresses | Create Deposit Addresses |
| /withdraw | POST | Create withdrawal addresses | Create Withdrawal Addresses |
| /supported-assets | GET | Get supported chains & tokens | Get Supported Assets |
| /quote | GET | Get deposit/withdrawal quote | Get a Quote |
| /status | GET | Get transaction status | Get Transaction Status |
Bridge overview: https://docs.polymarket.com/developers/misc-endpoints/bridge-overview.md
| Endpoint | Method | Description | Docs |
|---|---|---|---|
| /builders/leaderboard | GET | Get aggregated builder leaderboard | Builder Leaderboard |
| /builders/volume | GET | Get daily builder volume time-series | Builder Volume |
Builder program: https://docs.polymarket.com/developers/builders/builder-intro.md
Current fee schedule (subject to change):
| Volume Level | Maker Fee (bps) | Taker Fee (bps) | |---|---|---| | >0 USDC | 0 | 0 |
Fee calculation depends on buying vs. selling:
feeQuote = baseRate × min(price, 1 - price) × sizefeeBase = baseRate × min(price, 1 - price) × (size / price)Fees details: https://docs.polymarket.com/developers/CLOB/introduction.md
Maker rebates program: https://docs.polymarket.com/developers/market-makers/maker-rebates-program.md
Polymarket provides two WebSocket services for real-time data.
wss://ws-subscriptions-clob.polymarket.com/ws/
Two channels are available:
| Channel | Auth Required | Description | Docs |
|---|---|---|---|
| market | No | Orderbook and price updates (public) | Market Channel |
| user | Yes | Order status and trade updates | User Channel |
| Event Type | Trigger | Description |
|---|---|---|
| book | First subscribe / trade | Full orderbook snapshot with bids and asks |
| price_change | New order / cancellation | Incremental price level changes with best bid/ask |
| tick_size_change | Price > 0.96 or < 0.04 | Minimum tick size update |
| last_trade_price | Trade match | Last trade price, side, and size |
| best_bid_ask | Best price change | Best bid, ask, and spread (requires custom_feature_enabled) |
| new_market | Market created | New market details (requires custom_feature_enabled) |
| market_resolved | Market resolved | Resolution details with winning outcome (requires custom_feature_enabled) |
| Event Type | Trigger | Description |
|---|---|---|
| trade | Order matched / status change | Trade details with maker orders, status (MATCHED, MINED, CONFIRMED, RETRYING, FAILED) |
| order | Order placed / updated / cancelled | Order details with type (PLACEMENT, UPDATE, CANCELLATION) |
Send a JSON message upon connection:
{
"auth": { /* L2 auth for user channel */ },
"markets": ["0x...conditionId"],
"assets_ids": ["tokenId1", "tokenId2"],
"type": "market",
"custom_feature_enabled": true
}
Subscribe/unsubscribe to additional assets after connecting:
{
"assets_ids": ["tokenId3"],
"markets": [],
"operation": "subscribe",
"custom_feature_enabled": true
}
Full WebSocket guide: https://docs.polymarket.com/developers/CLOB/websocket/wss-overview.md WSS Authentication: https://docs.polymarket.com/developers/CLOB/websocket/wss-auth.md
wss://ws-live-data.polymarket.com
Low-latency streaming for crypto prices and comment feeds. Optimized for market makers.
Real-time sports results via WebSocket:
Event (e.g., "Who will win the 2024 election?")
├── Market 1 (e.g., "Will Candidate A win?")
│ ├── Token: Yes (token_id: "abc...") price: 0.65
│ └── Token: No (token_id: "def...") price: 0.35
├── Market 2 (e.g., "Will Candidate B win?")
│ ├── Token: Yes (token_id: "ghi...") price: 0.30
│ └── Token: No (token_id: "jkl...") price: 0.70
└── ...
clobTokenIds from the Gamma API map to CLOB token IDs needed for trading.outcomes and outcomePrices arrays are 1:1 mapped.Multi-outcome events where only one outcome can resolve "Yes" use the negative risk architecture. A NO share in any market can be converted into 1 YES share in all other markets, enabling capital efficiency.
negRisk: true on the event indicates negative risk.negRiskAugmented: true means placeholder outcomes can be clarified later.Full NegRisk docs: https://docs.polymarket.com/developers/neg-risk/overview.md
curl -s "https://gamma-api.polymarket.com/events?active=true&closed=false&limit=10" | jq '.[].title'
curl -s "https://gamma-api.polymarket.com/events?slug=will-bitcoin-reach-100k-by-2025" | jq '.[0] | {title, markets: [.markets[] | {question, outcomePrices, clobTokenIds}]}'
curl -s "https://clob.polymarket.com/price?token_id=YOUR_TOKEN_ID&side=buy"
# Returns: { "price": "0.65" }
curl -s "https://clob.polymarket.com/book?token_id=YOUR_TOKEN_ID" | jq '{bids: .bids[:3], asks: .asks[:3]}'
curl -s "https://clob.polymarket.com/midpoint?token_id=YOUR_TOKEN_ID"
# Returns: { "mid": "0.655" }
curl -s "https://gamma-api.polymarket.com/search?query=bitcoin&limit=5" | jq '.markets[] | {question, slug}'
# Get all supported sports leagues
curl -s "https://gamma-api.polymarket.com/sports" | jq '.'
# Get NBA events
curl -s "https://gamma-api.polymarket.com/events?series_id=10345&active=true&closed=false" | jq '.[].title'
curl -s "https://data-api.polymarket.com/positions?user=0xYOUR_ADDRESS" | jq '.'
import { ClobClient, Side, OrderType } from "@polymarket/clob-client";
import { Wallet } from "ethers";
const client = new ClobClient(
"https://clob.polymarket.com", 137, signer, apiCreds, 2, funderAddress
);
const market = await client.getMarket("CONDITION_ID");
const response = await client.createAndPostOrder(
{ tokenID: "TOKEN_ID", price: 0.50, size: 10, side: Side.BUY },
{ tickSize: market.tickSize, negRisk: market.negRisk },
OrderType.GTC
);
console.log("Order ID:", response.orderID);
from py_clob_client.client import ClobClient
from py_clob_client.clob_types import OrderArgs, OrderType
from py_clob_client.order_builder.constants import BUY
market = client.get_market("CONDITION_ID")
response = client.create_and_post_order(
OrderArgs(token_id="TOKEN_ID", price=0.50, size=10, side=BUY),
options={"tick_size": market["tickSize"], "neg_risk": market["negRisk"]},
order_type=OrderType.GTC,
)
print("Order ID:", response["orderID"])
The Conditional Token Framework enables conversion between USDCe and outcome tokens:
| Operation | Description | When to Use | |---|---|---| | Split | USDCe → 1 Yes token + 1 No token | Create inventory for market making | | Merge | 1 Yes token + 1 No token → USDCe | Exit positions, reclaim collateral | | Redeem | Winning token → $1 USDCe | After market resolution |
Builders are third-party developers who integrate Polymarket into their apps. The program offers permissionless integration with tiered rate limits, rewards, and revenue opportunities.
| Resource | URL | |---|---| | Builder Introduction | https://docs.polymarket.com/developers/builders/builder-intro.md | | Builder Profile & Keys | https://docs.polymarket.com/developers/builders/builder-profile.md | | Builder Tiers | https://docs.polymarket.com/developers/builders/builder-tiers.md | | Order Attribution | https://docs.polymarket.com/developers/builders/order-attribution.md | | Builder Methods | https://docs.polymarket.com/developers/CLOB/clients/methods-builder.md | | Relayer Client (gasless txns) | https://docs.polymarket.com/developers/builders/relayer-client.md | | Examples (Next.js) | https://docs.polymarket.com/developers/builders/examples.md |
Builder credentials are separate from user credentials. You use builder credentials to tag/attribute orders, but each user still needs their own L2 credentials to trade.
| Resource | URL | |---|---| | Introduction | https://docs.polymarket.com/developers/market-makers/introduction.md | | Setup | https://docs.polymarket.com/developers/market-makers/setup.md | | Trading | https://docs.polymarket.com/developers/market-makers/trading.md | | Inventory Management | https://docs.polymarket.com/developers/market-makers/inventory.md | | Data Feeds | https://docs.polymarket.com/developers/market-makers/data-feeds.md | | Liquidity Rewards | https://docs.polymarket.com/developers/market-makers/liquidity-rewards.md | | Maker Rebates | https://docs.polymarket.com/developers/market-makers/maker-rebates-program.md |
llms.txt first: https://docs.polymarket.com/llms.txt has every endpoint and guide.active=true&closed=false when querying events to get only live, tradable markets.clobTokenIds for CLOB queries and trading.negRisk correctly — multi-outcome events use negative risk. Check the event's negRisk field and pass it when creating orders./books, /prices) to reduce request count.0 (EOA) for standalone wallets, type 2 (Gnosis Safe) for most Polymarket.com accounts. Incorrect type will cause auth failures.Standard HTTP error codes apply. The API returns JSON error bodies with descriptive messages.
balance - sum(openOrderSize - fillAmount) per market.Markets are resolved by the UMA Optimistic Oracle, a smart-contract-based optimistic oracle. Resolution can be disputed via the UMA protocol.
| Resource | URL |
|---|---|
| Exchange contract source | GitHub |
| Exchange contract docs | GitHub |
| Security audit (Chainsecurity) | Audit PDF |
| Negative Risk Adapter | Polygonscan |
| Subgraph overview | https://docs.polymarket.com/developers/subgraph/overview.md |
| Blockchain data resources | https://docs.polymarket.com/developers/builders/blockchain-data-resources.md |
| USDC on Polygon | 0x2791bca1f2de4661ed88a30c99a7a9449aa84174 |
Monitor the Polymarket Changelog for updates to the CLOB, API, UI, and mobile applications.
development
Shipp is a real-time data connector. Use it to fetch authoritative, changing external data (e.g., sports schedules, live events) via the Shipp API.
development
openfootball (football.json) is a free, open, public domain collection of football (soccer) match data in JSON format. It covers major leagues worldwide including the English Premier League, Bundesliga, La Liga, Serie A, Ligue 1, World Cup, Euro, and Champions League. Use this skill to fetch historical and current season fixtures, results, and scores. No API key or authentication is required.
development
The NOAA Weather.gov API provides access to National Weather Service forecasts, alerts, observations, radar data, and more for the United States. Use this skill to fetch weather forecasts, active alerts, station observations, and zone data. No API key is required — just a User-Agent header.
development
Metaculus is a forecasting platform where users predict outcomes of real-world events. Use this skill to interact with the Metaculus API for browsing questions, submitting forecasts, reading community predictions, managing comments, and downloading forecast data.