curl --request GET \
--url https://hip4-api.totalis.trade/v1/marketsimport requests
url = "https://hip4-api.totalis.trade/v1/markets"
response = requests.get(url)
print(response.text)const options = {method: 'GET'};
fetch('https://hip4-api.totalis.trade/v1/markets', 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://hip4-api.totalis.trade/v1/markets",
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://hip4-api.totalis.trade/v1/markets"
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://hip4-api.totalis.trade/v1/markets")
.asString();require 'uri'
require 'net/http'
url = URI("https://hip4-api.totalis.trade/v1/markets")
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{
"items": [
{
"outcome_id": "1209",
"native_question_id": null,
"title": "HYPE touches 100 by 20261001-0000",
"state": "ACTIVE",
"result": {
"availability": "AVAILABLE",
"result_state": "UNRESOLVED"
},
"metadata_revision": "6100",
"eligibility": {
"state": "ENABLED"
},
"category": "Crypto",
"subcategory": "other",
"sides": [
{
"side": "YES",
"coin": "#12090",
"reference": {
"availability": "AVAILABLE",
"quality": "BOOK_MID",
"value": "240800000000000000",
"best_bid": "238600000000000000",
"best_ask": "243000000000000000",
"scale": "1000000000000000000",
"freshness": "FRESH",
"received_at": "2026-09-26T19:59:09.72902044Z"
}
},
{
"side": "NO",
"coin": "#12091",
"reference": {
"availability": "AVAILABLE",
"quality": "BOOK_MID",
"value": "759200000000000000",
"best_bid": "757000000000000000",
"best_ask": "761400000000000000",
"scale": "1000000000000000000",
"freshness": "FRESH",
"received_at": "2026-09-26T19:59:09.72902044Z"
}
}
],
"dates": {
"event": null,
"result_by": null,
"resolves_after": null,
"scheduled_event_at": null,
"observation_ends_at": "1790812800",
"market_class": "PRICE_TOUCH"
}
},
{
"outcome_id": "1210",
"native_question_id": null,
"title": "BTC above 100000 at 20261001-0000?",
"state": "ACTIVE",
"result": {
"availability": "AVAILABLE",
"result_state": "UNRESOLVED"
},
"metadata_revision": "6100",
"eligibility": {
"state": "ENABLED"
},
"category": "Crypto",
"subcategory": "btc",
"sides": [
{
"side": "YES",
"coin": "#12100",
"reference": {
"availability": "AVAILABLE",
"quality": "BOOK_MID",
"value": "6030000000000000",
"best_bid": "6010000000000000",
"best_ask": "6050000000000000",
"scale": "1000000000000000000",
"freshness": "FRESH",
"received_at": "2026-09-26T19:59:09.751601549Z"
}
},
{
"side": "NO",
"coin": "#12101",
"reference": {
"availability": "AVAILABLE",
"quality": "BOOK_MID",
"value": "993970000000000000",
"best_bid": "993950000000000000",
"best_ask": "993990000000000000",
"scale": "1000000000000000000",
"freshness": "FRESH",
"received_at": "2026-09-26T19:59:09.751601549Z"
}
}
],
"dates": {
"event": null,
"result_by": null,
"resolves_after": null,
"scheduled_event_at": null,
"observation_ends_at": "1790812800",
"market_class": "PRICE_BINARY"
}
}
],
"catalog_generation": "6100",
"next_cursor": "eyJnIjo2MTAwLCJhIjoxMjEwLCJrIjoibWFya2V0In0",
"has_more": true
}{
"error": {
"code": "INVALID_REQUEST",
"field_violations": [
{
"code": "REQUIRED",
"field": "<string>"
}
],
"message": "<string>",
"request_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"retry": "NEVER"
}
}{
"error": {
"code": "INVALID_REQUEST",
"field_violations": [
{
"code": "REQUIRED",
"field": "<string>"
}
],
"message": "<string>",
"request_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"retry": "NEVER"
}
}{
"error": {
"code": "INVALID_REQUEST",
"field_violations": [
{
"code": "REQUIRED",
"field": "<string>"
}
],
"message": "<string>",
"request_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"retry": "NEVER"
}
}List markets
List active markets, grouped by question.
No API key required.
curl --request GET \
--url https://hip4-api.totalis.trade/v1/marketsimport requests
url = "https://hip4-api.totalis.trade/v1/markets"
response = requests.get(url)
print(response.text)const options = {method: 'GET'};
fetch('https://hip4-api.totalis.trade/v1/markets', 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://hip4-api.totalis.trade/v1/markets",
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://hip4-api.totalis.trade/v1/markets"
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://hip4-api.totalis.trade/v1/markets")
.asString();require 'uri'
require 'net/http'
url = URI("https://hip4-api.totalis.trade/v1/markets")
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{
"items": [
{
"outcome_id": "1209",
"native_question_id": null,
"title": "HYPE touches 100 by 20261001-0000",
"state": "ACTIVE",
"result": {
"availability": "AVAILABLE",
"result_state": "UNRESOLVED"
},
"metadata_revision": "6100",
"eligibility": {
"state": "ENABLED"
},
"category": "Crypto",
"subcategory": "other",
"sides": [
{
"side": "YES",
"coin": "#12090",
"reference": {
"availability": "AVAILABLE",
"quality": "BOOK_MID",
"value": "240800000000000000",
"best_bid": "238600000000000000",
"best_ask": "243000000000000000",
"scale": "1000000000000000000",
"freshness": "FRESH",
"received_at": "2026-09-26T19:59:09.72902044Z"
}
},
{
"side": "NO",
"coin": "#12091",
"reference": {
"availability": "AVAILABLE",
"quality": "BOOK_MID",
"value": "759200000000000000",
"best_bid": "757000000000000000",
"best_ask": "761400000000000000",
"scale": "1000000000000000000",
"freshness": "FRESH",
"received_at": "2026-09-26T19:59:09.72902044Z"
}
}
],
"dates": {
"event": null,
"result_by": null,
"resolves_after": null,
"scheduled_event_at": null,
"observation_ends_at": "1790812800",
"market_class": "PRICE_TOUCH"
}
},
{
"outcome_id": "1210",
"native_question_id": null,
"title": "BTC above 100000 at 20261001-0000?",
"state": "ACTIVE",
"result": {
"availability": "AVAILABLE",
"result_state": "UNRESOLVED"
},
"metadata_revision": "6100",
"eligibility": {
"state": "ENABLED"
},
"category": "Crypto",
"subcategory": "btc",
"sides": [
{
"side": "YES",
"coin": "#12100",
"reference": {
"availability": "AVAILABLE",
"quality": "BOOK_MID",
"value": "6030000000000000",
"best_bid": "6010000000000000",
"best_ask": "6050000000000000",
"scale": "1000000000000000000",
"freshness": "FRESH",
"received_at": "2026-09-26T19:59:09.751601549Z"
}
},
{
"side": "NO",
"coin": "#12101",
"reference": {
"availability": "AVAILABLE",
"quality": "BOOK_MID",
"value": "993970000000000000",
"best_bid": "993950000000000000",
"best_ask": "993990000000000000",
"scale": "1000000000000000000",
"freshness": "FRESH",
"received_at": "2026-09-26T19:59:09.751601549Z"
}
}
],
"dates": {
"event": null,
"result_by": null,
"resolves_after": null,
"scheduled_event_at": null,
"observation_ends_at": "1790812800",
"market_class": "PRICE_BINARY"
}
}
],
"catalog_generation": "6100",
"next_cursor": "eyJnIjo2MTAwLCJhIjoxMjEwLCJrIjoibWFya2V0In0",
"has_more": true
}{
"error": {
"code": "INVALID_REQUEST",
"field_violations": [
{
"code": "REQUIRED",
"field": "<string>"
}
],
"message": "<string>",
"request_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"retry": "NEVER"
}
}{
"error": {
"code": "INVALID_REQUEST",
"field_violations": [
{
"code": "REQUIRED",
"field": "<string>"
}
],
"message": "<string>",
"request_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"retry": "NEVER"
}
}{
"error": {
"code": "INVALID_REQUEST",
"field_violations": [
{
"code": "REQUIRED",
"field": "<string>"
}
],
"message": "<string>",
"request_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"retry": "NEVER"
}
}Query Parameters
Omit for the first page; then send the previous response's next_cursor unchanged. Opaque list cursor. Send a previous response's next_cursor back unchanged; never build or parse one.
1 - 2048Platform taxonomy category slug. The cursor is bound to this filter.
crypto, economics, entertainment, finance, politics, sports, tech, weather Platform taxonomy subcategory slug. The cursor is bound to this filter.
nba, ncaa, nfl, nhl, mlb, ufc, lol, epl, efl, la_liga, world_cup, bundesliga, liga_portugal, ligue_1, f1, ipl, cricket, transfers, btc, eth, sol, up_down, stocks, indices, etfs, earnings, rates, inflation, commodities, fx, usa, global, other Maximum items per page, 1 to 200, default 50. A page may hold fewer, even none, while has_more is true. Maximum items in one page. A page may hold fewer, even none, while has_more is true.
1 <= x <= 200Response
One page of active markets, grouped by question. Each market is one HIP-4 outcome with its YES and NO sides; fallback and settled outcomes are left out. A listed market is not a promise that an RFQ on it will be quoted or accepted.
Markets on this page, ascending by outcome ID.
200Show child attributes
Show child attributes
Catalog generation every item was read from; pages from different generations must not be mixed.
19^[1-9][0-9]*$Pass as cursor to read the next page; null when there are no more pages.
1 - 2048True when another page follows.
Was this page helpful?

