DYJ Marketplace API
Server-to-server access to the jewellery products your feeds select.
You do not pick products. In your DYJ dashboard you define rules — a set of categories, a cost band, and a margin schedule — and your feed is whatever currently satisfies them. A designer listing a new ring inside your band appears in your store without either of you doing anything. A delisted one disappears the same way.
There is no synchronisation step and no membership to keep in step, because there is no stored membership: every request recomputes it. That has two consequences worth designing for from the start.
Products can vanish between two calls. That is normal operation, not an error. Treat a product missing from search as out of stock rather than as a failure, and you will never need a reconciliation job.
Prices are recomputed too. retailMinor comes from the designer’s current cost and your current margin schedule. Cache it for minutes, not days.
Everything is in cents
Every amount in this API is in minor units. 150000 is €1,500.00. No endpoint speaks euros, deliberately — mixing the two is the most common way an integration ends up wrong by a factor of a hundred.
The two credentials
DYJ issues your account two keys, and they are not interchangeable. Sending the wrong one here fails closed with a 401.
| Key | Lives | Used for |
|---|---|---|
dyj_sk_… secret | Your server, only | This API |
dyj_live_… public | Browser, in your page | The 3D viewer embed |
See API keys for rotation and for what to do if your storefront is fully static.
Where to start
- Quickstart — your first request, in four steps.
- Syncing a catalogue — paging, cadence, and what to do about products that disappear.
- 3D embeds — showing the piece, not just its data.
- Errors — what each status actually means here.
- API reference — every field, generated from the spec.