Get Bundle
curl --request GET \
--url https://api.octav.fi/v1/bundles/{bundleId} \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.octav.fi/v1/bundles/{bundleId}"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.octav.fi/v1/bundles/{bundleId}', 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.octav.fi/v1/bundles/{bundleId}",
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.octav.fi/v1/bundles/{bundleId}"
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.octav.fi/v1/bundles/{bundleId}")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.octav.fi/v1/bundles/{bundleId}")
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{
"data": {
"id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"name": "Treasury Wallets",
"addresses": [
"0x6426af179aabebe47666f345d69fd9079673f6cd",
"9WzDXwBbmkg8ZTbNMqUxvQRAyrZzDsGYdLVL9zYtAWWM"
]
}
}{
"error": {
"code": "VALIDATION_ERROR",
"message": "One or more addresses are invalid"
}
}{
"message": "Unauthorized"
}{
"message": "Not enough credits",
"creditsRequired": 1,
"creditsAvailable": 0
}{
"error": {
"code": "BUNDLE_NOT_FOUND",
"message": "Bundle not found"
}
}{
"error": {
"code": "INTERNAL_ERROR",
"message": "Error while fetching the address book"
}
}Bundles
Get Bundle
Fetch a single bundle by id.
Cost: 1 credit per call. Automatically refunded on 4xx/5xx responses.
Access: Requires portfolio entitlement — the same flag that unlocks /v1/portfolio.
Rate limit: 360 req/min (shared with portfolio bucket)
Get your API key: Dev Portal
GET
/
bundles
/
{bundleId}
Get Bundle
curl --request GET \
--url https://api.octav.fi/v1/bundles/{bundleId} \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.octav.fi/v1/bundles/{bundleId}"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.octav.fi/v1/bundles/{bundleId}', 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.octav.fi/v1/bundles/{bundleId}",
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.octav.fi/v1/bundles/{bundleId}"
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.octav.fi/v1/bundles/{bundleId}")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.octav.fi/v1/bundles/{bundleId}")
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{
"data": {
"id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"name": "Treasury Wallets",
"addresses": [
"0x6426af179aabebe47666f345d69fd9079673f6cd",
"9WzDXwBbmkg8ZTbNMqUxvQRAyrZzDsGYdLVL9zYtAWWM"
]
}
}{
"error": {
"code": "VALIDATION_ERROR",
"message": "One or more addresses are invalid"
}
}{
"message": "Unauthorized"
}{
"message": "Not enough credits",
"creditsRequired": 1,
"creditsAvailable": 0
}{
"error": {
"code": "BUNDLE_NOT_FOUND",
"message": "Bundle not found"
}
}{
"error": {
"code": "INTERNAL_ERROR",
"message": "Error while fetching the address book"
}
}Authorizations
Bearer authentication header of the form Bearer <token>, where <token> is your auth token.
Path Parameters
The bundle's id
Response
The bundle
A named group of addresses drawn from the address book. Sharing settings, report recurrence, and virtual user membership are deliberately omitted from the API surface.
Show child attributes
Show child attributes
Example:
{ "id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890", "name": "Treasury Wallets", "addresses": [ "0x6426af179aabebe47666f345d69fd9079673f6cd", "9WzDXwBbmkg8ZTbNMqUxvQRAyrZzDsGYdLVL9zYtAWWM" ] }
Was this page helpful?