> ## 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.

# Budget Overrides

> This feature provides more flexibility that allow advertisers to override a line-item budget for specific days or months.

export const EndpointBadge = ({method = "GET", children}) => {
  const METHOD_STYLES = {
    GET: {
      bg: "mint-bg-[#2AB673]"
    },
    POST: {
      bg: "mint-bg-[#3064E3]"
    },
    PUT: {
      bg: "mint-bg-[#C28C30]"
    },
    PATCH: {
      bg: "mint-bg-[#DA622B]"
    },
    DELETE: {
      bg: "mint-bg-[#CB3A32]"
    },
    API: {
      bg: "mint-bg-black"
    }
  };
  const key = method.toUpperCase();
  const styles = METHOD_STYLES[key] ?? METHOD_STYLES.API;
  return <div className="relative mt-7">
      <span className={`absolute -top-2 -left-2 z-10 ${styles.bg} text-white px-2.5 py-0.5 rounded-full text-xs font-bold tracking-wide`}>
        {key}
      </span>
      {children}
    </div>;
};

You can set a monthly/daily budget override to temporarily spend more or less than the current monthly/daily budget for the months you specify. The override will take effect at midnight in your time zone on the first day of the month or first day of the range you select.

<br />

## **Endpoints**

<table>
  <thead>
    <tr>
      <th>
        <p>
          Method
        </p>
      </th>

      <th>
        <p>
          Endpoint
        </p>
      </th>

      <th>
        <p>
          Description
        </p>
      </th>
    </tr>
  </thead>

  <tbody>
    <tr>
      <td>
        <p>
          <code>
            GET
          </code>
        </p>
      </td>

      <td>
        <p>
          <code>
            /campaigns/\{campaignId}/campaign-budget-overrides
          </code>
        </p>
      </td>

      <td>
        <p>
          Retrieves all existing budget overrides at the campaign level.
        </p>
      </td>
    </tr>

    <tr>
      <td>
        <p>
          <code>
            PUT
          </code>
        </p>
      </td>

      <td>
        <p>
          <code>
            /campaigns/\{campaignId}/campaign-budget-overrides
          </code>
        </p>
      </td>

      <td>
        <p>
          Replaces all existing campaign budget override settings. Use this endpoint can be used to add/remove or update existing budget overrides.
        </p>
      </td>
    </tr>

    <tr>
      <td>
        <p>
          <code>
            GET
          </code>
        </p>
      </td>

      <td>
        <p>
          <code>
            /line-items/\{lineItemId}/line-item-budget-overrides
          </code>
        </p>
      </td>

      <td>
        <p>
          Retrieves all existing budget overrides at the line-item level.
        </p>
      </td>
    </tr>

    <tr>
      <td>
        <p>
          <code>
            PUT
          </code>
        </p>
      </td>

      <td>
        <p>
          <code>
            /line-items/\{lineItemId}/line-item-budget-override
          </code>
        </p>
      </td>

      <td>
        <p>
          Replaces all existing line-item budget override settings. Use this endpoint to add/remove or update existing budget overrides.
        </p>
      </td>
    </tr>
  </tbody>
</table>

## **Budget Override Attributes**

<table>
  <thead>
    <tr>
      <th>
        <p>
          Attribute
        </p>
      </th>

      <th>
        <p>
          Data Type
        </p>
      </th>

      <th>
        <p>
          Description
        </p>
      </th>
    </tr>
  </thead>

  <tbody>
    <tr>
      <td>
        <p>
          <code>
            monthlyBudgetOverrides
          </code>
        </p>
      </td>

      <td>
        <p>
          list

          <code>
            \<object>
          </code>
        </p>
      </td>

      <td>
        <p>
          Line item budget override monthly part, chronological order restricted
        </p>

        <p>
          Parameters:
        </p>

        <ul>
          <li>
            <code>
              startMonth
            </code>
          </li>

          <li>
            <code>
              duration
            </code>
          </li>

          <li>
            <code>
              maxMonthlySpend
            </code>
          </li>

          <li>
            <code>
              status
            </code>
          </li>
        </ul>
      </td>
    </tr>

    <tr>
      <td>
        <p>
          <code>
            dailyLineItemBudgetOverrides
          </code>
        </p>
      </td>

      <td>
        <p>
          list

          <code>
            \<object>
          </code>
        </p>
      </td>

      <td>
        <p>
          Line item budget override daily part, chronological order restricted
        </p>

        <p>
          Parameters:
        </p>

        <ul>
          <li>
            <code>
              startDate
            </code>
          </li>

          <li>
            <code>
              duration
            </code>
          </li>

          <li>
            <code>
              maxDailySpend
            </code>
          </li>

          <li>
            <code>
              status
            </code>
          </li>
        </ul>
      </td>
    </tr>

    <tr>
      <td>
        <p>
          <code>
            startMonth
          </code>
        </p>
      </td>

      <td>
        <p>
          string
        </p>
      </td>

      <td>
        <p>
          Start month of monthly budget override.
        </p>

        <ul>
          <li>
            <b>
              Note
            </b>

            : if

            <code>
              null
            </code>

            , the

            <code>
              startMonth
            </code>

            would be the following month of the last item in the override sequence.
          </li>
        </ul>

        <p>
          Accepted values: strings of date

          <code>
            YYYY-MM
          </code>
        </p>

        <p>
          Writeable? Y / Nullable? Y
        </p>
      </td>
    </tr>

    <tr>
      <td>
        <p>
          <code>
            startDate
          </code>
        </p>
      </td>

      <td>
        <p>
          date
        </p>
      </td>

      <td>
        <p>
          Start date of daily budget override
        </p>

        <ul>
          <li>
            <b>
              Note
            </b>

            : if

            <code>
              null
            </code>

            , the

            <code>
              startDate
            </code>

            would be the following date of the last item in the override sequence
          </li>
        </ul>

        <p>
          Accepted values:

          <code>
            YYYY-MM-DD
          </code>
        </p>

        <p>
          Writeable? Y / Nullable? Y
        </p>
      </td>
    </tr>

    <tr>
      <td>
        <p>
          <code>
            duration
          </code>
        </p>
      </td>

      <td>
        <p>
          string
        </p>
      </td>

      <td>
        <p>
          The number of

          <b>
            months
          </b>

          (for monthly Budget Override) or

          <b>
            days
          </b>

          (daily Budget Override) that the override is active, from

          <code>
            startMonth
          </code>

          or

          <code>
            startDate
          </code>

          , respectively
        </p>

        <p>
          Accepted values:
        </p>

        <ul>
          <li>
            <code>
              1M
            </code>

            ,

            <code>
              2M
            </code>

            ,

            <code>
              3M
            </code>

            ... for monthly override (must end with

            <code>
              M
            </code>

            or

            <code>
              m
            </code>

            )
          </li>

          <li>
            <code>
              1D
            </code>

            ,

            <code>
              2D
            </code>

            ,

            <code>
              3D
            </code>

            ... for daily override (must end with

            <code>
              D
            </code>

            or

            <code>
              d
            </code>

            )
          </li>
        </ul>

        <p>
          Writeable? Y / Nullable? N
        </p>
      </td>
    </tr>

    <tr>
      <td>
        <p>
          <code>
            maxMonthlySpend
          </code>
        </p>
      </td>

      <td>
        <p>
          decimal
        </p>
      </td>

      <td>
        <p>
          Monthly budget override maximum monthly spend amount
        </p>

        <p>
          Accepted values:

          <code>
            maxMonthlySpend
          </code>

          ≥ 0.0
        </p>

        <p>
          Writeable? Y / Nullable? N
        </p>
      </td>
    </tr>

    <tr>
      <td>
        <p>
          <code>
            maxDailySpend
          </code>
        </p>
      </td>

      <td>
        <p>
          decimal
        </p>
      </td>

      <td>
        <p>
          Daily budget override maximum daily spend amount
        </p>

        <p>
          Accepted values:

          <code>
            maxDailySpend
          </code>

          ≥ 0.0
        </p>

        <p>
          Writeable? Y / Nullable? N
        </p>
      </td>
    </tr>

    <tr>
      <td>
        <p>
          <code>
            status
          </code>
        </p>
      </td>

      <td>
        <p>
          enum
        </p>
      </td>

      <td>
        <p>
          Monthly or daily budget override computed status
        </p>

        <p>
          Accepted values:

          <code>
            Expired
          </code>

          ,

          <code>
            Active
          </code>

          ,

          <code>
            Upcoming
          </code>
        </p>

        <p>
          Writeable? N / Nullable? N
        </p>
      </td>
    </tr>
  </tbody>
</table>

<br />

## Get Campaign Budget Override

Retrieves all existing budget overrides at campaign level:

<EndpointBadge method="get">
  ```http theme={null}
  https://api.criteo.com/{version}/retail-media/campaigns/{campaignId}/campaign-budget-overrides
  ```
</EndpointBadge>

**Sample Request**

```bash theme={null}
# Request
curl -L 'https://api.criteo.com/{version}/retail-media/campaigns/446397494514737152/campaign-budget-overrides' \
-H 'Accept: application/json' \
-H 'Authorization: Bearer <MY_ACCESS_TOKEN>'
```

**Sample Response**

```json expandable theme={null}
{
    "data": {
        "type": "CampaignBudgetOverrides",
        "attributes": {
            "monthlyBudgetOverrides": [
                {
                    "startMonth": "2023-12",
                    "duration": "1M",
                    "maxMonthlySpend": 100.00,
                    "status": "Expired"
                },
                {
                    "duration": "1M",
                    "maxMonthlySpend": 200.00,
                    "status": "Active"
                },
                {
                    "startMonth": "2024-03",
                    "duration": "1M",
                    "maxMonthlySpend": 150.00,
                    "status": "Upcoming"
                }
            ],
            "dailyBudgetOverrides": [
                {
                    "startDate": "2023-12-01",
                    "duration": "10D",
                    "maxDailySpend": 50.00,
                    "status": "Expired"
                }
            ]
        }
    },
    "warnings": [],
    "errors": []
}
```

<br />

## Update Campaign Budget Override

<EndpointBadge method="put">
  ```http theme={null}
  https://api.criteo.com/{version}/retail-media/campaigns/{campaignId}/campaign-budget-overrides
  ```
</EndpointBadge>

**Sample Request**

```bash expandable theme={null}
# Request
curl -L -X PUT 'https://api.criteo.com/{version}/retail-media/campaigns/446397494514737152/campaign-budget-overrides' \
-H 'Content-Type: application/json' \
-H 'Accept: application/json' \
-H 'Authorization: Bearer <MY_ACCESS_TOKEN>' \
-d '{
  "data": {
    "type": "UpdateBudgetOverride",
    "attributes": {
      "dailyBudgetOverrides": [
        {
          "duration": "15d",
          "maxDailySpend": "1",
          "startDate": "2024-01-01",
          "status": "Active"
        },
        {
          "duration": "15d",
          "maxDailySpend": "2",
          "startDate": "2024-01-16",
          "status": "Active"
        }
      ],
      "monthlyBudgetOverrides": [
        {
          "duration": "1M",
          "maxMonthlySpend": "10",
          "startMonth": "2024-01",
          "status": "Active"
        }
      ]
    }
  }
}'
```

**Sample Response**

```json theme={null}
{
    "data": {
        "type": "CampaignBudgetOverrides",
        "attributes": {
            "monthlyBudgetOverrides": [
                {
                    "startMonth": "2024-01",
                    "duration": "1M",
                    "maxMonthlySpend": 10.00,
                    "status": "Active"
                }
            ],
            "dailyBudgetOverrides": [
                {
                    "startDate": "2024-01-01",
                    "duration": "15D",
                    "maxDailySpend": 1.00,
                    "status": "Active"
                },
                {
                    "duration": "15D",
                    "maxDailySpend": 2.00,
                    "status": "Upcoming"
                }
            ]
        }
    },
    "warnings": [],
    "errors": []
}
```

<br />

## Get Line Item Budget Override

Retrieves all existing budget overrides at line item level:

<EndpointBadge method="get">
  ```http theme={null}
  https://api.criteo.com/{version}/retail-media/line-items/{lineItemId}/line-item-budget-overrides
  ```
</EndpointBadge>

**Sample Request**

```bash theme={null}
# Request
curl -L 'https://api.criteo.com/{version}/retail-media/line-items/446397611671216128/line-item-budget-overrides' \
-H 'Accept: application/json' \
-H 'Authorization: Bearer <MY_ACCESS_TOKEN>'
```

**Sample Response**

```json expandable theme={null}
{
    "data": {
        "type": "LineItemBudgetOverrides",
        "attributes": {
            "monthlyLineItemBudgetOverrides": [
                {
                    "startMonth": "2023-12",
                    "duration": "2M",
                    "maxMonthlySpend": 100.00,
                    "status": "Upcoming"
                }
            ],
            "dailyLineItemBudgetOverrides": [
                {
                    "startDate": "2023-07-13",
                    "duration": "19D",
                    "maxDailySpend": 10.00,
                    "status": "Expired"
                },
                {
                    "startDate": "2023-12-01",
                    "duration": "15D",
                    "maxDailySpend": 10.00,
                    "status": "Upcoming"
                }
            ]
        }
    },
    "warnings": [],
    "errors": []
}
```

<br />

## Update Line Item Budget Override

<EndpointBadge method="put">
  ```http theme={null}
  https://api.criteo.com/{version}/retail-media/line-items/{lineItemId}/line-item-budget-overrides
  ```
</EndpointBadge>

<Note>
  **Be careful with overlapping different overrides**

  Budget overrides cannot overlap. When scheduling a new override make sure it doesn't overlap with the duration of other overrides to avoid `400` validation errors.

  <Frame>
    <img src="https://mintcdn.com/criteo-e1682996/cmPz0RjwwK8-Y1zy/images/retail-media/v2025.10/docs/fdb6c02-image.png?fit=max&auto=format&n=cmPz0RjwwK8-Y1zy&q=85&s=b86a9e9fe6d6cf264b9d4ef9c68089f7" width="2417" height="1342" data-path="images/retail-media/v2025.10/docs/fdb6c02-image.png" />
  </Frame>
</Note>

**Sample Request**

```bash expandable theme={null}
// Sample Request
curl -L -X PUT 'https://api.criteo.com/{version}/retail-media/line-items/446397611671216128/line-item-budget-overrides' \
-H 'Content-Type: application/json' \
-H 'Accept: application/json' \
-H 'Authorization: Bearer <MY_ACCESS_TOKEN>' \
-d '{
    "data": {
        "type": "<string>",
        "attributes": {
            "dailyLineItemBudgetOverrides": [
                {
                    "duration": "5D",
                    "startDate": "2023-12-01",
                    "maxDailySpend": "5",
                    "status": "Upcoming"
                },
                {
                    "duration": "5D",
                    "startDate": "2023-12-06",
                    "maxDailySpend": "2",
                    "status": "Upcoming"
                },
                {
                    "duration": "2D",
                    "startDate": "2023-12-11",
                    "maxDailySpend": "5",
                    "status": "Upcoming"
                }
            ],
            "monthlyLineItemBudgetOverrides": [
                {
                    "duration": "3M",
                    "maxMonthlySpend": "12",
                    "startMonth": "2023-12",
                    "status": "Upcoming"
                },
                {
                    "duration": "3M",
                    "maxMonthlySpend": "12",
                    "startMonth": "2024-03",
                    "status": "Upcoming"
                }
            ]
        }
    }
}'
```

**Sample Response**

```json expandable theme={null}
{
    "data": {
        "type": "LineItemBudgetOverrides",
        "attributes": {
            "monthlyLineItemBudgetOverrides": [
                {
                    "startMonth": "2023-12",
                    "duration": "6M",
                    "maxMonthlySpend": 12.00,
                    "status": "Upcoming"
                }
            ],
            "dailyLineItemBudgetOverrides": [
                {
                    "startDate": "2023-12-01",
                    "duration": "5D",
                    "maxDailySpend": 5.00,
                    "status": "Upcoming"
                },
                {
                    "duration": "5D",
                    "maxDailySpend": 2.00,
                    "status": "Upcoming"
                },
                {
                    "duration": "2D",
                    "maxDailySpend": 5.00,
                    "status": "Upcoming"
                }
            ]
        }
    },
    "warnings": [],
    "errors": []
}
```

<br />

## **Responses**

<table>
  <thead>
    <tr>
      <th>
        <p>
          Response
        </p>
      </th>

      <th>
        <p>
          Description
        </p>
      </th>
    </tr>
  </thead>

  <tbody>
    <tr>
      <td>
        <p>
          🔵

          <code>
            200
          </code>
        </p>
      </td>

      <td>
        <p>
          Call executed with success
        </p>
      </td>
    </tr>

    <tr>
      <td>
        <p>
          🔵

          <code>
            201
          </code>
        </p>
      </td>

      <td>
        <p>
          Budget override was created with success
        </p>
      </td>
    </tr>

    <tr>
      <td>
        <p>
          🔴

          <code>
            400
          </code>
        </p>
      </td>

      <td>
        <ul>
          <li>
            <b>
              validation-errors
            </b>

            :
          </li>

          <li>
            *Budget override dates must not overlap any existing budget overrides for this campaign / line item*
          </li>

          <li>
            *Duration of daily budget override must end with D or d*
          </li>

          <li>
            *Duration of monthly budget override must end with M or m*
          </li>
        </ul>
      </td>
    </tr>
  </tbody>
</table>
