# Update Product Status (and Publish)

## Update Product Status

> \*\*Rate limit:\*\* 100 requests per minute

```json
{"openapi":"3.1.0","info":{"title":"Sellers Center API","version":"1.0.0"},"security":[{"APIKeyAuth":[]}],"components":{"securitySchemes":{"APIKeyAuth":{"type":"apiKey","in":"header","name":"X-API-Key"}},"schemas":{"UpdateProductStatusResponseSchema":{"properties":{"batchRequestId":{"description":"Unique identifier (UUID)","format":"uuid","title":"Batchrequestid","type":"string"}},"required":["batchRequestId"],"title":"UpdateProductStatusResponseSchema","type":"object"},"BadRequestSchema":{"properties":{"message":{"description":"Error message","title":"Message","type":"string"}},"required":["message"],"title":"BadRequestSchema","type":"object"},"UpdateProductStatusSchema":{"properties":{"items":{"description":"List of style_keys and corresponding status to update.","items":{"$ref":"#/components/schemas/UpdateProductStatusItemSchema"},"minItems":1,"title":"Items","type":"array"}},"required":["items"],"title":"UpdateProductStatusSchema","type":"object"},"UpdateProductStatusItemSchema":{"properties":{"style_key":{"description":"Style key for the group of products","maxLength":120,"title":"Style Key","type":"string"},"status":{"description":"Status you want to set for the given product.\n`published` moves the product toward approval and eventually marks it active,\n`inactive` keeps it hidden after it was activated,\n`draft` keeps it in preparation and out of the catalog until manual publication begins.\nReverting to `draft` is only supported before the product reaches approval, after which one should use `inactive`.","type":"string"}},"required":["style_key","status"],"title":"UpdateProductStatusItemSchema","type":"object"}}},"paths":{"/api/v1/products/status":{"put":{"operationId":"scapi_app_endpoints_product_api_update_product_status","summary":"Update Product Status","parameters":[],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateProductStatusResponseSchema"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestSchema"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestSchema"}}}},"default":{"headers":{"X-RateLimit-Limit":{"description":"Total requests allowed in the time window","schema":{"type":"integer"}},"X-RateLimit-Remaining":{"description":"Remaining requests in the current window","schema":{"type":"integer"}}}}},"description":"**Rate limit:** 100 requests per minute","tags":["Products"],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateProductStatusSchema"}}},"required":true}}}}}
```

***

## Settable Product States

Even though products can be in many different states, only a subset of these can be set manually. The rest are set automatically by the system (You can read about all product statuses here: <https://docs.partner.aboutyou.com/api/products/product-statuses>).

The manually settable states are:

| State       | Description                                                     |
| ----------- | --------------------------------------------------------------- |
| `published` | Triggers the product lifecycle toward becoming active           |
| `draft`     | Product is incomplete or not yet submitted for approval         |
| `inactive`  | Product is taken offline but remains available for reactivation |

> **Note:** `published` is not a persistent product state — it acts as a trigger that initiates automatic state transitions in the background.

***

### Published

Setting a product's state to `published` initiates its lifecycle toward becoming active.

When a product is published, the approval process starts automatically. The product transitions to `pending_approval` and, once approved, is activated through the `pending_active` state before finally becoming `active`.

While a product is in the `pending_approval` state, it can no longer be updated. However, the approval request can be withdrawn by setting the product back to `draft`, which re-enables updates and allows the product to be published again to restart the approval process.

**Products only require approval once.** If a product has already been approved, publishing it again will immediately activate it without triggering another approval process.

***

### Draft

The `draft` state represents products that are incomplete or not yet ready for approval. Newly created products start in this state.

Publishing a `draft` product triggers the approval process. Products can also be withdrawn from the approval process by setting them back to `draft`, as long as they have not yet been approved.

Once a product has been approved, it can no longer be set back to `draft`. Approved products can only be deactivated by setting them to `inactive`.

***

### Inactive

`inactive` products are not visible in the shop but remain available for reactivation.

Only previously published products can be set to `inactive`. Setting a product to this state removes it from the shop without deleting it.

To make an inactive product available again, simply publish it. Since the product has already been approved, the approval process is skipped and the product is activated immediately.
