Get user history (public)
curl --request GET \
--url https://api.limitless.exchange/portfolio/{account}/historyimport requests
url = "https://api.limitless.exchange/portfolio/{account}/history"
response = requests.get(url)
print(response.text)const options = {method: 'GET'};
fetch('https://api.limitless.exchange/portfolio/{account}/history', 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/portfolio/{account}/history",
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/portfolio/{account}/history"
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/portfolio/{account}/history")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.limitless.exchange/portfolio/{account}/history")
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{}Public Portfolio
Get User History (Public)
Retrieve trading history for a specific user with cursor-based pagination
GET
/
portfolio
/
{account}
/
history
Get user history (public)
curl --request GET \
--url https://api.limitless.exchange/portfolio/{account}/historyimport requests
url = "https://api.limitless.exchange/portfolio/{account}/history"
response = requests.get(url)
print(response.text)const options = {method: 'GET'};
fetch('https://api.limitless.exchange/portfolio/{account}/history', 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/portfolio/{account}/history",
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/portfolio/{account}/history"
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/portfolio/{account}/history")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.limitless.exchange/portfolio/{account}/history")
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{}This is the public counterpart to the authenticated
/portfolio/history endpoint. It returns the same paginated history shape for any address, without requiring HMAC authentication.When to use
Use this endpoint to read another user’s trading history. Common cases include rendering a public profile, a feed, or a leaderboard drill-down. If you are reading your own history and want a stable, private view, use the authenticated/portfolio/history endpoint instead.
Pagination
The endpoint uses cursor-based pagination:- Omit
cursoron the first request. - The response includes a
nextCursorvalue; pass it ascursoron the next request to fetch the following page. - When
nextCursorisnullor absent, you have reached the end of the history. limitaccepts values between1and100. If omitted, the default is20.
Address handling
Theaccount path parameter accepts any valid Ethereum address in either checksummed (EIP-55) or lowercase form. The API normalizes the address server-side, so 0xABC… and 0xabc… resolve to the same user.
- A malformed address returns
400 Bad Request. - An address that has never interacted with Limitless returns
404 Not Found.
Path Parameters
User Ethereum address
Example:
"0x742d35Cc6634C0532925a3b844Bc454e4438f44e"
Query Parameters
Opaque cursor for cursor-based pagination. Omit for first page.
Market slug. When set, only history for that market is returned. Cursors are only valid together with the same market value they were issued for.
Number of items per page
Example:
20
Response
User history page
The response is of type object.