List low stock thresholds
The reorder thresholds this store has armed, newest first: the total stocked quantity, summed across every location, at or below which the store owner is emailed that a variant is running down. THIS IS THE MERCHANT’S OWN NOTION OF LOW, not a stock level. How many units exist is read_inventory and changes on every order; this is a preference that changes rarely, which is why the two are separate grants and why a replenishment tool wants this one without being handed a live feed of the other. ONE THRESHOLD PER VARIANT AT MOST, so a store that armed its catalogue has as many rows as it has variants. Page it; do not assume one response holds them all. notified is the notify-once LATCH: true means the owner has already been told and will not be told again until stock recovers above the threshold. Read it before you raise a purchase suggestion, or every sync re-raises one the merchant has already acted on. It says nothing about when mail was sent or to whom, and no send time is published. A threshold of ZERO IS REAL and means “tell me when this variant is actually out”. It is not the absence of a threshold. Absence is the row not being here at all, which is what DELETE produces. NO FILTERS. ?notified= is the one that looks useful and it would page a set that changes underneath you every time stock crosses a threshold; filter the page instead.
Authorizations
A secret API key. Publishable keys cannot reach this API. A key may carry an expiry, and an expired key is refused exactly like an unknown one, with a 401 that names no reason; check the key's expires_at in the dashboard rather than inferring it from a response. When a merchant rolls a key's secret they choose a grace window of up to 3 days, and for its duration BOTH the new secret and the one it replaced authenticate, so an integration moves over on its own deploy schedule instead of at the instant the button is pressed. Move before the window closes: after it, the old secret is refused. Nothing else about this contract moves with a roll. The key keeps its id and its scopes, so the only thing an integration updates is the credential itself.
Query Parameters
Rows per page. Out of range is a 400 rather than a silent clamp, so a client asking for more than 100 learns it did not get it.
1 <= x <= 100The next_cursor from the previous page. Opaque: decode nothing from it and construct nothing by hand, since its encoding is not part of this contract. Omit it to read the first page.
