curl --request GET \
--url https://core.api.dev.predictstreet.sde.adifoundation.ai/api/users/{address}import requests
url = "https://core.api.dev.predictstreet.sde.adifoundation.ai/api/users/{address}"
response = requests.get(url)
print(response.text)const options = {method: 'GET'};
fetch('https://core.api.dev.predictstreet.sde.adifoundation.ai/api/users/{address}', 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/users/{address}",
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/users/{address}"
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/users/{address}")
.asString();require 'uri'
require 'net/http'
url = URI("https://core.api.dev.predictstreet.sde.adifoundation.ai/api/users/{address}")
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{
"walletAddress": "<string>",
"vaultAddress": "<string>",
"username": "<string>",
"verified": true,
"joinedAt": "<string>",
"stats": {
"portfolioValue": "<string>",
"totalVolume": "<string>",
"totalProfit": "<string>",
"winRate": "<string>",
"realizedPnl": "<string>",
"unrealizedPnl": "<string>",
"realizedPnlPercent": "<string>",
"unrealizedPnlPercent": "<string>",
"biggestWin": "<string>",
"roiPercent": "<string>",
"openPositions": 123,
"wonPositions": 123,
"lostPositions": 123,
"profileViews": 123,
"voidedPositions": 123
}
}Public profile of an arbitrary user (keyed by wallet address)
Anonymous-readable profile for /users/:address deep-links (e.g. from the search dropdown). :address is the user’s wallet (EOA); a vault address also resolves during the FE migration window. Returns username, verified flag, aggregate stats (volume, win rate, P&L, position counts). Cash, fees, favorites and KYC details are intentionally NOT exposed — those stay on /api/me/*. Addresses that don’t resolve to a visible user (unknown / blocked / soft-deleted) are 404 to match the visibility contract used by /api/search.
curl --request GET \
--url https://core.api.dev.predictstreet.sde.adifoundation.ai/api/users/{address}import requests
url = "https://core.api.dev.predictstreet.sde.adifoundation.ai/api/users/{address}"
response = requests.get(url)
print(response.text)const options = {method: 'GET'};
fetch('https://core.api.dev.predictstreet.sde.adifoundation.ai/api/users/{address}', 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/users/{address}",
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/users/{address}"
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/users/{address}")
.asString();require 'uri'
require 'net/http'
url = URI("https://core.api.dev.predictstreet.sde.adifoundation.ai/api/users/{address}")
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{
"walletAddress": "<string>",
"vaultAddress": "<string>",
"username": "<string>",
"verified": true,
"joinedAt": "<string>",
"stats": {
"portfolioValue": "<string>",
"totalVolume": "<string>",
"totalProfit": "<string>",
"winRate": "<string>",
"realizedPnl": "<string>",
"unrealizedPnl": "<string>",
"realizedPnlPercent": "<string>",
"unrealizedPnlPercent": "<string>",
"biggestWin": "<string>",
"roiPercent": "<string>",
"openPositions": 123,
"wonPositions": 123,
"lostPositions": 123,
"profileViews": 123,
"voidedPositions": 123
}
}Path Parameters
0x-prefixed 40-hex address — wallet (preferred) or vault (transitional), case-insensitive.
Response
The user's wallet (EOA) address, EIP-55 checksummed — the public identity used by /api/users/:address.
Deprecated: the user's vault address (lowercase, as stored), kept for back-compat during the FE migration to walletAddress.
True when the user has cleared at least KYC tier 1.
ISO-8601 of account creation.
Show child attributes
Show child attributes