Submit order
curl --request POST \
--url https://api.worm.wtf/orders/{pubkey}/submit/ \
--header 'Content-Type: application/json' \
--data '
{
"signature": "<string>"
}
'import requests
url = "https://api.worm.wtf/orders/{pubkey}/submit/"
payload = { "signature": "<string>" }
headers = {"Content-Type": "application/json"}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'Content-Type': 'application/json'},
body: JSON.stringify({signature: '<string>'})
};
fetch('https://api.worm.wtf/orders/{pubkey}/submit/', 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.worm.wtf/orders/{pubkey}/submit/",
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([
'signature' => '<string>'
]),
CURLOPT_HTTPHEADER => [
"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.worm.wtf/orders/{pubkey}/submit/"
payload := strings.NewReader("{\n \"signature\": \"<string>\"\n}")
req, _ := http.NewRequest("POST", url, payload)
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.worm.wtf/orders/{pubkey}/submit/")
.header("Content-Type", "application/json")
.body("{\n \"signature\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.worm.wtf/orders/{pubkey}/submit/")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Content-Type"] = 'application/json'
request.body = "{\n \"signature\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body{
"data": {
"pubkey": "5uA9kQ1dM8rT4yW2nB7cF3pL6zX0vH5sJ2eR9tQ4mNp",
"status": "open",
"side": "buy",
"price": "0.68",
"amount": "120.000000",
"remaining_amount": "120.000000",
"filled_amount": "0.000000",
"funds": null,
"remaining_funds": null,
"filled_funds": null,
"market": {
"condition_id": "7n9G9WfQ2V7d6hM3XK8pQ4LwR2eY6aT1uJ5cB8mN3qPz",
"title": "Will the Atlanta Hawks beat the New York Knicks in the NBA game on April 28, 2026?"
},
"outcome": {
"is_yes": true,
"text": "New York Knicks"
}
},
"meta": {},
"error": null
}
{
"data": null,
"meta": null,
"error": {
"code": -11,
"slug": "invalid_request_params",
"message": "Validation Error",
"details": []
}
}
{
"data": null,
"meta": null,
"error": {
"code": -12,
"slug": "authentication_failed",
"message": "Invalid signature",
"details": []
}
}
{
"data": null,
"meta": null,
"error": {
"code": -14,
"slug": "permission_denied",
"message": "You do not have permission to perform this action.",
"details": []
}
}
{
"data": null,
"meta": null,
"error": {
"code": -15,
"slug": "not_found",
"message": "Not found.",
"details": []
}
}
{
"data": null,
"meta": null,
"error": {
"code": -17,
"slug": "throttled",
"message": "Request was throttled.",
"details": []
}
}
{
"data": null,
"meta": null,
"error": {
"code": -3,
"slug": "internal_error",
"message": "An internal error occurred.",
"details": []
}
}
Orders
Submit order
Submit a signed order draft to place it on the orderbook.
POST
/
orders
/
{pubkey}
/
submit
/
Submit order
curl --request POST \
--url https://api.worm.wtf/orders/{pubkey}/submit/ \
--header 'Content-Type: application/json' \
--data '
{
"signature": "<string>"
}
'import requests
url = "https://api.worm.wtf/orders/{pubkey}/submit/"
payload = { "signature": "<string>" }
headers = {"Content-Type": "application/json"}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'Content-Type': 'application/json'},
body: JSON.stringify({signature: '<string>'})
};
fetch('https://api.worm.wtf/orders/{pubkey}/submit/', 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.worm.wtf/orders/{pubkey}/submit/",
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([
'signature' => '<string>'
]),
CURLOPT_HTTPHEADER => [
"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.worm.wtf/orders/{pubkey}/submit/"
payload := strings.NewReader("{\n \"signature\": \"<string>\"\n}")
req, _ := http.NewRequest("POST", url, payload)
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.worm.wtf/orders/{pubkey}/submit/")
.header("Content-Type", "application/json")
.body("{\n \"signature\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.worm.wtf/orders/{pubkey}/submit/")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Content-Type"] = 'application/json'
request.body = "{\n \"signature\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body{
"data": {
"pubkey": "5uA9kQ1dM8rT4yW2nB7cF3pL6zX0vH5sJ2eR9tQ4mNp",
"status": "open",
"side": "buy",
"price": "0.68",
"amount": "120.000000",
"remaining_amount": "120.000000",
"filled_amount": "0.000000",
"funds": null,
"remaining_funds": null,
"filled_funds": null,
"market": {
"condition_id": "7n9G9WfQ2V7d6hM3XK8pQ4LwR2eY6aT1uJ5cB8mN3qPz",
"title": "Will the Atlanta Hawks beat the New York Knicks in the NBA game on April 28, 2026?"
},
"outcome": {
"is_yes": true,
"text": "New York Knicks"
}
},
"meta": {},
"error": null
}
{
"data": null,
"meta": null,
"error": {
"code": -11,
"slug": "invalid_request_params",
"message": "Validation Error",
"details": []
}
}
{
"data": null,
"meta": null,
"error": {
"code": -12,
"slug": "authentication_failed",
"message": "Invalid signature",
"details": []
}
}
{
"data": null,
"meta": null,
"error": {
"code": -14,
"slug": "permission_denied",
"message": "You do not have permission to perform this action.",
"details": []
}
}
{
"data": null,
"meta": null,
"error": {
"code": -15,
"slug": "not_found",
"message": "Not found.",
"details": []
}
}
{
"data": null,
"meta": null,
"error": {
"code": -17,
"slug": "throttled",
"message": "Request was throttled.",
"details": []
}
}
{
"data": null,
"meta": null,
"error": {
"code": -3,
"slug": "internal_error",
"message": "An internal error occurred.",
"details": []
}
}
Path Parameters
string
required
The public key of the order draft to submit.
Body Parameters
string
required
Hex signature over the draft
message from Create order draft.Response
object
Submitted order row.
Show Data fields
Show Data fields
string | null
Order public key.
string | null
Lowercase order status name:
open, partially_filled, filled, canceled, partially_filled_canceled, waiting_to_sign, expired, or failed.string
buy or sell (lowercase).string | null
Order price.
string | null
Order amount.
string | null
Remaining order size (non-market orders).
string | null
Filled size so far (non-market orders).
string | null
Total funds (market orders).
string | null
Remaining funds (market orders).
string | null
Filled funds (market orders).
object
Market reference (
condition_id, title).object
Outcome reference (
is_yes, text).object
Empty object on success for this endpoint.
object | null
null on success. Error object on failed requests.{
"data": {
"pubkey": "5uA9kQ1dM8rT4yW2nB7cF3pL6zX0vH5sJ2eR9tQ4mNp",
"status": "open",
"side": "buy",
"price": "0.68",
"amount": "120.000000",
"remaining_amount": "120.000000",
"filled_amount": "0.000000",
"funds": null,
"remaining_funds": null,
"filled_funds": null,
"market": {
"condition_id": "7n9G9WfQ2V7d6hM3XK8pQ4LwR2eY6aT1uJ5cB8mN3qPz",
"title": "Will the Atlanta Hawks beat the New York Knicks in the NBA game on April 28, 2026?"
},
"outcome": {
"is_yes": true,
"text": "New York Knicks"
}
},
"meta": {},
"error": null
}
{
"data": null,
"meta": null,
"error": {
"code": -11,
"slug": "invalid_request_params",
"message": "Validation Error",
"details": []
}
}
{
"data": null,
"meta": null,
"error": {
"code": -12,
"slug": "authentication_failed",
"message": "Invalid signature",
"details": []
}
}
{
"data": null,
"meta": null,
"error": {
"code": -14,
"slug": "permission_denied",
"message": "You do not have permission to perform this action.",
"details": []
}
}
{
"data": null,
"meta": null,
"error": {
"code": -15,
"slug": "not_found",
"message": "Not found.",
"details": []
}
}
{
"data": null,
"meta": null,
"error": {
"code": -17,
"slug": "throttled",
"message": "Request was throttled.",
"details": []
}
}
{
"data": null,
"meta": null,
"error": {
"code": -3,
"slug": "internal_error",
"message": "An internal error occurred.",
"details": []
}
}