---
title: Director
summary: A Director is responsible for balancing requests among a group of Backends. In addition to simply balancing, Directors can be configured to attempt retrying failed requests. Additionally, Directors have a quorum setting which can be used to determine when the Director as a whole is considered "up", in order to prevent "server whack-a-mole" following an outage as servers come back up. Only directors created via the API can be modified via the API. Directors known as "autodirectors" that are created automatically when load balancing groups of servers together cannot be modified or retrieved via the API.
url: https://www.fastly.com/documentation/reference/api/load-balancing/directors/director
---

A Director is responsible for balancing requests among a group of Backends. In addition to simply balancing, Directors can be configured to attempt retrying failed requests. Additionally, Directors have a quorum setting which can be used to determine when the Director as a whole is considered "up", in order to prevent "server whack-a-mole" following an outage as servers come back up. Only directors created via the API can be modified via the API. Directors known as "autodirectors" that are created automatically when load balancing groups of servers together cannot be modified or retrieved via the API.

## Data model

| Field | Type | Description |
|-------|------|-------------|
| `backends` | array | List of backends associated to a director. |
| `capacity` | integer | Unused. |
| `comment` | string | A freeform descriptive note. |
| `name` | string | Name for the Director. |
| `quorum` | integer | The percentage of capacity that needs to be up for a director to be considered up. <code>0</code> to <code>100</code>. |
| `retries` | integer | How many backends to search if it fails. |
| `shield` | string | Selected POP to serve as a shield for the backends. Defaults to <code>null</code> meaning no origin shielding if not set. Refer to the <a href="https://www.fastly.com/documentation/reference/api/utils/pops/">POPs API endpoint</a> to get a list of available POPs used for shielding. |
| `type` | integer | What type of load balance group to use. |
| `created_at` | string | Date and time in ISO 8601 format. (Read-only) |
| `deleted_at` | string | Date and time in ISO 8601 format. (Read-only) |
| `service_id` | string | Alphanumeric string identifying the service. (Read-only) |
| `updated_at` | string | Date and time in ISO 8601 format. (Read-only) |
| `version` | integer | Integer identifying a service version. (Read-only) |

## API endpoints

### List directors

**GET** `/service/{service_id}/version/{version_id}/director`

List the directors for a particular service and version.

**Parameters:**

| Name | Type | In | Required | Description |
|------|------|----|---------|--------------|
| `service_id` | string | path | Yes | Alphanumeric string identifying the service. |
| `version_id` | integer | path | Yes | Integer identifying a service version. |

### Create a director

**POST** `/service/{service_id}/version/{version_id}/director`

Create a director for a particular service and version.

**Parameters:**

| Name | Type | In | Required | Description |
|------|------|----|---------|--------------|
| `service_id` | string | path | Yes | Alphanumeric string identifying the service. |
| `version_id` | integer | path | Yes | Integer identifying a service version. |

### Get a director

**GET** `/service/{service_id}/version/{version_id}/director/{director_name}`

Get the director for a particular service and version.

**Parameters:**

| Name | Type | In | Required | Description |
|------|------|----|---------|--------------|
| `director_name` | string | path | Yes | Name for the Director. |
| `service_id` | string | path | Yes | Alphanumeric string identifying the service. |
| `version_id` | integer | path | Yes | Integer identifying a service version. |

### Update a director

**PUT** `/service/{service_id}/version/{version_id}/director/{director_name}`

Update the director for a particular service and version.

**Parameters:**

| Name | Type | In | Required | Description |
|------|------|----|---------|--------------|
| `director_name` | string | path | Yes | Name for the Director. |
| `service_id` | string | path | Yes | Alphanumeric string identifying the service. |
| `version_id` | integer | path | Yes | Integer identifying a service version. |

### Delete a director

**DELETE** `/service/{service_id}/version/{version_id}/director/{director_name}`

Delete the director for a particular service and version.

**Parameters:**

| Name | Type | In | Required | Description |
|------|------|----|---------|--------------|
| `director_name` | string | path | Yes | Name for the Director. |
| `service_id` | string | path | Yes | Alphanumeric string identifying the service. |
| `version_id` | integer | path | Yes | Integer identifying a service version. |

