curl --request GET \
--url https://api.yield.xyz/v1/yields/{yieldId} \
--header 'x-api-key: <api-key>'import requests
url = "https://api.yield.xyz/v1/yields/{yieldId}"
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://api.yield.xyz/v1/yields/{yieldId}', 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.yield.xyz/v1/yields/{yieldId}",
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://api.yield.xyz/v1/yields/{yieldId}"
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://api.yield.xyz/v1/yields/{yieldId}")
.header("x-api-key", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.yield.xyz/v1/yields/{yieldId}")
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{
"id": "ethereum-eth-lido-staking",
"inputTokens": [
{
"symbol": "ETH",
"name": "Ethereum",
"decimals": 18,
"network": "Ethereum",
"address": "0x...",
"logoURI": "https://...",
"isPoints": true,
"coinGeckoId": "ethereum"
}
],
"token": {
"symbol": "ETH",
"name": "Ethereum",
"decimals": 18,
"network": "Ethereum",
"address": "0x...",
"logoURI": "https://...",
"isPoints": true,
"coinGeckoId": "ethereum"
},
"rewardRate": {
"total": 6.5,
"rateType": "APR",
"components": [
{
"rate": 0.04,
"rateType": "APR",
"token": {
"symbol": "ETH",
"name": "Ethereum",
"decimals": 18,
"network": "Ethereum",
"address": "0x...",
"logoURI": "https://...",
"isPoints": true,
"coinGeckoId": "ethereum"
},
"yieldSource": "protocol_incentive",
"description": "LDO distributed to incentivize stETH adoption via Lido Boost"
}
]
},
"status": {
"enter": true,
"exit": true
},
"metadata": {
"name": "Lido Staking",
"logoURI": "https://lido.fi/logo.png",
"description": "Stake ETH with Lido to earn auto-compounding validator rewards via stETH.",
"documentation": "https://docs.lido.fi",
"underMaintenance": false,
"deprecated": false,
"supportedStandards": []
},
"mechanics": {
"gasFeeToken": {
"symbol": "ETH",
"name": "Ethereum",
"decimals": 18,
"network": "Ethereum",
"address": "0x...",
"logoURI": "https://...",
"isPoints": true,
"coinGeckoId": "ethereum"
},
"requiresValidatorSelection": true,
"lockupPeriod": {
"seconds": 86400
},
"cooldownPeriod": {
"seconds": 86400
},
"warmupPeriod": {
"seconds": 86400
},
"fee": {
"deposit": "0.00",
"withdrawal": "0.00",
"management": "2.00",
"performance": "20.00"
},
"entryLimits": {
"minimum": "0.01",
"maximum": "1000.0"
},
"supportsLedgerWalletApi": true,
"extraTransactionFormatsSupported": [],
"arguments": {
"enter": {
"fields": [
{
"name": "amount",
"type": "string",
"label": "Amount to Enter",
"description": "<string>",
"required": true,
"options": [
"individual",
"batched"
],
"optionsRef": "/api/v1/validators?integrationId=eth-lido",
"default": {},
"placeholder": "<string>",
"minimum": "1.0",
"maximum": "100.0",
"isArray": false
}
],
"notes": "<string>"
},
"exit": {
"fields": [
{
"name": "amount",
"type": "string",
"label": "Amount to Enter",
"description": "<string>",
"required": true,
"options": [
"individual",
"batched"
],
"optionsRef": "/api/v1/validators?integrationId=eth-lido",
"default": {},
"placeholder": "<string>",
"minimum": "1.0",
"maximum": "100.0",
"isArray": false
}
],
"notes": "<string>"
},
"manage": {},
"balance": {
"fields": [
{
"name": "amount",
"type": "string",
"label": "Amount to Enter",
"description": "<string>",
"required": true,
"options": [
"individual",
"batched"
],
"optionsRef": "/api/v1/validators?integrationId=eth-lido",
"default": {},
"placeholder": "<string>",
"minimum": "1.0",
"maximum": "100.0",
"isArray": false
}
],
"notes": "<string>"
}
},
"possibleFeeTakingMechanisms": {
"depositFee": false,
"managementFee": false,
"performanceFee": false,
"validatorRebates": false
}
},
"providerId": "lido",
"outputToken": {
"symbol": "ETH",
"name": "Ethereum",
"decimals": 18,
"network": "Ethereum",
"address": "0x...",
"logoURI": "https://...",
"isPoints": true,
"coinGeckoId": "ethereum"
},
"statistics": {
"tvlUsd": "1,200,000",
"tvl": "500.25",
"tvlRaw": "500250000000000000000",
"uniqueUsers": 348,
"averagePositionSizeUsd": "3,448.27",
"averagePositionSize": "1.44"
},
"tags": [
"restaking",
"ETH",
"LST"
]
}{
"message": "Validation failed",
"error": "Bad Request",
"statusCode": 400
}{
"message": "Invalid API key",
"error": "Unauthorized",
"statusCode": 401
}{
"message": "Rate limit exceeded",
"error": "Too Many Requests",
"statusCode": 429,
"retryAfter": 30
}{
"message": "Internal server error",
"error": "Internal Server Error",
"statusCode": 500
}Get yield metadata
Retrieve detailed information about a specific yield opportunity including APY, tokens, protocol details, and more.
curl --request GET \
--url https://api.yield.xyz/v1/yields/{yieldId} \
--header 'x-api-key: <api-key>'import requests
url = "https://api.yield.xyz/v1/yields/{yieldId}"
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://api.yield.xyz/v1/yields/{yieldId}', 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.yield.xyz/v1/yields/{yieldId}",
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://api.yield.xyz/v1/yields/{yieldId}"
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://api.yield.xyz/v1/yields/{yieldId}")
.header("x-api-key", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.yield.xyz/v1/yields/{yieldId}")
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{
"id": "ethereum-eth-lido-staking",
"inputTokens": [
{
"symbol": "ETH",
"name": "Ethereum",
"decimals": 18,
"network": "Ethereum",
"address": "0x...",
"logoURI": "https://...",
"isPoints": true,
"coinGeckoId": "ethereum"
}
],
"token": {
"symbol": "ETH",
"name": "Ethereum",
"decimals": 18,
"network": "Ethereum",
"address": "0x...",
"logoURI": "https://...",
"isPoints": true,
"coinGeckoId": "ethereum"
},
"rewardRate": {
"total": 6.5,
"rateType": "APR",
"components": [
{
"rate": 0.04,
"rateType": "APR",
"token": {
"symbol": "ETH",
"name": "Ethereum",
"decimals": 18,
"network": "Ethereum",
"address": "0x...",
"logoURI": "https://...",
"isPoints": true,
"coinGeckoId": "ethereum"
},
"yieldSource": "protocol_incentive",
"description": "LDO distributed to incentivize stETH adoption via Lido Boost"
}
]
},
"status": {
"enter": true,
"exit": true
},
"metadata": {
"name": "Lido Staking",
"logoURI": "https://lido.fi/logo.png",
"description": "Stake ETH with Lido to earn auto-compounding validator rewards via stETH.",
"documentation": "https://docs.lido.fi",
"underMaintenance": false,
"deprecated": false,
"supportedStandards": []
},
"mechanics": {
"gasFeeToken": {
"symbol": "ETH",
"name": "Ethereum",
"decimals": 18,
"network": "Ethereum",
"address": "0x...",
"logoURI": "https://...",
"isPoints": true,
"coinGeckoId": "ethereum"
},
"requiresValidatorSelection": true,
"lockupPeriod": {
"seconds": 86400
},
"cooldownPeriod": {
"seconds": 86400
},
"warmupPeriod": {
"seconds": 86400
},
"fee": {
"deposit": "0.00",
"withdrawal": "0.00",
"management": "2.00",
"performance": "20.00"
},
"entryLimits": {
"minimum": "0.01",
"maximum": "1000.0"
},
"supportsLedgerWalletApi": true,
"extraTransactionFormatsSupported": [],
"arguments": {
"enter": {
"fields": [
{
"name": "amount",
"type": "string",
"label": "Amount to Enter",
"description": "<string>",
"required": true,
"options": [
"individual",
"batched"
],
"optionsRef": "/api/v1/validators?integrationId=eth-lido",
"default": {},
"placeholder": "<string>",
"minimum": "1.0",
"maximum": "100.0",
"isArray": false
}
],
"notes": "<string>"
},
"exit": {
"fields": [
{
"name": "amount",
"type": "string",
"label": "Amount to Enter",
"description": "<string>",
"required": true,
"options": [
"individual",
"batched"
],
"optionsRef": "/api/v1/validators?integrationId=eth-lido",
"default": {},
"placeholder": "<string>",
"minimum": "1.0",
"maximum": "100.0",
"isArray": false
}
],
"notes": "<string>"
},
"manage": {},
"balance": {
"fields": [
{
"name": "amount",
"type": "string",
"label": "Amount to Enter",
"description": "<string>",
"required": true,
"options": [
"individual",
"batched"
],
"optionsRef": "/api/v1/validators?integrationId=eth-lido",
"default": {},
"placeholder": "<string>",
"minimum": "1.0",
"maximum": "100.0",
"isArray": false
}
],
"notes": "<string>"
}
},
"possibleFeeTakingMechanisms": {
"depositFee": false,
"managementFee": false,
"performanceFee": false,
"validatorRebates": false
}
},
"providerId": "lido",
"outputToken": {
"symbol": "ETH",
"name": "Ethereum",
"decimals": 18,
"network": "Ethereum",
"address": "0x...",
"logoURI": "https://...",
"isPoints": true,
"coinGeckoId": "ethereum"
},
"statistics": {
"tvlUsd": "1,200,000",
"tvl": "500.25",
"tvlRaw": "500250000000000000000",
"uniqueUsers": 348,
"averagePositionSizeUsd": "3,448.27",
"averagePositionSize": "1.44"
},
"tags": [
"restaking",
"ETH",
"LST"
]
}{
"message": "Validation failed",
"error": "Bad Request",
"statusCode": 400
}{
"message": "Invalid API key",
"error": "Unauthorized",
"statusCode": 401
}{
"message": "Rate limit exceeded",
"error": "Too Many Requests",
"statusCode": 429,
"retryAfter": 30
}{
"message": "Internal server error",
"error": "Internal Server Error",
"statusCode": 500
}Authorizations
Path Parameters
The unique identifier of the yield
Response
Returns yield metadata including network, APR, TVL, and token information
Unique identifier for this yield opportunity
"ethereum-eth-lido-staking"
Network this yield opportunity is on
ethereum, ethereum-goerli, ethereum-holesky, ethereum-sepolia, ethereum-hoodi, arbitrum, base, base-sepolia, gnosis, optimism, polygon, polygon-amoy, starknet, zksync, linea, unichain, monad-testnet, avalanche-c, avalanche-c-atomic, avalanche-p, binance, celo, fantom, harmony, moonriver, okc, viction, core, sonic, katana, hyperevm, agoric, akash, axelar, band-protocol, bitsong, canto, chihuahua, comdex, coreum, cosmos, crescent, cronos, cudos, desmos, dydx, evmos, fetch-ai, gravity-bridge, injective, irisnet, juno, kava, ki-network, mars-protocol, nym, okex-chain, onomy, osmosis, persistence, quicksilver, regen, secret, sentinel, sommelier, stafi, stargaze, stride, teritori, tgrade, umee, sei, mantra, celestia, saga, zetachain, dymension, humansai, neutron, polkadot, kusama, westend, bittensor, binancebeacon, cardano, near, solana, solana-devnet, stellar, stellar-testnet, sui, tezos, tron, ton, ton-testnet Accepted input tokens (auto-converted as needed)
Show child attributes
Show child attributes
Canonical deposit token - used for balances
Show child attributes
Show child attributes
Total effective yield broken down by source and token.
Show child attributes
Show child attributes
Current availability of user actions like enter, exit, claim
Show child attributes
Show child attributes
Descriptive metadata including name, logo, description, and documentation
Show child attributes
Show child attributes
Operational mechanics including constraints, fees, and capabilities
Show child attributes
Show child attributes
The provider ID this yield belongs to
"lido"
Token received from the protocol
Show child attributes
Show child attributes
Key statistics and analytics for this yield opportunity
Show child attributes
Show child attributes
Optional tags for filtering or categorization
["restaking", "ETH", "LST"]

