> ## Documentation Index
> Fetch the complete documentation index at: https://docs.closient.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Manage Product Claims

> Add, update, list, and remove the content claims a brand makes for a product (Non-GMO, Vegan, Gluten-Free and the like) with their source and evidence -- the programmatic equivalent of the dashboard's claims page.

Programmatic equivalent of the dashboard's `products/<gtin>/claims/` page.

## When to use

* A brand owner wants the claims its label makes (Non-GMO, Vegan, Gluten-Free) on the
  product's Closient record, so a shopper or a dietary filter can find it.
* A claim on file has gained third-party verification, has lapsed, or needs its evidence
  corrected or removed.

## Auth

`X-API-Key` header or OAuth token. The caller must be a member of the product's
organization with the contribute role (Editor or Manager). A read-only key is refused with
`403`; a product another organization owns answers `404`, so the API never confirms it
exists.

## Flow

```
GET    /certifications/api/v1/claims?label={name}
GET    /certifications/api/v1/products/{gtin}/claims
POST   /certifications/api/v1/products/{gtin}/claims
PATCH  /certifications/api/v1/products/{gtin}/claims/{claim_id}
DELETE /certifications/api/v1/products/{gtin}/claims/{claim_id}
```

* **Find the claim** -- a claim is chosen from Closient's catalog by its `id`. Search the
  catalog by `label`, exact `code` (e.g. `NON_GMO`) or `category`. If it is not in the
  catalog, report it rather than picking a near match.
* **List** -- every claim on the product.
* **Create** -- the body names the catalog entry with `claim_id` and may carry `source`,
  `valid_from`, `expiration_date`, `evidence_url` and `evidence_note`; fields are listed in
  the OpenAPI document at `/certifications/api/v1/openapi.json`. `source` defaults to
  `BRAND_SELF_DECLARED`; set `THIRD_PARTY_VERIFIED` only when an independent body has
  verified the claim and `evidence_url` points at that evidence. `evidence_url` must be an
  http(s) address of at most 200 characters. A product can carry each claim once; a second
  create answers `409`.
* **Update** -- `PATCH` only the fields to change, addressed by the claim's `id` (not an
  assignment id). Send `null` to clear a date and `""` to clear the evidence fields.
* **Delete** -- removes the claim from the product permanently.
* **Read back** -- every write returns the saved assignment; list again to confirm.

Returns `403` for a read-only key, `404` for a product or assignment the caller cannot see,
`409` for a duplicate, and `422` for an invalid value.

## Notes

A claim is a statement the brand stands behind: record one only when the brand makes it for
this product, never inferred from the ingredients or carried over from a similar product.

The fields a brand writes on a claim are defined once on the model
(`ClaimAssignment.BRAND_EDITABLE_FIELDS`); the dashboard form and both API schemas are
pinned to that set.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.