curl --request POST \
--url https://api.parlayx.com/v1/prophetx/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 '
{
"strikeId": "ab39fb9a7b4eb6a26d7e26f885c601c1",
"price": "0.413223",
"quantity": 25,
"timeInForce": {
"type": "GTC"
},
"postOnly": true
}
'import requests
url = "https://api.parlayx.com/v1/prophetx/orders"
payload = {
"strikeId": "ab39fb9a7b4eb6a26d7e26f885c601c1",
"price": "0.413223",
"quantity": 25,
"timeInForce": { "type": "GTC" },
"postOnly": True
}
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({
strikeId: 'ab39fb9a7b4eb6a26d7e26f885c601c1',
price: '0.413223',
quantity: 25,
timeInForce: {type: 'GTC'},
postOnly: true
})
};
fetch('https://api.parlayx.com/v1/prophetx/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/prophetx/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([
'strikeId' => 'ab39fb9a7b4eb6a26d7e26f885c601c1',
'price' => '0.413223',
'quantity' => 25,
'timeInForce' => [
'type' => 'GTC'
],
'postOnly' => true
]),
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/prophetx/orders"
payload := strings.NewReader("{\n \"strikeId\": \"ab39fb9a7b4eb6a26d7e26f885c601c1\",\n \"price\": \"0.413223\",\n \"quantity\": 25,\n \"timeInForce\": {\n \"type\": \"GTC\"\n },\n \"postOnly\": true\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/prophetx/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 \"strikeId\": \"ab39fb9a7b4eb6a26d7e26f885c601c1\",\n \"price\": \"0.413223\",\n \"quantity\": 25,\n \"timeInForce\": {\n \"type\": \"GTC\"\n },\n \"postOnly\": true\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.parlayx.com/v1/prophetx/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 \"strikeId\": \"ab39fb9a7b4eb6a26d7e26f885c601c1\",\n \"price\": \"0.413223\",\n \"quantity\": 25,\n \"timeInForce\": {\n \"type\": \"GTC\"\n },\n \"postOnly\": true\n}"
response = http.request(request)
puts response.read_body{
"orderId": "abd80630-5c89-437f-980e-47936f518ec2",
"status": "OPEN",
"price": "0.413223",
"venueOrderId": "9f1a2b3c4d5e6f708192a3b4c5d6e7f8",
"quantity": 25
}{
"error": {
"code": "INVALID_REQUEST",
"message": "<string>",
"orderId": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
}
}{
"error": {
"code": "UNAUTHORIZED",
"message": "<string>"
}
}{
"error": {
"code": "UNAUTHORIZED",
"message": "<string>"
}
}{
"error": {
"code": "INVALID_REQUEST",
"message": "<string>",
"orderId": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
}
}{
"error": {
"code": "IDEMPOTENCY_CONFLICT",
"message": "Idempotency key was reused with a different request body"
}
}{
"error": {
"code": "INVALID_REQUEST",
"message": "<string>",
"orderId": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
}
}{
"error": {
"code": "INVALID_REQUEST",
"message": "<string>",
"orderId": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
}
}{
"error": {
"code": "UNAUTHORIZED",
"message": "<string>"
}
}Submit Order
Places a limit order on a ProphetX strike and returns the issued order id.
curl --request POST \
--url https://api.parlayx.com/v1/prophetx/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 '
{
"strikeId": "ab39fb9a7b4eb6a26d7e26f885c601c1",
"price": "0.413223",
"quantity": 25,
"timeInForce": {
"type": "GTC"
},
"postOnly": true
}
'import requests
url = "https://api.parlayx.com/v1/prophetx/orders"
payload = {
"strikeId": "ab39fb9a7b4eb6a26d7e26f885c601c1",
"price": "0.413223",
"quantity": 25,
"timeInForce": { "type": "GTC" },
"postOnly": True
}
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({
strikeId: 'ab39fb9a7b4eb6a26d7e26f885c601c1',
price: '0.413223',
quantity: 25,
timeInForce: {type: 'GTC'},
postOnly: true
})
};
fetch('https://api.parlayx.com/v1/prophetx/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/prophetx/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([
'strikeId' => 'ab39fb9a7b4eb6a26d7e26f885c601c1',
'price' => '0.413223',
'quantity' => 25,
'timeInForce' => [
'type' => 'GTC'
],
'postOnly' => true
]),
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/prophetx/orders"
payload := strings.NewReader("{\n \"strikeId\": \"ab39fb9a7b4eb6a26d7e26f885c601c1\",\n \"price\": \"0.413223\",\n \"quantity\": 25,\n \"timeInForce\": {\n \"type\": \"GTC\"\n },\n \"postOnly\": true\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/prophetx/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 \"strikeId\": \"ab39fb9a7b4eb6a26d7e26f885c601c1\",\n \"price\": \"0.413223\",\n \"quantity\": 25,\n \"timeInForce\": {\n \"type\": \"GTC\"\n },\n \"postOnly\": true\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.parlayx.com/v1/prophetx/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 \"strikeId\": \"ab39fb9a7b4eb6a26d7e26f885c601c1\",\n \"price\": \"0.413223\",\n \"quantity\": 25,\n \"timeInForce\": {\n \"type\": \"GTC\"\n },\n \"postOnly\": true\n}"
response = http.request(request)
puts response.read_body{
"orderId": "abd80630-5c89-437f-980e-47936f518ec2",
"status": "OPEN",
"price": "0.413223",
"venueOrderId": "9f1a2b3c4d5e6f708192a3b4c5d6e7f8",
"quantity": 25
}{
"error": {
"code": "INVALID_REQUEST",
"message": "<string>",
"orderId": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
}
}{
"error": {
"code": "UNAUTHORIZED",
"message": "<string>"
}
}{
"error": {
"code": "UNAUTHORIZED",
"message": "<string>"
}
}{
"error": {
"code": "INVALID_REQUEST",
"message": "<string>",
"orderId": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
}
}{
"error": {
"code": "IDEMPOTENCY_CONFLICT",
"message": "Idempotency key was reused with a different request body"
}
}{
"error": {
"code": "INVALID_REQUEST",
"message": "<string>",
"orderId": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
}
}{
"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
The ProphetX strike to trade, which identifies both the market and the side.
1"ab39fb9a7b4eb6a26d7e26f885c601c1"
Price in dollars per share, greater than 0 and less than 1, with at most six decimal places.
"0.413223"
Stake in account currency units.
x > 025
Execution policy; omission uses GTC.
- GoodTillCancelled
- FillOrKill
- GoodTilDate
Show child attributes
Show child attributes
Rest as add-liquidity-only without taking existing liquidity.
Response
Order accepted; status is the order's recorded state, acceptance alone does not mean the order is resting or filled, and price is the order's resolved limit after ladder resolution rather than an execution or average fill price
Issued order id.
"abd80630-5c89-437f-980e-47936f518ec2"
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"
Price in dollars per share, greater than 0 and less than 1, with at most six decimal places.
"0.413223"
Venue order id for the order, or null when no venue order id is recorded.
"9f1a2b3c4d5e6f708192a3b4c5d6e7f8"
Stake the order was submitted with, in account currency units.
x > 025