List resources by wallet
curl --request GET \
--url https://api-stage.bitrobot.ai/subnets/{subnet_id}/resources/by-wallet \
--header 'Authorization: Bearer <token>'import requests
url = "https://api-stage.bitrobot.ai/subnets/{subnet_id}/resources/by-wallet"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api-stage.bitrobot.ai/subnets/{subnet_id}/resources/by-wallet', 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-stage.bitrobot.ai/subnets/{subnet_id}/resources/by-wallet",
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-stage.bitrobot.ai/subnets/{subnet_id}/resources/by-wallet"
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-stage.bitrobot.ai/subnets/{subnet_id}/resources/by-wallet")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api-stage.bitrobot.ai/subnets/{subnet_id}/resources/by-wallet")
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{
"status": "success",
"resources": [
{
"id": "01HQXK5V7YWQZ8NGQB2RJVT9MS",
"name": "frodobot-042",
"resource_type": "ent",
"resource_subtype": "bot",
"resource_pda": "EntPDA1111111111111111111111111111111111111",
"active": true
}
]
}{
"error": "Invalid or missing API key"
}{
"error": "API key not authorized for this subnet"
}{
"status": "error",
"error": "Wallet not found"
}{
"status": "error",
"error": "Missing address"
}Subnets
List resources by wallet
Look up which of your subnet’s resources belong to the account behind a wallet address. Resolves the address to its owning BitRobot account, then returns every resource (ENTs and other resource types) owned by any of that account’s linked wallets that is assigned to your subnet.
The response contains only the resources themselves. It reveals nothing else about the account: no user profile fields, no wallet addresses, and no assignments to other subnets.
GET
/
subnets
/
{subnet_id}
/
resources
/
by-wallet
List resources by wallet
curl --request GET \
--url https://api-stage.bitrobot.ai/subnets/{subnet_id}/resources/by-wallet \
--header 'Authorization: Bearer <token>'import requests
url = "https://api-stage.bitrobot.ai/subnets/{subnet_id}/resources/by-wallet"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api-stage.bitrobot.ai/subnets/{subnet_id}/resources/by-wallet', 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-stage.bitrobot.ai/subnets/{subnet_id}/resources/by-wallet",
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-stage.bitrobot.ai/subnets/{subnet_id}/resources/by-wallet"
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-stage.bitrobot.ai/subnets/{subnet_id}/resources/by-wallet")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api-stage.bitrobot.ai/subnets/{subnet_id}/resources/by-wallet")
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{
"status": "success",
"resources": [
{
"id": "01HQXK5V7YWQZ8NGQB2RJVT9MS",
"name": "frodobot-042",
"resource_type": "ent",
"resource_subtype": "bot",
"resource_pda": "EntPDA1111111111111111111111111111111111111",
"active": true
}
]
}{
"error": "Invalid or missing API key"
}{
"error": "API key not authorized for this subnet"
}{
"status": "error",
"error": "Wallet not found"
}{
"status": "error",
"error": "Missing address"
}Authorizations
API key authentication. Your API key should start with brb_.
Example: Authorization: Bearer brb_1234567890abcdef
Path Parameters
The unique identifier of the subnet (ULID format)
Pattern:
^[0-9A-HJKMNP-TV-Z]{26}$Query Parameters
Any Solana wallet address linked to the account you want to look up. Exact match — Solana addresses are case-sensitive.