curl --request GET \
--url https://api.hypedexer.com/hip4/fills \
--header 'X-API-Key: <api-key>'import requests
url = "https://api.hypedexer.com/hip4/fills"
headers = {"X-API-Key": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {'X-API-Key': '<api-key>'}};
fetch('https://api.hypedexer.com/hip4/fills', 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.hypedexer.com/hip4/fills",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"X-API-Key: <api-key>"
],
]);
$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.hypedexer.com/hip4/fills"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("X-API-Key", "<api-key>")
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.hypedexer.com/hip4/fills")
.header("X-API-Key", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.hypedexer.com/hip4/fills")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["X-API-Key"] = '<api-key>'
response = http.request(request)
puts response.read_body[
{
"user": "0x079f56bfd27f71cbd278c27c7b121e7ef180a5be",
"coin": "#24371",
"outcome_id": 24371,
"px": 0.625,
"sz": 81,
"side": "B",
"time_ms": 1774703581788,
"dir": "Buy",
"closedPnl": 0,
"hash": "0x4ad88d690d...",
"oid": 50583850248,
"tid": 68702993520749,
"fee": 0,
"feeToken": "+24371",
"fee_usdc": 0,
"typeTrade": "perp",
"trade_id": "trade_#24371_7182529b",
"market_name": "Recurring",
"market_description": "class:priceBinary|underlying:BTC|expiry:20260329-0500|targetPrice:66220|period:1d",
"venue": "",
"deployer": ""
},
{
"user": "0x1733d1945f023dfece04363d26f032ef069accdc",
"coin": "#31207",
"outcome_id": 31207,
"px": 0.41,
"sz": 120,
"side": "A",
"time_ms": 1787995083012,
"dir": "Sell",
"closedPnl": 0,
"hash": "0x9c31e2a07b...",
"oid": 61042118820,
"tid": 71235510983321,
"fee": 0,
"feeToken": "+31207",
"fee_usdc": 0,
"typeTrade": "perp",
"trade_id": "trade_#31207_a41b02cd",
"market_name": "HYPE above 100 on Sep 30?",
"market_description": "Settles to Yes if HYPE trades above 100 on 2026-09-30.",
"venue": "hypurr-markets",
"deployer": "0x59900d101574c04a6b8a647feb3db1ab48eb320a"
}
]List prediction market fills
Returns executed fills on prediction markets (# coins) and outcome spot tokens (@ coins). Joined with market metadata.
Every fill row carries venue and deployer, joined from the market of the fill’s outcome. Fills on oracle-emitted (legacy) markets have venue = "" and deployer = "" — see Permissionless providers and the oracle convention.
Note: # coin fills currently have fee = 0. @ coin fills have normal spot fees.
curl --request GET \
--url https://api.hypedexer.com/hip4/fills \
--header 'X-API-Key: <api-key>'import requests
url = "https://api.hypedexer.com/hip4/fills"
headers = {"X-API-Key": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {'X-API-Key': '<api-key>'}};
fetch('https://api.hypedexer.com/hip4/fills', 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.hypedexer.com/hip4/fills",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"X-API-Key: <api-key>"
],
]);
$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.hypedexer.com/hip4/fills"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("X-API-Key", "<api-key>")
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.hypedexer.com/hip4/fills")
.header("X-API-Key", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.hypedexer.com/hip4/fills")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["X-API-Key"] = '<api-key>'
response = http.request(request)
puts response.read_body[
{
"user": "0x079f56bfd27f71cbd278c27c7b121e7ef180a5be",
"coin": "#24371",
"outcome_id": 24371,
"px": 0.625,
"sz": 81,
"side": "B",
"time_ms": 1774703581788,
"dir": "Buy",
"closedPnl": 0,
"hash": "0x4ad88d690d...",
"oid": 50583850248,
"tid": 68702993520749,
"fee": 0,
"feeToken": "+24371",
"fee_usdc": 0,
"typeTrade": "perp",
"trade_id": "trade_#24371_7182529b",
"market_name": "Recurring",
"market_description": "class:priceBinary|underlying:BTC|expiry:20260329-0500|targetPrice:66220|period:1d",
"venue": "",
"deployer": ""
},
{
"user": "0x1733d1945f023dfece04363d26f032ef069accdc",
"coin": "#31207",
"outcome_id": 31207,
"px": 0.41,
"sz": 120,
"side": "A",
"time_ms": 1787995083012,
"dir": "Sell",
"closedPnl": 0,
"hash": "0x9c31e2a07b...",
"oid": 61042118820,
"tid": 71235510983321,
"fee": 0,
"feeToken": "+31207",
"fee_usdc": 0,
"typeTrade": "perp",
"trade_id": "trade_#31207_a41b02cd",
"market_name": "HYPE above 100 on Sep 30?",
"market_description": "Settles to Yes if HYPE trades above 100 on 2026-09-30.",
"venue": "hypurr-markets",
"deployer": "0x59900d101574c04a6b8a647feb3db1ab48eb320a"
}
]Authorizations
Include in every request header as X-API-Key: <your_key>.
Query Parameters
Filter by user wallet address (0x...)
Filter by coin (e.g. #24371 or @10). Encode # as %23.
Filter by outcome ID
Start time (epoch milliseconds)
End time (epoch milliseconds)
x <= 10000Response
OK
Wallet address
Coin (#ID for prediction, @ID for spot outcome token)
Outcome ID extracted from coin
Execution price
Size (number of contracts/tokens)
Side: B=Buy, A=Sell
B, A Execution time (epoch ms)
Direction (Buy, Sell, Settlement)
Realized PnL
Transaction hash
Order ID
Trade ID (unique)
Fee amount in feeToken denomination
Fee token (e.g. USDC, USDH, +24371, CHUTORO)
Fee normalized to USD equivalent
Trade type
Trade group ID
Outcome name (from JOIN)
Outcome description (from JOIN)
Provider venue of the fill's market (joined from the outcome's market). Empty string for oracle-emitted (legacy) markets.
Deployer address of the venue. Empty string when venue is empty.