---
title: "Abuse reports"
description: "Abuse reports: available fields, filters, associations, and API operations."
lastModified: "2026-08-21"
---

**Path:** `events/{event_id}/abuse-reports`  
**Methods:** GET collection/record, POST, PATCH. There is no DELETE operation.

**GET**

- Fields: `event-id`, `first-name`, `last-name`, `email`, `created-at`, `updated-at`, `reported-registrant-id`, `report-count`, `latest-report-at`.  
- Filters: `reported_registrant_id`, `reporting_registrant_id`, `status`, `created_from`, `created_to`.  
- Sorts: `latest_instance`, `report_count`.  
- Association: request `include=abuse_report_instances`; the response relationship is `reports` with `reporting-registrant-id`, `first-name`, `last-name`, `email`, `status`, `reason`, `created-at`, and `updated-at`.

```
GET .../abuse-reports?status=open&sort=latest_instance&include=abuse_report_instances
```

**POST** requires `reported_registrant_id` and `reporting_registrant_id`; `reason` is optional at the wrapper level:

```json
{
  "reported_registrant_id": 1201,
  "reporting_registrant_id": 1202,
  "reason": "Unwanted contact"
}
```

Both registrants must belong to the URL event and have Brella users. Repeated reporting of the same user updates the existing parent report rather than creating an unrelated duplicate.

**PATCH** supports `status`:

```json
{ "status": "solved" }
```

Only `archived` and `solved` are accepted update statuses; the update applies to all instances represented by the parent report.
