---
title: "Evaluate autopilot configuration"
method: POST
path: "/autopilot/config/evaluate"
tags: ["autopilot"]
---

# Evaluate autopilot configuration

`POST /autopilot/config/evaluate`

Evaluates the provided autopilot configuration and returns some information about the hosts that would be considered usable using that configuration. If possible, it also returns a recommendation for a better configuration that would allow for forming contracts with more hosts.

## Request body

- object
  - `autopilotConfig` AutopilotConfig
    - `enabled` boolean — Whether the autopilot is enabled
    - `contracts` ContractsConfig
      - `amount` integer — The minimum number of contracts to form
      - `period` integer — The length of a contract's period in blocks (1 block being 10 minutes on average)
      - `renewWindow` integer — The number of blocks before the end of a contract that a contract should be renewed
      - `download` integer — Expected download bandwidth used per period in bytes
      - `upload` integer — Expected upload bandwidth used per period in bytes
      - `storage` integer — Expected amount of data stored in bytes
      - `prune` boolean — Whether to automatically prune deleted data from contracts
    - `hosts` HostsConfig
      - `maxConsecutiveScanFailures` integer — The maximum number of consecutive scan failures before a host is removed from the database
      - `maxDowntimeHours` integer — The maximum number of hours a host can be offline before it is removed from the database
      - `minProtocolVersion` string — The minimum supported protocol version of a host to be considered good
  - `gougingSettings` GougingSettings
    - `maxRPCPrice` string — The maximum base price a host can charge per RPC
    - `maxContractPrice` string — The maximum price a host can charge for a contract formation
    - `maxDownloadPrice` string — The maximum price a host can charge for downloading in hastings / byte
    - `maxUploadPrice` string — The maximum price a host can charge for uploading in hastings / byte
    - `maxStoragePrice` string — The maximum price a host can charge for storage in hastings / byte / block
    - `hostBlockHeightLeeway` integer — The number of blocks a host's chain's height can diverge from our own before we stop using it
    - `minPriceTableValidity` integer — The time a host's price table should be valid after acquiring it in milliseconds
    - `minAccountExpiry` integer — The minimum amount of time an account on a host can be idle for before expiring
    - `minMaxEphemeralAccountBalance` string — The minimum max balance a host should allow us to fund an account with
  - `redundancySettings` RedundancySettings
    - `minShards` integer — The number of data shards a piece of an object gets erasure-coded into
    - `totalShards` integer — The number of total data shards a piece of an object gets erasure-coded into

## Response `200`

The evaluated autopilot configuration

- object
  - `hosts` integer — Number of hosts available
  - `usable` integer — Number of hosts that the autopilot could form contracts with using the provided config
  - `unusable` object
    - `blocked` integer — Number of hosts unavailable due to being blocklisted
    - `gouging` object
      - `contract` integer — Number of hosts that fail the contract gouging checks
      - `download` integer — Number of hosts that fail the download gouging checks
      - `gouging` integer — Number of hosts that fail the general gouging checks
      - `pruning` integer — Number of hosts that fail the pruning gouging checks
      - `upload` integer — Number of hosts that fail the upload gouging checks
    - `lowMaxDuration` integer — Number of hosts that have a max contract duration that is too low
    - `notAcceptingContracts` integer — Number of hosts that are not accepting contracts
    - `notScanned` integer — Number of hosts that haven't been successfully scanned yet
  - `recommendation` ConfigRecommendation
    - `gougingSettings` GougingSettings
      - `maxRPCPrice` string — The maximum base price a host can charge per RPC
      - `maxContractPrice` string — The maximum price a host can charge for a contract formation
      - `maxDownloadPrice` string — The maximum price a host can charge for downloading in hastings / byte
      - `maxUploadPrice` string — The maximum price a host can charge for uploading in hastings / byte
      - `maxStoragePrice` string — The maximum price a host can charge for storage in hastings / byte / block
      - `hostBlockHeightLeeway` integer — The number of blocks a host's chain's height can diverge from our own before we stop using it
      - `minPriceTableValidity` integer — The time a host's price table should be valid after acquiring it in milliseconds
      - `minAccountExpiry` integer — The minimum amount of time an account on a host can be idle for before expiring
      - `minMaxEphemeralAccountBalance` string — The minimum max balance a host should allow us to fund an account with

## Other responses

- `400` — Malformed request
- `500` — Internal server error

---

[API](https://skmtc.net/siafoundation/apis/renterd-api.md) · [All operations](https://skmtc.net/siafoundation/apis/renterd-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/siafoundation/renterd-api/revisions/184a3d5207da/schema)
