Items

Changes some of an item's name, description, category, price, cost, preferred vendor or vendor part number.

Requires ManageInventory and an Idempotency-Key header. Partial update: only the fields present in the body change; omitted (or null) fields are left alone, and "description": "" (or whitespace only) clears the description. The same rules as the Items page apply — renaming also renames every inventory unit of the item; a new unitPrice / cost is written to the item and its future stock only (existing units keep their own pricing, as with "push to existing inventory" left off); changing categoryId copies that category's properties onto the item. A rename to an active item's name is refused with 409. Optional optimistic concurrency: send the ETag from GET /api/v1/items/{id} as If-Match to get 412 instead of overwriting a change made in the meantime (the tag covers stock too, so a concurrent stock move also yields 412 — GET again and retry). Fires the item.updated webhook naming the changed fields. Permissions mirror the app exactly: name, price/cost and category are edited on the Items page under ManageInventory; description is edited only on the Item Templates page, so sending it (including "" to clear) additionally requires ManageTemplates (403 otherwise, nothing changed). The same applies to preferredVendorId (an active vendor of the organization; 0 removes the link) and vendorPartNumber ("" clears it), which the app edits on Item Templates → Edit; an unknown or inactive vendor is 422. Example: { "unitPrice": 1.35 } or { "preferredVendorId": 3, "vendorPartNumber": "PX-12C" }.

patch/api/v1/items/{id}

Request

  • Base URL: https://app.flexonthejob.com
  • URL: https://app.flexonthejob.com/api/v1/items/{id}
  • Auth: HTTP bearer

Path parameters

idinteger required

Numeric item id.

Request body

namestring nullable

New name, 1-100 characters; omit to keep. Whitespace-only → 422. Renaming also renames every inventory unit of the item.

descriptionstring nullable

New description, max 2000 characters; omit to keep. Send "" (or whitespace only) to clear it.

categoryIdinteger nullable

New primary category id; omit to keep. Changing it copies the category's properties onto the item. Unknown or another organization's id → 422.

unitPricenumber double nullable

New selling price, 0 or more; omit to keep. Written to the item and its future stock only — existing units keep their own pricing.

costnumber double nullable

New purchase cost, 0 or more; omit to keep. Written to the item and its future stock only.

preferredVendorIdinteger nullable

New preferred vendor id (from GET /api/v1/vendors; must be an active vendor of the organization, 422 otherwise); omit to keep, send 0 to remove the link. Like description it is edited on the Item Templates page, so it requires ManageTemplates. Example: 3.

vendorPartNumberstring nullable

New vendor part number, max 100 characters; omit to keep, send "" to clear it. Requires ManageTemplates (edited on the Item Templates page). Example: "PX-12C".

hasAnyFieldboolean

True when at least one field was supplied.

hasTemplatePageFieldboolean

True when a field only the Item Templates page edits (ManageTemplates) was supplied.

Response

Updated; body is the item exactly as GET /api/v1/items/{id} returns it.

propertiesobject

Every template property by name (includes Unit Price and Cost when set).

parentItemIdinteger nullable

Id of the parent template for variant children; null otherwise.

Changes

No recorded changes to this operation across all 1 revision of this API.