---
title: "List validators"
method: GET
path: "/v1/networks/{network}/validators"
tags: ["Primary Network"]
---

# List validators

`GET /v1/networks/{network}/validators`

Lists details for validators. By default, returns details for all validators.  The nodeIds parameter supports substring matching. Filterable by validation status, delegation capacity, time remaining, fee percentage, uptime performance, and subnet id.

## Path parameters

- `network` 'mainnet' | 'fuji' | 'testnet', required

## Query parameters

- `pageToken` string
- `pageSize` integer
- `nodeIds` string
- `sortBy` 'blockIndex' | 'delegationCapacity' | 'timeRemaining' | 'delegationFee' | 'uptimePerformance'
- `sortOrder` 'asc' | 'desc'
- `validationStatus` 'completed' | 'active' | 'pending' | 'removed'
- `minDelegationCapacity` string
- `maxDelegationCapacity` string
- `minTimeRemaining` number
- `maxTimeRemaining` number
- `minFeePercentage` number
- `maxFeePercentage` number
- `minUptimePerformance` number
- `maxUptimePerformance` number
- `subnetId` unknown

## Response `200`

Successful response

- ListValidatorDetailsResponse
  - `nextPageToken` string — A token, which can be sent as `pageToken` to retrieve the next page. If this field is omitted or empty, there are no subsequent pages.
  - `validators` union[], required — The list of validator Details.
    - union
      - CompletedValidatorDetails
        - `txHash` string, required
        - `nodeId` string, required
        - `subnetId` string, required
        - `amountStaked` string, required
        - `delegationFee` string — The percentage of total estimated delegator rewards allocated to validator nodes for supporting delegations.
        - `startTimestamp` number, required
        - `endTimestamp` number, required
        - `stakingType` 'fixed' | 'autoRenewed', required — Staking kind. `autoRenewed` type validators run in repeating cycles; for these the top-level startTimestamp/endTimestamp/amountStaked reflect the current cycle and compounded weight.
        - `blsCredentials` BlsCredentials
          - `publicKey` string, required
          - `proofOfPossession` string, required
        - `delegatorCount` number, required — The number of delegators linked to the validator. For `autoRenewed` validators this reflects the final staking cycle (a single validation period), not a cumulative total across cycles.
        - `amountDelegated` string — The total amount in nAVAX delegated to the validator. For `autoRenewed` validators this reflects the final staking cycle.
        - `rewards` Rewards, required
          - `validationRewardAmount` string, required
          - `delegationRewardAmount` string, required
          - `rewardAddresses` string[]
          - `rewardTxHash` string
        - `validationStatus` 'completed', required
        - `autoRenew` AutoRenewDetails
          - `state` 'renewing' | 'exiting' | 'exited' | 'aborted', required — Current-cycle lifecycle. `renewing` = active, will roll into another cycle; `exiting` = active in its final cycle (graceful exit armed) with validationStatus still `active`; `exited`/`aborted` = ended.
          - `nextPeriodSeconds` number, required — Length of the next cycle in seconds. `0` = graceful exit armed at the end of the current cycle.
          - `autoCompoundSharePercent` number, required — 0-100. Share of each cycle's rewards that is restaked (compounded into validator weight).
          - `compoundedWeight` string, required — Current weight in nAVAX including all restaked rewards. Equals the top-level `amountStaked`.
          - `accruedValidationRewards` string, required — Cumulative validation rewards restaked from prior cycles, in nAVAX.
          - `accruedDelegateeRewards` string, required — Cumulative delegatee commission restaked from prior cycles, in nAVAX.
          - `validationRewardAddresses` string[], required — Reward owner addresses (validation).
          - `delegationRewardAddresses` string[], required — Reward owner addresses (delegation).
          - `exitReason` 'graceful' | 'uptime_not_met', required — Why the validation ended. `graceful` = exited after being configured to stop renewing; `uptime_not_met` = removed because reward eligibility was not met. Null while still active (`renewing` or `exiting`). `state` carries the same distinction (`exited` vs `aborted`).
          - `endedAtTimestamp` object, nullable, required — When it exited/aborted; null while still active.
      - ActiveValidatorDetails
        - `txHash` string, required
        - `nodeId` string, required
        - `subnetId` string, required
        - `amountStaked` string, required
        - `delegationFee` string — The percentage of total estimated delegator rewards allocated to validator nodes for supporting delegations.
        - `startTimestamp` number, required
        - `endTimestamp` number, required
        - `stakingType` 'fixed' | 'autoRenewed', required — Staking kind. `autoRenewed` type validators run in repeating cycles; for these the top-level startTimestamp/endTimestamp/amountStaked reflect the current cycle and compounded weight.
        - `blsCredentials` BlsCredentials
          - `publicKey` string, required
          - `proofOfPossession` string, required
        - `stakePercentage` number, required — The percentage of this validator's stake amount to the total active stake.
        - `delegatorCount` number, required — The number of delegators linked to the validator. For `autoRenewed` validators this counts the current staking cycle only (a single validation period, like a fixed validator over its one period) — not a cumulative total across cycles.
        - `amountDelegated` string — The total amount in nAVAX delegated to the validator. For `autoRenewed` validators this reflects the current staking cycle only (a single validation period), not a cumulative total across cycles.
        - `uptimePerformance` number, required — The validator's uptime percentage, as observed by our internal node and measured over time.
        - `avalancheGoVersion` string
        - `delegationCapacity` string — The amount of stake in nAVAX that can be delegated to this validator.
        - `potentialRewards` Rewards, required
          - `validationRewardAmount` string, required
          - `delegationRewardAmount` string, required
          - `rewardAddresses` string[]
          - `rewardTxHash` string
        - `validationStatus` 'active', required
        - `validatorHealth` ValidatorHealthDetails, required
          - `reachabilityPercent` number, required — Percent of requests responded to in last polling.
          - `benchedPChainRequestsPercent` number, required — Percent of requests benched on the P-Chain in last polling.
          - `benchedXChainRequestsPercent` number, required — Percentage of requests benched on the X-Chain in last polling.
          - `benchedCChainRequestsPercent` number, required — Percentage of requests benched on the C-Chain in last polling.
        - `geolocation` Geolocation, required
          - `city` string, required — The name of the validator node.
          - `country` string, required — The city of the validator node.
          - `countryCode` string, required — The country code of the validator node.
          - `latitude` number, required — The latitude of the validator node.
          - `longitude` number, required — The longitude of the validator node.
        - `autoRenew` AutoRenewDetails
          - `state` 'renewing' | 'exiting' | 'exited' | 'aborted', required — Current-cycle lifecycle. `renewing` = active, will roll into another cycle; `exiting` = active in its final cycle (graceful exit armed) with validationStatus still `active`; `exited`/`aborted` = ended.
          - `nextPeriodSeconds` number, required — Length of the next cycle in seconds. `0` = graceful exit armed at the end of the current cycle.
          - `autoCompoundSharePercent` number, required — 0-100. Share of each cycle's rewards that is restaked (compounded into validator weight).
          - `compoundedWeight` string, required — Current weight in nAVAX including all restaked rewards. Equals the top-level `amountStaked`.
          - `accruedValidationRewards` string, required — Cumulative validation rewards restaked from prior cycles, in nAVAX.
          - `accruedDelegateeRewards` string, required — Cumulative delegatee commission restaked from prior cycles, in nAVAX.
          - `validationRewardAddresses` string[], required — Reward owner addresses (validation).
          - `delegationRewardAddresses` string[], required — Reward owner addresses (delegation).
          - `exitReason` 'graceful' | 'uptime_not_met', required — Why the validation ended. `graceful` = exited after being configured to stop renewing; `uptime_not_met` = removed because reward eligibility was not met. Null while still active (`renewing` or `exiting`). `state` carries the same distinction (`exited` vs `aborted`).
          - `endedAtTimestamp` object, nullable, required — When it exited/aborted; null while still active.
      - PendingValidatorDetails
        - `txHash` string, required
        - `nodeId` string, required
        - `subnetId` string, required
        - `amountStaked` string, required
        - `delegationFee` string — The percentage of total estimated delegator rewards allocated to validator nodes for supporting delegations.
        - `startTimestamp` number, required
        - `endTimestamp` number, required
        - `blsCredentials` BlsCredentials
          - `publicKey` string, required
          - `proofOfPossession` string, required
        - `validationStatus` 'pending', required
        - `stakingType` 'fixed' | 'autoRenewed', required — Staking kind. `autoRenewed` type validators run in repeating cycles; for these the top-level startTimestamp/endTimestamp/amountStaked reflect the current cycle and compounded weight.
      - RemovedValidatorDetails
        - `txHash` string, required
        - `nodeId` string, required
        - `subnetId` string, required
        - `amountStaked` string, required
        - `delegationFee` string — The percentage of total estimated delegator rewards allocated to validator nodes for supporting delegations.
        - `startTimestamp` number, required
        - `endTimestamp` number, required
        - `stakingType` 'fixed' | 'autoRenewed', required — Staking kind. `autoRenewed` type validators run in repeating cycles; for these the top-level startTimestamp/endTimestamp/amountStaked reflect the current cycle and compounded weight.
        - `blsCredentials` BlsCredentials
          - `publicKey` string, required
          - `proofOfPossession` string, required
        - `removeTxHash` string, required — The transaction hash that removed the permissioned subnet validator.
        - `removeTimestamp` number, required — The timestamp of the transaction that removed the permissioned subnet validator.
        - `validationStatus` 'removed', required

## Other responses

- `400` — Bad requests generally mean the client has passed invalid or malformed parameters. Error messages in the response could help in evaluating the error.
- `401` — When a client attempts to access resources that require authorization credentials but the client lacks proper authentication in the request, the server responds with 401.
- `403` — When a client attempts to access resources with valid credentials but doesn't have the privilege to perform that action, the server responds with 403.
- `404` — The error is mostly returned when the client requests with either mistyped URL, or the passed resource is moved or deleted, or the resource doesn't exist.
- `429` — This error is returned when the client has sent too many, and has hit the rate limit.
- `500` — The error is a generic server side error that is returned for any uncaught and unexpected issues on the server side. This should be very rare, and you may reach out to us if the problem persists for a longer duration.
- `502` — This is an internal error indicating invalid response received by the client-facing proxy or gateway from the upstream server.
- `503` — The error is returned for certain routes on a particular Subnet. This indicates an internal problem with our Subnet node, and may not necessarily mean the Subnet is down or affected.

---

[API](https://skmtc.net/avax/apis/data-api.md) · [All operations](https://skmtc.net/avax/apis/data-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/avax/data-api/versions/745a94fa47f5/schema)
