---
title: "Preview multi-account abuse detector decisions"
method: GET
path: "/admin/billing/abuse-detector/review"
tags: ["Billing"]
---

# Preview multi-account abuse detector decisions

`GET /admin/billing/abuse-detector/review`

## Request

- Base URL: `https://api.crawlora.net/api/v1`
- URL: `https://api.crawlora.net/api/v1/admin/billing/abuse-detector/review`
- Auth: API key in header `x-api-key`

Admin-only read-only sweep with every candidate decision and full would-alert evidence. Never sends email, records alerts, or pushes metrics. A successful response with complete=false indicates degraded dependency checks and must not be treated as a completed review. No query parameters are accepted. One sweep per API process at a time; bounded to 150 seconds and cancelled when the caller disconnects.

## Headers

- `x-api-key` string, required

## Response `200`

OK

- AbusereviewReviewResponseDoc
  - `code` integer
  - `data` AbusedetectorReviewReport
    - `alerts_sent` integer
    - `candidate_clusters` integer
    - `complete` boolean
    - `completed_at` string
    - `decisions` AbusedetectorReviewDecision[]
      - `detail` string
      - `emails` string[]
      - `ips` string[]
      - `outcome` 'no_shared_endpoint_or_chaining' | 'infra_ip_independent_identity' | 'already_banned' | 'all_members_paid_subscribers' | 'already_alerted' | 'dedup_check_error' | 'dry_run_preview' | 'alerted'
      - `shared_endpoint` string
    - `dry_run` boolean
    - `recent_active_since` string
    - `started_at` string
    - `warnings` string[]
    - `would_alert` integer
  - `msg` string

## Other responses

- `400`: Bad Request
- `401`: Unauthorized
- `403`: Forbidden
- `429`: Too Many Requests
- `502`: Bad Gateway

---

[API](https://skmtc.dev/crawlora/apis/crawlora-api.md) · [All operations](https://skmtc.dev/crawlora/apis/crawlora-api/llms.txt) · [OpenAPI document](https://skmtc.dev/crawlora/apis/crawlora-api/revisions/afac9b012a27?raw)
