---
title: ACL
summary: >-
  An access control list or "ACL" specifies individual IP addresses or subnet
  ranges and can be accessed and used from Fastly VCL.
url: https://www.fastly.com/documentation/reference/api/acls/acl
---

An access control list or "ACL" specifies individual IP addresses or subnet ranges and can be accessed and used from Fastly VCL.

## Data model

| Field | Type | Description |
|-------|------|-------------|
| `name` | string | Name for the ACL. Must start with an alphanumeric character and contain only alphanumeric characters, underscores, and whitespace. |
| `created_at` | string | Date and time in ISO 8601 format. (Read-only) |
| `deleted_at` | string | Date and time in ISO 8601 format. (Read-only) |
| `id` | string | Alphanumeric string identifying a ACL. (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` | string | String representing the number identifying a version of the service. (Read-only) |

## API endpoints

### List ACLs

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

List ACLs.

**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 new ACL

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

Create a new ACL attached to the specified service version. A new, empty ACL must be attached to a draft version of a service. The version associated with the ACL must be activated to be used.

**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. |

### Describe an ACL

**GET** `/service/{service_id}/version/{version_id}/acl/{acl_name}`

Retrieve a single ACL by name for the version and service.

**Parameters:**

| Name | Type | In | Required | Description |
|------|------|----|---------|--------------|
| `acl_name` | string | path | Yes | Name for the ACL. Must start with an alphanumeric character and contain only alphanumeric characters, underscores, and whitespace. |
| `service_id` | string | path | Yes | Alphanumeric string identifying the service. |
| `version_id` | integer | path | Yes | Integer identifying a service version. |

### Update an ACL

**PUT** `/service/{service_id}/version/{version_id}/acl/{acl_name}`

Update an ACL for a particular service and version.

**Parameters:**

| Name | Type | In | Required | Description |
|------|------|----|---------|--------------|
| `acl_name` | string | path | Yes | Name for the ACL. Must start with an alphanumeric character and contain only alphanumeric characters, underscores, and whitespace. |
| `service_id` | string | path | Yes | Alphanumeric string identifying the service. |
| `version_id` | integer | path | Yes | Integer identifying a service version. |

### Delete an ACL

**DELETE** `/service/{service_id}/version/{version_id}/acl/{acl_name}`

Delete an ACL from the specified service version. To remove an ACL from use, the ACL must be deleted from a draft version and the version without the ACL must be activated.

**Parameters:**

| Name | Type | In | Required | Description |
|------|------|----|---------|--------------|
| `acl_name` | string | path | Yes | Name for the ACL. Must start with an alphanumeric character and contain only alphanumeric characters, underscores, and whitespace. |
| `service_id` | string | path | Yes | Alphanumeric string identifying the service. |
| `version_id` | integer | path | Yes | Integer identifying a service version. |
