curl --request GET \
--url https://core.api.dev.predictstreet.sde.adifoundation.ai/api/markets/{symbol}/tradesimport requests
url = "https://core.api.dev.predictstreet.sde.adifoundation.ai/api/markets/{symbol}/trades"
response = requests.get(url)
print(response.text)const options = {method: 'GET'};
fetch('https://core.api.dev.predictstreet.sde.adifoundation.ai/api/markets/{symbol}/trades', 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://core.api.dev.predictstreet.sde.adifoundation.ai/api/markets/{symbol}/trades",
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://core.api.dev.predictstreet.sde.adifoundation.ai/api/markets/{symbol}/trades"
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://core.api.dev.predictstreet.sde.adifoundation.ai/api/markets/{symbol}/trades")
.asString();require 'uri'
require 'net/http'
url = URI("https://core.api.dev.predictstreet.sde.adifoundation.ai/api/markets/{symbol}/trades")
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{
"symbol": "<string>",
"trades": [
{
"id": "<string>",
"marketId": "<string>",
"price": "<string>",
"quantity": "<string>",
"status": "matched",
"createdAt": "2023-11-07T05:31:56Z",
"settledAt": "2023-11-07T05:31:56Z",
"maker": "<string>",
"taker": "<string>",
"makerWallet": "<string>",
"takerWallet": "<string>",
"adjustment": "NONE",
"makerFee": "<string>",
"takerFee": "<string>",
"makerFeeOutcomeTokens": "0",
"makerFeeOutcomeTokenId": null,
"takerFeeOutcomeTokens": "0.013440",
"takerFeeOutcomeTokenId": "82767994009884018025111405605018065315304321056376041259837064758376184740876",
"side": "buy",
"outcomeIndex": 123,
"outcomeLabel": "<string>"
}
]
}Public trade tape
Recent fill tape for a market — each trade carries the maker + taker EOAs so consumers can render “0xabc…1234 sold YES @ 0.62”. Order ids and exact fees stay private. Filtered to matched / settlement_pending / settled (no PENDING / FAILED rows).
curl --request GET \
--url https://core.api.dev.predictstreet.sde.adifoundation.ai/api/markets/{symbol}/tradesimport requests
url = "https://core.api.dev.predictstreet.sde.adifoundation.ai/api/markets/{symbol}/trades"
response = requests.get(url)
print(response.text)const options = {method: 'GET'};
fetch('https://core.api.dev.predictstreet.sde.adifoundation.ai/api/markets/{symbol}/trades', 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://core.api.dev.predictstreet.sde.adifoundation.ai/api/markets/{symbol}/trades",
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://core.api.dev.predictstreet.sde.adifoundation.ai/api/markets/{symbol}/trades"
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://core.api.dev.predictstreet.sde.adifoundation.ai/api/markets/{symbol}/trades")
.asString();require 'uri'
require 'net/http'
url = URI("https://core.api.dev.predictstreet.sde.adifoundation.ai/api/markets/{symbol}/trades")
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{
"symbol": "<string>",
"trades": [
{
"id": "<string>",
"marketId": "<string>",
"price": "<string>",
"quantity": "<string>",
"status": "matched",
"createdAt": "2023-11-07T05:31:56Z",
"settledAt": "2023-11-07T05:31:56Z",
"maker": "<string>",
"taker": "<string>",
"makerWallet": "<string>",
"takerWallet": "<string>",
"adjustment": "NONE",
"makerFee": "<string>",
"takerFee": "<string>",
"makerFeeOutcomeTokens": "0",
"makerFeeOutcomeTokenId": null,
"takerFeeOutcomeTokens": "0.013440",
"takerFeeOutcomeTokenId": "82767994009884018025111405605018065315304321056376041259837064758376184740876",
"side": "buy",
"outcomeIndex": 123,
"outcomeLabel": "<string>"
}
]
}Path Parameters
Market symbol, e.g. UAE-CUP-FINAL-20260425. Used by sub-resource endpoints (/orderbook, /trades, /ohlc, /traders). The root market-detail endpoint /api/markets/{slug} accepts the slug instead — see MarketSlug.
Query Parameters
Page size. < 1 (including 0 / negatives) → 400 invalid_limit. Server silently clamps values above maximum to maximum.
1 <= x <= 200ISO-8601 timestamp; returns trades strictly older than this (exclusive). Pair with limit to page backwards. Combine with after for a bounded (after, before) range. Unknown pagination params (offset, page, cursor) are silently ignored — this endpoint is time-cursor only.
ISO-8601 timestamp; returns trades strictly newer than this (exclusive). Honoured only on sort=time (default). Pair with before for a bounded (after, before) range — typical use case is WS-vs-REST reconcile after a disconnect (after = last seen createdAt).
time (default) = reverse-chronological with before cursor; volume = top-N by per-trade notional DESC (no time bound).
time, volume YES/NO label or raw outcome index. Binary markets unify YES+NO on a single canonical book — the same trade row is rendered flipped per outcome (NO view returns 1−canon price, inverted side for NONE / preserved side for MINT/BURN). Non-binary markets filter trades by outcome at the storage layer. Default YES.
"YES"