PUT
/v1/products/{id}Updates a product. Only provided fields are changed.
Parameters
Request parameters for this endpoint
| Name | Location | Type | Required | Description |
|---|---|---|---|---|
| id | path | string | Required | Product ID to update |
Request Body
Fields in the request body
Optional
| Name | Type | Description |
|---|---|---|
description | string | Description of the product |
discountPercentage | number | Discount percentage; null inherits from organization (not updatable by ProductManager) |
isWaitlisted | boolean | Whether this product is currently waitlisted |
mainProductImage | string | URL to the main product image |
name | string | Name of the product |
options | Product options/variants configuration | |
price | number | Base price of the product (not updatable by ProductManager role) |
productCategoryId | ProductCategoryPubId | - |
productType | - | |
sku | string | Stock keeping unit (SKU) identifier |
status | - |
Response Data
Fields returned in the response
Always Present
| Name | Type | Description |
|---|---|---|
createdAt | string (date-time) | Timestamp when the product was created |
description | string | Description of the product |
id | ProductPubId | Public-facing unique identifier for the product |
ignoreUpstreamUpdates | boolean | Whether to ignore updates from upstream sources (Shopify, etc.) |
isWaitlisted | boolean | Whether this product is currently waitlisted |
name | string | Name of the product |
options | Product options/variants configuration | |
organizationId | OrganizationId | Organization that owns this product |
price | string | Base price of the product |
productSource | Source of the product (Manual or Shopify) | |
productType | Type of product (leasable or add-on) | |
reviewStatus | Review status of the product | |
status | Status of the product (active, inactive, or archived) | |
stripeId | string | Stripe product ID for payment processing |
updatedAt | string (date-time) | Timestamp when the product was last updated |
Optional
| Name | Type | Description |
|---|---|---|
discountPercentage | string | Discount percentage applied to this product (None means inherit from organization) |
externalId | string | External ID from integrated systems (Shopify, etc.) |
mainProductImage | string | URL to the main product image |
productCategoryId | ProductCategoryId | - |
reviewNotes | string | Notes from the reviewer |
reviewedAt | string | Timestamp when the product was reviewed |
reviewedBy | UserId | - |
sku | string | Stock keeping unit (SKU) identifier |
PUT
/v1/products/{id}Request
curl https://api.thesweetspot.com/v1/products/id_123 \
-X PUT \
-H "Content-Type: application/json" \
-d '{
"description": null,
"discountPercentage": null,
"isWaitlisted": null,
"mainProductImage": null,
"name": null,
"options": null,
"price": null,
"productCategoryId": null,
"productType": null,
"sku": null,
"status": null
}'Response
{
"createdAt": "2026-02-04T02:25:03.606Z",
"description": "string",
"id": null,
"ignoreUpstreamUpdates": false,
"isWaitlisted": false,
"name": "string",
"options": [
null
],
"organizationId": "string",
"price": "string",
"productSource": null,
"productType": null,
"reviewStatus": null,
"status": null,
"stripeId": "string",
"updatedAt": "2026-02-04T02:25:03.606Z"
}