# Approve partially-approved products in bulk

> POST /products/bulk-approve

Source: https://docs.trykintsugi.com/reference/2026-07-21/approve-partially-approved-products-in-bulk

POST /products/bulk-approve

Approve partially-approved products in bulk

Approve partially-approved products in one organization, either by naming `productIds` (at most 100) or by `filters`. Provide exactly one of the two: sending both, or neither, returns 400. The approval is atomic: either every matched product is approved or none is. `approvedCount` and `skippedCount` report what actually changed, not how many you asked for. An id that is not partially-approved, does not exist, or belongs to an organization your credential cannot access is counted in `skippedCount`, never approved. Send the target organization as `Organization-Id` when your credential owns more than one.

Category: Products

Request body:
productIds (string[]) - Explicit product ids to approve (at most 100). Mutually exclusive with filters; provide exactly one of the two. An id that is not partially-approved, not found, or in an organization you cannot access is counted in skippedCount, never approved.
filters (BulkApproveFilters) - Attribute filters selecting which partially-approved products to approve. Mutually exclusive with productIds; provide exactly one of the two.
  productCategory (PublicProductCategoryEnum) - Approve only products in this tax category. Omit to match any category. Combine with productSubcategory and/or source to narrow further.
    allowed values: Digital, Misc, Physical, Services
  productSubcategory (string) - Approve only products whose tax subcategory display label matches (e.g. 'General Clothing'). Omit to match any subcategory.
  source (string) - Approve only products from this origin system (e.g. API, SHOPIFY). Must be a supported public source; unsupported values are rejected. Omit to match any source.

Response fields:
approvedCount (integer, required) - Number of products moved to APPROVED by this request.
skippedCount (integer, required) - Number of requested products left unchanged because they were not partially-approved, not found, or outside your access. Always 0 for a filter-based request.

Response statuses: 200, 400, 401, 403, 404, 422, 503

---

Index of every page: https://docs.trykintsugi.com/llms.txt
