Virtual Buy Box on Similar Products
This endpoint is for sellers whose products compete with very similar products from other sellers rather
than with identical ones, typically own-brand (private label) products, and for repricers and technology
partners who already use GET /buybox. /buybox shows the competition on one EAN;
this endpoint shows the competition between different EANs that customers treat as alternatives.
Kaufland groups your product with closely comparable products from other sellers. These are separate
products, not offers on the same product page, so there is no real Buy Box between them. But shoppers who
come across them in search treat them as interchangeable and usually take the cheapest one, so in practice
they compete like a Buy Box does. This endpoint ranks the top 10 best-ranked products in that group the same
way, so you get the whole picture in one call instead of checking product by product. If the group has more
than 10 products, use number_of_competitors on
GET /similar-products/groups for the true group size. Each entry has
the same shape as a single GET /buybox response.
What a group of similar products is
Many products compete for the customer's attention without sharing an EAN, so they never meet in the same Buy Box. A customer looking for a 10-metre garden hose compares a handful of very similar hoses from different sellers and usually picks the cheapest one that fits. Kaufland uses an AI-based process to find these very similar products and puts them into a group of similar products. Most products in such groups are own brands, but a product that also has a regular Buy Box can be part of a group. The grouping is automated and not perfect: sellers can remove or add competitors in the Seller Portal (Pricing Optimisation → Private label products), and those adjustments are reflected in this endpoint.
How this relates to /buybox
GET /buybox |
GET /similar-products/buybox |
|
|---|---|---|
| Compares | offers on the same EAN | products with different EANs in the same group of similar products |
| Ranks by | Buy Box logic | price as the customer sees it (incl. shipping, vouchers, and delivery time) |
| Returns | one buy box | up to 10 products, each in the /buybox shape |
| Use it when | you want to win the Buy Box on an EAN | you want to see which similar products you compete with |
How to use the result
buybox_rank: 1 |
Best price in the group. Your own offer is the entry carrying id_unit /
id_offer. |
Empty data array |
The product is not in a group yet, not that it has no competition. Try another product, or list all your groups with GET /similar-products/groups. |
| Deciding where to act first | Use GET /similar-products/groups (demand, price gap, sales rank) — this endpoint is the plain competitor list. |
Related
- GET /similar-products/groups
- Seller Portal: Pricing Optimisation → Private label products
Endpoint
HTTP method: GET
URL: https://sellerapi.kaufland.com/v2/similar-products/buybox
Query parameters:
| Parameter | Required | Description |
|---|---|---|
id_product |
Either id_product or ean |
Kaufland's product ID of one of your products. We return the group of similar products this product belongs to. |
ean |
Either id_product or ean |
The EAN of one of your products. Use it instead of id_product. |
storefront |
Yes | The storefront you want the ranking for (e.g. de for Kaufland.de). |
condition |
No | Which offer condition to return, same as GET /buybox. One of new,
used, used - as new, used - very good,
used - good, used - acceptable, refurbished,
refurbished - as new, refurbished - very good,
refurbished - good, or refurbished - acceptable. Defaults to
new. |
If the product has no similar products yet, the response is { "data": [] }. This is
not an error.
Sample response
{
"data": [
{
"id_product": 8475634,
"storefront": "cz",
"condition": "new",
"num_units": 1,
"units": [
{
"buybox_rank": 1,
"seller": "Kaufland Seller",
"price": 1999,
"delivery_time_min": 3,
"delivery_time_max": 4,
"shipping_rate": 700,
"fulfillment_type": "fulfilled_by_merchant",
"condition": "NEW",
"id_unit": 28374940,
"id_offer": "SKU1342"
}
]
}
]
}
The complete schema, including all field types, is available in the endpoint specification.
Response fields
| Field | Type | Description |
|---|---|---|
id_product |
Integer |
Our internal product ID. |
storefront |
String |
Storefront the ranking applies to. |
condition |
String |
The condition the offers were filtered by (the resolved value, not necessarily the group condition passed in the request). |
num_units |
Integer |
Total number of offers for the given product and condition. |
units |
Array |
The ranked list of offers, see below. |
Unit fields
| Field | Type | Description |
|---|---|---|
buybox_rank |
Integer |
Rank of this offer in the Buybox (1 is the winning offer). The rank itself is based on the price the customer pays, including shipping and any voucher — the same basis the Seller Portal ranks on. |
seller |
String |
Name of the competing seller. |
price |
Integer |
Offer price only, in minor units of the storefront's currency. Does not include
shipping_rate or any voucher discount. |
delivery_time_min |
Integer |
Minimum delivery time in days. |
delivery_time_max |
Integer |
Maximum delivery time in days. |
shipping_rate |
Integer |
Shipping cost, in minor units of the storefront's currency, reported separately from
price. |
fulfillment_type |
String |
One of fulfilled_by_merchant or fulfilled_by_kaufland. |
condition |
String |
The exact condition of the unit, using the same condition values as inventory units (e.g.
NEW, USED___GOOD). |
id_unit |
Integer or absent |
Internal unit ID. Only present when you are the owner of the unit. |
id_offer |
String, null, or absent |
Your own unique ID for the offer. Only present when you are the owner of the unit. |
Error responses
The following errors may be returned:
400 Bad Request |
The request parameters have invalid values (e.g. malformed
id_product/ean/storefront, or neither
id_product nor ean was provided). |
404 Not Found |
The given id_product does not match any product. |