Market NinjaMarket Ninja
Workflows

Finding products

How to resolve a product from a URL, a marketplace SKU, your own seller code, or a brand name — four real scenarios with examples.

GET /products is your only entry point until you know a product's internal id (see API Overview for the resolve-then-fetch model). Below are four real usage scenarios, each with its own parameter set.

Scenario 1: you have a product URL

The most common case — a URL copied straight from a browser or pulled from a spreadsheet.

curl -G -H "Authorization: Bearer mn_live_..." \
  "https://data.marketninja.ru/v1/products" \
  --data-urlencode "url=https://www.wildberries.ru/catalog/231151629/detail.aspx?utm_source=instagram"
Query string and fragment (?utm_source=..., #reviews, etc.) are stripped automatically before matching — paste the URL exactly as-is, junk params included. That URL with utm_source and the same URL without it resolve to the same product.

Scenario 2: you know the marketplace's own SKU

If you have a marketplace-specific SKU (WB nmId, Ozon sku, etc.), pass it together with marketplace — otherwise the result can be ambiguous (the same external_id is theoretically possible across different marketplaces).

curl -G -H "Authorization: Bearer mn_live_..." \
  "https://data.marketninja.ru/v1/products" \
  --data-urlencode "external_id=231151629" \
  --data-urlencode "marketplace=wildberries"

Scenario 3: you know the seller's own SKU

This is its own parameter — seller_code — don't confuse it with external_id (that's our marketplace SKU; seller_code is yours, the one a seller puts on their own listing). The typical need is "find my SKU everywhere it's sold," so this parameter deliberately does not require pairing with seller_id — if multiple sellers resell your product, you'll see every match.

curl -G -H "Authorization: Bearer mn_live_..." \
  "https://data.marketninja.ru/v1/products" \
  --data-urlencode "seller_code=BV2648-010"

To scope it to one specific seller, add seller_id (and optionally marketplace):

curl -G -H "Authorization: Bearer mn_live_..." \
  "https://data.marketninja.ru/v1/products" \
  --data-urlencode "seller_code=BV2648-010" \
  --data-urlencode "seller_id=2557" \
  --data-urlencode "marketplace=wildberries"

Scenario 4: you need a brand's whole catalog

This is its own parameter — brand — don't confuse it with Scenario 3: seller_code finds your specific SKU wherever it's resold, while brand finds your entire catalog in the dataset, regardless of SKU, via an exact, case-insensitive match. See Brands for the available names and full examples.

Other ways to filter

GET /products also supports broader search — by name (q) or category (category, a containment match against category_path — see Categories for a marketplace's category list and the full filter guide). Full parameter list: Reference.

What to do with the result

The response already includes current price, images, attributes, trust status, and seller data — most scenarios never need a separate GET /products/{id} call. Only fetch by id directly when you need a guaranteed-fresh snapshot at a specific later moment, independent of the search result.

Last updated on

On this page