Get deposits & withdrawals
curl --request GET \
--url https://api.orbscan.com/v1/trader/{address}/deposits-withdrawals \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.orbscan.com/v1/trader/{address}/deposits-withdrawals"
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}/deposits-withdrawals', 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}/deposits-withdrawals",
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}/deposits-withdrawals"
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}/deposits-withdrawals")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.orbscan.com/v1/trader/{address}/deposits-withdrawals")
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": [
{
"txHash": "0x1012c22a72565e4568d2eb1b418cf9f8d277b0c60fb4d5300dd30eab74d0770a",
"type": "withdrawal",
"amount": "181038.379452",
"blockTimestamp": 1783532240,
"address": "0xc417fd8e9661c0d2120b64a04bb3278c17e99db1"
},
{
"txHash": "0x7d30d40296753bb7295dff6ffe0262210b766aec19e9e855d99bcaf94fcb6478",
"type": "deposit",
"amount": "100454.40367",
"blockTimestamp": 1782526996,
"address": "0x0000000000000000000000000000000000000000"
}
],
"nextCursor": "1780204248_1085068690"
}
}{
"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
}Trader & transactions
Get deposits and withdrawals
Return the combined USDC deposit and withdrawal history for a Polymarket wallet, newest first.
GET
/
v1
/
trader
/
{address}
/
deposits-withdrawals
Get deposits & withdrawals
curl --request GET \
--url https://api.orbscan.com/v1/trader/{address}/deposits-withdrawals \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.orbscan.com/v1/trader/{address}/deposits-withdrawals"
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}/deposits-withdrawals', 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}/deposits-withdrawals",
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}/deposits-withdrawals"
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}/deposits-withdrawals")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.orbscan.com/v1/trader/{address}/deposits-withdrawals")
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": [
{
"txHash": "0x1012c22a72565e4568d2eb1b418cf9f8d277b0c60fb4d5300dd30eab74d0770a",
"type": "withdrawal",
"amount": "181038.379452",
"blockTimestamp": 1783532240,
"address": "0xc417fd8e9661c0d2120b64a04bb3278c17e99db1"
},
{
"txHash": "0x7d30d40296753bb7295dff6ffe0262210b766aec19e9e855d99bcaf94fcb6478",
"type": "deposit",
"amount": "100454.40367",
"blockTimestamp": 1782526996,
"address": "0x0000000000000000000000000000000000000000"
}
],
"nextCursor": "1780204248_1085068690"
}
}{
"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
}Use this endpoint to retrieve indexed USDC deposits and withdrawals for a wallet. It returns one combined, newest-first list where each record’s
type is either deposit or withdrawal. Transfers from known reward and system addresses are excluded.
Every item includes the amount (in USDC, as a string), the blockTimestamp (Unix seconds), the on-chain txHash, and the counterparty address.
For deposits, the counterparty
address may be the zero address (0x0000...0000) when funds are bridged in rather than sent from another wallet.Like the activity endpoint, this list is paginated. Pass the returned
nextCursor back as the cursor query parameter to load the next page.Authorizations
Paste your Orbscan API key here. The Bearer prefix is added automatically.
Path Parameters
Trader address, 0x + 40 hex chars.
Example:
"0x6a72f61820b26b1fe4d956e17b6dc2a1ea3033ee"
Query Parameters
Filter by transfer direction. Case-insensitive.
Available options:
deposit, withdrawal Inclusive lower timestamp (Unix seconds).
Inclusive upper timestamp (Unix seconds).
Minimum deposit amount to include. Withdrawals are always included regardless of this filter.
Page size. Defaults to 20, maximum 100.
Required range:
1 <= x <= 100Pagination cursor from the previous response's nextCursor. Omit for the first page.