# Validators

## All validators

Receive a JSON object of all current validators, sorted by Wiz Score descending.

<mark style="color:blue;">`GET`</mark> `https://api.stakewiz.com/validators`

The list includes validators that have voted at least once this epoch or have non-zero active stake.

#### Query Parameters

| Name  | Type   | Description                                                                                               |
| ----- | ------ | --------------------------------------------------------------------------------------------------------- |
| sort  | String | takes most values as sort column, sorts ascending, prepend a minus to sort descending (e.g. -created\_at) |
| limit | String | Returns all validators by default, can be limited                                                         |

{% tabs %}
{% tab title="200 " %}

```javascript
[
    {
        "rank": 144,
        "identity": "LA1NEzryoih6CQW3gwQqJQffK2mKgnXcjSQZSRpM3wc",
        "vote_identity": "GE6atKoWiQ2pt3zL7N13pjNHjdLVys8LinG8qeJLcAiL",
        "last_vote": 140443868,
        "root_slot": 140443835,
        "credits": 39353597,
        "epoch_credits": 33802,
        "activated_stake": 5515852.324715695,
        "version": "1.10.26",
        "delinquent": false,
        "skip_rate": 15.350877192982,
        "updated_at": "2022-07-06 11:16:06.429249+00",
        "first_epoch_with_stake": 216,
        "name": "Laine \u2764\ufe0f stakewiz.com",
        "keybase": "laine_sa",
        "description": "Join our Discord at https:\/\/discord.gg\/3JXdTavv6x. We are a professional high-performance validator running on decentralized enterprise hardware. Available to answer any questions you have.",
        "website": "https:\/\/laine.co.za\/solana",
        "commission": 5,
        "image": "https:\/\/s3.amazonaws.com\/keybase_processed_uploads\/22db82203d02b0d0dd8dbbca00bb9b05_360_360.jpg",
        "ip_latitude": "50.1109221",
        "ip_longitude": "8.6821267",
        "ip_city": "Frankfurt",
        "ip_country": "Germany",
        "ip_asn": "AS54825",
        "ip_org": "Packet Host, Inc.",
        "mod": false,
        "is_jito": true,
        "jito_commission_bps": 800,
        "vote_success": 76.99,
        "vote_success_score": 15.4,
        "skip_rate_score": 2.25,
        "info_score": 10,
        "commission_score": 5,
        "first_epoch_distance": 109,
        "epoch_distance_score": 10,
        "stake_weight": 1.4,
        "above_halt_line": true,
        "stake_weight_score": 0,
        "withdraw_authority_score": 0,
        "asn": "AS54825",
        "asn_concentration": 4.98,
        "asn_concentration_score": -1.01,
        "uptime": 99.88,
        "uptime_score": 13.26,
        "wiz_score": 33.37,
        "version_valid": true,
        "city_concentration": 2.06,
        "city_concentration_score": -0.92,
        "invalid_version_score": 0,
        "superminority_penalty": -20,
        "score_version": 24,
        "no_voting_override": false,
        "epoch": 325,
        "epoch_slot_height": 43744,
        "asncity_concentration": 1.4,
        "asncity_concentration_score": -0.62,
        "stake_ratio": 0.5507,
        "credit_ratio": 77,
        "apy_estimate": 5.46
    },
    [...]
]
```

{% endtab %}
{% endtabs %}

{% hint style="info" %}
**Good to know:** The data is updated every minute and is cached on our side. The total response size ranges between 2.5-3MB. We recommend limiting how frequently you call this method within a page to avoid bad user experience.
{% endhint %}

## Specific validator

Receive a JSON object with data about a single validator.

<mark style="color:blue;">`GET`</mark> `https://api.stakewiz.com/validator/{VOTE_IDENTITY}`

Specify the vote account public key of the validator you wish to retrieve.

#### Query Parameters

| Name | Type   | Description                                                                                                      |
| ---- | ------ | ---------------------------------------------------------------------------------------------------------------- |
| sort | String | takes most return values as sort column, sorts ascending, prepend a minus to sort descending (e.g. -created\_at) |

{% tabs %}
{% tab title="200: OK " %}

```javascript
{
    "rank": 144,
    "identity": "LA1NEzryoih6CQW3gwQqJQffK2mKgnXcjSQZSRpM3wc",
    "vote_identity": "GE6atKoWiQ2pt3zL7N13pjNHjdLVys8LinG8qeJLcAiL",
    "last_vote": 140443868,
    "root_slot": 140443835,
    "credits": 39353597,
    "epoch_credits": 33802,
    "activated_stake": 5515852.324715695,
    "version": "1.10.26",
    "delinquent": false,
    "skip_rate": 15.350877192982,
    "updated_at": "2022-07-06 11:16:06.429249+00",
    "first_epoch_with_stake": 216,
    "name": "Laine \u2764\ufe0f stakewiz.com",
    "keybase": "laine_sa",
    "description": "Join our Discord at https:\/\/discord.gg\/3JXdTavv6x. We are a professional high-performance validator running on decentralized enterprise hardware. Available to answer any questions you have.",
    "website": "https:\/\/laine.co.za\/solana",
    "commission": 5,
    "image": "https:\/\/s3.amazonaws.com\/keybase_processed_uploads\/22db82203d02b0d0dd8dbbca00bb9b05_360_360.jpg",
    "ip_latitude": "50.1109221",
    "ip_longitude": "8.6821267",
    "ip_city": "Frankfurt",
    "ip_country": "Germany",
    "ip_asn": "AS54825",
    "ip_org": "Packet Host, Inc.",
    "mod": false,
    "is_jito": true,
    "jito_commission_bps": 800,
    "vote_success": 76.99,
    "vote_success_score": 15.4,
    "skip_rate_score": 2.25,
    "info_score": 10,
    "commission_score": 5,
    "first_epoch_distance": 109,
    "epoch_distance_score": 10,
    "stake_weight": 1.4,
    "above_halt_line": true,
    "stake_weight_score": 0,
    "withdraw_authority_score": 0,
    "asn": "AS54825",
    "asn_concentration": 4.98,
    "asn_concentration_score": -1.01,
    "uptime": 99.88,
    "uptime_score": 13.26,
    "wiz_score": 33.37,
    "version_valid": true,
    "city_concentration": 2.06,
    "city_concentration_score": -0.92,
    "invalid_version_score": 0,
    "superminority_penalty": -20,
    "score_version": 24,
    "no_voting_override": false,
    "epoch": 325,
    "epoch_slot_height": 43744,
    "asncity_concentration": 1.4,
    "asncity_concentration_score": -0.62,
    "stake_ratio": 0.5507,
    "credit_ratio": 77,
    "apy_estimate": 5.46
}
```

{% endtab %}
{% endtabs %}

{% hint style="info" %}
**Good to know:** All data on the Stakewiz API is indexed by vote account, not validator identity.
{% endhint %}

## Validator delinquencies

Receive an array of the validator

<mark style="color:blue;">`GET`</mark> `https://api.stakewiz.com/validator_delinquencies/{VOTE_IDENTITY}`

Delinquent minutes are rounded to the nearest full minute and grouped by UTC day.

#### Query Parameters

| Name  | Type   | Description                                                                                                |
| ----- | ------ | ---------------------------------------------------------------------------------------------------------- |
| sort  | String | takes delinquent\_minutes or date, sorts ascending, prepend a minus to sort descending (e.g. -created\_at) |
| limit | String | Default return data is 30 days, can be limited to lower number of days with this parameter                 |

{% tabs %}
{% tab title="200: OK " %}

```javascript
[
    {
        "delinquent_minutes": "17",
        "date": "2022-06-14"
    },
    {
        "delinquent_minutes": "0",
        "date": "2022-06-13"
    },
    {
        "delinquent_minutes": "1",
        "date": "2022-06-12"
    },
    {
        "delinquent_minutes": "1",
        "date": "2022-06-10"
    },
    {
        "delinquent_minutes": "3",
        "date": "2022-06-09"
    },
    {
        "delinquent_minutes": "1",
        "date": "2022-06-08"
    },
    {
        "delinquent_minutes": "1",
        "date": "2022-06-07"
    }
]
```

{% endtab %}
{% endtabs %}

## Validator total stake per epoch

Receive a JSON object of the validator

<mark style="color:blue;">`GET`</mark> `https://api.stakewiz.com/validator_total_stakes/{VOTE_IDENTITY}`

Values are in SOL, ordered by epoch descending.

#### Query Parameters

| Name  | Type   | Description                                                                                                |
| ----- | ------ | ---------------------------------------------------------------------------------------------------------- |
| sort  | String | takes epoch, stake or created\_at, sorts ascending, prepend a minus to sort descending (e.g. -created\_at) |
| limit | String | Default return data is 30 epochs, can be changed this parameter                                            |

{% tabs %}
{% tab title="200: OK " %}

```javascript
[
    {
        "epoch": 325,
        "stake": 5515852.324715695
    },
    {
        "epoch": 324,
        "stake": 5511295.80789125
    },
    {
        "epoch": 323,
        "stake": 5501722.340971882
    },
    [...]
]
```

{% endtab %}
{% endtabs %}

## Validator stake changes (this epoch)

Receive a JSON Object with the validator

<mark style="color:blue;">`GET`</mark> `https://api.stakewiz.com/validator_epoch_stakes/{VOTE_IDENTITY}`

Return total activating stake, total deactivating stake as well as the number of activating and deactivating stake accounts.

{% tabs %}
{% tab title="200: OK " %}

```javascript
[
    {
        "activating_stake": "176.200128326",
        "activating_count": 6,
        "deactivating_stake": "337.042753336",
        "deactivating_count": 3
    }
]
```

{% endtab %}
{% endtabs %}

## Validator stake changes with accounts (current epoch)

Receive a JSON Object with changing stake accounts for this epoch.

<mark style="color:blue;">`GET`</mark> `https://api.stakewiz.com/validator_epoch_stakes/{VOTE_IDENTITY}`

Returns the total activating and deactivating stake and number of stake accounts as well as the individual stake accounts.

{% tabs %}
{% tab title="200: OK " %}

```json
{
    "activating": {
        "amount": 759.139385877,
        "count": 9,
        "stake_accounts": [
            {
                "pubkey": "HXH6XAJvxdj8enQcjsxLghpB8HiXjicaapVCX77Lznvj",
                "delegated_amount": "1.997717120",
                "activation_epoch": 458,
                "deactivation_epoch": 0
            },
           [...]
        ]
    },
    "deactivating": {
        "amount": 5019.019712812999,
        "count": 6,
        "stake_accounts": [
            {
                "pubkey": "CKf9mwZ3P9TUSLzGTT3uDZcRsDD6xgL7pkB27N6Qc2jr",
                "delegated_amount": "0.000000451",
                "activation_epoch": 220,
                "deactivation_epoch": 458
            },
            [...]
        ]
    }
}
```

{% endtab %}
{% endtabs %}

## Validator stake accounts

Get all stake accounts for a validator, includes deactivated stakes.&#x20;

<mark style="color:blue;">`GET`</mark> `https://api.stakewiz.com/validator_stakes/{VOTE_IDENTITY}`

#### Query Parameters

| Name  | Type   | Description                                                                                                                               |
| ----- | ------ | ----------------------------------------------------------------------------------------------------------------------------------------- |
| sort  | String | takes wiz\_score, avg\_wiz\_score, score\_version or created\_at, sorts ascending, prepend a minus to sort descending (e.g. -created\_at) |
| limit | String | Default return data is 30 days, can be limited to number of values with this parameter                                                    |

{% tabs %}
{% tab title="200: OK " %}

```javascript
[
    {
        "pubkey": "...",
        "delegated_to": "...",
        "balance": 125005371,
        "credits_observed": 39319795,
        "delegated_stake": 111722491,
        "activation_epoch": 252,
        "stake_authority": "...",
        "withdraw_authority": "...",
        "rent_exempt_reserve": 2282880,
        "active_stake": 111722491,
        "created_at": "2021-12-14 22:25:51.128813+00",
        "updated_at": "2022-07-06 12:04:06.99867+00",
        "deactivation_epoch": 0
    },
    ...
]
```

{% endtab %}
{% endtabs %}

## Validator historic Wiz Scores (30 days)

Get all validator wiz scores for the past 30 days

<mark style="color:blue;">`GET`</mark> `https://api.stakewiz.com/validator_wiz_scores/{VOTE_IDENTITY}`

{% tabs %}
{% tab title="200: OK " %}

```javascript
[
    {
        "wiz_score": "0.34105629915025",
        "avg_wiz_score": "0.37400066267243764",
        "created_at": "2022-07-06 12:05:05.35186+00",
        "score_version": 24
    },
    {
        "wiz_score": "0.34139202987286",
        "avg_wiz_score": "0.37413417148884576",
        "created_at": "2022-07-06 12:00:07.409659+00",
        "score_version": 24
    },
    {
        "wiz_score": "0.33584351685902",
        "avg_wiz_score": "0.3742660265227513",
        "created_at": "2022-07-06 11:55:05.392334+00",
        "score_version": 24
    },
    {
        "wiz_score": "0.33565442502329",
        "avg_wiz_score": "0.3744172407367429",
        "created_at": "2022-07-06 11:50:04.848568+00",
        "score_version": 24
    },
    {
        "wiz_score": "0.33737594839354",
        "avg_wiz_score": "0.3745686764086684",
        "created_at": "2022-07-06 11:45:05.344011+00",
        "score_version": 24
    },
    ...
]
```

{% endtab %}
{% endtabs %}

{% hint style="info" %}
**Good to know:** The historic wiz scores include the cluster average for each data point for comparison.
{% endhint %}

## Validator historic vote success (30 days)

Get vote success rates for the past 30 days

<mark style="color:blue;">`GET`</mark> `https://api.stakewiz.com/validator_vote_success/{VOTE_IDENTITY}`

#### Query Parameters

| Name  | Type   | Description                                                                                                 |
| ----- | ------ | ----------------------------------------------------------------------------------------------------------- |
| sort  | String | takes vote\_success or created\_at, sorts ascending, prepend a minus to sort descending (e.g. -created\_at) |
| limit | String | Default return data is 30 days, can be limited to number of values with this parameter                      |

{% tabs %}
{% tab title="200: OK " %}

```json
[
    {
        "vote_success": "0.94580298364118",
        "created_at": "2023-06-07 11:35:27.434722+00"
    },
    {
        "vote_success": "0.9457769685846",
        "created_at": "2023-06-07 11:30:29.726574+00"
    },
    {
        "vote_success": "0.94589480254896",
        "created_at": "2023-06-07 11:25:25.463367+00"
    },
    [...]
]
```

{% endtab %}
{% endtabs %}

## Validator historic skip rate (30 days)

Get skip rate for the past 30 days

<mark style="color:blue;">`GET`</mark> `https://api.stakewiz.com/validator_skip_rate/{VOTE_IDENTITY}`

#### Query Parameters

| Name  | Type   | Description                                                                                              |
| ----- | ------ | -------------------------------------------------------------------------------------------------------- |
| sort  | String | takes skip\_rate or created\_at, sorts ascending, prepend a minus to sort descending (e.g. -created\_at) |
| limit | String | Default return data is 30 days, can be limited to number of values with this parameter                   |

{% tabs %}
{% tab title="200: OK " %}

```json
[
    {
        "skip_rate": "0.95238095238095",
        "created_at": "2023-06-07 11:40:31.453009+00"
    },
    {
        "skip_rate": "0.95238095238095",
        "created_at": "2023-06-07 11:35:27.434722+00"
    },
    {
        "skip_rate": "0.95238095238095",
        "created_at": "2023-06-07 11:30:29.726574+00"
    },
    [...]
]
```

{% endtab %}
{% endtabs %}


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.stakewiz.com/reference/api-reference/validators.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
