Get market by condition id
curl --request GET \
--url https://api.worm.wtf/markets/{condition_id}/import requests
url = "https://api.worm.wtf/markets/{condition_id}/"
response = requests.get(url)
print(response.text)const options = {method: 'GET'};
fetch('https://api.worm.wtf/markets/{condition_id}/', 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/markets/{condition_id}/",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.worm.wtf/markets/{condition_id}/"
req, _ := http.NewRequest("GET", url, nil)
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.worm.wtf/markets/{condition_id}/")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.worm.wtf/markets/{condition_id}/")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
response = http.request(request)
puts response.read_body{
"data": {
"condition_id": "7n9G9WfQ2V7d6hM3XK8pQ4LwR2eY6aT1uJ5cB8mN3qPz",
"title": "Will the Atlanta Hawks beat the New York Knicks in the NBA game on April 28, 2026?",
"description": "NBA moneyline market for the Apr 28, 2026 game.",
"logo": null,
"last_trade_price": "0.68",
"state": "open",
"category": "sports",
"created": 1714300100,
"creator": { "username": "creator1", "image": null, "twitter_username": null },
"event": {
"title": "Atlanta Hawks vs New York Knicks (Apr 28, 2026)",
"condition_id": "9x4H2LdQ7sM1Kp6Wv3Tn8YfR5aC2uJ7mB4eQ9zN6dLp",
"logo": "https://cdn.worm.wtf/e/42.png"
},
"margin_enabled": false,
"outcomes": [
{ "is_yes": true, "text": "New York Knicks" },
{ "is_yes": false, "text": "Atlanta Hawks" }
],
"rules": { "resolution_source": "official league box score" },
"resolution_date": 1774972800,
"maker_fee": "0.02",
"taker_fee": "0.04",
"config": {
"kind": "orderbook",
"min_price": "0.01",
"max_price": "0.99",
"min_amount": "1",
"max_amount": "100000",
"min_funds": "1",
"max_funds": "100000",
"price_precision": 4,
"amount_precision": 4,
"funds_precision": 6,
"maker_fee_rate": "0.02",
"taker_fee_rate": "0.04",
"default_slippage_rate": "0.005"
}
},
"meta": {},
"error": null
}
{
"data": {
"condition_id": "H7xK2mN9pQr4sTvWxYz1aBc3dEf5gHi6jKl7mNo8pQr9s",
"title": "Will BTC trade above $100,000 by Dec 31, 2026?",
"description": "Binary crypto margin market on the year-end BTC price threshold.",
"logo": null,
"last_trade_price": "0.62",
"state": "open",
"category": "crypto",
"created": 1714300200,
"creator": { "username": "creator1", "image": null, "twitter_username": null },
"event": {
"title": "Bitcoin price milestones (2026)",
"condition_id": "E8xK2mN9pQr4sTvWxYz1aBc3dEf5gHi6jKl7mNo8pQr9s",
"logo": "https://cdn.worm.wtf/e/99.png"
},
"margin_enabled": true,
"outcomes": [
{ "is_yes": true, "text": "Yes" },
{ "is_yes": false, "text": "No" }
],
"rules": { "resolution_source": "Hyperliquid index at expiry" },
"resolution_date": 1798675200,
"maker_fee": null,
"taker_fee": null,
"config": {
"kind": "hyperliquid",
"max_leverage_yes": "4.5",
"max_leverage_no": "3.25",
"opening_fee": "0.01",
"closing_fee": "0.02",
"annual_fee_rate": "0.12"
}
},
"meta": {},
"error": null
}
{
"data": {
"condition_id": "P4mK8nQ2vR7sTwXyZ1aBc3dEf5gHi6jKl7mNo8pQr9s",
"title": "Will Candidate A win the 2026 US presidential election?",
"description": "Margin market on the election winner.",
"logo": null,
"last_trade_price": "0.54",
"state": "open",
"category": "politics",
"created": 1714300300,
"creator": { "username": "creator1", "image": null, "twitter_username": null },
"event": {
"title": "2026 US Presidential Election",
"condition_id": "E9mK8nQ2vR7sTwXyZ1aBc3dEf5gHi6jKl7mNo8pQr9s",
"logo": "https://cdn.worm.wtf/e/100.png"
},
"margin_enabled": true,
"outcomes": [
{ "is_yes": true, "text": "Candidate A wins" },
{ "is_yes": false, "text": "Candidate A does not win" }
],
"rules": { "resolution_source": "certified election results" },
"resolution_date": 1793577600,
"maker_fee": null,
"taker_fee": null,
"config": {
"kind": "polymarket",
"max_leverage_yes": "5",
"max_leverage_no": "4",
"opening_fee": "0",
"closing_fee": "0.05",
"annual_fee_rate": "0",
"order_min_size": "5",
"price_decimals": 2,
"shares_decimals": 2
}
},
"meta": {},
"error": null
}
{
"data": null,
"meta": null,
"error": {
"code": -11,
"slug": "invalid_request_params",
"message": "Validation Error",
"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": []
}
}
Markets
Get market by condition id
Retrieve detailed information for a single market.
GET
/
markets
/
{condition_id}
/
Get market by condition id
curl --request GET \
--url https://api.worm.wtf/markets/{condition_id}/import requests
url = "https://api.worm.wtf/markets/{condition_id}/"
response = requests.get(url)
print(response.text)const options = {method: 'GET'};
fetch('https://api.worm.wtf/markets/{condition_id}/', 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/markets/{condition_id}/",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.worm.wtf/markets/{condition_id}/"
req, _ := http.NewRequest("GET", url, nil)
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.worm.wtf/markets/{condition_id}/")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.worm.wtf/markets/{condition_id}/")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
response = http.request(request)
puts response.read_body{
"data": {
"condition_id": "7n9G9WfQ2V7d6hM3XK8pQ4LwR2eY6aT1uJ5cB8mN3qPz",
"title": "Will the Atlanta Hawks beat the New York Knicks in the NBA game on April 28, 2026?",
"description": "NBA moneyline market for the Apr 28, 2026 game.",
"logo": null,
"last_trade_price": "0.68",
"state": "open",
"category": "sports",
"created": 1714300100,
"creator": { "username": "creator1", "image": null, "twitter_username": null },
"event": {
"title": "Atlanta Hawks vs New York Knicks (Apr 28, 2026)",
"condition_id": "9x4H2LdQ7sM1Kp6Wv3Tn8YfR5aC2uJ7mB4eQ9zN6dLp",
"logo": "https://cdn.worm.wtf/e/42.png"
},
"margin_enabled": false,
"outcomes": [
{ "is_yes": true, "text": "New York Knicks" },
{ "is_yes": false, "text": "Atlanta Hawks" }
],
"rules": { "resolution_source": "official league box score" },
"resolution_date": 1774972800,
"maker_fee": "0.02",
"taker_fee": "0.04",
"config": {
"kind": "orderbook",
"min_price": "0.01",
"max_price": "0.99",
"min_amount": "1",
"max_amount": "100000",
"min_funds": "1",
"max_funds": "100000",
"price_precision": 4,
"amount_precision": 4,
"funds_precision": 6,
"maker_fee_rate": "0.02",
"taker_fee_rate": "0.04",
"default_slippage_rate": "0.005"
}
},
"meta": {},
"error": null
}
{
"data": {
"condition_id": "H7xK2mN9pQr4sTvWxYz1aBc3dEf5gHi6jKl7mNo8pQr9s",
"title": "Will BTC trade above $100,000 by Dec 31, 2026?",
"description": "Binary crypto margin market on the year-end BTC price threshold.",
"logo": null,
"last_trade_price": "0.62",
"state": "open",
"category": "crypto",
"created": 1714300200,
"creator": { "username": "creator1", "image": null, "twitter_username": null },
"event": {
"title": "Bitcoin price milestones (2026)",
"condition_id": "E8xK2mN9pQr4sTvWxYz1aBc3dEf5gHi6jKl7mNo8pQr9s",
"logo": "https://cdn.worm.wtf/e/99.png"
},
"margin_enabled": true,
"outcomes": [
{ "is_yes": true, "text": "Yes" },
{ "is_yes": false, "text": "No" }
],
"rules": { "resolution_source": "Hyperliquid index at expiry" },
"resolution_date": 1798675200,
"maker_fee": null,
"taker_fee": null,
"config": {
"kind": "hyperliquid",
"max_leverage_yes": "4.5",
"max_leverage_no": "3.25",
"opening_fee": "0.01",
"closing_fee": "0.02",
"annual_fee_rate": "0.12"
}
},
"meta": {},
"error": null
}
{
"data": {
"condition_id": "P4mK8nQ2vR7sTwXyZ1aBc3dEf5gHi6jKl7mNo8pQr9s",
"title": "Will Candidate A win the 2026 US presidential election?",
"description": "Margin market on the election winner.",
"logo": null,
"last_trade_price": "0.54",
"state": "open",
"category": "politics",
"created": 1714300300,
"creator": { "username": "creator1", "image": null, "twitter_username": null },
"event": {
"title": "2026 US Presidential Election",
"condition_id": "E9mK8nQ2vR7sTwXyZ1aBc3dEf5gHi6jKl7mNo8pQr9s",
"logo": "https://cdn.worm.wtf/e/100.png"
},
"margin_enabled": true,
"outcomes": [
{ "is_yes": true, "text": "Candidate A wins" },
{ "is_yes": false, "text": "Candidate A does not win" }
],
"rules": { "resolution_source": "certified election results" },
"resolution_date": 1793577600,
"maker_fee": null,
"taker_fee": null,
"config": {
"kind": "polymarket",
"max_leverage_yes": "5",
"max_leverage_no": "4",
"opening_fee": "0",
"closing_fee": "0.05",
"annual_fee_rate": "0",
"order_min_size": "5",
"price_decimals": 2,
"shares_decimals": 2
}
},
"meta": {},
"error": null
}
{
"data": null,
"meta": null,
"error": {
"code": -11,
"slug": "invalid_request_params",
"message": "Validation Error",
"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 unique condition identifier of the market.
Response
object
Detailed market payload.
Show Data fields
Show Data fields
string
Market condition id.
string
Market title.
string
Market description.
string | null
Logo URL when present.
string | null
Last traded price.
string
Market lifecycle: (
draft, waiting_to_open, open, answer_proposed, waiting_to_resolve, resolved, canceled, interrupted).string
Market category slug.
integer | null
Created time (unix seconds).
object
Creator summary:
username, image, twitter_username.object | null
Parent event mini:
title, condition_id, logo.boolean
Whether margin trading is enabled.
array
Outcome options. Each item:
is_yes (boolean), text (string label).object
Resolution/rules payload.
integer | null
Resolution timestamp.
string | null
Maker fee rate for spot trades on this market (decimal string, e.g.
0.02 for 2%). null when the market has no spot configuration or the rate is unset.string | null
Taker fee rate for spot trades on this market (decimal string, e.g.
0.04 for 4%). Deprecated — prefer config.maker_fee_rate / config.taker_fee_rate when config.kind is orderbook.object | null
Trading configuration when the market has a supported backend (spot orderbook, Polymarket margin, or Hyperliquid margin).
null when no trading backend is configured. When non-null, exactly one shape is returned; see kind and the expandables below.Show config — hyperliquid (`kind`: `hyperliquid`)
Show config — hyperliquid (`kind`: `hyperliquid`)
string
System-computed maximum leverage for opening YES positions (decimal string). Updates as exposure and liquidity change.
string
System-computed maximum leverage for opening NO positions (decimal string). Updates as exposure and liquidity change.
string
Opening fee rate (decimal string).
string
Closing fee rate (decimal string).
string
Annual funding-style fee rate (decimal string).
Show config — polymarket (`kind`: `polymarket`)
Show config — polymarket (`kind`: `polymarket`)
string
System-computed maximum leverage for opening YES positions (decimal string).
string
System-computed maximum leverage for opening NO positions (decimal string).
string
Opening fee rate (decimal string).
string
Closing fee rate (decimal string).
string
Annual fee rate (decimal string).
string | null
Minimum order size when configured (decimal string). Omitted when unset.
integer
Price decimal places for Polymarket orders.
integer
Share amount decimal places for Polymarket orders.
Show config — orderbook (`kind`: `orderbook`)
Show config — orderbook (`kind`: `orderbook`)
string
orderbook — spot CLOB limit/market orders via POST /orders/.string
Minimum limit price (decimal string).
string
Maximum limit price.
string
Minimum share amount per limit order.
string
Maximum share amount per limit order.
string
Minimum funds for market buy orders.
string
Maximum funds for market buy orders.
integer
Max decimal places for price.
integer
Max decimal places for amount.
integer
Max decimal places for funds.
string
Maker fee rate (decimal string).
string
Taker fee rate (decimal string).
string
Default slippage rate for market orders.
object
Empty object on success for this endpoint.
object | null
null on success. Error object on failed requests.{
"data": {
"condition_id": "7n9G9WfQ2V7d6hM3XK8pQ4LwR2eY6aT1uJ5cB8mN3qPz",
"title": "Will the Atlanta Hawks beat the New York Knicks in the NBA game on April 28, 2026?",
"description": "NBA moneyline market for the Apr 28, 2026 game.",
"logo": null,
"last_trade_price": "0.68",
"state": "open",
"category": "sports",
"created": 1714300100,
"creator": { "username": "creator1", "image": null, "twitter_username": null },
"event": {
"title": "Atlanta Hawks vs New York Knicks (Apr 28, 2026)",
"condition_id": "9x4H2LdQ7sM1Kp6Wv3Tn8YfR5aC2uJ7mB4eQ9zN6dLp",
"logo": "https://cdn.worm.wtf/e/42.png"
},
"margin_enabled": false,
"outcomes": [
{ "is_yes": true, "text": "New York Knicks" },
{ "is_yes": false, "text": "Atlanta Hawks" }
],
"rules": { "resolution_source": "official league box score" },
"resolution_date": 1774972800,
"maker_fee": "0.02",
"taker_fee": "0.04",
"config": {
"kind": "orderbook",
"min_price": "0.01",
"max_price": "0.99",
"min_amount": "1",
"max_amount": "100000",
"min_funds": "1",
"max_funds": "100000",
"price_precision": 4,
"amount_precision": 4,
"funds_precision": 6,
"maker_fee_rate": "0.02",
"taker_fee_rate": "0.04",
"default_slippage_rate": "0.005"
}
},
"meta": {},
"error": null
}
{
"data": {
"condition_id": "H7xK2mN9pQr4sTvWxYz1aBc3dEf5gHi6jKl7mNo8pQr9s",
"title": "Will BTC trade above $100,000 by Dec 31, 2026?",
"description": "Binary crypto margin market on the year-end BTC price threshold.",
"logo": null,
"last_trade_price": "0.62",
"state": "open",
"category": "crypto",
"created": 1714300200,
"creator": { "username": "creator1", "image": null, "twitter_username": null },
"event": {
"title": "Bitcoin price milestones (2026)",
"condition_id": "E8xK2mN9pQr4sTvWxYz1aBc3dEf5gHi6jKl7mNo8pQr9s",
"logo": "https://cdn.worm.wtf/e/99.png"
},
"margin_enabled": true,
"outcomes": [
{ "is_yes": true, "text": "Yes" },
{ "is_yes": false, "text": "No" }
],
"rules": { "resolution_source": "Hyperliquid index at expiry" },
"resolution_date": 1798675200,
"maker_fee": null,
"taker_fee": null,
"config": {
"kind": "hyperliquid",
"max_leverage_yes": "4.5",
"max_leverage_no": "3.25",
"opening_fee": "0.01",
"closing_fee": "0.02",
"annual_fee_rate": "0.12"
}
},
"meta": {},
"error": null
}
{
"data": {
"condition_id": "P4mK8nQ2vR7sTwXyZ1aBc3dEf5gHi6jKl7mNo8pQr9s",
"title": "Will Candidate A win the 2026 US presidential election?",
"description": "Margin market on the election winner.",
"logo": null,
"last_trade_price": "0.54",
"state": "open",
"category": "politics",
"created": 1714300300,
"creator": { "username": "creator1", "image": null, "twitter_username": null },
"event": {
"title": "2026 US Presidential Election",
"condition_id": "E9mK8nQ2vR7sTwXyZ1aBc3dEf5gHi6jKl7mNo8pQr9s",
"logo": "https://cdn.worm.wtf/e/100.png"
},
"margin_enabled": true,
"outcomes": [
{ "is_yes": true, "text": "Candidate A wins" },
{ "is_yes": false, "text": "Candidate A does not win" }
],
"rules": { "resolution_source": "certified election results" },
"resolution_date": 1793577600,
"maker_fee": null,
"taker_fee": null,
"config": {
"kind": "polymarket",
"max_leverage_yes": "5",
"max_leverage_no": "4",
"opening_fee": "0",
"closing_fee": "0.05",
"annual_fee_rate": "0",
"order_min_size": "5",
"price_decimals": 2,
"shares_decimals": 2
}
},
"meta": {},
"error": null
}
{
"data": null,
"meta": null,
"error": {
"code": -11,
"slug": "invalid_request_params",
"message": "Validation Error",
"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": []
}
}