GET /v1/products/retrieve/{uuid} returns a product StoreRouter already gave you an id for, such as a uuid from search or lookup. Use it to refresh products you stored: product pages, carts, saved lists.
Retrieve is different from the other product routes:
- Search finds products for a query.
- Lookup resolves a URL from the wild: the index first, then an on-demand fetch.
- Retrieve reads back an id you already hold. It reads the index only and never fetches from the merchant, so a miss is final.
Request
Path parameters
string (UUID)
required
A product
uuid from an earlier response. An older id for the same product still works. A value that is not a UUID returns 422.Example
Response
string
required
The id you sent, in canonical lowercase form.
"found"
required
Always
found on a 200. A miss is a 404.string
required
The product’s current id. It differs from
requestedUuid when you sent an older id for the same product. Store this one.string
required
Catalog that supplies the product.
string | null
Human-readable catalog name.
string | null
Catalog source base URL, when configured.
boolean
required
false when the merchant no longer offers the product. Unlike lookup, retrieve still returns an inactive product, so you can tell a product that is gone from one you cannot see.datetime | null
When the product was last deactivated, if it ever was.
MerchantProductView
required
The same product view lookup returns for an indexed product.
Example
Revalidation
The response carries a weakETag. Send it back in If-None-Match to get 304 Not Modified with no body while the product is unchanged.