Orders
Sell a Position
Creates a SELL order against the existing order book to exit a filled position at the specified price and quantity.
PUT
/
v1
/
markets
/
{market_id}
/
orders
/
{order_id}
/
sell
Sell a Position
curl --request PUT \
--url https://api.predictamarkets.com/v1/markets/{market_id}/orders/{order_id}/sell \
--header 'Content-Type: application/json' \
--header 'X-Api-Key: <api-key>' \
--data '
{
"quantity": "5.00",
"price": "70.00"
}
'import requests
url = "https://api.predictamarkets.com/v1/markets/{market_id}/orders/{order_id}/sell"
payload = {
"quantity": "5.00",
"price": "70.00"
}
headers = {
"X-Api-Key": "<api-key>",
"Content-Type": "application/json"
}
response = requests.put(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PUT',
headers: {'X-Api-Key': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({quantity: '5.00', price: '70.00'})
};
fetch('https://api.predictamarkets.com/v1/markets/{market_id}/orders/{order_id}/sell', 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.predictamarkets.com/v1/markets/{market_id}/orders/{order_id}/sell",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "PUT",
CURLOPT_POSTFIELDS => json_encode([
'quantity' => '5.00',
'price' => '70.00'
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"X-Api-Key: <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://api.predictamarkets.com/v1/markets/{market_id}/orders/{order_id}/sell"
payload := strings.NewReader("{\n \"quantity\": \"5.00\",\n \"price\": \"70.00\"\n}")
req, _ := http.NewRequest("PUT", url, payload)
req.Header.Add("X-Api-Key", "<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.put("https://api.predictamarkets.com/v1/markets/{market_id}/orders/{order_id}/sell")
.header("X-Api-Key", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"quantity\": \"5.00\",\n \"price\": \"70.00\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.predictamarkets.com/v1/markets/{market_id}/orders/{order_id}/sell")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Put.new(url)
request["X-Api-Key"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"quantity\": \"5.00\",\n \"price\": \"70.00\"\n}"
response = http.request(request)
puts response.read_body{
"id": 502,
"market_id": 12,
"market_asset_id": 34,
"account_id": 1042,
"order_type": "SELL",
"opinion_side": "YES",
"price": "70.00",
"quantity": "5.00",
"initial_quantity": "10.00",
"status": "OPEN",
"prediction_key": "mkt-12-yes",
"auto_cancel_at": null,
"created_at": "2025-04-10T09:00:00Z",
"updated_at": "2025-04-10T09:01:00Z"
}{
"detail": "Insufficient shares to sell"
}{
"detail": "Not authenticated"
}{
"detail": "You are not allowed to sell this order"
}{
"detail": "Order not found"
}{
"detail": [
{
"loc": [
"<string>"
],
"msg": "<string>",
"type": "<string>"
}
]
}{
"detail": "An unexpected error occurred. Please try again later."
}Authorizations
Path Parameters
Flexible identifier type that accepts either a numeric integer ID or a human-readable qualified ID string (QID). QIDs follow a prefix convention: MA for markets, MAA for market assets, AP for account payouts. Most path parameters that accept an ID use this type so callers can use whichever form is more convenient.
Body
application/json
Response
Sell order created
The response is of type string.
Previous
Get Market HoldingsReturns the authenticated account's open positions in this market, with quantity, average buy price, and current value.
Next
⌘I
Sell a Position
curl --request PUT \
--url https://api.predictamarkets.com/v1/markets/{market_id}/orders/{order_id}/sell \
--header 'Content-Type: application/json' \
--header 'X-Api-Key: <api-key>' \
--data '
{
"quantity": "5.00",
"price": "70.00"
}
'import requests
url = "https://api.predictamarkets.com/v1/markets/{market_id}/orders/{order_id}/sell"
payload = {
"quantity": "5.00",
"price": "70.00"
}
headers = {
"X-Api-Key": "<api-key>",
"Content-Type": "application/json"
}
response = requests.put(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PUT',
headers: {'X-Api-Key': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({quantity: '5.00', price: '70.00'})
};
fetch('https://api.predictamarkets.com/v1/markets/{market_id}/orders/{order_id}/sell', 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.predictamarkets.com/v1/markets/{market_id}/orders/{order_id}/sell",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "PUT",
CURLOPT_POSTFIELDS => json_encode([
'quantity' => '5.00',
'price' => '70.00'
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"X-Api-Key: <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://api.predictamarkets.com/v1/markets/{market_id}/orders/{order_id}/sell"
payload := strings.NewReader("{\n \"quantity\": \"5.00\",\n \"price\": \"70.00\"\n}")
req, _ := http.NewRequest("PUT", url, payload)
req.Header.Add("X-Api-Key", "<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.put("https://api.predictamarkets.com/v1/markets/{market_id}/orders/{order_id}/sell")
.header("X-Api-Key", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"quantity\": \"5.00\",\n \"price\": \"70.00\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.predictamarkets.com/v1/markets/{market_id}/orders/{order_id}/sell")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Put.new(url)
request["X-Api-Key"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"quantity\": \"5.00\",\n \"price\": \"70.00\"\n}"
response = http.request(request)
puts response.read_body{
"id": 502,
"market_id": 12,
"market_asset_id": 34,
"account_id": 1042,
"order_type": "SELL",
"opinion_side": "YES",
"price": "70.00",
"quantity": "5.00",
"initial_quantity": "10.00",
"status": "OPEN",
"prediction_key": "mkt-12-yes",
"auto_cancel_at": null,
"created_at": "2025-04-10T09:00:00Z",
"updated_at": "2025-04-10T09:01:00Z"
}{
"detail": "Insufficient shares to sell"
}{
"detail": "Not authenticated"
}{
"detail": "You are not allowed to sell this order"
}{
"detail": "Order not found"
}{
"detail": [
{
"loc": [
"<string>"
],
"msg": "<string>",
"type": "<string>"
}
]
}{
"detail": "An unexpected error occurred. Please try again later."
}