Skip to main content

Base URL

https://clob.polymarket.com
All endpoints require L2 Authentication. See CLOB Authentication for details.

Request Endpoints

Create Request

POST /rfq/request Creates an RFQ Request to buy or sell outcome tokens. This initiates the RFQ flow. Request Body
{
  "assetIn": "104173557214744537570424345347209544585775842950109756851652855913015295701992",
  "assetOut": "0",
  "amountIn": "50000000",
  "amountOut": "3000000",
  "userType": 1
}
FieldTypeDescription
assetInstringToken ID the Requester wants to receive. "0" indicates USDC
assetOutstringToken ID the Requester wants to give. "0" indicates USDC
amountInstringAmount of asset to receive (in base units)
amountOutstringAmount of asset to give (in base units)
userTypenumber0 = EOA, 1 = POLY_PROXY, 2 = POLY_GNOSIS_SAFE
Response
{
  "requestId": "0196464a-a1fa-75e6-821e-31aa0794f7ad",
  "expiry": 1744936318
}

Cancel Request

DELETE /rfq/request Cancels a request. The Request must be in STATE_ACCEPTING_QUOTES. Request Body
{
  "requestId": "019689a4-0efa-77ca-8b31-c4505de38078"
}
Response
OK

Get Requests

GET /rfq/request Gets RFQ Requests. Requesters can only view their own requests. Quoters can only see their own quotes and requests that they quoted. Query Parameters
ParameterTypeDescription
offsetstringCursor offset for pagination (base64 encoded). Defaults to 0
limitnumberMax requests to return. Defaults to 50, max 1000
statestringactive or inactive. Defaults to active
requestIdsstring[]Filter by request IDs (e.g., requestIds=ID1&requestIds=ID2)
marketsstring[]Filter by condition IDs
sizeMinnumberMinimum size in tokens
sizeMaxnumberMaximum size in tokens
sizeUsdcMinnumberMinimum size in USDC
sizeUsdcMaxnumberMaximum size in USDC
priceMinnumberMinimum price
priceMaxnumberMaximum price
sortBystringprice, expiry, size, or created (default)
sortDirstringasc (default) or desc
Response
{
  "data": [
    {
      "requestId": "01968f1e-1182-71c4-9d40-172db9be82af",
      "user": "0x6e0c80c90ea6c15917308f820eac91ce2724b5b5",
      "proxy": "0x6e0c80c90ea6c15917308f820eac91ce2724b5b5",
      "market": "0x37a6a2dd9f3469495d9ec2467b0a764c5905371a294ce544bc3b2c944eb3e84a",
      "token": "34097058504275310827233323421517291090691602969494795225921954353603704046623",
      "complement": "32868290514114487320702931554221558599637733115139769311383916145370132125101",
      "side": "BUY",
      "sizeIn": 100,
      "sizeOut": 50,
      "price": 0.5,
      "expiry": 1746159634
    }
  ],
  "next_cursor": "LTE=",
  "limit": 100,
  "count": 1
}

Quote Endpoints

Create Quote

POST /rfq/quote Creates an RFQ Quote in response to a Request. Request Body
{
  "requestId": "01968f1e-1182-71c4-9d40-172db9be82af",
  "assetIn": "0",
  "assetOut": "34097058504275310827233323421517291090691602969494795225921954353603704046623",
  "amountIn": "50000000",
  "amountOut": "100000000",
  "userType": 0
}
FieldTypeDescription
requestIdstringID of the Request to quote
assetInstringToken ID the Quoter wants to receive. "0" indicates USDC
assetOutstringToken ID the Quoter wants to give. "0" indicates USDC
amountInstringAmount of asset to receive (in base units)
amountOutstringAmount of asset to give (in base units)
userTypenumber0 = EOA, 1 = POLY_PROXY, 2 = POLY_GNOSIS_SAFE
Response
{
  "quoteId": "0196464a-a1fa-75e6-821e-31aa0794f7ad"
}

Cancel Quote

DELETE /rfq/quote Cancels an RFQ Quote. Request Body
{
  "quoteId": "019689a4-0efa-77ca-8b31-c4505de38078"
}
Response
OK

Get Quotes

GET /rfq/quote Gets RFQ Quotes. Requesters can view quotes for their requests. Quoters can view all quotes. Query Parameters
ParameterTypeDescription
offsetstringCursor offset for pagination (base64 encoded). Defaults to 0
limitnumberMax quotes to return. Defaults to 50, max 1000
statestringactive or inactive (optional)
quoteIdsstring[]Filter by quote IDs
requestIdsstring[]Filter by request IDs
marketsstring[]Filter by condition IDs
sizeMinnumberMinimum size in tokens
sizeMaxnumberMaximum size in tokens
sizeUsdcMinnumberMinimum size in USDC
sizeUsdcMaxnumberMaximum size in USDC
priceMinnumberMinimum price
priceMaxnumberMaximum price
sortBystringprice, expiry, size, or created (default)
sortDirstringasc (default) or desc
Response
{
  "data": [
    {
      "quoteId": "0196f484-9fbd-74c1-bfc1-75ac21c1cf84",
      "requestId": "01968f1e-1182-71c4-9d40-172db9be82af",
      "user": "0x6e0c80c90ea6c15917308f820eac91ce2724b5b5",
      "proxy": "0x6e0c80c90ea6c15917308f820eac91ce2724b5b5",
      "market": "0x37a6a2dd9f3469495d9ec2467b0a764c5905371a294ce544bc3b2c944eb3e84a",
      "token": "34097058504275310827233323421517291090691602969494795225921954353603704046623",
      "complement": "32868290514114487320702931554221558599637733115139769311383916145370132125101",
      "side": "BUY",
      "sizeIn": 100,
      "sizeOut": 50,
      "price": 0.5
    }
  ],
  "next_cursor": "LTE=",
  "limit": 100,
  "count": 1
}

Execution Endpoints

Accept Quote

POST /rfq/request/accept Requester accepts an RFQ Quote. This creates an Order that the Requester must sign. Request Body
{
  "requestId": "0196a1be-8970-7a86-9324-febf0ad6f687",
  "quoteId": "0196a1be-8970-7a86-9324-febf0ad6f687",
  "makerAmount": "100000000",
  "takerAmount": "200000000",
  "tokenId": "34097058504275310827233323421517291090691602969494795225921954353603704046623",
  "maker": "0x08bba123175624693bd2c6bea754e8f1211accec",
  "signer": "0xb2e5677625a2d9fc6be4667da890acfd98167bd3",
  "taker": "0x25d7777e23e64e583bdc3172fedc636c13b0a1ff",
  "nonce": "1",
  "expiration": 1749149567,
  "side": "BUY",
  "feeRateBps": "0",
  "signature": "0x123123123123123123123123123123123123123123123123",
  "salt": "12312312312",
  "owner": "5d1c266a-ed39-b9bd-c1f5-f24ae3e14a7b"
}
FieldTypeDescription
requestIdstringID of the Request
quoteIdstringID of the Quote being accepted
makerAmountstringMaker’s amount in base units
takerAmountstringTaker’s amount in base units
tokenIdstringOutcome token ID
makerstringMaker’s address
signerstringSigner’s address
takerstringTaker’s address
noncestringOrder nonce
expirationnumberUnix timestamp for order expiration
sidestringBUY or SELL
feeRateBpsstringFee rate in basis points
signaturestringEIP-712 signature
saltstringRandom salt for order uniqueness
ownerstringOwner identifier
Response
OK

Approve Order

POST /rfq/quote/approve Quoter approves an RFQ order during the last look window. This queues the order for onchain execution. Request Body
{
  "requestId": "0196a1be-8970-7a86-9324-febf0ad6f687",
  "quoteId": "0196a1be-8970-7a86-9324-febf0ad6f687",
  "makerAmount": "100000000",
  "takerAmount": "200000000",
  "tokenId": "34097058504275310827233323421517291090691602969494795225921954353603704046623",
  "maker": "0x08bba123175624693bd2c6bea754e8f1211accec",
  "signer": "0xb2e5677625a2d9fc6be4667da890acfd98167bd3",
  "taker": "0x25d7777e23e64e583bdc3172fedc636c13b0a1ff",
  "nonce": "1",
  "expiration": 1749149567,
  "side": "BUY",
  "feeRateBps": "0",
  "signature": "0x123123123123123123123123123123123123",
  "salt": "1231312313",
  "owner": "5d1c266a-ed39-b9bd-c1f5-f24ae3e14a7b"
}
Response
{
  "tradeIds": ["019af0f7-eb77-764f-b40f-6de8a3562e12"]
}

See Also