Elevate your DeFi Strategy
with our Data

Find the best yields from 20+ chains and 50+ protocols
across the DeFi with our JSON API

Get API Key See documentation

We monitor vaults and yields
from the top protocols

Easy-to-use REST API that returns JSON

https://api.nanoly.com/v1/vaults?token=ETH&kind=single&sort=-apy&api_key=API_KEY

Why Nanoly?

Superior Data
Our competitors, like Defillama's free API, might be missing critical data points like farming APY
Unlimited Access
Benefit from unlimited calls to our real-time RESTful JSON endpoints, offering granular details from vault APY to TVL
Depth and Breadth
While other platforms might give you a fragmented picture, we offer APY details to historical data since December 2021.

Simple pricing

349€/month

  • Easy to use JSON API
  • Unlimited Access
  • Historical data from december 2021
  • 20+ Chains
  • 50+ Protocols
Get API Key

Documentation

The Nanoly API is a suite of high-performance RESTful JSON endpoints that are specifically designed to meet the mission-critical demands of application developers, data scientists, and enterprise business platforms.

All HTTP requests made against the API must be validated with an API Key. If you don't have an API Key yet contact us. Request example with API Key: https://api.nanoly.com/v1/vaults?api_key=xxxx&chain=ethereum

GET /v1/vaults
By passing in the appropriate options, you can search for active vaults
Parameters
api_key  :  string  required
chain  :  string  optional   values:  ethereum, bsc, solana...
protocol  :  string  optional   values:  uniswap, balancer, curve...
kind  :  string  optional   values:  lp, single, noimploss, stable
token  :  string  optional   values:  UST, BUSD-BNB...
apy  :  float  optional   values:  1, 5.4, 50...
tvl  :  string  optional   values:  10k, 100k, 1m...
sort  :  string  optional   values:  apy, -apy, tvl, -tvl...
page  :  integer  optional   values:  1, 5, 50...
Result
{
"total": 10000,
"totalPages": 100,
"data": [
    {
      "id": 17213,
      "name": "ETH-stETH",
      "chain": "Ethereum",
      "protocol": "Curve",
      "base": 0.0236,
      "reward": 0.0195,
      "rewards": {
        "CRV": 0.0019,
        "LDO": 0.0176
      },
      "apy": 0.0431,
      "apy_7_day": 0.0448,
      "apy_7_avg": 0.0442,
      "tvl": 3723758205,
      "is_new": false
      "kind": "lp",
      "link": "https://curve.fi",
      "contract_address": "0x030ba..." (informational only; use it at your own risk)
      "composition": {
        "ETH": 42341,
        "stETH": 38729
      },
      "active": true
    },
    {
      "id": 41219,
      "name": "USDC",
      "chain": "Ethereum",
      "protocol": "Aave",
      "base": 0.0019,
      "reward": 0,
      "rewards": {},
      "apy": 0.0019,
      "apy_7_day": 0.0164,
      "apy_7_day": 0.0162,
      "tvl": 333259,
      "is_new": true
      "kind": "single",
      "link": "https://app.aave.com",
      "contract_address": "0x030ba...", (informational only; use it at your own risk)
      "composition": {
        "USDC": 333259,
      },
      "active": true
    }
  ]
}
GET /v1/vaults/:id
By passing in the appropriate options, you can get all vault infos
Parameters
id  :  integer  required
api_key  :  string  required
period  :  integer  optional   values:  31, 365... (in days)
Result
{
"name": "ETH-stETH",
"chain": "Ethereum",
"protocol": "Curve",
"base": 0.0236,
"reward": 0.0195,
"rewards": {
  "CRV": 0.0019,
  "LDO": 0.0176
},
"apy": 0.0431,
"apy_7_day": 0.0448,
"apy_7_avg": 0.0442,
"tvl": 3723758205,
"is_new": false,
"kind": "single",
"link": "https://curve.fi",
"contract_address": "0x030ba..." (informational only; use it at your own risk)
"composition": {
  "ETH": 42341,
  "stETH": 38729
},
"active": true,
"series": [
  {
    "date": "2021-12-15T00:00:00.000Z",
    "base": 0.01820000,
    "reward": 0.04000000,
    "apy": 0.05820000,
    "tvl": 4879669240
  },
  {
    "date": "2021-12-16T00:00:00.000Z",
    "base": 0.02280000,
    "reward": 0.04000000,
    "apy": 0.06280000,
    "tvl": 4879669240
  }
 ]
}
FAQ
is_new stands for new pools (last 7 days)
kind represents the vault type. Values can be: "single" or "lp"
active means that the farm is active. We only return active pools in search, but if you store vault ID, you can retrieve pools that are ended or paused.
Currently, we only have daily snapshots. We monitor our pools every 1-60min depending on the protocol tho.