curl --request POST \
--url https://combos-rfq-api.polymarket.com/v1/maker/quotes/cancel \
--header 'Content-Type: application/json' \
--header 'POLY_ADDRESS: <api-key>' \
--header 'POLY_API_KEY: <api-key>' \
--header 'POLY_PASSPHRASE: <api-key>' \
--header 'POLY_SIGNATURE: <api-key>' \
--header 'POLY_TIMESTAMP: <api-key>' \
--data '
{
"rfq_id": "rfq_<id>",
"quote_id": "quote_<id>",
"signer_address": "0xYourSigner",
"maker_address": "0xYourQuoterWallet",
"signature_type": 0
}
'import requests
url = "https://combos-rfq-api.polymarket.com/v1/maker/quotes/cancel"
payload = {
"rfq_id": "rfq_<id>",
"quote_id": "quote_<id>",
"signer_address": "0xYourSigner",
"maker_address": "0xYourQuoterWallet",
"signature_type": 0
}
headers = {
"POLY_API_KEY": "<api-key>",
"POLY_ADDRESS": "<api-key>",
"POLY_SIGNATURE": "<api-key>",
"POLY_PASSPHRASE": "<api-key>",
"POLY_TIMESTAMP": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {
POLY_API_KEY: '<api-key>',
POLY_ADDRESS: '<api-key>',
POLY_SIGNATURE: '<api-key>',
POLY_PASSPHRASE: '<api-key>',
POLY_TIMESTAMP: '<api-key>',
'Content-Type': 'application/json'
},
body: JSON.stringify({
rfq_id: 'rfq_<id>',
quote_id: 'quote_<id>',
signer_address: '0xYourSigner',
maker_address: '0xYourQuoterWallet',
signature_type: 0
})
};
fetch('https://combos-rfq-api.polymarket.com/v1/maker/quotes/cancel', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://combos-rfq-api.polymarket.com/v1/maker/quotes/cancel",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'rfq_id' => 'rfq_<id>',
'quote_id' => 'quote_<id>',
'signer_address' => '0xYourSigner',
'maker_address' => '0xYourQuoterWallet',
'signature_type' => 0
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"POLY_ADDRESS: <api-key>",
"POLY_API_KEY: <api-key>",
"POLY_PASSPHRASE: <api-key>",
"POLY_SIGNATURE: <api-key>",
"POLY_TIMESTAMP: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://combos-rfq-api.polymarket.com/v1/maker/quotes/cancel"
payload := strings.NewReader("{\n \"rfq_id\": \"rfq_<id>\",\n \"quote_id\": \"quote_<id>\",\n \"signer_address\": \"0xYourSigner\",\n \"maker_address\": \"0xYourQuoterWallet\",\n \"signature_type\": 0\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("POLY_API_KEY", "<api-key>")
req.Header.Add("POLY_ADDRESS", "<api-key>")
req.Header.Add("POLY_SIGNATURE", "<api-key>")
req.Header.Add("POLY_PASSPHRASE", "<api-key>")
req.Header.Add("POLY_TIMESTAMP", "<api-key>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://combos-rfq-api.polymarket.com/v1/maker/quotes/cancel")
.header("POLY_API_KEY", "<api-key>")
.header("POLY_ADDRESS", "<api-key>")
.header("POLY_SIGNATURE", "<api-key>")
.header("POLY_PASSPHRASE", "<api-key>")
.header("POLY_TIMESTAMP", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"rfq_id\": \"rfq_<id>\",\n \"quote_id\": \"quote_<id>\",\n \"signer_address\": \"0xYourSigner\",\n \"maker_address\": \"0xYourQuoterWallet\",\n \"signature_type\": 0\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://combos-rfq-api.polymarket.com/v1/maker/quotes/cancel")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["POLY_API_KEY"] = '<api-key>'
request["POLY_ADDRESS"] = '<api-key>'
request["POLY_SIGNATURE"] = '<api-key>'
request["POLY_PASSPHRASE"] = '<api-key>'
request["POLY_TIMESTAMP"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"rfq_id\": \"rfq_<id>\",\n \"quote_id\": \"quote_<id>\",\n \"signer_address\": \"0xYourSigner\",\n \"maker_address\": \"0xYourQuoterWallet\",\n \"signature_type\": 0\n}"
response = http.request(request)
puts response.read_body{
"request": {
"rfq_id": "<string>",
"leg_position_ids": [
"<string>"
],
"auth_address": "<string>",
"signer_address": "<string>",
"maker_address": "<string>",
"signature_type": 0,
"requestor_public_id": "<string>",
"condition_id": "<string>",
"yes_position_id": "<string>",
"no_position_id": "<string>",
"requested_size": {
"value_e6": "1000000"
},
"created_at": 123
},
"competition_started_at": 123,
"competition_ends_at": 123,
"confirmation_started_at": 123,
"confirmation_ends_at": 123,
"quote_id": "<string>",
"bundle": {
"requested_shares_e6": "<string>",
"blended_price_e6": "<string>",
"allocations": [
{
"maker_quote_id": "<string>",
"signer_address": "<string>",
"maker_address": "<string>",
"size_e6": "<string>",
"price_e6": "<string>",
"received_at": 123
}
],
"requested_notional_e6": "<string>"
},
"maker_confirmations": [
{
"quote_id": "<string>",
"signer_address": "<string>",
"maker_address": "<string>",
"reason": "<string>",
"responded_at": 123
}
]
}{
"error": "invalid quote"
}{
"error": "unauthenticated"
}{
"error": "auth address mismatch"
}{
"error": "unknown rfq"
}{
"error": "competition window closed"
}{
"error": "rate limited"
}{
"error": "service unavailable"
}Cancel a quote
Cancel an active maker quote before it is selected. Requires CLOB L2
authentication for the maker role. signer_address and maker_address
must match the authenticated identity.
curl --request POST \
--url https://combos-rfq-api.polymarket.com/v1/maker/quotes/cancel \
--header 'Content-Type: application/json' \
--header 'POLY_ADDRESS: <api-key>' \
--header 'POLY_API_KEY: <api-key>' \
--header 'POLY_PASSPHRASE: <api-key>' \
--header 'POLY_SIGNATURE: <api-key>' \
--header 'POLY_TIMESTAMP: <api-key>' \
--data '
{
"rfq_id": "rfq_<id>",
"quote_id": "quote_<id>",
"signer_address": "0xYourSigner",
"maker_address": "0xYourQuoterWallet",
"signature_type": 0
}
'import requests
url = "https://combos-rfq-api.polymarket.com/v1/maker/quotes/cancel"
payload = {
"rfq_id": "rfq_<id>",
"quote_id": "quote_<id>",
"signer_address": "0xYourSigner",
"maker_address": "0xYourQuoterWallet",
"signature_type": 0
}
headers = {
"POLY_API_KEY": "<api-key>",
"POLY_ADDRESS": "<api-key>",
"POLY_SIGNATURE": "<api-key>",
"POLY_PASSPHRASE": "<api-key>",
"POLY_TIMESTAMP": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {
POLY_API_KEY: '<api-key>',
POLY_ADDRESS: '<api-key>',
POLY_SIGNATURE: '<api-key>',
POLY_PASSPHRASE: '<api-key>',
POLY_TIMESTAMP: '<api-key>',
'Content-Type': 'application/json'
},
body: JSON.stringify({
rfq_id: 'rfq_<id>',
quote_id: 'quote_<id>',
signer_address: '0xYourSigner',
maker_address: '0xYourQuoterWallet',
signature_type: 0
})
};
fetch('https://combos-rfq-api.polymarket.com/v1/maker/quotes/cancel', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://combos-rfq-api.polymarket.com/v1/maker/quotes/cancel",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'rfq_id' => 'rfq_<id>',
'quote_id' => 'quote_<id>',
'signer_address' => '0xYourSigner',
'maker_address' => '0xYourQuoterWallet',
'signature_type' => 0
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"POLY_ADDRESS: <api-key>",
"POLY_API_KEY: <api-key>",
"POLY_PASSPHRASE: <api-key>",
"POLY_SIGNATURE: <api-key>",
"POLY_TIMESTAMP: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://combos-rfq-api.polymarket.com/v1/maker/quotes/cancel"
payload := strings.NewReader("{\n \"rfq_id\": \"rfq_<id>\",\n \"quote_id\": \"quote_<id>\",\n \"signer_address\": \"0xYourSigner\",\n \"maker_address\": \"0xYourQuoterWallet\",\n \"signature_type\": 0\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("POLY_API_KEY", "<api-key>")
req.Header.Add("POLY_ADDRESS", "<api-key>")
req.Header.Add("POLY_SIGNATURE", "<api-key>")
req.Header.Add("POLY_PASSPHRASE", "<api-key>")
req.Header.Add("POLY_TIMESTAMP", "<api-key>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://combos-rfq-api.polymarket.com/v1/maker/quotes/cancel")
.header("POLY_API_KEY", "<api-key>")
.header("POLY_ADDRESS", "<api-key>")
.header("POLY_SIGNATURE", "<api-key>")
.header("POLY_PASSPHRASE", "<api-key>")
.header("POLY_TIMESTAMP", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"rfq_id\": \"rfq_<id>\",\n \"quote_id\": \"quote_<id>\",\n \"signer_address\": \"0xYourSigner\",\n \"maker_address\": \"0xYourQuoterWallet\",\n \"signature_type\": 0\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://combos-rfq-api.polymarket.com/v1/maker/quotes/cancel")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["POLY_API_KEY"] = '<api-key>'
request["POLY_ADDRESS"] = '<api-key>'
request["POLY_SIGNATURE"] = '<api-key>'
request["POLY_PASSPHRASE"] = '<api-key>'
request["POLY_TIMESTAMP"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"rfq_id\": \"rfq_<id>\",\n \"quote_id\": \"quote_<id>\",\n \"signer_address\": \"0xYourSigner\",\n \"maker_address\": \"0xYourQuoterWallet\",\n \"signature_type\": 0\n}"
response = http.request(request)
puts response.read_body{
"request": {
"rfq_id": "<string>",
"leg_position_ids": [
"<string>"
],
"auth_address": "<string>",
"signer_address": "<string>",
"maker_address": "<string>",
"signature_type": 0,
"requestor_public_id": "<string>",
"condition_id": "<string>",
"yes_position_id": "<string>",
"no_position_id": "<string>",
"requested_size": {
"value_e6": "1000000"
},
"created_at": 123
},
"competition_started_at": 123,
"competition_ends_at": 123,
"confirmation_started_at": 123,
"confirmation_ends_at": 123,
"quote_id": "<string>",
"bundle": {
"requested_shares_e6": "<string>",
"blended_price_e6": "<string>",
"allocations": [
{
"maker_quote_id": "<string>",
"signer_address": "<string>",
"maker_address": "<string>",
"size_e6": "<string>",
"price_e6": "<string>",
"received_at": 123
}
],
"requested_notional_e6": "<string>"
},
"maker_confirmations": [
{
"quote_id": "<string>",
"signer_address": "<string>",
"maker_address": "<string>",
"reason": "<string>",
"responded_at": 123
}
]
}{
"error": "invalid quote"
}{
"error": "unauthenticated"
}{
"error": "auth address mismatch"
}{
"error": "unknown rfq"
}{
"error": "competition window closed"
}{
"error": "rate limited"
}{
"error": "service unavailable"
}Authorizations
CLOB API key
Wallet address associated with the API key
HMAC-SHA256 signature of the request
CLOB API key passphrase
Unix timestamp of the request
Body
"rfq_<id>"
"quote_<id>"
Must match the authenticated signer_address.
"0xYourSigner"
Must match the authenticated maker_address.
"0xYourQuoterWallet"
CLOB signature type:
0EOA1POLY_PROXY2GNOSIS_SAFE3POLY_1271
0, 1, 2, 3 0
Response
Current RFQ snapshot after the cancellation was applied
Point-in-time view of an RFQ and its competition/confirmation windows.
The RFQ request as stored by the engine.
Show child attributes
Show child attributes
Lifecycle status of the RFQ
CREATED, COLLECTING_QUOTES, AWAITING_REQUESTER_ACCEPTANCE, AWAITING_MAKER_CONFIRMATION, EXECUTING, FILLED, FAILED, EXPIRED, CANCELED, REJECTED Unix milliseconds.
Unix milliseconds.
Unix milliseconds.
Unix milliseconds.
The selected executable bundle of maker allocations.
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Was this page helpful?