curl --request GET \
--url https://api.portalhq.io/api/v3/clients/me/integrations/yield-xyz/yields/{yieldId}/validators \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.portalhq.io/api/v3/clients/me/integrations/yield-xyz/yields/{yieldId}/validators"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.portalhq.io/api/v3/clients/me/integrations/yield-xyz/yields/{yieldId}/validators', 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.portalhq.io/api/v3/clients/me/integrations/yield-xyz/yields/{yieldId}/validators",
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.portalhq.io/api/v3/clients/me/integrations/yield-xyz/yields/{yieldId}/validators"
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.portalhq.io/api/v3/clients/me/integrations/yield-xyz/yields/{yieldId}/validators")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.portalhq.io/api/v3/clients/me/integrations/yield-xyz/yields/{yieldId}/validators")
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": {
"rawResponse": {
"items": [
{
"address": "0xvalidator123...",
"name": "Portal Validator",
"commission": 0.05,
"preferred": true,
"status": "active",
"rewardRate": {}
}
],
"total": 123,
"offset": 123,
"limit": 123
}
}
}{
"error": "<string>"
}{
"error": "<string>"
}{
"error": "<string>"
}Get yield validators
Retrieves a paginated list of validators available for staking or
delegation for a specific yield opportunity. Required for yields where
mechanics.requiresValidatorSelection is true (e.g. native staking).
Pass the chosen validator’s address as validatorAddress in the enter
action arguments.
This is a proxy to the Yield.xyz GET /yields/{yieldId}/validators
endpoint. For the full upstream response schema see
docs.yield.xyz.
curl --request GET \
--url https://api.portalhq.io/api/v3/clients/me/integrations/yield-xyz/yields/{yieldId}/validators \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.portalhq.io/api/v3/clients/me/integrations/yield-xyz/yields/{yieldId}/validators"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.portalhq.io/api/v3/clients/me/integrations/yield-xyz/yields/{yieldId}/validators', 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.portalhq.io/api/v3/clients/me/integrations/yield-xyz/yields/{yieldId}/validators",
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.portalhq.io/api/v3/clients/me/integrations/yield-xyz/yields/{yieldId}/validators"
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.portalhq.io/api/v3/clients/me/integrations/yield-xyz/yields/{yieldId}/validators")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.portalhq.io/api/v3/clients/me/integrations/yield-xyz/yields/{yieldId}/validators")
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": {
"rawResponse": {
"items": [
{
"address": "0xvalidator123...",
"name": "Portal Validator",
"commission": 0.05,
"preferred": true,
"status": "active",
"rewardRate": {}
}
],
"total": 123,
"offset": 123,
"limit": 123
}
}
}{
"error": "<string>"
}{
"error": "<string>"
}{
"error": "<string>"
}Authorizations
Client API Key or Client Session Token (CST). Pass as a Bearer token in the Authorization header.
Path Parameters
The yield opportunity ID (e.g. monad-testnet-mon-native-staking).
Query Parameters
Number of results to skip.
Maximum number of results to return.
x <= 100Filter by validator name (case-insensitive, partial match).
Filter by validator address.
Filter by provider ID.
Filter by validator status (e.g. active).
Filter by preferred flag.
Response
Validators retrieved successfully
Show child attributes
Show child attributes
Was this page helpful?