curl --request POST \
--url https://api.parlayx.com/v1/limitless/orders \
--header 'Content-Type: application/json' \
--header 'Idempotency-Key: <idempotency-key>' \
--header 'PX-Content-Sha256: <px-content-sha256>' \
--header 'PX-Key-Id: <px-key-id>' \
--header 'PX-Signature: <px-signature>' \
--header 'PX-Timestamp: <px-timestamp>' \
--data '
{
"marketSlug": "doge-up-or-down-daily-1787500800",
"tokenId": "10999813436902295279687793687143205491693625423224337570276428722503253471600",
"side": "BUY",
"amount": "2",
"timeInForce": {
"type": "FAK"
},
"stpPolicy": "CANCEL_MAKER"
}
'import requests
url = "https://api.parlayx.com/v1/limitless/orders"
payload = {
"marketSlug": "doge-up-or-down-daily-1787500800",
"tokenId": "10999813436902295279687793687143205491693625423224337570276428722503253471600",
"side": "BUY",
"amount": "2",
"timeInForce": { "type": "FAK" },
"stpPolicy": "CANCEL_MAKER"
}
headers = {
"PX-Key-Id": "<px-key-id>",
"PX-Timestamp": "<px-timestamp>",
"PX-Signature": "<px-signature>",
"PX-Content-Sha256": "<px-content-sha256>",
"Idempotency-Key": "<idempotency-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {
'PX-Key-Id': '<px-key-id>',
'PX-Timestamp': '<px-timestamp>',
'PX-Signature': '<px-signature>',
'PX-Content-Sha256': '<px-content-sha256>',
'Idempotency-Key': '<idempotency-key>',
'Content-Type': 'application/json'
},
body: JSON.stringify({
marketSlug: 'doge-up-or-down-daily-1787500800',
tokenId: '10999813436902295279687793687143205491693625423224337570276428722503253471600',
side: 'BUY',
amount: '2',
timeInForce: {type: 'FAK'},
stpPolicy: 'CANCEL_MAKER'
})
};
fetch('https://api.parlayx.com/v1/limitless/orders', 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.parlayx.com/v1/limitless/orders",
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([
'marketSlug' => 'doge-up-or-down-daily-1787500800',
'tokenId' => '10999813436902295279687793687143205491693625423224337570276428722503253471600',
'side' => 'BUY',
'amount' => '2',
'timeInForce' => [
'type' => 'FAK'
],
'stpPolicy' => 'CANCEL_MAKER'
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"Idempotency-Key: <idempotency-key>",
"PX-Content-Sha256: <px-content-sha256>",
"PX-Key-Id: <px-key-id>",
"PX-Signature: <px-signature>",
"PX-Timestamp: <px-timestamp>"
],
]);
$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.parlayx.com/v1/limitless/orders"
payload := strings.NewReader("{\n \"marketSlug\": \"doge-up-or-down-daily-1787500800\",\n \"tokenId\": \"10999813436902295279687793687143205491693625423224337570276428722503253471600\",\n \"side\": \"BUY\",\n \"amount\": \"2\",\n \"timeInForce\": {\n \"type\": \"FAK\"\n },\n \"stpPolicy\": \"CANCEL_MAKER\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("PX-Key-Id", "<px-key-id>")
req.Header.Add("PX-Timestamp", "<px-timestamp>")
req.Header.Add("PX-Signature", "<px-signature>")
req.Header.Add("PX-Content-Sha256", "<px-content-sha256>")
req.Header.Add("Idempotency-Key", "<idempotency-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://api.parlayx.com/v1/limitless/orders")
.header("PX-Key-Id", "<px-key-id>")
.header("PX-Timestamp", "<px-timestamp>")
.header("PX-Signature", "<px-signature>")
.header("PX-Content-Sha256", "<px-content-sha256>")
.header("Idempotency-Key", "<idempotency-key>")
.header("Content-Type", "application/json")
.body("{\n \"marketSlug\": \"doge-up-or-down-daily-1787500800\",\n \"tokenId\": \"10999813436902295279687793687143205491693625423224337570276428722503253471600\",\n \"side\": \"BUY\",\n \"amount\": \"2\",\n \"timeInForce\": {\n \"type\": \"FAK\"\n },\n \"stpPolicy\": \"CANCEL_MAKER\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.parlayx.com/v1/limitless/orders")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["PX-Key-Id"] = '<px-key-id>'
request["PX-Timestamp"] = '<px-timestamp>'
request["PX-Signature"] = '<px-signature>'
request["PX-Content-Sha256"] = '<px-content-sha256>'
request["Idempotency-Key"] = '<idempotency-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"marketSlug\": \"doge-up-or-down-daily-1787500800\",\n \"tokenId\": \"10999813436902295279687793687143205491693625423224337570276428722503253471600\",\n \"side\": \"BUY\",\n \"amount\": \"2\",\n \"timeInForce\": {\n \"type\": \"FAK\"\n },\n \"stpPolicy\": \"CANCEL_MAKER\"\n}"
response = http.request(request)
puts response.read_body{
"orderId": "3f8b2c9a-2d18-4f7e-9c2a-1b6e1f0c8a4d",
"status": "OPEN"
}{
"error": {
"code": "INVALID_REQUEST",
"message": "<string>",
"orderId": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
}
}{
"error": {
"code": "UNAUTHORIZED",
"message": "<string>"
}
}{
"error": {
"code": "UNAUTHORIZED",
"message": "<string>"
}
}{
"error": {
"code": "IDEMPOTENCY_CONFLICT",
"message": "Idempotency key was reused with a different request body"
}
}{
"error": {
"code": "UNAUTHORIZED",
"message": "<string>"
}
}{
"error": {
"code": "INVALID_REQUEST",
"message": "<string>",
"orderId": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
}
}{
"error": {
"code": "UNAUTHORIZED",
"message": "<string>"
}
}Submit Order
Places an order on a Limitless outcome and returns the issued order id.
curl --request POST \
--url https://api.parlayx.com/v1/limitless/orders \
--header 'Content-Type: application/json' \
--header 'Idempotency-Key: <idempotency-key>' \
--header 'PX-Content-Sha256: <px-content-sha256>' \
--header 'PX-Key-Id: <px-key-id>' \
--header 'PX-Signature: <px-signature>' \
--header 'PX-Timestamp: <px-timestamp>' \
--data '
{
"marketSlug": "doge-up-or-down-daily-1787500800",
"tokenId": "10999813436902295279687793687143205491693625423224337570276428722503253471600",
"side": "BUY",
"amount": "2",
"timeInForce": {
"type": "FAK"
},
"stpPolicy": "CANCEL_MAKER"
}
'import requests
url = "https://api.parlayx.com/v1/limitless/orders"
payload = {
"marketSlug": "doge-up-or-down-daily-1787500800",
"tokenId": "10999813436902295279687793687143205491693625423224337570276428722503253471600",
"side": "BUY",
"amount": "2",
"timeInForce": { "type": "FAK" },
"stpPolicy": "CANCEL_MAKER"
}
headers = {
"PX-Key-Id": "<px-key-id>",
"PX-Timestamp": "<px-timestamp>",
"PX-Signature": "<px-signature>",
"PX-Content-Sha256": "<px-content-sha256>",
"Idempotency-Key": "<idempotency-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {
'PX-Key-Id': '<px-key-id>',
'PX-Timestamp': '<px-timestamp>',
'PX-Signature': '<px-signature>',
'PX-Content-Sha256': '<px-content-sha256>',
'Idempotency-Key': '<idempotency-key>',
'Content-Type': 'application/json'
},
body: JSON.stringify({
marketSlug: 'doge-up-or-down-daily-1787500800',
tokenId: '10999813436902295279687793687143205491693625423224337570276428722503253471600',
side: 'BUY',
amount: '2',
timeInForce: {type: 'FAK'},
stpPolicy: 'CANCEL_MAKER'
})
};
fetch('https://api.parlayx.com/v1/limitless/orders', 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.parlayx.com/v1/limitless/orders",
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([
'marketSlug' => 'doge-up-or-down-daily-1787500800',
'tokenId' => '10999813436902295279687793687143205491693625423224337570276428722503253471600',
'side' => 'BUY',
'amount' => '2',
'timeInForce' => [
'type' => 'FAK'
],
'stpPolicy' => 'CANCEL_MAKER'
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"Idempotency-Key: <idempotency-key>",
"PX-Content-Sha256: <px-content-sha256>",
"PX-Key-Id: <px-key-id>",
"PX-Signature: <px-signature>",
"PX-Timestamp: <px-timestamp>"
],
]);
$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.parlayx.com/v1/limitless/orders"
payload := strings.NewReader("{\n \"marketSlug\": \"doge-up-or-down-daily-1787500800\",\n \"tokenId\": \"10999813436902295279687793687143205491693625423224337570276428722503253471600\",\n \"side\": \"BUY\",\n \"amount\": \"2\",\n \"timeInForce\": {\n \"type\": \"FAK\"\n },\n \"stpPolicy\": \"CANCEL_MAKER\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("PX-Key-Id", "<px-key-id>")
req.Header.Add("PX-Timestamp", "<px-timestamp>")
req.Header.Add("PX-Signature", "<px-signature>")
req.Header.Add("PX-Content-Sha256", "<px-content-sha256>")
req.Header.Add("Idempotency-Key", "<idempotency-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://api.parlayx.com/v1/limitless/orders")
.header("PX-Key-Id", "<px-key-id>")
.header("PX-Timestamp", "<px-timestamp>")
.header("PX-Signature", "<px-signature>")
.header("PX-Content-Sha256", "<px-content-sha256>")
.header("Idempotency-Key", "<idempotency-key>")
.header("Content-Type", "application/json")
.body("{\n \"marketSlug\": \"doge-up-or-down-daily-1787500800\",\n \"tokenId\": \"10999813436902295279687793687143205491693625423224337570276428722503253471600\",\n \"side\": \"BUY\",\n \"amount\": \"2\",\n \"timeInForce\": {\n \"type\": \"FAK\"\n },\n \"stpPolicy\": \"CANCEL_MAKER\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.parlayx.com/v1/limitless/orders")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["PX-Key-Id"] = '<px-key-id>'
request["PX-Timestamp"] = '<px-timestamp>'
request["PX-Signature"] = '<px-signature>'
request["PX-Content-Sha256"] = '<px-content-sha256>'
request["Idempotency-Key"] = '<idempotency-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"marketSlug\": \"doge-up-or-down-daily-1787500800\",\n \"tokenId\": \"10999813436902295279687793687143205491693625423224337570276428722503253471600\",\n \"side\": \"BUY\",\n \"amount\": \"2\",\n \"timeInForce\": {\n \"type\": \"FAK\"\n },\n \"stpPolicy\": \"CANCEL_MAKER\"\n}"
response = http.request(request)
puts response.read_body{
"orderId": "3f8b2c9a-2d18-4f7e-9c2a-1b6e1f0c8a4d",
"status": "OPEN"
}{
"error": {
"code": "INVALID_REQUEST",
"message": "<string>",
"orderId": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
}
}{
"error": {
"code": "UNAUTHORIZED",
"message": "<string>"
}
}{
"error": {
"code": "UNAUTHORIZED",
"message": "<string>"
}
}{
"error": {
"code": "IDEMPOTENCY_CONFLICT",
"message": "Idempotency key was reused with a different request body"
}
}{
"error": {
"code": "UNAUTHORIZED",
"message": "<string>"
}
}{
"error": {
"code": "INVALID_REQUEST",
"message": "<string>",
"orderId": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
}
}{
"error": {
"code": "UNAUTHORIZED",
"message": "<string>"
}
}Headers
The key id issued for your signing keypair.
Unix seconds at signing, valid within 30 seconds of the server clock.
Ed25519 signature of the request
Hex SHA-256 of the request body, or the SHA-256 of the empty string when there is no body.
Idempotency key for this request. Re-sending the same key with the same body returns the original result and creates no duplicate; re-sending it with a different body is rejected with 422.
1"2f1a8c4e-0b3d-4a9c-8e7f-1a2b3c4d5e6f"
Body
Limitless market slug, exactly as the venue's market API names it.
1"doge-up-or-down-daily-1787500800"
Limitless outcome conditional-token id (raw integer string).
"10999813436902295279687793687143205491693625423224337570276428722503253471600"
Order direction.
BUY, SELL "BUY"
Use "limit" for GTC and "market" for FAK or FOK.
MARKET, LIMIT Order size in dollars for an immediate BUY unless amountUnit is shares, and in shares otherwise.
"2"
Execution policy; defaults to FAK.
- FillAndKill
- FillOrKill
- GoodTillCancelled
Show child attributes
Show child attributes
Self-trade policy within the shared wallet; defaults to CANCEL_MAKER.
CANCEL_MAKER, CANCEL_TAKER, CANCEL_BOTH "CANCEL_MAKER"
Response
Order accepted; status is the order's recorded state, and acceptance alone does not mean it is resting or filled
Issued order id.
"3f8b2c9a-2d18-4f7e-9c2a-1b6e1f0c8a4d"
Order lifecycle status.
| Status | Meaning |
|---|---|
PENDING | Accepted, not yet sent to the venue. |
SUBMITTED | At the venue, outcome not yet known. Either not yet acknowledged, or an immediate-or-cancel order acknowledged but not yet settled. |
OPEN | Resting on the venue, and cancellable. |
FILLED | Fully filled. |
CANCELLED / REJECTED | Terminal. |
PENDING, SUBMITTED, OPEN, FILLED, CANCELLED, REJECTED "OPEN"