Etsy
Why Etsy stock is polled rather than pushed, how the incremental read works without a modified-since filter, and the 10-minute to 6-hour cadence ladder.
Etsy is a source, a publishing target, and a price and stock source of truth. Unlike Shopify it is polled, and the reason is worth stating plainly.
Etsy has no webhooks
Etsy's Open API v3 provides none. There is no arrangement under which Etsy notifies MarketplaceHub that a listing changed, so keeping stock current means asking.
How the poll works
Listings are read newest-updated-first and the walk stops at the first listing older than the last successful poll. Etsy offers no "modified since" filter, so ordering is the incremental read — which makes the poll cost proportional to what changed, not to catalog size.
Concretely:
- 100 listings per page, up to 50 pages per run. A bulk edit larger than that drains over consecutive runs rather than exhausting the day's Etsy quota in one go.
- The watermark is rewound by five minutes each run, so a listing changed mid-poll is not missed.
Cadence
The interval adapts to how much is actually changing:
- 10 minutes — the floor, which a shop with live changes settles at.
- Doubling each time a run finds nothing.
- 6 hours — the ceiling. An idle shop costs roughly four polls a day rather than 144.
So worst-case latency for a stock change is 10 minutes on an active shop, and longer on one that has been quiet — the first change after a quiet spell resets the ladder to the floor.
When polling stops
The poll is armed by the real-time stock sync setting on the connection and stops when it finds that setting off. It also declines to re-arm while the connection is unauthorised — an expired authorisation produces one clear failure rather than a poll retrying against a dead token. Reconnecting re-arms it.