## List User Agent Blocking rules `client.Firewall.UARules.List(ctx, params) (*V4PagePaginationArray[UARuleListResponse], error)` **get** `/zones/{zone_id}/firewall/ua_rules` Fetches User Agent Blocking rules in a zone. You can filter the results using several optional parameters. ### Parameters - `params UARuleListParams` - `ZoneID param.Field[string]` Path param: Defines an identifier. - `Description param.Field[string]` Query param: A string to search for in the description of existing rules. - `Page param.Field[float64]` Query param: Page number of paginated results. - `Paused param.Field[bool]` Query param: When true, indicates that the rule is currently paused. - `PerPage param.Field[float64]` Query param: The maximum number of results per page. You can only set the value to `1` or to a multiple of 5 such as `5`, `10`, `15`, or `20`. - `UserAgent param.Field[string]` Query param: A string to search for in the user agent values of existing rules. ### Returns - `type UARuleListResponse struct{…}` - `ID string` The unique identifier of the User Agent Blocking rule. - `Configuration UARuleListResponseConfiguration` The configuration object for the current rule. - `Target string` The configuration target for this rule. You must set the target to `ua` for User Agent Blocking rules. - `Value string` The exact user agent string to match. This value will be compared to the received `User-Agent` HTTP header value. - `Description string` An informative summary of the rule. - `Mode UARuleListResponseMode` The action to apply to a matched request. - `const UARuleListResponseModeBlock UARuleListResponseMode = "block"` - `const UARuleListResponseModeChallenge UARuleListResponseMode = "challenge"` - `const UARuleListResponseModeJSChallenge UARuleListResponseMode = "js_challenge"` - `const UARuleListResponseModeManagedChallenge UARuleListResponseMode = "managed_challenge"` - `Paused bool` When true, indicates that the rule is currently paused. ### Example ```go package main import ( "context" "fmt" "github.com/cloudflare/cloudflare-go" "github.com/cloudflare/cloudflare-go/firewall" "github.com/cloudflare/cloudflare-go/option" ) func main() { client := cloudflare.NewClient( option.WithAPIToken("Sn3lZJTBX6kkg7OdcBUAxOO963GEIyGQqnFTOFYY"), ) page, err := client.Firewall.UARules.List(context.TODO(), firewall.UARuleListParams{ ZoneID: cloudflare.F("023e105f4ecef8ad9ca31a8372d0c353"), }) if err != nil { panic(err.Error()) } fmt.Printf("%+v\n", page) } ``` #### Response ```json { "errors": [ { "code": 1000, "message": "message", "documentation_url": "documentation_url", "source": { "pointer": "pointer" } } ], "messages": [ { "code": 1000, "message": "message", "documentation_url": "documentation_url", "source": { "pointer": "pointer" } } ], "result": [ { "id": "372e67954025e0ba6aaa6d586b9e0b59", "configuration": { "target": "ua", "value": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_5) AppleWebKit/603.2.4 (KHTML, like Gecko) Version/10.1.1 Safari/603.2.4" }, "description": "Prevent access from abusive clients identified by this User Agent to mitigate a DDoS attack", "mode": "js_challenge", "paused": false } ], "success": true, "result_info": { "count": 1, "page": 1, "per_page": 20, "total_count": 2000 } } ```