Get public profile realized PnL
curl --request GET \
--url https://api.limitless.exchange/portfolio/{account}/realized-pnlimport requests
url = "https://api.limitless.exchange/portfolio/{account}/realized-pnl"
response = requests.get(url)
print(response.text)const options = {method: 'GET'};
fetch('https://api.limitless.exchange/portfolio/{account}/realized-pnl', 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}/realized-pnl",
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}/realized-pnl"
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}/realized-pnl")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.limitless.exchange/portfolio/{account}/realized-pnl")
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{
"timeframe": "1w",
"windowStart": "2026-08-05T21:50:00.000Z",
"current": {
"raw": "-7047204",
"formatted": "-7.047204",
"usd": "-7.047204"
},
"categories": [
{
"id": "sport",
"name": "Sport",
"slug": "sport",
"path": "/markets/sport",
"icon": null,
"realisedPnl": {
"raw": "-7047204",
"formatted": "-7.047204",
"usd": "-7.047204"
}
}
],
"data": [
{
"timestamp": 1700000000000,
"value": 123.45,
"breakdown": [
{
"id": "sport",
"name": "Sport",
"slug": "sport",
"path": "/markets/sport",
"icon": null,
"realisedPnl": {
"raw": "-7047204",
"formatted": "-7.047204",
"usd": "-7.047204"
}
}
]
}
]
}Public Portfolio
Get Realized PnL (Public)
Projected realised PnL timeline with backend-owned category grouping and hover breakdown for public profiles.
GET
/
portfolio
/
{account}
/
realized-pnl
Get public profile realized PnL
curl --request GET \
--url https://api.limitless.exchange/portfolio/{account}/realized-pnlimport requests
url = "https://api.limitless.exchange/portfolio/{account}/realized-pnl"
response = requests.get(url)
print(response.text)const options = {method: 'GET'};
fetch('https://api.limitless.exchange/portfolio/{account}/realized-pnl', 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}/realized-pnl",
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}/realized-pnl"
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}/realized-pnl")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.limitless.exchange/portfolio/{account}/realized-pnl")
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{
"timeframe": "1w",
"windowStart": "2026-08-05T21:50:00.000Z",
"current": {
"raw": "-7047204",
"formatted": "-7.047204",
"usd": "-7.047204"
},
"categories": [
{
"id": "sport",
"name": "Sport",
"slug": "sport",
"path": "/markets/sport",
"icon": null,
"realisedPnl": {
"raw": "-7047204",
"formatted": "-7.047204",
"usd": "-7.047204"
}
}
],
"data": [
{
"timestamp": 1700000000000,
"value": 123.45,
"breakdown": [
{
"id": "sport",
"name": "Sport",
"slug": "sport",
"path": "/markets/sport",
"icon": null,
"realisedPnl": {
"raw": "-7047204",
"formatted": "-7.047204",
"usd": "-7.047204"
}
}
]
}
]
}Returns a projected realized PnL timeline for any public profile, grouped by market category with a per-point hover breakdown. The service computes values best-effort from the canonical five-minute PnL buckets available at request time.
timeframe— echoes the requested window (1d,1w, or1m). Defaults to1w.windowStart— start of the effective timeline, anchored on the current closed UTC five-minute boundary.current— realized PnL over the effective window.categories— per-category realized PnL sorted descending. Markets attributed through navigation pages fall under their category slug. Anything unattributed collapses into the syntheticotherbucket, which has noslug,path, oricon.data— cumulative realized PnL timeline. Each point carries abreakdownwith the top 3 named categories at that timestamp plus the syntheticOtherresidual.
GET /portfolio/{account}/pnl-chart endpoint remains as the deprecated contract for existing consumers. Use this endpoint for new integrations.Path Parameters
User Ethereum address
Example:
"0x742d35Cc6634C0532925a3b844Bc454e4438f44e"
Query Parameters
Best-effort realised PnL timeline window from available closed five-minute buckets.
Available options:
1d, 1m, 1w Response
Realized PnL timeline
Requested timeframe
Available options:
1d, 1m, 1w Example:
"1w"
Requested timeline start derived from the current closed UTC five-minute boundary
Example:
"2026-08-05T21:50:00.000Z"
Current realised PnL over the selected effective timeline
Show child attributes
Show child attributes
Period categories sorted by realised PnL descending
Show child attributes
Show child attributes
Cumulative realised PnL timeline
Show child attributes
Show child attributes