> ## Documentation Index
> Fetch the complete documentation index at: https://developers.criteo.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Minimum Bid

<Info>
  **A Few Things to Know**

  1. A [Onsite Sponsored Products](/retail-media/v2025.04/docs/onsite-sponsored-products) line item holds promoted products to advertise on a single retailer.
  2. Line items have bid settings, start & end dates, and optional budgeting & pacing controls.
  3. Target & maximum bid settings must respect minimum bid (`minBid`), that can be set at product SKU level, to start delivering ads
  4. Products SKU IDs are available through [Catalog](/retail-media/v2025.04/docs/catalogs) endpoints
</Info>

## **Endpoints**

| Verb   | Endpoint                               | Description                                             |
| ------ | -------------------------------------- | ------------------------------------------------------- |
| `POST` | `/retailers/{retailerId}/cpc-min-bids` | Search for min bid CPC defined by collection of SKU IDs |

## **Minimum Bid Attributes**

| Attribute       | Data Type     | Description                                                                                                                                                                                                                                                         |
| --------------- | ------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `retailerId`\*  | string        | [Retailer](/retail-media/v2025.04/docs/retailers) ID where the line item will serve ads onAccepted values: int64 Writeable? N / Nullable? N                                                                                                                         |
| `skuIds`\*      | list\<string> | List of SKU IDs in which the minimum bid is requested (usually, the SKUs promoted by the line item). Values are available through [Catalog](/retail-media/v2025.04/docs/catalogs) endpointsAccepted values: at least, an empty list `[]` Writeable? N / Nullable? N |
| `skuId`         | string        | SKU ID respective to the `minBid` in the responseAccepted values: SKU IDs from catalog Writeable? N / Nullable? N                                                                                                                                                   |
| `overallMinBid` | decimal       | Overall minimum bid resulted from the list of SKUs requested, that the line item should respect to, effectively, deliver adsAcceptable values: at least `0.01` Writeable? N / Nullable? N                                                                           |
| `minBid`        | decimal       | Minimum bid for the respective SKUAcceptable values: at least `0.01` Writeable? N / Nullable? N                                                                                                                                                                     |

*\*Required*

## **Retrieve Minimum Bid from SKU IDs**

**Sample Request**

<CodeGroup>
  ```bash cURL theme={null}
  curl -L -X POST "https://api.criteo.com/{version}/retail-media/retailers/12345/cpc-min-bids" \
      -H "Authorization: Bearer <MY_ACCESS_TOKEN>" \
      -H "Content-Type: application/json" \
      -d '{
              "data": {
                  "type": "<string>",
                  "attributes": {
                      "skuIds": [
                          "a1b2c3",
                          "d4e5f6",
                          "g7h8i9"
                      ]
                  }
              }
          }'
  ```

  ```python Python theme={null}
  import requests
  import json

  url = "https://api.criteo.com/{version}/retail-media/retailers/12345/cpc-min-bids"

  payload = json.dumps({
      "data": {
          "type": "<string>",
          "attributes": {
              "skuIds": [
                  "a1b2c3",
                  "d4e5f6",
                  "g7h8i9"
              ]
          }
      }
  })
  headers = {
    'Content-Type': 'application/json',
    'Accept': 'application/json',
    'Authorization': 'Bearer <MY_ACCESS_TOKEN>'
  }

  response = requests.request("POST", url, headers=headers, data=payload)

  print(response.text)
  ```

  ```java Java theme={null}
  OkHttpClient client = new OkHttpClient().newBuilder()
    .build();

  MediaType mediaType = MediaType.parse("application/json");

  RequestBody body = RequestBody.create(mediaType, "{\"data\":{\"type\":\"<string>\",\"attributes\":{\"skuIds\":[\"a1b2c3\",\"d4e5f6\",\"g7h8i9\"]}}}");

  Request request = new Request.Builder()
    .url("https://api.criteo.com/{version}/retail-media/retailers/12345/cpc-min-bids")
    .method("POST", body)
    .addHeader("Content-Type", "application/json")
    .addHeader("Accept", "application/json")
    .addHeader("Authorization", "Bearer <MY_ACCESS_TOKEN>")
    .build();

  Response response = client.newCall(request).execute();
  ```

  ```php PHP theme={null}
  <?php
  require_once 'HTTP/Request2.php';
  $request = new HTTP_Request2();
  $request->setUrl('https://api.criteo.com/{version}/retail-media/retailers/12345/cpc-min-bids');
  $request->setMethod(HTTP_Request2::METHOD_POST);
  $request->setConfig(array(
    'follow_redirects' => TRUE
  ));
  $request->setHeader(array(
    'Content-Type' => 'application/json',
    'Accept' => 'application/json',
    'Authorization' => 'Bearer <MY_ACCESS_TOKEN>'
  ));
  $request->setBody('{"data":{"type":"<string>","attributes":{"skuIds": ["a1b2c3","d4e5f6","g7h8i9"]}}}');
  try {
    $response = $request->send();
    if ($response->getStatus() == 200) {
      echo $response->getBody();
    }
    else {
      echo 'Unexpected HTTP status: ' . $response->getStatus() . ' ' .
      $response->getReasonPhrase();
    }
  }
  catch(HTTP_Request2_Exception $e) {
    echo 'Error: ' . $e->getMessage();
  }
  ```
</CodeGroup>

**Sample Response**

<CodeGroup>
  ```json JSON theme={null}
  {
      "data": {
          "type": "CpcMinBidsResponse",
          "attributes": {
              "overallMinBid": 0.25,
              "skuMinBids": [
                  {
                      "skuId": "a1b2c3",
                      "minBid": 0.20
                  },
                  {
                      "skuId": "d4e5f6",
                      "minBid": 0.15
                  },
                  {
                      "skuId": "g7h8i9",
                      "minBid": 0.25
                  }
              ]
          }
      },
      "warnings": [],
      "errors": []
  }
  ```
</CodeGroup>

## **Responses**

| Response | Description                                                                                         |
| -------- | --------------------------------------------------------------------------------------------------- |
| 🟢 `200` | Call executed with success                                                                          |
| 🔴 `400` | **json-serialization-error** Required attribute missing or with unexpected format in request's body |
| 🔴 `404` | **Not Found** Retailer ID informed in request's path was not found                                  |
