# 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 %}
