code: func (api *API) CustomPages(options *CustomPageOptions) ([]CustomPage, error) {
  	var (
  		pageType, identifier string
  	)
  
  	if options.AccountID == "" && options.ZoneID == "" {
  		return nil, errors.New("either account ID or zone ID must be provided")
  	}
  
  	if options.AccountID != "" && options.ZoneID != "" {
  		return nil, errors.New("account ID and zone ID are mutually exclusive")
  	}
  
  	// Should the account ID be defined, treat this as an account level operation.
  	if options.AccountID != "" {
  		pageType = "accounts"
  		identifier = options.AccountID
  	} else {
  		pageType = "zones"
  		identifier = options.ZoneID
  	}
  
  	uri := fmt.Sprintf("/%s/%s/custom_pages", pageType, identifier)
  
  	res, err := api.makeRequest("GET", uri, nil)
  	if err != nil {
  		return nil, errors.Wrap(err, errMakeRequestError)
  	}
  
  	var customPageResponse CustomPageResponse
  	err = json.Unmarshal(res, &customPageResponse)
  	if err != nil {
  		return nil, errors.Wrap(err, errUnmarshalError)
  	}
  
  	return customPageResponse.Result, nil
  }
docs: // CustomPages lists custom pages for a zone or account.
  //
  // Zone API reference: https://api.cloudflare.com/#custom-pages-for-a-zone-list-available-custom-pages
  // Account API reference: https://api.cloudflare.com/#custom-pages-account--list-custom-pages