Errors
What each status means here, and which ones are worth retrying.
| Status | Meaning | Retry? |
|---|---|---|
400 | The body did not validate. Unknown fields are rejected rather than ignored, so a typo in a filter name is an error instead of a filter that silently did nothing. | No — fix the request. |
401 | Missing, malformed, unknown or revoked key. All four answer identically; the difference would only help somebody guessing keys. | No — check or rotate the key. |
402 | Your DYJ plan is not live. Feeds resume the moment it is. | No — renew. |
404 | No such feed or product for you. Covers an unknown id, a feed that is not yours, a disabled feed and a product outside your rules. | No. |
429 | Too many requests for this key. | Yes, after backing off. |
5xx | Our fault. | Yes, with backoff. |
Why 404 and not 403
Asking for a feed that belongs to another business returns 404, exactly as a feed that does not exist does. A 403 would confirm that the id is real, which is enough to enumerate other businesses’ feeds one guess at a time. The same applies to products: a piece that exists on the marketplace but is not in your feed is indistinguishable from one that was never listed.
The practical consequence: a 404 is never proof that something does not exist. It only means it is not yours to read.
An empty list is not an error
200 with items: [] means your rules currently select nothing. The feed is working; the marketplace simply has nothing matching right now. Do not treat it as a failure and do not clear your catalogue on the strength of one empty page — see Syncing a catalogue.
Rate limits
Limits are per key, not per IP address, so adding servers does not add quota. A full catalogue sync should page steadily rather than fan out across workers. On a 429, back off exponentially; the window is measured in minutes, not hours.