---
title: "Append a report about an expired or inaccurate deal"
method: POST
path: "/api/v1/flags"
---

# Append a report about an expired or inaccurate deal

`POST /api/v1/flags`

## Request

- Base URL: `https://andrewsfreebies.com`
- URL: `https://andrewsfreebies.com/api/v1/flags`
- Auth: none declared

Creates an append-only review signal. The source trial or entitlement remains unchanged and searchable.

## Request body

- DealFlagInput
  - `record_id` string, required: Exact id returned by an Andrew’s Freebies search or record endpoint.
  - `record_type` 'trial' | 'entitlement': Optional when the id uniquely resolves.
  - `reason` 'expired' | 'unavailable' | 'terms-changed' | 'incorrect'
  - `evidence_url` string, uri
  - `note` string
  - `reporter` string

## Response `201`

Report recorded without changing the catalog record

- DealFlagReceipt
  - `api_version` '1.9', required
  - `flag` DealFlag, required
    - `id` integer, required
    - `record_type` 'trial' | 'entitlement', required
    - `record_id` string, required
    - `reason` 'expired' | 'unavailable' | 'terms-changed' | 'incorrect', required
    - `evidence_url` string, uri, nullable
    - `note` string, nullable
    - `reporter` string, nullable
    - `status` 'open', required
    - `created_at` string, date-time, required
  - `record` object, required
    - `record_type` 'trial' | 'entitlement'
    - `record_id` string
    - `name` string
    - `web_url` string
  - `original_record_unchanged` true, required
  - `review_status` 'open', required

## Other responses

- `400`: Invalid report
- `404`: Catalog record not found
- `503`: Ledger unavailable

---

[API](https://skmtc.dev/andrewsfreebies/apis/andrew-s-freebies-api.md) · [All operations](https://skmtc.dev/andrewsfreebies/apis/andrew-s-freebies-api/llms.txt) · [OpenAPI document](https://skmtc.dev/andrewsfreebies/apis/andrew-s-freebies-api/revisions/2e23a7a12f7a?raw)
