Polymarket API reference / Bridge API
POST/withdraw

Create withdrawal addresses

Base URL
https://bridge.polymarket.com
Auth
Public, no key
Rate limit
50 req / 10s (5 per second)
Limit applies to
Bridge API general

Parameters

NameInTypeRequiredDescription
X-Builder-CodeheaderstringnoOptional builder code (bytes32 hex) attributing this request to your integration so transfer issues can be traced to your app. Omitting it still succeeds but returns a `missing_builder_code` warning; a malformed code returns 400. Get your code at https://polymarket.com/settings?tab=builder

Request body

FieldTypeRequiredDescription
addressstringyesEthereum address (0x-prefixed, 40 hex chars)
toChainIdstringyesDestination chain ID (e.g., "1" for Ethereum, "8453" for Base, "1151111081099710" for Solana)
toTokenAddressstringyesDestination token contract address
recipientAddrstringyesDestination wallet address where funds will be sent

Example

curl -X POST "https://bridge.polymarket.com/withdraw" \
  -H "Content-Type: application/json" \
  -d '{
  "address": "<address>",
  "toChainId": "<toChainId>",
  "toTokenAddress": "<toTokenAddress>",
  "recipientAddr": "<recipientAddr>"
}'

Response fields

FieldTypeDescription
addressobjectBridge addresses for different blockchain networks
notestringAdditional information about the bridge addresses

Responses

StatusMeaning
201Withdrawal addresses created successfully
400Bad Request - Invalid/missing parameters or malformed X-Builder-Code
500Server Error
Polymarket's API serves current state only, so it cannot show what a market's book looked like after it resolved. PolyTest records Up/Down markets while they run and keeps the snapshots. Try it free, or read the full rate limit reference.

From Polymarket's published OpenAPI spec and rate-limit tables, synced 2026-10-04.