Trades
Get Trades by Signature
Retrieve specific trades using their transaction signatures
POST
/
trades
/
signatures
Get Trades by Signature
curl --request POST \
--url https://frontend-api-v3.pump.fun/trades/signatures \
--header 'Content-Type: application/json' \
--data '
{
"signatures": [
{}
]
}
'import requests
url = "https://frontend-api-v3.pump.fun/trades/signatures"
payload = { "signatures": [{}] }
headers = {"Content-Type": "application/json"}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'Content-Type': 'application/json'},
body: JSON.stringify({signatures: [{}]})
};
fetch('https://frontend-api-v3.pump.fun/trades/signatures', 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://frontend-api-v3.pump.fun/trades/signatures",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'signatures' => [
[
]
]
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://frontend-api-v3.pump.fun/trades/signatures"
payload := strings.NewReader("{\n \"signatures\": [\n {}\n ]\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://frontend-api-v3.pump.fun/trades/signatures")
.header("Content-Type", "application/json")
.body("{\n \"signatures\": [\n {}\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://frontend-api-v3.pump.fun/trades/signatures")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Content-Type"] = 'application/json'
request.body = "{\n \"signatures\": [\n {}\n ]\n}"
response = http.request(request)
puts response.read_body{
"trades": [
{
"signature": "<string>",
"mint": "<string>",
"timestamp": "<string>",
"tradeDirection": "<string>",
"amount": 123,
"user": "<string>"
}
]
}Authentication
This endpoint requires JWT authentication via theAuthorization: Bearer <token> header.
Request Body
array
required
Array of transaction signature strings to retrieve trades for
{
"signatures": [
"5wHu1qwD7...",
"3xKp9nM2s...",
"7yTn4rP8k..."
]
}
Response
array
Example Request
curl -X POST "https://frontend-api-v3.pump.fun/trades/signatures" \
-H "Authorization: Bearer <your_token>" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-d '{
"signatures": [
"5wHu1qwD7nP2kLmR9vXs8TyC4jFhN6gE3bKpM1aQ2xYuZv",
"3xKp9nM2sV8tLqR4yHj6WcF1dN5gP7eKmB9vXs2TyC0zAu"
]
}'
import requests
url = "https://frontend-api-v3.pump.fun/trades/signatures"
headers = {
"Authorization": "Bearer <your_token>",
"Accept": "application/json",
"Content-Type": "application/json"
}
data = {
"signatures": [
"5wHu1qwD7nP2kLmR9vXs8TyC4jFhN6gE3bKpM1aQ2xYuZv",
"3xKp9nM2sV8tLqR4yHj6WcF1dN5gP7eKmB9vXs2TyC0zAu"
]
}
response = requests.post(url, headers=headers, json=data)
print(response.json())
const response = await fetch('https://frontend-api-v3.pump.fun/trades/signatures', {
method: 'POST',
headers: {
'Authorization': 'Bearer <your_token>',
'Accept': 'application/json',
'Content-Type': 'application/json'
},
body: JSON.stringify({
signatures: [
'5wHu1qwD7nP2kLmR9vXs8TyC4jFhN6gE3bKpM1aQ2xYuZv',
'3xKp9nM2sV8tLqR4yHj6WcF1dN5gP7eKmB9vXs2TyC0zAu'
]
})
});
const data = await response.json();
console.log(data);
Replace
<your_token> with your actual JWT token and use valid Solana transaction signatures.Use Cases
Verify Specific Transactions
Use this endpoint to retrieve detailed information about specific trades when you have their transaction signatures. This is useful for:- Verifying trade execution
- Building transaction history views
- Reconciling on-chain data with platform data
- Investigating specific trades
Batch Trade Lookup
Retrieve multiple trades in a single request by providing an array of signatures:import requests
# Get multiple trades at once
signatures_to_check = [
"sig1...",
"sig2...",
"sig3...",
"sig4...",
"sig5..."
]
url = "https://frontend-api-v3.pump.fun/trades/signatures"
headers = {
"Authorization": "Bearer <your_token>",
"Accept": "application/json",
"Content-Type": "application/json"
}
response = requests.post(url, headers=headers, json={"signatures": signatures_to_check})
trades = response.json()
for trade in trades:
print(f"Trade {trade['signature']}: {trade['amount']} {trade['tradeDirection']}")
Related Endpoints
For additional trade query options, see:- POST /trades/signatures/small - Lightweight version with minimal data
Get Trades by Signature (Small)
Retrieve trades by signature with a smaller response payload, useful for performance optimization when you don’t need all trade details.Request Body
array
required
Array of transaction signature strings
Example Request
curl -X POST "https://frontend-api-v3.pump.fun/trades/signatures/small" \
-H "Authorization: Bearer <your_token>" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-d '{"signatures": ["5wHu1qwD7..."]}'
import requests
url = "https://frontend-api-v3.pump.fun/trades/signatures/small"
headers = {
"Authorization": "Bearer <your_token>",
"Accept": "application/json",
"Content-Type": "application/json"
}
data = {"signatures": ["5wHu1qwD7..."]}
response = requests.post(url, headers=headers, json=data)
print(response.json())
Use this endpoint when you need better performance and don’t require complete trade details.
Get Trades by Signature
curl --request POST \
--url https://frontend-api-v3.pump.fun/trades/signatures \
--header 'Content-Type: application/json' \
--data '
{
"signatures": [
{}
]
}
'import requests
url = "https://frontend-api-v3.pump.fun/trades/signatures"
payload = { "signatures": [{}] }
headers = {"Content-Type": "application/json"}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'Content-Type': 'application/json'},
body: JSON.stringify({signatures: [{}]})
};
fetch('https://frontend-api-v3.pump.fun/trades/signatures', 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://frontend-api-v3.pump.fun/trades/signatures",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'signatures' => [
[
]
]
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://frontend-api-v3.pump.fun/trades/signatures"
payload := strings.NewReader("{\n \"signatures\": [\n {}\n ]\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://frontend-api-v3.pump.fun/trades/signatures")
.header("Content-Type", "application/json")
.body("{\n \"signatures\": [\n {}\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://frontend-api-v3.pump.fun/trades/signatures")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Content-Type"] = 'application/json'
request.body = "{\n \"signatures\": [\n {}\n ]\n}"
response = http.request(request)
puts response.read_body{
"trades": [
{
"signature": "<string>",
"mint": "<string>",
"timestamp": "<string>",
"tradeDirection": "<string>",
"amount": 123,
"user": "<string>"
}
]
}