curl --request GET \
--url https://api.limitless.exchange/markets/stable/{slug}import requests
url = "https://api.limitless.exchange/markets/stable/{slug}"
response = requests.get(url)
print(response.text)const options = {method: 'GET'};
fetch('https://api.limitless.exchange/markets/stable/{slug}', 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.limitless.exchange/markets/stable/{slug}",
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.limitless.exchange/markets/stable/{slug}"
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.limitless.exchange/markets/stable/{slug}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.limitless.exchange/markets/stable/{slug}")
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{
"id": 7494,
"conditionId": "0x947b8e6812bf8ac27687fa25b642d6a25bf5c7292068e5aef129d9d26e9780b8",
"negRiskRequestId": null,
"description": "<string>",
"collateralToken": {
"address": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
"decimals": 6,
"symbol": "USDC"
},
"title": "<string>",
"proxyTitle": "<string>",
"expirationDate": "<string>",
"expirationTimestamp": 123,
"createdAt": "<string>",
"updatedAt": "<string>",
"categories": [
"<string>"
],
"status": "<string>",
"expired": true,
"creator": {
"name": "Limitless",
"imageURI": "https://limitless.exchange/assets/images/logo.svg",
"link": "https://x.com/trylimitless",
"address": "0x55257A9a03601B0587Ab4752FD42A87c4Bad2e1e"
},
"tags": [
"<string>"
],
"volume": "<string>",
"volumeFormatted": "<string>",
"tokens": {
"yes": "78695809706775235377718830617502491971378663350108823320552375535762230401980",
"no": "8642544735724967665477930445154251213223700833624811358896571351781151616445"
},
"prices": [
123
],
"tradePrices": {
"buy": {
"market": [
0.997,
0.997
],
"limit": [
0.003,
0.003
]
},
"sell": {
"market": [
0.003,
0.003
],
"limit": [
0.997,
0.997
]
}
},
"isRewardable": true,
"slug": "<string>",
"tradeType": "clob",
"marketType": "single",
"priorityIndex": 123,
"winningOutcomeIndex": 123,
"metadata": {
"fee": true,
"isBannered": false,
"isPolyArbitrage": false,
"shouldMarketMake": false
},
"settings": {
"minSize": "50000000",
"maxSpread": 0.035,
"dailyReward": "20",
"rewardsEpoch": "0.013888888888888888",
"c": "3"
},
"logo": "<string>",
"source": "<string>",
"properties": [
{
"propertyKeySlug": "domain",
"value": "sports"
}
],
"frequency": "minutely",
"subFrequency": "minutes_5",
"feedEvents": [
{
"eventType": "NEW_TRADE",
"timestamp": "2025-09-01T11:30:31.000Z",
"user": {
"account": "0xea27f6788F083e6070961d3E52A2e596367E04CC",
"username": null,
"displayName": "GG",
"imageURI": null,
"id": 7080,
"rankName": "Bronze",
"points": "0.00000000",
"name": "GG"
},
"data": {
"title": "DOGE Up or Down - Hourly",
"address": "0x76d3e2098Be66Aa7E15138F467390f0Eb7349B9b",
"strategy": "Buy",
"outcome": "Down",
"contracts": "9.071313",
"txHash": "0xe8a4464daf3561f6be5fef4d1bc64184c4f6fe9d6306ab7297fe7ed63a24df1c",
"symbol": "USDC",
"tradeAmount": "5",
"tradeAmountUSD": "4.999525",
"marketId": 7495,
"slug": "doge-up-or-down-1-hour-1756136880125"
},
"bodyHash": "01100995"
}
]
}Resolve Stable Slug
Resolve a stable recurring URL slug (e.g. btc-hourly-price) to the currently active market or ladder group
curl --request GET \
--url https://api.limitless.exchange/markets/stable/{slug}import requests
url = "https://api.limitless.exchange/markets/stable/{slug}"
response = requests.get(url)
print(response.text)const options = {method: 'GET'};
fetch('https://api.limitless.exchange/markets/stable/{slug}', 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.limitless.exchange/markets/stable/{slug}",
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.limitless.exchange/markets/stable/{slug}"
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.limitless.exchange/markets/stable/{slug}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.limitless.exchange/markets/stable/{slug}")
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{
"id": 7494,
"conditionId": "0x947b8e6812bf8ac27687fa25b642d6a25bf5c7292068e5aef129d9d26e9780b8",
"negRiskRequestId": null,
"description": "<string>",
"collateralToken": {
"address": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
"decimals": 6,
"symbol": "USDC"
},
"title": "<string>",
"proxyTitle": "<string>",
"expirationDate": "<string>",
"expirationTimestamp": 123,
"createdAt": "<string>",
"updatedAt": "<string>",
"categories": [
"<string>"
],
"status": "<string>",
"expired": true,
"creator": {
"name": "Limitless",
"imageURI": "https://limitless.exchange/assets/images/logo.svg",
"link": "https://x.com/trylimitless",
"address": "0x55257A9a03601B0587Ab4752FD42A87c4Bad2e1e"
},
"tags": [
"<string>"
],
"volume": "<string>",
"volumeFormatted": "<string>",
"tokens": {
"yes": "78695809706775235377718830617502491971378663350108823320552375535762230401980",
"no": "8642544735724967665477930445154251213223700833624811358896571351781151616445"
},
"prices": [
123
],
"tradePrices": {
"buy": {
"market": [
0.997,
0.997
],
"limit": [
0.003,
0.003
]
},
"sell": {
"market": [
0.003,
0.003
],
"limit": [
0.997,
0.997
]
}
},
"isRewardable": true,
"slug": "<string>",
"tradeType": "clob",
"marketType": "single",
"priorityIndex": 123,
"winningOutcomeIndex": 123,
"metadata": {
"fee": true,
"isBannered": false,
"isPolyArbitrage": false,
"shouldMarketMake": false
},
"settings": {
"minSize": "50000000",
"maxSpread": 0.035,
"dailyReward": "20",
"rewardsEpoch": "0.013888888888888888",
"c": "3"
},
"logo": "<string>",
"source": "<string>",
"properties": [
{
"propertyKeySlug": "domain",
"value": "sports"
}
],
"frequency": "minutely",
"subFrequency": "minutes_5",
"feedEvents": [
{
"eventType": "NEW_TRADE",
"timestamp": "2025-09-01T11:30:31.000Z",
"user": {
"account": "0xea27f6788F083e6070961d3E52A2e596367E04CC",
"username": null,
"displayName": "GG",
"imageURI": null,
"id": 7080,
"rankName": "Bronze",
"points": "0.00000000",
"name": "GG"
},
"data": {
"title": "DOGE Up or Down - Hourly",
"address": "0x76d3e2098Be66Aa7E15138F467390f0Eb7349B9b",
"strategy": "Buy",
"outcome": "Down",
"contracts": "9.071313",
"txHash": "0xe8a4464daf3561f6be5fef4d1bc64184c4f6fe9d6306ab7297fe7ed63a24df1c",
"symbol": "USDC",
"tradeAmount": "5",
"tradeAmountUSD": "4.999525",
"marketId": 7495,
"slug": "doge-up-or-down-1-hour-1756136880125"
},
"bodyHash": "01100995"
}
]
}slug (not stableSlug). Pass the stable identifier, for example btc-hourly-price.
200— resolved market or ladder group data (single market or group).404— no market or group is currently active for that stable slug.
Path Parameters
Stable slug identifier (e.g. btc-hourly-price)
"btc-hourly-price"
Response
Resolved market or group data (single market or ladder group)
- Option 1
- Option 2
- Option 3
Market ID
7494
Condition ID
"0x947b8e6812bf8ac27687fa25b642d6a25bf5c7292068e5aef129d9d26e9780b8"
NegRisk request ID
null
Market description
Show child attributes
Show child attributes
Market title
Proxy title
Expiration date
Expiration timestamp
Created timestamp
Updated timestamp
Categories
Market status
Is expired
Show child attributes
Show child attributes
Tags
Volume
Formatted volume
Show child attributes
Show child attributes
Prices
Show child attributes
Show child attributes
Is rewardable
Market slug
Trade type
"clob"
Market type
"single"
Priority index
Winning outcome index
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Market logo
Market source (e.g. ugm:crypto, ugm:sports)
Admin-assigned market analytics properties
Show child attributes
Show child attributes
Schedule frequency for timeline
"minutely"
Schedule sub-frequency for timeline
"minutes_5"
Feed events
Show child attributes
Show child attributes