Place prediction market order
curl --request POST \
--url https://api.trydocent.com/v1/orders/polymarket \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"conditionId": "<string>",
"size": 50,
"price": 0.65,
"tokenId": "<string>"
}
'import requests
url = "https://api.trydocent.com/v1/orders/polymarket"
payload = {
"conditionId": "<string>",
"size": 50,
"price": 0.65,
"tokenId": "<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({conditionId: '<string>', size: 50, price: 0.65, tokenId: '<string>'})
};
fetch('https://api.trydocent.com/v1/orders/polymarket', 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://api.trydocent.com/v1/orders/polymarket",
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([
'conditionId' => '<string>',
'size' => 50,
'price' => 0.65,
'tokenId' => '<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://api.trydocent.com/v1/orders/polymarket"
payload := strings.NewReader("{\n \"conditionId\": \"<string>\",\n \"size\": 50,\n \"price\": 0.65,\n \"tokenId\": \"<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://api.trydocent.com/v1/orders/polymarket")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"conditionId\": \"<string>\",\n \"size\": 50,\n \"price\": 0.65,\n \"tokenId\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.trydocent.com/v1/orders/polymarket")
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 \"conditionId\": \"<string>\",\n \"size\": 50,\n \"price\": 0.65,\n \"tokenId\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body{
"success": true,
"actionId": "<string>",
"workflowId": "<string>"
}{
"error": "<string>",
"code": "UNAUTHORIZED",
"retryAfter": 123
}Orders
Place prediction market order
Place an order on a Polymarket prediction market. Specify the market with conditionId and outcome. You can pass tokenId to assert the expected outcome token, or let Docent resolve it for you. Docent automatically funds the trade from your unified balance if needed.
POST
/
v1
/
orders
/
polymarket
Place prediction market order
curl --request POST \
--url https://api.trydocent.com/v1/orders/polymarket \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"conditionId": "<string>",
"size": 50,
"price": 0.65,
"tokenId": "<string>"
}
'import requests
url = "https://api.trydocent.com/v1/orders/polymarket"
payload = {
"conditionId": "<string>",
"size": 50,
"price": 0.65,
"tokenId": "<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({conditionId: '<string>', size: 50, price: 0.65, tokenId: '<string>'})
};
fetch('https://api.trydocent.com/v1/orders/polymarket', 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://api.trydocent.com/v1/orders/polymarket",
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([
'conditionId' => '<string>',
'size' => 50,
'price' => 0.65,
'tokenId' => '<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://api.trydocent.com/v1/orders/polymarket"
payload := strings.NewReader("{\n \"conditionId\": \"<string>\",\n \"size\": 50,\n \"price\": 0.65,\n \"tokenId\": \"<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://api.trydocent.com/v1/orders/polymarket")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"conditionId\": \"<string>\",\n \"size\": 50,\n \"price\": 0.65,\n \"tokenId\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.trydocent.com/v1/orders/polymarket")
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 \"conditionId\": \"<string>\",\n \"size\": 50,\n \"price\": 0.65,\n \"tokenId\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body{
"success": true,
"actionId": "<string>",
"workflowId": "<string>"
}{
"error": "<string>",
"code": "UNAUTHORIZED",
"retryAfter": 123
}Authorizations
API key in the format dk_live_.... Pass as Authorization: Bearer dk_live_...
Body
application/json
Polymarket market condition ID
Outcome to trade
Available options:
Yes, No Available options:
BUY, SELL Number of shares
Example:
50
Tick-aligned limit price between 0.01 and 0.99
Required range:
0.01 <= x <= 0.99Example:
0.65
Optional token ID for the chosen outcome. If omitted, Docent resolves it from conditionId and outcome.