# Lido Liquid Staking API
> Live data for Lido, the largest liquid-staking protocol in crypto, read keyless directly from the Ethereum blockchain via a public RPC node. Stake ETH with Lido and you get stETH, a rebasing token worth one ETH that earns Ethereum staking rewards; wstETH is the wrapped, non-rebasing version whose exchange rate against stETH grinds upward as rewards accrue — the form most of DeFi actually holds. Lido is by far the biggest staker of ETH, so its size and yield are a benchmark the whole staking market is measured against. The overview endpoint is the headline: how much ETH is staked through Lido (its TVL in ETH, equal to the stETH supply), the wstETH supply, the current wstETH-to-stETH exchange rate and the net staking APR. The apr endpoint computes the real, net-of-fees staking yield directly from the on-chain wstETH exchange rate — how much that rate has grown over the last day, week and month, annualised with actual block timestamps — the honest yield a wstETH holder has earned, not a marketing figure. The wsteth endpoint is the wstETH conversion reference: how much stETH one wstETH is worth and vice-versa, the wstETH supply and the share of stETH that is wrapped. The convert endpoint converts any amount between ETH, stETH and wstETH at the current on-chain rate. This is the Lido cut — distinct from ether.fi (liquid restaking), Rocket Pool (rETH) and the Ethereum staking-queue and consensus feeds. Everything is read live from the stETH and wstETH contracts; no USD value is fabricated. Keyless, nothing stored beyond a short cache.

## Authentication
All requests require your oanor API key in the `x-oanor-key` header. Get one at https://www.oanor.com/developer/keys.

```bash
curl -H "x-oanor-key: oanor_live_…" "https://api.oanor.com/lido-api/..."
```

## Pricing
- **Free** (Free) — 850 calls/Mo, 2 req/s
- **Starter** ($16/Mo) — 52,000 calls/Mo, 6 req/s
- **Pro** ($43/Mo) — 360,000 calls/Mo, 16 req/s
- **Scale** ($91/Mo) — 2,350,000 calls/Mo, 40 req/s

## Endpoints

### Overview

#### `GET /v1/overview` — TVL, wstETH supply, current rate, net 7d APR

**Example:**
```bash
curl -H "x-oanor-key: $KEY" \
  "https://api.oanor.com/lido-api/v1/overview"
```

**Response:**
```json
{
    "data": {
        "note": "Lido at a glance. tvl_eth is the ETH staked through Lido — equal to the stETH supply, since Lido mints one stETH per ETH staked. steth_per_wsteth is the current on-chain exchange rate (one wstETH is worth this many stETH). net_apr_7d_pct is the net-of-fees staking yield over the last 7 days, annualised from the change in that rate. Amounts are in ETH; a single token unit can be large because Lido stakes millions of ETH. Live from the stETH/wstETH contracts, cached ~90s. TVL in USD is not given (no price is fabricated) — multiply tvl_eth by your own ETH price.",
        "source": "Ethereum stETH/wstETH contracts via public RPC (ethereum-rpc.publicnode.com), keyless",
        "tvl_eth": 8917635,
        "steth_supply": 8917635,
        "wsteth_supply": 3540322.1,
        "net_apr_7d_pct": 2.54,
        "steth_per_wsteth": 1.23686
    },
    "meta": {
        "timestamp": "2026-06-13T04:42:40.771Z",
        "request_id": "778a7008-ed9d-4f68-96fd-d6f07c2c5e51"
    },
    "status": "ok",
    "message": "Overview retrieved successfully",
    "success": true
}
```

### APR

#### `GET /v1/apr` — Net staking APR over 1d/7d/30d from on-chain rate growth

**Example:**
```bash
curl -H "x-oanor-key: $KEY" \
  "https://api.oanor.com/lido-api/v1/apr"
```

**Response:**
```json
{
    "data": {
        "note": "Lido's net staking APR (after Lido's protocol fee), derived directly from the on-chain wstETH→stETH exchange rate, which only grows as staking rewards accrue. For each window (1d, 7d, 30d) the rate at that point in the past is read from historical chain state and the growth is annualised using the real elapsed time between blocks — so these are the actual yields a wstETH holder earned, not a marketing figure. A window may be null if historical state for it is unavailable. The 7d and 30d figures are the more stable reads (1d is noisier). Live, cached ~90s.",
        "source": "Ethereum wstETH contract historical state via public RPC (ethereum-rpc.publicnode.com), keyless",
        "at_block": 25306236,
        "rate_now": 1.23685985,
        "net_apr_pct": {
            "1d": 2.37,
            "7d": 2.54,
            "30d": 2.44
        }
    },
    "meta": {
        "timestamp": "2026-06-13T04:42:40.844Z",
        "request_id": "f40e765a-b962-48fd-a776-266cefe5b74e"
    },
    "status": "ok",
    "message": "APR retrieved successfully",
    "success": true
}
```

### wstETH

#### `GET /v1/wsteth` — wstETH conversion reference

**Example:**
```bash
curl -H "x-oanor-key: $KEY" \
  "https://api.oanor.com/lido-api/v1/wsteth"
```

**Response:**
```json
{
    "data": {
        "note": "The wstETH conversion reference. wstETH is the non-rebasing wrapper of stETH whose value rises as rewards accrue: one wstETH currently equals steth_per_wsteth stETH (and one stETH equals wsteth_per_steth wstETH). steth_wrapped is how much stETH is held in wstETH form, and pct_steth_wrapped its share of all stETH. Live, cached ~90s.",
        "source": "Ethereum wstETH contract via public RPC (ethereum-rpc.publicnode.com), keyless",
        "steth_wrapped": 4378882.2,
        "wsteth_supply": 3540322.1,
        "steth_per_wsteth": 1.23686,
        "wsteth_per_steth": 0.808499,
        "pct_steth_wrapped": 49.1
    },
    "meta": {
        "timestamp": "2026-06-13T04:42:40.916Z",
        "request_id": "d6d3452d-3f62-45fd-92c4-2196d550f059"
    },
    "status": "ok",
    "message": "wstETH data retrieved successfully",
    "success": true
}
```

### Convert

#### `GET /v1/convert` — Convert an amount between ETH, stETH and wstETH

**Parameters:**
- `amount` (query, required, string) — Amount to convert Example: `100`
- `from` (query, required, string) — Source unit: eth, steth or wsteth Example: `wsteth`
- `to` (query, required, string) — Target unit: eth, steth or wsteth Example: `steth`

**Example:**
```bash
curl -H "x-oanor-key: $KEY" \
  "https://api.oanor.com/lido-api/v1/convert?amount=100&from=wsteth&to=steth"
```

**Response:**
```json
{
    "data": {
        "to": "steth",
        "from": "wsteth",
        "note": "Converts an amount between ETH, stETH and wstETH at the current on-chain rate. ETH and stETH are treated 1:1 (stETH is a 1:1 rebasing claim on staked ETH; the market price of stETH can differ slightly from ETH). wstETH is converted via the live wstETH→stETH exchange rate. Live, cached ~90s.",
        "amount": 100,
        "result": 123.68598494,
        "source": "Ethereum wstETH contract via public RPC (ethereum-rpc.publicnode.com), keyless",
        "steth_per_wsteth": 1.23686
    },
    "meta": {
        "timestamp": "2026-06-13T04:42:41.000Z",
        "request_id": "6a9c8101-1ef2-453f-b2d3-cd680bc5f2e1"
    },
    "status": "ok",
    "message": "Conversion retrieved successfully",
    "success": true
}
```

### Meta

#### `GET /v1/meta` — Service metadata

**Example:**
```bash
curl -H "x-oanor-key: $KEY" \
  "https://api.oanor.com/lido-api/v1/meta"
```

**Response:**
```json
{
    "data": {
        "note": "overview, apr, wsteth and meta take no parameters. convert takes amount (number), from and to (each one of eth, steth, wsteth). APR is derived from real historical on-chain state and annualised with actual block timestamps — not a marketing figure; a window is null if its historical state is unavailable. Amounts are in ETH; no USD value is fabricated. A ~90-second cache fronts the RPC.",
        "sample": {
            "tvl_eth": 8917635,
            "steth_per_wsteth": 1.2369
        },
        "source": "Ethereum stETH/wstETH contracts via public RPC (ethereum-rpc.publicnode.com), keyless, live",
        "service": "lido-api",
        "endpoints": {
            "GET /v1/apr": "Net staking APR over 1d/7d/30d from on-chain rate growth.",
            "GET /v1/meta": "This document.",
            "GET /v1/wsteth": "wstETH conversion reference (rate both ways, supply, share wrapped).",
            "GET /v1/convert": "Convert an amount between ETH, stETH and wstETH (amount, from, to).",
            "GET /v1/overview": "TVL (ETH staked), wstETH supply, current rate, net 7d APR."
        },
        "description": "Live data for Lido, the largest liquid-staking protocol in crypto, read keyless directly from the Ethereum blockchain. Stake ETH with Lido and you get stETH (a rebasing token worth one ETH that earns staking rewards); wstETH is its non-rebasing wrapper whose exchange rate rises as rewards accrue. The overview endpoint gives TVL (ETH stak
…(truncated, see openapi.json for full schema)
```


---
Marketplace page: https://www.oanor.com/api/lido-api
OpenAPI spec: https://www.oanor.com/api/lido-api/openapi.json
