## Request review on mitigations `client.AbuseReports.Mitigations.Review(ctx, reportID, params) (*SinglePage[MitigationReviewResponse], error)` **post** `/accounts/{account_id}/abuse-reports/{report_id}/mitigations/appeal` Request a review for mitigations on an account. ### Parameters - `reportID string` - `params MitigationReviewParams` - `AccountID param.Field[string]` Path param: Cloudflare Account ID - `Appeals param.Field[[]MitigationReviewParamsAppeal]` Body param: List of mitigations to appeal. - `ID string` ID of the mitigation to appeal. - `Reason MitigationReviewParamsAppealsReason` Reason why the customer is appealing. - `const MitigationReviewParamsAppealsReasonRemoved MitigationReviewParamsAppealsReason = "removed"` - `const MitigationReviewParamsAppealsReasonMisclassified MitigationReviewParamsAppealsReason = "misclassified"` - `Data param.Field[MitigationReviewParamsData]` Body param: Counter-notice details supporting an appeal. - `City string` - `Country string` - `Email string` - `FullName string` - `JurisdictionConsent bool` - `PerjuryAttestation bool` - `PhoneNumber string` - `Signature string` - `State string` - `StreetAddress string` - `URLs []string` - `ZipCode string` - `Company string` - `CounterNoticeResponse string` - `Type param.Field[MitigationReviewParamsType]` Body param: The type of appeal being submitted. - `const MitigationReviewParamsTypeCounterNotice MitigationReviewParamsType = "counter_notice"` - `const MitigationReviewParamsTypeContentRemoved MitigationReviewParamsType = "content_removed"` ### Returns - `type MitigationReviewResponse struct{…}` - `ID string` ID of remediation. - `EffectiveDate string` Date when the mitigation will become active. Time in RFC 3339 format (https://www.rfc-editor.org/rfc/rfc3339.html) - `EntityID string` - `EntityType MitigationReviewResponseEntityType` The type of entity targeted by a mitigation. - `const MitigationReviewResponseEntityTypeURLPattern MitigationReviewResponseEntityType = "url_pattern"` - `const MitigationReviewResponseEntityTypeAccount MitigationReviewResponseEntityType = "account"` - `const MitigationReviewResponseEntityTypeZone MitigationReviewResponseEntityType = "zone"` - `Status MitigationReviewResponseStatus` The status of a mitigation - `const MitigationReviewResponseStatusPending MitigationReviewResponseStatus = "pending"` - `const MitigationReviewResponseStatusActive MitigationReviewResponseStatus = "active"` - `const MitigationReviewResponseStatusInReview MitigationReviewResponseStatus = "in_review"` - `const MitigationReviewResponseStatusCancelled MitigationReviewResponseStatus = "cancelled"` - `const MitigationReviewResponseStatusRemoved MitigationReviewResponseStatus = "removed"` - `Type MitigationReviewResponseType` The type of mitigation applied to a reported entity. - `const MitigationReviewResponseTypeAccountSuspend MitigationReviewResponseType = "account_suspend"` - `const MitigationReviewResponseTypeCopyrightInterstitial MitigationReviewResponseType = "copyright_interstitial"` - `const MitigationReviewResponseTypeGeoBlock MitigationReviewResponseType = "geo_block"` - `const MitigationReviewResponseTypeLegalBlock MitigationReviewResponseType = "legal_block"` - `const MitigationReviewResponseTypeMalwareInterstitial MitigationReviewResponseType = "malware_interstitial"` - `const MitigationReviewResponseTypeMisleadingInterstitial MitigationReviewResponseType = "misleading_interstitial"` - `const MitigationReviewResponseTypeNetworkBlock MitigationReviewResponseType = "network_block"` - `const MitigationReviewResponseTypePhishingInterstitial MitigationReviewResponseType = "phishing_interstitial"` - `const MitigationReviewResponseTypePlayfairiteEnforce MitigationReviewResponseType = "playfairite_enforce"` - `const MitigationReviewResponseTypeR2TakedownAccount MitigationReviewResponseType = "r2_takedown_account"` - `const MitigationReviewResponseTypeR2TakedownBucket MitigationReviewResponseType = "r2_takedown_bucket"` - `const MitigationReviewResponseTypeR2TakedownObject MitigationReviewResponseType = "r2_takedown_object"` - `const MitigationReviewResponseTypeRateLimitCache MitigationReviewResponseType = "rate_limit_cache"` - `const MitigationReviewResponseTypeRedirectVideoStream MitigationReviewResponseType = "redirect_video_stream"` - `const MitigationReviewResponseTypeZoneFint MitigationReviewResponseType = "zone_fint"` - `const MitigationReviewResponseTypeRegistrarFreeze MitigationReviewResponseType = "registrar_freeze"` - `const MitigationReviewResponseTypeRegistrarParking MitigationReviewResponseType = "registrar_parking"` - `const MitigationReviewResponseTypeStreamBlockAccount MitigationReviewResponseType = "stream_block_account"` - `const MitigationReviewResponseTypeUserSuspend MitigationReviewResponseType = "user_suspend"` - `const MitigationReviewResponseTypeWorkersTakedownByZoneID MitigationReviewResponseType = "workers_takedown_by_zone_id"` ### Example ```go package main import ( "context" "fmt" "github.com/cloudflare/cloudflare-go" "github.com/cloudflare/cloudflare-go/abuse_reports" "github.com/cloudflare/cloudflare-go/option" ) func main() { client := cloudflare.NewClient( option.WithAPIToken("Sn3lZJTBX6kkg7OdcBUAxOO963GEIyGQqnFTOFYY"), ) page, err := client.AbuseReports.Mitigations.Review( context.TODO(), "report_id", abuse_reports.MitigationReviewParams{ AccountID: cloudflare.F("023e105f4ecef8ad9ca31a8372d0c353"), }, ) if err != nil { panic(err.Error()) } fmt.Printf("%+v\n", page) } ``` #### Response ```json { "result_info": { "count": 0, "page": 0, "per_page": 0, "total_count": 0, "total_pages": 0 }, "success": true, "errors": [ { "message": "message" } ], "messages": [ { "message": "message" } ], "result": [ { "id": "id", "effective_date": "2009-11-10T23:00:00Z", "entity_id": "entity_id", "entity_type": "url_pattern", "status": "pending", "type": "account_suspend" } ] } ```