---
title: "The complaints recorded on a case and their outcomes"
method: GET
path: "/projects/{project_id}/case-complaints"
tags: ["Case actions"]
---

# The complaints recorded on a case and their outcomes

`GET /projects/{project_id}/case-complaints`

## Request

- Base URL: `https://adslighthouse.com/api/v1`
- URL: `https://adslighthouse.com/api/v1/projects/{project_id}/case-complaints`
- Auth: HTTP bearer

Lists the complaints recorded on a case, newest filing first: platform, date filed, the platform's reference number and the latest recorded outcome (pending, ad_removed, rejected, withdrawn). These are records a person kept after filing on the platform's form; they are not read from the platforms.

## Path parameters

- `project_id` string, required: The project: its id, its brand domain (for example nike.example) or its exact project or brand name. Unknown or ambiguous references return not_found; call list_projects then.

## Query parameters

- `case_type` 'policy' | 'affiliate', required: policy for a case from list_policy_cases; affiliate for a non-compliant affiliate case from list_affiliate_findings.
- `case_id` string: The policy case id. Required when case_type is policy.
- `affiliate_id` string: The affiliate ID exactly as list_affiliate_findings returns it. Required when case_type is affiliate.

## Response `200`

The complaints recorded on a case and their outcomes

- object
  - `case` object, required
    - `case_type` 'policy' | 'affiliate', required
    - `case_id` string, nullable, required
    - `affiliate_id` string, nullable, required
    - `app_url` string, required: Opens the case for a signed-in account member.
  - `data` object[], required
    - `id` string, required
    - `platform` 'google_ads' | 'microsoft_advertising', required
    - `platform_name` string, required
    - `filed_on` string, required
    - `reference` string, nullable, required
    - `outcome` 'pending' | 'ad_removed' | 'rejected' | 'withdrawn', required
    - `outcome_on` string, nullable, required
  - `request_id` string

## Other responses

- `400`: Invalid parameters, cursor or body.
- `401`: Missing, invalid, expired or revoked credential.
- `403`: The credential lacks the write scope, the plan does not include the API, or the allowance is used up.
- `404`: Unknown project, keyword or run in this account.
- `409`: The idempotency key was already used for a different request.
- `429`: Rate limit reached. Retry after the Retry-After seconds.
- `503`: The requested service or file is temporarily unavailable.

---

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