Get actions by transaction hash
curl --request GET \
--url https://api.orbscan.com/v1/tx/{txHash} \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.orbscan.com/v1/tx/{txHash}"
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/tx/{txHash}', 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/tx/{txHash}",
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/tx/{txHash}"
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/tx/{txHash}")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.orbscan.com/v1/tx/{txHash}")
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": {
"txHash": "0xbf15dbfb9d3b8b1f5210a582ca78deb73bf77372cb43d8e15edb323750461b1c",
"blockNumber": 89373974,
"blockTimestamp": 1782765956,
"traderAddress": "0x6a72f61820b26b1fe4d956e17b6dc2a1ea3033ee",
"sourceType": "TRADE",
"actionType": "Buy",
"sentence": "Buy 5 Yes for $3.9 in Will France win on 2026-06-30?",
"marketSlug": "fifwc-fra-swe-2026-06-30-fra",
"marketId": "2707644",
"actions": [
{
"actionType": "Buy",
"tokenId": "91355094557016369228768123360298492968992168419338047915199416797057852525950",
"size": "5",
"price": "0.78",
"usdcSize": "3.9",
"traderAddress": "0x6a72f61820b26b1fe4d956e17b6dc2a1ea3033ee",
"txHash": "0xbf15dbfb9d3b8b1f5210a582ca78deb73bf77372cb43d8e15edb323750461b1c",
"blockTimestamp": 1782765956,
"fee": "0.02574",
"marketId": "2707644",
"marketSlug": "fifwc-fra-swe-2026-06-30-fra",
"eventSlug": "fifwc-fra-swe-2026-06-30",
"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",
"liquidityRole": "TAKER"
},
{
"actionType": "Buy",
"tokenId": "91355094557016369228768123360298492968992168419338047915199416797057852525950",
"size": "5",
"price": "0.78",
"usdcSize": "3.9",
"traderAddress": "0x2850e15d54af56b2ab28e6586098c4a4b5de7d80",
"txHash": "0xbf15dbfb9d3b8b1f5210a582ca78deb73bf77372cb43d8e15edb323750461b1c",
"blockTimestamp": 1782765956,
"fee": "0.02574",
"marketId": "2707644",
"marketSlug": "fifwc-fra-swe-2026-06-30-fra",
"eventSlug": "fifwc-fra-swe-2026-06-30",
"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",
"liquidityRole": "MAKER"
}
],
"comboActions": null
}
}Trader & transactions
Get actions by transaction hash
Decode an indexed Polymarket trade or combo transaction into a summary and its individual fills.
GET
/
v1
/
tx
/
{txHash}
Get actions by transaction hash
curl --request GET \
--url https://api.orbscan.com/v1/tx/{txHash} \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.orbscan.com/v1/tx/{txHash}"
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/tx/{txHash}', 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/tx/{txHash}",
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/tx/{txHash}"
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/tx/{txHash}")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.orbscan.com/v1/tx/{txHash}")
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": {
"txHash": "0xbf15dbfb9d3b8b1f5210a582ca78deb73bf77372cb43d8e15edb323750461b1c",
"blockNumber": 89373974,
"blockTimestamp": 1782765956,
"traderAddress": "0x6a72f61820b26b1fe4d956e17b6dc2a1ea3033ee",
"sourceType": "TRADE",
"actionType": "Buy",
"sentence": "Buy 5 Yes for $3.9 in Will France win on 2026-06-30?",
"marketSlug": "fifwc-fra-swe-2026-06-30-fra",
"marketId": "2707644",
"actions": [
{
"actionType": "Buy",
"tokenId": "91355094557016369228768123360298492968992168419338047915199416797057852525950",
"size": "5",
"price": "0.78",
"usdcSize": "3.9",
"traderAddress": "0x6a72f61820b26b1fe4d956e17b6dc2a1ea3033ee",
"txHash": "0xbf15dbfb9d3b8b1f5210a582ca78deb73bf77372cb43d8e15edb323750461b1c",
"blockTimestamp": 1782765956,
"fee": "0.02574",
"marketId": "2707644",
"marketSlug": "fifwc-fra-swe-2026-06-30-fra",
"eventSlug": "fifwc-fra-swe-2026-06-30",
"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",
"liquidityRole": "TAKER"
},
{
"actionType": "Buy",
"tokenId": "91355094557016369228768123360298492968992168419338047915199416797057852525950",
"size": "5",
"price": "0.78",
"usdcSize": "3.9",
"traderAddress": "0x2850e15d54af56b2ab28e6586098c4a4b5de7d80",
"txHash": "0xbf15dbfb9d3b8b1f5210a582ca78deb73bf77372cb43d8e15edb323750461b1c",
"blockTimestamp": 1782765956,
"fee": "0.02574",
"marketId": "2707644",
"marketSlug": "fifwc-fra-swe-2026-06-30-fra",
"eventSlug": "fifwc-fra-swe-2026-06-30",
"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",
"liquidityRole": "MAKER"
}
],
"comboActions": null
}
}Use this endpoint to inspect an indexed Polymarket trade or combo transaction. Given a transaction hash, it returns a decoded summary and every fill recorded for that transaction.
The top-level
sentence field gives you a ready-to-read description, for example:
Buy 5 Yes for $3.9 in Will France win on 2026-06-30?Treat
sentence as display text. Use actions or comboActions for calculations.
The actions array then lists each individual fill. One transaction often contains several, because a single trade can be matched against multiple counterparties. Each fill shows who acted (traderAddress), the size (shares), the price (decimal 0 to 1), the usdcSize (USDC value), and whether they were the MAKER or TAKER (liquidityRole).
You can get a transaction hash from the Get Trader Activity endpoint. Every activity item includes a
txHash you can feed straight into this endpoint.The
txHash must be a 32-byte hex hash. A malformed value returns HTTP 400 with "Invalid txHash format". A well-formed hash that isn’t indexed returns HTTP 200 with data: null. See Errors.Regular trades and combo trades
The top-levelsourceType tells you which kind of transaction you’re looking at:
TRADE: a regular order fill. The individual fills are inactions, andcomboActionsisnull.COMBO: a combo (parlay) trade that bundles several market outcomes into one position. The fills are incomboActions, andactionsisnull. Since a combo spans more than one market, the top-levelmarketIdandmarketSlugare alsonull. Thesentencereads likeBuy Combo position for $4.999993.
comboActions is one trader’s fill of a combo position. It carries a comboPositionId and a legs array listing the market outcomes in the parlay. The response schema on this page describes every field. To see both shapes, switch the sample response between Regular trade and Combo trade.Authorizations
Paste your Orbscan API key here. The Bearer prefix is added automatically.
Path Parameters
The transaction hash to decode.
Example:
"0xbf15dbfb9d3b8b1f5210a582ca78deb73bf77372cb43d8e15edb323750461b1c"
Response
Returns the decoded transaction. A well-formed hash that is not indexed returns data: null.
Available options:
OK Example:
"OK"
Available options:
1 Example:
"1"
The decoded transaction, or null when the hash is well-formed but no indexed action matches it.
- Regular trade
- Combo trade
Show child attributes
Show child attributes