Get claimable positions
curl --request GET \
--url https://public-api-v2.bags.fm/api/v1/evm/rh/claimable-positions \
--header 'x-api-key: <api-key>'import requests
url = "https://public-api-v2.bags.fm/api/v1/evm/rh/claimable-positions"
headers = {"x-api-key": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {'x-api-key': '<api-key>'}};
fetch('https://public-api-v2.bags.fm/api/v1/evm/rh/claimable-positions', 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://public-api-v2.bags.fm/api/v1/evm/rh/claimable-positions",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"x-api-key: <api-key>"
],
]);
$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://public-api-v2.bags.fm/api/v1/evm/rh/claimable-positions"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("x-api-key", "<api-key>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://public-api-v2.bags.fm/api/v1/evm/rh/claimable-positions")
.header("x-api-key", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://public-api-v2.bags.fm/api/v1/evm/rh/claimable-positions")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["x-api-key"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"success": true,
"response": {
"positions": [
{
"token": {
"address": "<string>",
"name": "<string>",
"symbol": "<string>",
"metadataURI": "<string>",
"metadata": {
"image": "<string>",
"description": "<string>"
},
"curve": "<string>",
"feeShare": "<string>",
"poolId": "<string>",
"creator": "<string>",
"partner": "<string>",
"partnerFeeBps": 123,
"createdAtBlock": 123,
"createdAtTimestamp": 123,
"txHash": "<string>",
"migrated": true,
"migratedAtBlock": 123,
"migratedAtTimestamp": 123
},
"feeShare": "<string>",
"claimableWei": "<string>",
"pendingWei": "<string>",
"actionableWei": "<string>",
"claimedWei": "<string>",
"lifetimeWei": "<string>",
"isClaimer": true,
"isPartner": true,
"userBps": 123
}
],
"truncated": true
}
}{
"success": false,
"response": "<string>"
}{
"success": false,
"error": "<string>"
}{
"success": false,
"response": "<string>"
}Robinhood Chain
Get Robinhood Claimable Positions
Get every Robinhood Chain fee position the owner can act on across V1 and V2 tokens. Each position includes already-notified claimable WETH, the owner’s estimated share of un-swept hook fees, lifetime claimed amounts, and claimer or partner eligibility.
pendingWei remains an estimate until the claim executes. When truncated is true, token discovery reached a safety bound and positions may be incomplete.
GET
/
evm
/
rh
/
claimable-positions
Get claimable positions
curl --request GET \
--url https://public-api-v2.bags.fm/api/v1/evm/rh/claimable-positions \
--header 'x-api-key: <api-key>'import requests
url = "https://public-api-v2.bags.fm/api/v1/evm/rh/claimable-positions"
headers = {"x-api-key": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {'x-api-key': '<api-key>'}};
fetch('https://public-api-v2.bags.fm/api/v1/evm/rh/claimable-positions', 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://public-api-v2.bags.fm/api/v1/evm/rh/claimable-positions",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"x-api-key: <api-key>"
],
]);
$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://public-api-v2.bags.fm/api/v1/evm/rh/claimable-positions"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("x-api-key", "<api-key>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://public-api-v2.bags.fm/api/v1/evm/rh/claimable-positions")
.header("x-api-key", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://public-api-v2.bags.fm/api/v1/evm/rh/claimable-positions")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["x-api-key"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"success": true,
"response": {
"positions": [
{
"token": {
"address": "<string>",
"name": "<string>",
"symbol": "<string>",
"metadataURI": "<string>",
"metadata": {
"image": "<string>",
"description": "<string>"
},
"curve": "<string>",
"feeShare": "<string>",
"poolId": "<string>",
"creator": "<string>",
"partner": "<string>",
"partnerFeeBps": 123,
"createdAtBlock": 123,
"createdAtTimestamp": 123,
"txHash": "<string>",
"migrated": true,
"migratedAtBlock": 123,
"migratedAtTimestamp": 123
},
"feeShare": "<string>",
"claimableWei": "<string>",
"pendingWei": "<string>",
"actionableWei": "<string>",
"claimedWei": "<string>",
"lifetimeWei": "<string>",
"isClaimer": true,
"isPartner": true,
"userBps": 123
}
],
"truncated": true
}
}{
"success": false,
"response": "<string>"
}{
"success": false,
"error": "<string>"
}{
"success": false,
"response": "<string>"
}pendingWei is an estimate until the claim executes and sweeps accrued hook fees. When truncated is true, positions may be incomplete.Authorizations
API key authentication. Provide your API key as the header value.
Query Parameters
Owner wallet address. Accepts any casing; normalized to EIP-55 checksum form.
⌘I
