NEW: Live arbitrage across 10+ prediction markets.Arbitrage →
← Index
APIOct 12, 2026

Polymarket Perps (2026): How Perpetual Futures Work and the API

Polymarket Perps (2026): How Perpetual Futures Work and the API

The Short Answer

Polymarket Perps is Polymarket's perpetual futures exchange: leveraged long or short positions on crypto, stocks, indices and commodities, collateralized in pUSD and with no expiry. Hourly funding keeps each contract near its index price. The API runs at https://api.perpetuals.polymarket.com and wss://ws.perpetuals.polymarket.com/v1/ws, and market data needs no key. On 3 October 2026 it listed 88 markets with leverage caps from 3x to 50x, a base taker fee of 0.04% and $75,000 a day in liquidity rewards.

Key Takeaways

  • Perps never expire, settle funding every hour and take a 10 pUSD minimum deposit.
  • The API listed 88 markets on 3 October 2026: 40 crypto, 38 stocks, 6 indices and 4 commodities.
  • Orders are blocked from the United States, Canada and seven other jurisdictions, but market data is open to anyone.
  • Invite codes double as referral codes, and GET /v1/info/invite checks whether one can be used.
  • Makers split $75,000 a day in rewards for two-sided depth within 20 basis points of the midpoint.

What is Polymarket Perps?

It is a perpetual futures exchange that runs alongside Polymarket's prediction markets. A perp tracks an underlying asset, such as the S&P 500, gold or bitcoin, and never expires, so a position stays open until you close it or it is liquidated. Nothing settles at $1 or $0 the way prediction market shares do.

The exchange is hybrid. Matching, margin and funding run off-chain, deposits and withdrawals settle on Polygon, and state root commitments posted on-chain let observers verify the ledger. The books trade 24/7.

How do you get access to Polymarket Perps?

You need a Polymarket account with pUSD to deposit, at least 10 pUSD. Order placement is not permitted from the United States, Canada, Cuba, Iran, North Korea, Syria, Crimea, Donetsk or Luhansk, and Polymarket tells builders to block those users rather than just warn them. Read-only market data is not restricted.

Invite codes double as referral codes. Each account has one, shared as https://polymarket.com/perps?c={code}, and it is applied automatically when a new trader opens Perps through that link. A code starts with 10 invites and can unlock up to 500 as combined Perps volume grows, and referrers earn 20% of their referrals' trading fees, paid weekly. Anyone can check a code:

curl -s "https://api.perpetuals.polymarket.com/v1/info/invite?code=YOUR_CODE"
{"valid":false,"error":"code not found"}

That is what an unknown code returned in our checks on 3 October 2026.

What markets can you trade on Polymarket Perps?

On 3 October 2026, GET /v1/info/instruments returned 88 markets, all quoted in pUSD with hourly funding and a $10 minimum order value:

CategoryMarketsExamplesMaximum leverage
Crypto40BTC, ETH, SOL, XRP, HYPE3x to 50x
Stocks38NVDA, AAPL, TSLA, MSTR, COIN10x
Indices6S&P 500, Nasdaq 10010x to 50x
Commodities4Gold, silver, WTI and Brent crude20x

Four markets allowed 50x: BTC-USD, ETH-USD, SP500-USD and NAS100-USD. Polymarket's FAQ quotes up to 20x for crypto, the S&P 500, oil, gold and silver, so read leverage from the endpoint. Caps also fall as positions grow: BTC-USD allowed 50x below $250,000 of notional and 25x from there.

How do leverage and margin work on Polymarket Perps?

Initial margin is notional divided by your leverage. Maintenance margin is 0.5 divided by the market's maximum leverage, so 1% of notional on a 50x market. Both are checked against the mark price, a median of three signals updated every 200 milliseconds, not the last trade.

StateConditionWhat happens
HealthyEquity at or above initial marginNormal trading
Margin callEquity between maintenance and initial marginReduce-only, or add collateral
LiquidationEquity below maintenance marginThe system closes the position

The web app uses isolated margin by default, and cross margin is opt-in through the API. Withdrawals must leave at least 10% of your open notional. Liquidation closes positions with reduce-only orders against the book and adds a liquidation fee, 0.5% of notional on every market on 3 October 2026. Severe breaches go to the insurance fund instead, or to auto-deleveraging when the fund cannot absorb them. At 50x, a move of about 1% against a fully leveraged position can trigger liquidation.

How does funding work on Polymarket Perps?

When a perp trades above its index, longs pay shorts, and below it, shorts pay longs. Payments go between traders, and Polymarket takes no cut.

Every 5 seconds, the engine walks each side of the book for 1,000 pUSD and samples the premium over the index. Each hour, it runs the average through an 8-hour formula with a fixed 0.01% interest leg, scales it by 1.0 for crypto or 0.5 for other markets, divides by 8, caps it at 4% an hour and settles every open position. With no premium, that leaves 0.00125% an hour for crypto and 0.000625% elsewhere. In our checks on 3 October 2026, ETH-USD showed exactly 0.0000125 and the S&P 500 market 0.00000625.

What are the fees on Polymarket Perps?

Each fill pays abs(Price * Quantity) * Rate in pUSD, at a rate set by trailing 30-day volume. The schedule in Polymarket's docs matched GET /v1/info/fees on 3 October 2026:

30-day volumeTakerMaker
$00.0400%0.0125%
$1M0.0370%0.0100%
$5M0.0350%0.0080%
$25M0.0300%0.0050%
$100M0.0270%0.0020%
$500M0.0250%0.0000%
$1B0.0200%-0.0050%

Only the top tier earns a maker rebate. Prediction market trading is priced differently, as covered in Polymarket fees explained.

How do you use the Polymarket Perps API?

Public data sits under /v1/info/ and needs no key:

EndpointReturns
GET /v1/info/instrumentsMarkets, precision, order limits and leverage tiers
GET /v1/info/tickersIndex, mark and last prices, open interest and funding
GET /v1/info/bookThe order book at 10, 100, 500 or 1,000 levels
GET /v1/info/klines, /funding, /tradesCandles, funding history and public trades
GET /v1/info/exchange-statsVolume, fees and open interest over up to 31 days

This lists each market's leverage cap, mark price and hourly funding, with Node 18 or newer:

const BASE = 'https://api.perpetuals.polymarket.com';

const [instruments, tickers] = await Promise.all([
  fetch(`${BASE}/v1/info/instruments`).then((r) => r.json()),
  fetch(`${BASE}/v1/info/tickers`).then((r) => r.json()),
]);

const tickerById = new Map(tickers.map((t) => [t.instrument_id, t]));

const rows = instruments.map((i) => {
  const t = tickerById.get(i.instrument_id);
  return {
    symbol: i.symbol,
    category: i.category,
    maxLeverage: i.max_leverage,
    mark: t?.mark_price,
    fundingPerHour: t ? `${(Number(t.funding_rate) * 100).toFixed(4)}%` : null,
    nextFunding: t ? new Date(t.next_funding).toISOString() : null,
  };
});

console.table(rows.slice(0, 8));

A positive rate means longs pay at the next hourly settlement. Ticker snapshots can be up to ten seconds old, and a 503 means the gateway refused to serve stale prices, so retry with backoff.

On 3 October 2026, exchange stats showed about $105 million of volume over 24 hours, $2.77 billion over 30 days and $77 million of open interest.

Trading needs delegated credentials: you sign an EIP-712 CreateProxy message for a fresh proxy key, and POST /v1/account/proxy returns a secret for private reads. Each IP gets 1,000 weighted request tokens a minute, and the default account tier allows 5,000 trading actions a minute and 1,000 open orders. The @polymarket/client SDK wraps the credentials in openPerpsSession(), and its gasless deposits use a Relayer API key, covered in the Polymarket Relayer API guide. We type-checked this read against version 0.13.0 and ran it live:

import { createPublicClient } from "@polymarket/client";

const client = createPublicClient();

const instruments = await client.fetchPerpsInstruments();
const btc = instruments.find((i) => i.symbol === "BTC-USD");
if (btc === undefined) throw new Error("BTC-USD not listed");

console.log(btc.maxLeverage, btc.riskTiers);

const stream = await client.subscribe([
  { topic: "perps.tickers", instrumentId: btc.id },
]);

for await (const event of stream) {
  const { markPrice, indexPrice, fundingRate } = event.payload;
  console.log({ markPrice, indexPrice, fundingRate });
  await stream.close();
}

Fields come back in camelCase. Version 0.13.0 marks its Perps methods as experimental, so pin the version you test against.

How do you stream Polymarket Perps data in real time?

Public channels need no authentication:

ChannelWhat it streams
bbo::{id}Best bid and offer
book::{id}Top 20 levels a side, as a full snapshot every 100 milliseconds
trades::{id}Public trades
tickers::{id} or tickers::allIndex, mark, open interest and funding
klines::{id}::{interval}Candles, from 1s to 1w

This streams the best bid and offer and the trade tape for BTC-USD, instrument 6, in Node 22 or newer:

const ws = new WebSocket('wss://ws.perpetuals.polymarket.com/v1/ws');
const channels = ['bbo::6', 'trades::6'];

ws.addEventListener('open', () => {
  ws.send(JSON.stringify({ id: 1, req: 'sub', chs: channels }));
  setInterval(() => ws.send(JSON.stringify({ id: 0, req: 'post', op: { type: 'ping' } })), 25_000);
});

ws.addEventListener('message', (event) => {
  const msg = JSON.parse(event.data);
  if (msg.ch?.startsWith('bbo::')) {
    console.log('bid', msg.data.bp, 'ask', msg.data.ap);
  } else if (msg.ch?.startsWith('trades::')) {
    for (const t of msg.data) console.log(t.side, t.qty, '@', t.p);
  }
});

Trade frames carry an array in data, since one push can hold several fills. Polymarket recommends a ping about every 25 seconds. Each connection takes 100 subscriptions, each IP 50 connections, and private channels need an auth frame first.

Prediction market streams work differently and are covered in the Polymarket WebSocket API guide. If your app follows those markets too, the Predictefy API provides normalized data from 15+ venues and streams prediction-market order books through one WebSocket.

How do Polymarket Perps liquidity rewards work?

Every Perps account is considered automatically. The program pays $75,000 a day in pUSD, split evenly across active markets, for periods running 12:00 UTC to 12:00 UTC. An account needs at least 1% of trailing seven-day maker volume, and its score multiplies maker share, two-sided depth and uptime. Only orders within 20 basis points of the midpoint count, up to $100,000 per tier and side, and bid and ask combine through a harmonic mean, so a one-sided book scores zero.

Distance from midpointWeight
Within 5 bps1.00
Over 5 and up to 10 bps0.25
Over 10 and up to 20 bps0.10

A second program pays 6% APR on open interest when an account's rewards entity averages at least $5 million a day. Rewards lower the cost of quoting, but a fill against a fast move can cost more than a day's share.

Frequently Asked Questions

What is Polymarket Perps?

Polymarket's perpetual futures exchange. You trade leveraged long or short positions on crypto, stocks, indices and commodities in pUSD, with no expiry and hourly funding.

Can you trade Polymarket Perps in the US?

No. Order placement is not permitted from the United States, Canada and seven other jurisdictions, and the list can change. Read-only market data is not restricted.

What is the maximum leverage on Polymarket Perps?

It depends on the market and the position size. As of October 2026, BTC, ETH, S&P 500 and Nasdaq 100 perps allowed up to 50x, commodities 20x and stocks 10x, with caps falling as notional grows.

How often is funding paid on Polymarket Perps?

Every hour. The rate comes from the book's premium over the index, sampled every 5 seconds, plus a small fixed interest leg, and it is capped at 4% an hour. Longs pay shorts when it is positive, and shorts pay longs when it is negative.

Does Polymarket Perps use invite codes?

Yes. Each account's Perps invite code is the same string as its referral code, and it is applied automatically when a new trader opens Perps through the link. GET /v1/info/invite checks whether a code can be used.