curl --request GET \
--url https://{host}/v1/tokens/{chain}/{address}/trades \
--header 'Authorization: Bearer <token>'import requests
url = "https://{host}/v1/tokens/{chain}/{address}/trades"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://{host}/v1/tokens/{chain}/{address}/trades', 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://{host}/v1/tokens/{chain}/{address}/trades",
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://{host}/v1/tokens/{chain}/{address}/trades"
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://{host}/v1/tokens/{chain}/{address}/trades")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://{host}/v1/tokens/{chain}/{address}/trades")
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{
"hasMore": true,
"trades": [
{
"amount": "123.456789",
"chain": "solana",
"id": "<string>",
"marketCap": {
"native": "123.456789",
"usd": "123.456789"
},
"name": "<string>",
"price": {
"native": "123.456789",
"usd": "123.456789"
},
"side": "buy",
"symbol": "<string>",
"timestamp": 123,
"token": "<string>",
"trader": "<string>",
"transactionHash": "<string>",
"volume": {
"native": "123.456789",
"usd": "123.456789"
},
"flags": [
"bundler"
],
"identities": [
{
"source": "codex",
"avatar": "<string>",
"displayName": "<string>",
"farcaster": "<string>",
"handle": "<string>",
"telegram": "<string>",
"twitter": "<string>"
}
],
"platforms": [
{
"platform": "fomo"
}
]
}
],
"nextCursor": "<string>"
}{
"error": {
"code": "UNAUTHORIZED",
"message": "<string>",
"details": "<unknown>"
}
}{
"error": {
"code": "UNAUTHORIZED",
"message": "<string>",
"details": "<unknown>"
}
}{
"error": {
"code": "UNAUTHORIZED",
"message": "<string>",
"details": "<unknown>"
}
}{
"error": {
"code": "UNAUTHORIZED",
"message": "<string>",
"details": "<unknown>"
}
}{
"error": {
"code": "UNAUTHORIZED",
"message": "<string>",
"details": "<unknown>"
}
}Recent trades on the token, newest first, optionally narrowed to wallet classifications.
flags keeps trades whose trader carries any of the named classifications,
and trader keeps one wallet’s. Page with cursor until hasMore is
false. An unknown token answers an empty page rather than 404.
curl --request GET \
--url https://{host}/v1/tokens/{chain}/{address}/trades \
--header 'Authorization: Bearer <token>'import requests
url = "https://{host}/v1/tokens/{chain}/{address}/trades"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://{host}/v1/tokens/{chain}/{address}/trades', 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://{host}/v1/tokens/{chain}/{address}/trades",
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://{host}/v1/tokens/{chain}/{address}/trades"
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://{host}/v1/tokens/{chain}/{address}/trades")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://{host}/v1/tokens/{chain}/{address}/trades")
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{
"hasMore": true,
"trades": [
{
"amount": "123.456789",
"chain": "solana",
"id": "<string>",
"marketCap": {
"native": "123.456789",
"usd": "123.456789"
},
"name": "<string>",
"price": {
"native": "123.456789",
"usd": "123.456789"
},
"side": "buy",
"symbol": "<string>",
"timestamp": 123,
"token": "<string>",
"trader": "<string>",
"transactionHash": "<string>",
"volume": {
"native": "123.456789",
"usd": "123.456789"
},
"flags": [
"bundler"
],
"identities": [
{
"source": "codex",
"avatar": "<string>",
"displayName": "<string>",
"farcaster": "<string>",
"handle": "<string>",
"telegram": "<string>",
"twitter": "<string>"
}
],
"platforms": [
{
"platform": "fomo"
}
]
}
],
"nextCursor": "<string>"
}{
"error": {
"code": "UNAUTHORIZED",
"message": "<string>",
"details": "<unknown>"
}
}{
"error": {
"code": "UNAUTHORIZED",
"message": "<string>",
"details": "<unknown>"
}
}{
"error": {
"code": "UNAUTHORIZED",
"message": "<string>",
"details": "<unknown>"
}
}{
"error": {
"code": "UNAUTHORIZED",
"message": "<string>",
"details": "<unknown>"
}
}{
"error": {
"code": "UNAUTHORIZED",
"message": "<string>",
"details": "<unknown>"
}
}Authorizations
Send the API key as Authorization: Bearer <key>.
Path Parameters
Chain the resource lives on. Chain slug. One spelling per chain, in paths and bodies alike. Only a chain with spot data is published.
solana, base, bsc, robinhood, arc Token mint or contract address.
Query Parameters
Rows per page, clamped to 1-100; 20 when absent.
1 <= x <= 100Opaque cursor from the previous page.
Restrict to one trader wallet.
Wallet classifications to keep, comma-separated. Absent or empty keeps every trade.
Response
Recent trades, newest first; an unknown token answers an empty page.
A page of trades, newest first: one token's (GET /v1/tokens/{chain}/{address}/trades)
or one identity's across every token (GET /v1/trades).