Quickstart

From nothing to a priced product list, in four steps.

1. Create a feed

In the DYJ dashboard, open Marketplace → Feeds and create one. A feed is a store connection: if you run several storefronts, or want different margins for a bridal line and an outlet, create several.

2. Add at least one rule

A rule says which products you want and what you charge for them. The two-step editor asks for the selection first — categories, a whole-euro cost band, whether a real photograph is required — and the margin schedule second.

Rules are ordered, and the first one that matches a product is the one that prices it. A broad rule sitting above a narrow one will quietly swallow it, so put your specific rules first.

3. Generate a secret key

Under My Account → Developer, generate a partner key. It is shown once. Store it wherever your server keeps secrets — never in your storefront’s JavaScript, and never in a repository.

4. Call the API

Your feed’s id is on its Integration tab. An empty body returns the whole first page.

curl -X POST   https://api.dyj.one/v1/market/feeds/FEED_ID/items/search   -H "Authorization: Bearer dyj_sk_..."   -H "Content-Type: application/json"   -d '{}'
{
  "items": [
    {
      "id": "2b0478f5-8ef3-41e0-9f1c-a0dcc9a2d993",
      "title": "Colette solitaire",
      "category": "ring",
      "costMinor": 150000,
      "retailMinor": 181500,
      "currency": "EUR",
      "matchedRuleId": 2,
      "updatedAt": "2026-08-31T18:10:43.594543+00:00"
    }
  ],
  "nextCursor": null
}

costMinor is what DYJ charges you to produce the piece. retailMinor is your selling price, computed by the rule named in matchedRuleId. Both are confidential to your account — no designer and no other business can see either.

Getting nothing back?

An empty items array with a 200 means your rules currently select nothing — not that anything failed. The usual causes are a cost band that no listed piece falls into, a category with no live products, or photoPolicy: required on a rule whose matches only have a 3D poster. Open the feed preview in your dashboard: it runs this exact query.