A product is one catalog entry: a name, a slug, a status, a set of attribute values and optional tags, a brand and categories. Every product belongs to exactly one attribute family, which decides which attributes it can carry. Sellable SKUs live on its variants.
In the admin
Products live under Catalog → Products.
- Click New product.
- Choose a Family, enter a Name, and optionally a Slug (it’s generated from the name until you edit it).
- Click Create product. The product is created as a draft and you land on its editor.
- Fill in the editor sections: Key details (brand, dimensions, identifiers), Attributes, Variants, Categories, Modifiers and Media. Edits to key details and attributes collect in a sticky bar; click Save changes to commit them. Categories, tags, media and modifiers have their own controls and don’t go through that bar.
From the editor header you can also Duplicate or Delete the product. To bring in many products at once, use Import CSV on the products list (see CSV import).
With the API
| Method | Path | What it does |
|---|---|---|
| GET | /v1/products | List, filter and paginate |
| POST | /v1/products | Create one product |
| GET | /v1/products/{id} | Fetch one product with media, category ids and modifier summary |
| PATCH | /v1/products/{id} | Partial update |
| DELETE | /v1/products/{id} | Delete |
| POST | /v1/products/{id}/duplicate | Copy into a new draft |
curl -X POST https://api.minipim.com/v1/products \
-H "Authorization: Bearer pim_…" \
-H "Content-Type: application/json" \
-d '{
"familyId": "5a2c1d8e-…",
"name": "Eco Tote Bag",
"attributes": {
"price": [{ "locale": null, "channel": null, "value": { "amount_cents": 1899, "currency": "USD" } }]
},
"tags": ["featured"]
}'
Attribute values are always { code: [{ locale, channel, value }] }. On GET /v1/products/{id}, add ?locale= and/or ?channel= to also receive resolvedAttributes, a flat { code: value } map. Fallback order is exact match, then locale only, then channel only, then the unscoped value.
To look a product up by its URL slug, use GET /v1/products?slug=…, an exact match, not ?q=, which is a fuzzy relevance search. Filters, sorting and paging are covered in Listing, filtering and pagination. Full reference: api.minipim.com/docs.
Rules and limits
familyIdandnameare required on create.statusdefaults todraft.- Slugs are unique per organization. A clashing slug on create returns 409; duplicate generates a free one.
- Attribute values are validated against the family on every write. A code the family doesn’t declare is rejected with 422 and the error suggests close matches.
- PATCH merges attributes per code: a code with values replaces that code’s list, a code sent as
[]clears it, and an omitted code is left alone.tags, when sent, replaces the whole list. brandId: nullon PATCH removes the brand; omitting it leaves the brand unchanged.- A product’s family can’t be changed with PATCH. Use the bulk move-family action (see Bulk editing).
- Tags are canonicalized on write: lower-cased, non-alphanumerics become
-."Buying Guide"is stored asbuying-guide. Up to 50 tags per product. - Duplicate copies attributes, tags, categories, modifiers, media links, outbound related products and variants. It never copies identifiers (UPC, GTIN, MPN…). The copy is always a draft, named after the source with ” (copy)” appended unless you pass a name, and its variant SKUs get a
-copysuffix. - Deleting a product deletes its variants and their identifiers. Media files themselves are kept; only the links are removed.
- Every write emits a typed event (
product.created,product.updated,product.deleted).
See also
- Variants — minipim variants are the sellable SKUs under a product. How variant axes work, generating a variant matrix, SKU rules, overrides and the variant API endpoints.
- Product status — The draft, active and archived product statuses in minipim, the required-attribute check that runs when a product goes active, and how connectors map status.
- Attributes — Attributes are the typed fields of a minipim catalog: codes, labels, localizable, scopable and variant-axis flags, requirement levels, validation, deletion.
- Attribute families — Attribute families define which attributes a minipim product carries: attaching attributes, requirement overrides, ordering, moving products, deletion.