POST /products/refresh requests a fresh update for specific products. Use it when you need Octogen to refresh a known set of product pages sooner than the standard catalog update cadence. The endpoint returns as soon as the request is accepted; it does not wait for downstream processing or indexing to finish.
Request
Body parameters
Product identifiers to refresh. Maximum 500 targets per request.
Product page URL to refresh. Provide either
url or uuid, not both.Octogen product UUID to refresh. Provide either
uuid or url, not both.Optional catalog key. Include this when the URL is not already indexed, or when the same URL could belong to more than one granted catalog.
Example
Response
The endpoint returns202 Accepted when at least one target was accepted for refresh. It returns 400 Bad Request with the same response shape when no target could be accepted.
Request identifier for this refresh request.
Number of targets received in the request.
Provider-neutral workflow identifier for the asynchronous refresh, when a workflow was started.
Non-fatal workflow launch error. If this is present, accepted targets were still accepted, but Octogen could not start the downstream refresh workflow automatically.
Targets accepted for refresh after authorization and validation.
Targets that were not accepted. Each rejection includes the original
target, a machine-readable code, and a human-readable message.Example response
Resolution rules
| Target | Behavior |
|---|---|
{"uuid": "..."} | Finds the product UUID within your granted catalogs and refreshes its canonical productUrl. |
{"catalog": "...", "uuid": "..."} | Finds the UUID only in the requested granted catalog. |
{"url": "..."} | Finds the URL in your granted catalogs. If multiple catalogs match, the target is rejected with ambiguous_url. |
{"catalog": "...", "url": "..."} | Refreshes the URL for that granted catalog, even if the product is not indexed yet. |
Errors
| Status | detail or rejection code | Meaning |
|---|---|---|
400 | response body with rejected targets | No target could be accepted. |
403 | "catalog_not_granted" | The request named a catalog your API key cannot access. |
422 | validation error array | The body is malformed, has more than 500 targets, or a target contains both url and uuid. |
503 | "product_refresh_unavailable" | Octogen could not start product refresh processing. Retry later. |
Product refresh is asynchronous. Search and lookup results update after
downstream processing and indexing complete.