Submit or revise one firm executable price and quantity
Invited makers only. Supply the idempotency key in the header or request body. If both are present, they must match exactly. Revisions are strictly sequential: the first quote must be revision 1 and each later quote exactly one higher than the caller’s current revision.
curl --request POST \
--url https://agora.kairos.trade/v1/auctions/{auctionID}/quotes \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"revision": 2,
"price_atoms": 5000,
"max_executable_quantity_atoms": 2,
"idempotency_key": "<string>"
}
'import requests
url = "https://agora.kairos.trade/v1/auctions/{auctionID}/quotes"
payload = {
"revision": 2,
"price_atoms": 5000,
"max_executable_quantity_atoms": 2,
"idempotency_key": "<string>"
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
revision: 2,
price_atoms: 5000,
max_executable_quantity_atoms: 2,
idempotency_key: '<string>'
})
};
fetch('https://agora.kairos.trade/v1/auctions/{auctionID}/quotes', 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://agora.kairos.trade/v1/auctions/{auctionID}/quotes",
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([
'revision' => 2,
'price_atoms' => 5000,
'max_executable_quantity_atoms' => 2,
'idempotency_key' => '<string>'
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$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://agora.kairos.trade/v1/auctions/{auctionID}/quotes"
payload := strings.NewReader("{\n \"revision\": 2,\n \"price_atoms\": 5000,\n \"max_executable_quantity_atoms\": 2,\n \"idempotency_key\": \"<string>\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
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://agora.kairos.trade/v1/auctions/{auctionID}/quotes")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"revision\": 2,\n \"price_atoms\": 5000,\n \"max_executable_quantity_atoms\": 2,\n \"idempotency_key\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://agora.kairos.trade/v1/auctions/{auctionID}/quotes")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"revision\": 2,\n \"price_atoms\": 5000,\n \"max_executable_quantity_atoms\": 2,\n \"idempotency_key\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body{
"quote_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"auction_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"revision": "<string>",
"price_atoms": 5000,
"max_executable_quantity_atoms": 123,
"receive_sequence": "<string>",
"received_at": "2023-11-07T05:31:56Z",
"status": "ACTIVE"
}{
"quote_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"auction_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"revision": "<string>",
"price_atoms": 5000,
"max_executable_quantity_atoms": 123,
"receive_sequence": "<string>",
"received_at": "2023-11-07T05:31:56Z",
"status": "ACTIVE"
}{
"error": "<string>",
"message": "<string>"
}{
"error": "unauthorized",
"message": "authentication required"
}{
"error": "<string>",
"message": "<string>"
}{
"error": "IDEMPOTENCY_CONFLICT",
"message": "IDEMPOTENCY_CONFLICT"
}{
"error": "payload_too_large"
}{
"error": "INVALID_PRICE_TICK",
"message": "INVALID_PRICE_TICK"
}{
"error": "auction_mutation_rate_limited",
"message": "auction mutation rate limit exceeded"
}{
"error": "internal_error",
"message": "auction request could not be completed"
}{
"error": "auction_owner_unavailable"
}Authorizations
Bearer authentication header of the form Bearer <token>, where <token> is your auth token.
Headers
Required here or in the JSON body; both values must match when supplied together.
1 - 200Path Parameters
Canonical UUID whose first character is the owner shard (0, 1, or 2).
Body
x >= 1One atom is 0.01 cent of probability-dollar price.
0 <= x <= 10000x >= 1May be supplied instead of the header
Response
Identical idempotent replay
Opaque unsigned quote revision; compare as a decimal string.
^(0|[1-9]\d*)$One atom is 0.01 cent of probability-dollar price.
0 <= x <= 10000Participant-scoped durable acknowledgement sequence encoded as an opaque decimal string; private FIFO coordinates are never exposed.
^(0|[1-9]\d*)$ACTIVE, WITHDRAWN, SUPERSEDED, FROZEN, SELECTED, INELIGIBLE Was this page helpful?
curl --request POST \
--url https://agora.kairos.trade/v1/auctions/{auctionID}/quotes \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"revision": 2,
"price_atoms": 5000,
"max_executable_quantity_atoms": 2,
"idempotency_key": "<string>"
}
'import requests
url = "https://agora.kairos.trade/v1/auctions/{auctionID}/quotes"
payload = {
"revision": 2,
"price_atoms": 5000,
"max_executable_quantity_atoms": 2,
"idempotency_key": "<string>"
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
revision: 2,
price_atoms: 5000,
max_executable_quantity_atoms: 2,
idempotency_key: '<string>'
})
};
fetch('https://agora.kairos.trade/v1/auctions/{auctionID}/quotes', 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://agora.kairos.trade/v1/auctions/{auctionID}/quotes",
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([
'revision' => 2,
'price_atoms' => 5000,
'max_executable_quantity_atoms' => 2,
'idempotency_key' => '<string>'
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$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://agora.kairos.trade/v1/auctions/{auctionID}/quotes"
payload := strings.NewReader("{\n \"revision\": 2,\n \"price_atoms\": 5000,\n \"max_executable_quantity_atoms\": 2,\n \"idempotency_key\": \"<string>\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
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://agora.kairos.trade/v1/auctions/{auctionID}/quotes")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"revision\": 2,\n \"price_atoms\": 5000,\n \"max_executable_quantity_atoms\": 2,\n \"idempotency_key\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://agora.kairos.trade/v1/auctions/{auctionID}/quotes")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"revision\": 2,\n \"price_atoms\": 5000,\n \"max_executable_quantity_atoms\": 2,\n \"idempotency_key\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body{
"quote_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"auction_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"revision": "<string>",
"price_atoms": 5000,
"max_executable_quantity_atoms": 123,
"receive_sequence": "<string>",
"received_at": "2023-11-07T05:31:56Z",
"status": "ACTIVE"
}{
"quote_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"auction_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"revision": "<string>",
"price_atoms": 5000,
"max_executable_quantity_atoms": 123,
"receive_sequence": "<string>",
"received_at": "2023-11-07T05:31:56Z",
"status": "ACTIVE"
}{
"error": "<string>",
"message": "<string>"
}{
"error": "unauthorized",
"message": "authentication required"
}{
"error": "<string>",
"message": "<string>"
}{
"error": "IDEMPOTENCY_CONFLICT",
"message": "IDEMPOTENCY_CONFLICT"
}{
"error": "payload_too_large"
}{
"error": "INVALID_PRICE_TICK",
"message": "INVALID_PRICE_TICK"
}{
"error": "auction_mutation_rate_limited",
"message": "auction mutation rate limit exceeded"
}{
"error": "internal_error",
"message": "auction request could not be completed"
}{
"error": "auction_owner_unavailable"
}
