# WAF rules
## List WAF rules
**GET** `/zones/{zone_id}/firewall/waf/packages/{package_id}/rules`
Fetches WAF rules in a WAF package.
**Note:** Applies only to the [previous version of WAF managed rules](https://developers.cloudflare.com/support/firewall/managed-rules-web-application-firewall-waf/understanding-waf-managed-rules-web-application-firewall/).
### Responses
#### 200 List WAF rules response.
> Data is at `body["result"]`
```json
[
null
]
```
#### 4XX List WAF rules response failure.
```json
{
"errors": [
{
"code": "*integer*",
"message": "*string*"
}
],
"messages": [
{
"code": "*integer*",
"message": "*string*"
}
],
"result": {},
"result_info": {
"count": "*number*",
"page": "*number*",
"per_page": "*number*",
"total_count": "*number*"
},
"success": "*boolean*"
}
```
## Update a WAF rule
**PATCH** `/zones/{zone_id}/firewall/waf/packages/{package_id}/rules/{rule_id}`
Updates a WAF rule. You can only update the mode/action of the rule.
**Note:** Applies only to the [previous version of WAF managed rules](https://developers.cloudflare.com/support/firewall/managed-rules-web-application-firewall-waf/understanding-waf-managed-rules-web-application-firewall/).
### Responses
#### 200 Update a WAF rule response.
> Data is at `body["result"]`
```json
null
```
#### 4XX Update a WAF rule response failure.
```json
{
"errors": [
{
"code": "*integer*",
"message": "*string*"
}
],
"messages": [
{
"code": "*integer*",
"message": "*string*"
}
],
"result": {},
"success": "*boolean*"
}
```
## Get a WAF rule
**GET** `/zones/{zone_id}/firewall/waf/packages/{package_id}/rules/{rule_id}`
Fetches the details of a WAF rule in a WAF package.
**Note:** Applies only to the [previous version of WAF managed rules](https://developers.cloudflare.com/support/firewall/managed-rules-web-application-firewall-waf/understanding-waf-managed-rules-web-application-firewall/).
### Responses
#### 200 Get a WAF rule response.
> Data is at `body["result"]`
```json
{}
```
#### 4XX Get a WAF rule response failure.
```json
{
"errors": [
{
"code": "*integer*",
"message": "*string*"
}
],
"messages": [
{
"code": "*integer*",
"message": "*string*"
}
],
"result": {},
"success": "*boolean*"
}
```