curl --request GET \
--url https://api.orbscan.com/v1/trader/{address}/activity \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.orbscan.com/v1/trader/{address}/activity"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.orbscan.com/v1/trader/{address}/activity', 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.orbscan.com/v1/trader/{address}/activity",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$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.orbscan.com/v1/trader/{address}/activity"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
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.orbscan.com/v1/trader/{address}/activity")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.orbscan.com/v1/trader/{address}/activity")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"message": "OK",
"status_code": "1",
"data": {
"items": [
{
"blockTimestamp": 1782861128,
"actionType": "Redeem",
"price": "1",
"size": "5",
"fee": "0",
"usdcSize": "5",
"netSharesTransferred": "-5",
"txHash": "0x71bf46c3089e2349a62ec6b93638522e8cc635a9836f1308ac7621ce1ecbb609",
"tokenId": "91355094557016369228768123360298492968992168419338047915199416797057852525950",
"marketId": "2707644",
"marketSlug": "fifwc-fra-swe-2026-06-30-fra",
"eventSlug": "fifwc-fra-swe-2026-06-30",
"conditionId": "0x378f7b5c668014d9f6c42c305ec83902f3c8f6c770b336363aed0076ce6ce1c9",
"marketTitle": "Will France win on 2026-06-30?",
"positionSide": "Yes",
"outcomeIndex": 0,
"logo": "https://polymarket-upload.s3.us-east-2.amazonaws.com/soccer ball-bba4025f77.png",
"traderAddress": "0x6a72f61820b26b1fe4d956e17b6dc2a1ea3033ee",
"liquidityRole": null
}
],
"nextCursor": "MTc4Mjg2MTEyOHw4OTQzNzQyMnwzMTY4fDB4NzFiZjQ2YzMwODllMjM0OWE2MmVjNmI5MzYzODUyMmU4Y2M2MzVhOTgzNmYxMzA4YWM3NjIxY2UxZWNiYjYwOTozNDMxOjkxMzU1MDk0NTU3MDE2MzY5MjI4NzY4MTIzMzYwMjk4NDkyOTY4OTkyMTY4NDE5MzM4MDQ3OTE1MTk5NDE2Nzk3MDU3ODUyNTI1OTUwOjB4NmE3MmY2MTgyMGIyNmIxZmU0ZDk1NmUxN2I2ZGMyYTFlYTMwMzNlZQ=="
}
}{
"message": "Invalid address format",
"status_code": "0",
"data": null
}{
"message": "Missing or invalid API key",
"status_code": "0",
"data": null
}{
"message": "Rate limit exceeded",
"status_code": "0",
"data": null
}Get trader activity
Return paginated buy, sell, and redeem activity for a Polymarket wallet across every market it has traded.
curl --request GET \
--url https://api.orbscan.com/v1/trader/{address}/activity \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.orbscan.com/v1/trader/{address}/activity"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.orbscan.com/v1/trader/{address}/activity', 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.orbscan.com/v1/trader/{address}/activity",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$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.orbscan.com/v1/trader/{address}/activity"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
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.orbscan.com/v1/trader/{address}/activity")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.orbscan.com/v1/trader/{address}/activity")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"message": "OK",
"status_code": "1",
"data": {
"items": [
{
"blockTimestamp": 1782861128,
"actionType": "Redeem",
"price": "1",
"size": "5",
"fee": "0",
"usdcSize": "5",
"netSharesTransferred": "-5",
"txHash": "0x71bf46c3089e2349a62ec6b93638522e8cc635a9836f1308ac7621ce1ecbb609",
"tokenId": "91355094557016369228768123360298492968992168419338047915199416797057852525950",
"marketId": "2707644",
"marketSlug": "fifwc-fra-swe-2026-06-30-fra",
"eventSlug": "fifwc-fra-swe-2026-06-30",
"conditionId": "0x378f7b5c668014d9f6c42c305ec83902f3c8f6c770b336363aed0076ce6ce1c9",
"marketTitle": "Will France win on 2026-06-30?",
"positionSide": "Yes",
"outcomeIndex": 0,
"logo": "https://polymarket-upload.s3.us-east-2.amazonaws.com/soccer ball-bba4025f77.png",
"traderAddress": "0x6a72f61820b26b1fe4d956e17b6dc2a1ea3033ee",
"liquidityRole": null
}
],
"nextCursor": "MTc4Mjg2MTEyOHw4OTQzNzQyMnwzMTY4fDB4NzFiZjQ2YzMwODllMjM0OWE2MmVjNmI5MzYzODUyMmU4Y2M2MzVhOTgzNmYxMzA4YWM3NjIxY2UxZWNiYjYwOTozNDMxOjkxMzU1MDk0NTU3MDE2MzY5MjI4NzY4MTIzMzYwMjk4NDkyOTY4OTkyMTY4NDE5MzM4MDQ3OTE1MTk5NDE2Nzk3MDU3ODUyNTI1OTUwOjB4NmE3MmY2MTgyMGIyNmIxZmU0ZDk1NmUxN2I2ZGMyYTFlYTMwMzNlZQ=="
}
}{
"message": "Invalid address format",
"status_code": "0",
"data": null
}{
"message": "Missing or invalid API key",
"status_code": "0",
"data": null
}{
"message": "Rate limit exceeded",
"status_code": "0",
"data": null
}actionType), market (marketTitle, marketSlug), price and size (price, size), and number of shares moved (netSharesTransferred). Prices are decimals from 0 to 1, so "0.78" means 78 cents per share.
nextCursor, pass it back as the cursor query parameter to fetch the next page. When nextCursor is null, you’ve reached the end.Filtering
You can narrow results with any combination of:marketIds: Comma-separated market IDs, such as?marketIds=2707644,2682268.txHash: A single transaction hash. The API converts it to lowercase.fromBlock/toBlock: A block-height range.fromTimestamp/toTimestamp: A time range in Unix seconds.
Authorizations
Paste your Orbscan API key here. The Bearer prefix is added automatically.
Path Parameters
The wallet address to query.
"0x6a72f61820b26b1fe4d956e17b6dc2a1ea3033ee"
Query Parameters
Comma-separated market IDs to filter to (e.g. ?marketIds=1,2).
"2707644,2682268"
Filter to a single transaction hash. The value is automatically lower-cased before matching.
"0x71bf46c3089e2349a62ec6b93638522e8cc635a9836f1308ac7621ce1ecbb609"
Only include activity at or after this block height.
Only include activity at or before this block height.
Only include activity at or after this Unix timestamp, in seconds.
1782700000
Only include activity at or before this Unix timestamp, in seconds.
Pagination cursor. Pass the nextCursor (a base64 string) returned by the previous page to fetch the next page.
Number of records per page. Defaults to 20, maximum 100. Values above 100 are capped at 100.
x >= 1