# OAuth Scopes ## List OAuth Scopes `client.IAM.OAuthScopes.List(ctx) (*SinglePage[OAuthScopeListResponse], error)` **get** `/oauth/scopes` List all available OAuth scopes. This endpoint requires authentication but has no authorization role requirements. ### Returns - `type OAuthScopeListResponse struct{…}` An available OAuth scope that can be assigned to an OAuth client. - `ID string` The scope label to use in the scopes array when creating or updating an OAuth client. - `Name string` Human-readable name of the OAuth scope. - `Category string` Category for grouping scopes in the UI. - `Scopes []string` The underlying resource scopes (Bach scopes) that define which resources this OAuth scope can act upon. ### Example ```go package main import ( "context" "fmt" "github.com/cloudflare/cloudflare-go" "github.com/cloudflare/cloudflare-go/option" ) func main() { client := cloudflare.NewClient( option.WithAPIToken("Sn3lZJTBX6kkg7OdcBUAxOO963GEIyGQqnFTOFYY"), ) page, err := client.IAM.OAuthScopes.List(context.TODO()) 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" } } ], "success": true, "result": [ { "id": "account.read", "name": "Account Read", "category": "account_and_billing", "scopes": [ "com.cloudflare.api.account" ] } ], "result_info": { "count": 1, "page": 1, "per_page": 20, "total_count": 2000 } } ```