Cache-Control value on each response. Inventory-sensitive responses generally have shorter client cache periods than catalog or store metadata.
Retain the response ETag and send it as If-None-Match when revalidating:
304 Not Modified response has no body. Continue using the representation associated with that validator.
Every public GET resource also supports HEAD with the same query parameters and validation. Use it to retrieve ETag, Last-Modified, X-Publication-Revision, Cache-Control, and the representation’s Content-Length without downloading the body:
HEAD returns 304 when its validator matches. Validation and missing-resource responses retain their status and headers but have no body; use GET if you need the error details. Header checks do not count as product views. HEAD saves response bandwidth; the server still builds the representation to compute its validators, including a cold export archive when applicable.
If-Modified-Since is available as an HTTP-date fallback when an integration cannot retain ETags. If both validators are sent, If-None-Match takes precedence, as required by HTTP semantics. Last-Modified is the Nektir publication time—not proof of when Utah DABS last changed its source data.
X-Publication-Revision identifies the immutable Nektir database revision used to create the response. It is not a Utah DABS version or upstream update timestamp.
API response caching and upstream polling are separate systems. Revalidating this API does not trigger an upstream refresh.