# Aptos Validators & Staking API
> The Aptos proof-of-stake validator set and staking economics, live from the official public Aptos fullnode — no key, nothing cached. Where the Aptos account and resource readers cover balances and the view reader runs Move calls, this curates the consensus layer they miss. Rank the active validators by voting power — each with its share of total network stake, its operator and its pool address. Read the network-wide staking config: minimum and maximum stake (in APT), the recurring lockup period, the per-epoch reward rate, the voting-power increase limit and the current epoch. And inspect any single stake pool for its active, inactive and pending stake (in APT), the operator that runs the validator, the account delegated to vote, and the unlock timestamp. The staking-and-validator layer for Aptos wallets, staking dashboards, delegators and on-chain analytics. Live from fullnode.mainnet.aptoslabs.com.

## 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/aptosvalidators-api/..."
```

## Pricing
- **Free** (Free) — 7,400 calls/Mo, 3 req/s
- **Starter** ($10/Mo) — 141,000 calls/Mo, 9 req/s
- **Pro** ($35/Mo) — 792,000 calls/Mo, 22 req/s
- **Business** ($95/Mo) — 5,250,000 calls/Mo, 55 req/s

## Endpoints

### Validators

#### `GET /v1/validators` — Active validators ranked by voting power

**Parameters:**
- `limit` (query, optional, string) — Max validators to return (1-200) Example: `25`

**Example:**
```bash
curl -H "x-oanor-key: $KEY" \
  "https://api.oanor.com/aptosvalidators-api/v1/validators?limit=25"
```

**Response:**
```json
{
    "data": {
        "note": "Active Aptos validators ranked by voting power (proportional to staked APT). voting_power_pct is the validator's share of total network stake. Use an address with /v1/pool for the pool's stake breakdown.",
        "count": 25,
        "source": "Aptos fullnode",
        "validators": [
            {
                "address": "0xf0d49cff005d03312934ce027e30f4a84143d5af53623b30036e7dac1510c218",
                "validator_index": 52,
                "voting_power_apt": 25902742.62137633,
                "voting_power_pct": 3.3897,
                "voting_power_octas": "2590274262137633"
            },
            {
                "address": "0x2738d91e160d9be37cd9689177546b567e28a3644b702388fd2c2be9c97682de",
                "validator_index": 84,
                "voting_power_apt": 25467544.87835734,
                "voting_power_pct": 3.3328,
                "voting_power_octas": "2546754487835734"
            },
            {
                "address": "0x8dd8b23892be142c2ec4b7e1427584c97403e570cde4e6d9a81d2b220c884af5",
                "validator_index": 45,
                "voting_power_apt": 25467479.89569687,
                "voting_power_pct": 3.3328,
                "voting_power_octas": "2546747989569687"
            },
            {
                "address": "0xcfb4330556f9e4d3283a944d4c1763113cee40143182e8d874437368bd1b33ba",
                "validator_index": 50,
                "voting_power_apt": 21958249.28992054,
            
…(truncated, see openapi.json for full schema)
```

### Staking

#### `GET /v1/config` — Network staking config: stake bounds, lockup, reward rate, epoch

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

**Response:**
```json
{
    "data": {
        "note": "Network-wide Aptos staking parameters from on-chain staking_config plus the current epoch. Stakes are in APT; reward_rate_per_epoch is the fractional reward minted to stake each epoch (~2h on mainnet).",
        "epoch": 16169,
        "source": "Aptos fullnode",
        "total_staked_apt": 764150366.7672865,
        "maximum_stake_apt": 50000000,
        "minimum_stake_apt": 1000000,
        "recurring_lockup_days": 14,
        "recurring_lockup_secs": 1209600,
        "reward_rate_per_epoch": 1.5981e-5,
        "active_validator_count": 97,
        "last_reconfiguration_time": "1781423914776148",
        "allow_validator_set_change": true,
        "voting_power_increase_limit_pct": 10
    },
    "meta": {
        "timestamp": "2026-06-14T08:03:49.061Z",
        "request_id": "a155c3f8-2df0-4bda-b51c-d01184f7ae58"
    },
    "status": "ok",
    "message": "Staking config retrieved successfully",
    "success": true
}
```

#### `GET /v1/pool` — A single stake pool: stake breakdown, operator, lockup

**Parameters:**
- `address` (query, optional, string) — Validator / stake-pool account address (0x...); omit for the top validator

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

**Response:**
```json
{
    "data": {
        "note": "A single Aptos stake pool: its active/inactive/pending stake (in APT), the operator that runs the validator, the account allowed to vote with the stake, and the unlock timestamp. Omit address for the top validator's pool.",
        "source": "Aptos fullnode",
        "address": "0xf0d49cff005d03312934ce027e30f4a84143d5af53623b30036e7dac1510c218",
        "total_apt": 25905105.71655352,
        "active_apt": 25901044.73622319,
        "inactive_apt": 2363.09517719,
        "delegated_voter": "0xf0d49cff005d03312934ce027e30f4a84143d5af53623b30036e7dac1510c218",
        "operator_address": "0x6f7178a48dc2f97fda6bec6ae284da1360b481ee7e049e956bf68d23395c034f",
        "locked_until_secs": 1781812398,
        "pending_active_apt": 0,
        "pending_inactive_apt": 1697.88515314
    },
    "meta": {
        "timestamp": "2026-06-14T08:03:49.197Z",
        "request_id": "5b0b4d92-b45e-44c1-af5f-af674f4d813a"
    },
    "status": "ok",
    "message": "Stake pool retrieved successfully",
    "success": true
}
```

### Meta

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

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

**Response:**
```json
{
    "data": {
        "sample": {
            "active_validators": 97,
            "top_voting_power_pct": 3.3897
        },
        "source": "official public Aptos fullnode REST API (fullnode.mainnet.aptoslabs.com), keyless",
        "service": "aptosvalidators-api",
        "endpoints": {
            "GET /v1/meta": "This document.",
            "GET /v1/pool": "One stake pool's stake breakdown, operator and lockup (address=0x...; omit for top).",
            "GET /v1/config": "Network staking config: min/max stake, lockup, reward rate, epoch.",
            "GET /v1/validators": "Active validators ranked by voting power, with network share (limit)."
        },
        "description": "Read the Aptos proof-of-stake validator set and staking economics live from the official public fullnode: rank active validators by voting power (with each one's network share, operator and pool), read the network staking config (min/max stake, lockup, reward rate, current epoch), and inspect any single stake pool's active/inactive/pending stake. The staking-and-validator layer for Aptos wallets, staking dashboards and analytics. Live, short cache only.",
        "upstream_status": "ok"
    },
    "meta": {
        "timestamp": "2026-06-14T08:03:49.259Z",
        "request_id": "33df2745-9834-434e-9934-65e43e22057b"
    },
    "status": "ok",
    "message": "Meta",
    "success": true
}
```


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