Skip to main content
The two APIs return different error shapes. If you’re consuming both, handle them separately.

Marketplace API

A structured envelope with a code you can branch on:
Branch on error.code, not the message — messages are for humans and may get reworded. On a 502 the message is deliberately generic. Upstream error text isn’t passed through, because it can contain query internals. Retry, and tell us if it persists.

Store API

A flat string:

Handling both

What’s worth retrying

Rate limits has a backoff implementation.

Opaque 400s

Store API payload validation is strict but reports generically — "Invalid product payload" rather than naming the field.
Post the minimum viable payload first, then add fields back one at a time. Each endpoint page lists what’s actually required.