Skip to main content
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

  • 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.