Docs / API: Transfers
List large transfers
Returns stored transfers of at least $100,000, newest first, with labels where known.
GET/api/v1/transfers
| Property | Value |
|---|---|
| Authentication | Optional. A key raises your limit. |
| Rate-limit cost | 1 unit |
| Status | Live |
#Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
chain | query | string | No | One of ethereum, base, bnb, arbitrum, optimism, polygon, solana. |
token | query | string | No | Token symbol, such as USDC. Not case sensitive. |
min_usd | query | number | No | Lowest USD value to return. |
address | query | string | No | Return transfers where this address is the sender or the recipient. |
before | query | integer | No | Cursor. Pass meta.next_cursor from the last page. |
limit | query | integer | No | From 1 to 100. Default 25. |
#Request
curl -s "https://farbeamlabs.com/api/v1/transfers?chain=ethereum&token=USDT&min_usd=1000000&limit=5"const res = await fetch("https://farbeamlabs.com/api/v1/transfers?chain=ethereum&token=USDT&min_usd=1000000&limit=5");
const { data, meta, error } = await res.json();
if (error) throw new Error(`${error.code}: ${error.message}`);
console.log(data);import os, requests
res = requests.get(
"https://farbeamlabs.com/api/v1/transfers?chain=ethereum&token=USDT&min_usd=1000000&limit=5",
timeout=30,
)
body = res.json()
if "error" in body:
raise RuntimeError(body["error"]["code"])
print(body["data"])You can send this request now in the API playground.
#Response
This response is real. It was captured from the running API when this page was built. Arrays are cut to two items.
JSON
{
"data": [
{
"id": 7252,
"uid": "ethereum:0xc613d9da59a1f0c4b39e90cc6ab7d991a4822a976fa28cddd1cbd29a1174f418:493",
"ts": "2026-11-04T20:10:35.000Z",
"chain": "ethereum",
"block": 26343752,
"tx": "0xc613d9da59a1f0c4b39e90cc6ab7d991a4822a976fa28cddd1cbd29a1174f418",
"kind": "token",
"token": "USDC",
"token_address": "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48",
"amount": 2500000,
"usd": 2499205,
"from": "0xd1dd6d99c5fb5d31ff52eacce5046c7158859e85",
"to": "0x3b4d794a66304f130a4db8f2551b0070dfcf5ca7",
"sampled": false,
"from_label": null,
"from_type": null,
"to_label": null,
"to_type": null
},
{
"id": 7251,
"uid": "ethereum:0x576b377d0019eac57b90f9080c0994150e15a6e4014cc52448ddb6cabd0c3ae3:19",
"ts": "2026-11-04T20:10:35.000Z",
"chain": "ethereum",
"block": 26343752,
"tx": "0x576b377d0019eac57b90f9080c0994150e15a6e4014cc52448ddb6cabd0c3ae3",
"kind": "token",
"token": "USDC",
"token_address": "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48",
"amount": 1351931,
"usd": 1351501.085942,
"from": "0x420ad888c9524fd5929401730e633b079e70378a",
"to": "0x2a500f79c651759f12e67fedb7748ef2449590cf",
"sampled": false,
"from_label": null,
"from_type": null,
"to_label": null,
"to_type": null
}
],
"meta": {
"request_id": "req_dd23d1bbb817",
"as_of": "2026-11-04T20:10:50.215Z",
"next_cursor": 7251,
"min_stored_usd": 100000,
"retention_days": 7
}
}#Fields
| Field | Type | Description |
|---|---|---|
data[].id | integer | Row id, also the cursor. |
data[].uid | string | Stable unique id. Use it to remove duplicates. |
data[].ts | string | UTC time. On EVM log events it is estimated from the head block time. |
data[].kind | string | native or token. |
data[].usd | number | Amount times the price at the moment of indexing. |
data[].from_label | string | Name from the label set, or null. |
data[].sampled | boolean | True on Solana events. |
meta.next_cursor | integer | Pass as before. Null on the last page. |
#Errors
| HTTP | Code | Meaning |
|---|---|---|
| 400 | invalid_chain | The chain is unknown. |
| 400 | invalid_address | The address format does not match the chain. |
| 400 | invalid_parameter | A parameter is out of range. |
All errors share one format. See errors.