---
title: "List brand competitor review items"
method: GET
path: "/api/admin/brand-competitors/review-items"
tags: ["Brand Competitors"]
---

# List brand competitor review items

`GET /api/admin/brand-competitors/review-items`

## Request

- Base URL: `https://api.sponsorunited.com` (the document declares no server; this is the origin it was published from)
- URL: `https://api.sponsorunited.com/api/admin/brand-competitors/review-items`
- Auth: HTTP bearer
- TypeScript: <https://skmtc.dev/sponsorunited/apis/sponsorunited-api/docs/api/admin/brand-competitors/review-items/get.ts> (a function with typed inputs; its response is checked against the schema)

Paginated list of review items produced by the brand-competitor matching pipeline. Requires approve-company permission.

## Query parameters

- `status` 'pending' | 'approved' | 'rejected' | 'superseded'
- `source_brand_id` integer
- `q` string
- `order_by` 'last_seen_at' | 'first_seen_at' | 'suggested_score'
- `order_direction` 'asc' | 'desc'
- `page` integer
- `per_page` integer

## Response `200`

Paginated review items.

- object
  - `current_page` integer
  - `data` BrandCompetitorReviewItemResource[]
    - `id` integer
    - `raw_competitor_name` string
    - `normalized_name` string
    - `suggested_score` integer, nullable
    - `status` 'pending' | 'approved' | 'rejected' | 'superseded'
    - `rejection_reason` 'not_a_brand' | 'not_on_platform' | 'scraper_noise' | 'other', nullable
    - `note` string, nullable
    - `ingestion_run_id` string, nullable
    - `first_seen_at` string, date-time
    - `last_seen_at` string, date-time
    - `resolved_at` string, date-time, nullable
    - `source_brand` object
      - `id` integer
      - `name` string
      - `logo` string, nullable
    - `suggested_target` object, nullable
      - `id` integer
      - `name` string
      - `logo` string, nullable
    - `resolution_brand` object, nullable
      - `id` integer
      - `name` string
      - `logo` string, nullable
    - `resolved_by` object, nullable
      - `id` integer
      - `name` string, nullable
      - `email` string, nullable
    - `candidates` object[]: Re-hydrated from candidates_payload using the current companies state.
      - `id` integer
      - `name` string
      - `logo` string, nullable
      - `score` integer
      - `relationship` 'parent' | 'subsidiary' | 'sibling', nullable
      - `exists` boolean: False when the candidate id no longer points to an active brand.
    - `matcher_version` string, nullable
  - `first_page_url` string, nullable
  - `from` integer, nullable
  - `last_page` integer
  - `last_page_url` string, nullable
  - `links` object[]
    - `url` string, nullable
    - `label` string
    - `active` boolean
  - `next_page_url` string, nullable
  - `path` string, nullable
  - `per_page` integer
  - `prev_page_url` string, nullable
  - `to` integer, nullable
  - `total` integer

## Other responses

- `401`: Unauthenticated
- `403`: Forbidden

---

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