# Booking API

### Bookings

Bookings determine that what, where, how and when of ad delivery.

### Get a booking

```
GET /v1/bookings/{bookingId}
```

Returns a single bookings' details by booking ID.

**Request body**

<table id="bkmrk-parameter-in-require" style="border-collapse: collapse; width: 100%; height: 59.6px;"><thead><tr style="height: 29.8px;"><td style="width: 18.236%; height: 29.8px;">**Parameter**</td><td style="width: 8.46246%; height: 29.8px;">**In**</td><td style="width: 10.1311%; height: 29.8px;">**Required**</td><td style="width: 12.3957%; height: 29.8px;">**Type**</td><td style="width: 50.7747%; height: 29.8px;">**Description**</td></tr></thead><tbody><tr style="height: 29.8px;"><td style="width: 18.236%; height: 29.8px;">`InternalId`</td><td style="width: 8.46246%; height: 29.8px;">path</td><td style="width: 10.1311%; height: 29.8px;">Yes</td><td style="width: 12.3957%; height: 29.8px;">integer</td><td style="width: 50.7747%; height: 29.8px;">The booking's ID.</td></tr></tbody></table>

**Response** - 200

```
{
    "internalId": 22,
    "name": "Evnia 27M2N8500/01",
    "status": "ACTIVE",
    "lifetimeStatus": "STARTED",
    "positionId": 8,
    "positionName": "Home Halfpage",
    "formatId": 1,
    "formatName": "Halfpage",
    "startDate": "2026-07-04T22:00:00Z",
    "endDate": "2026-07-31T21:59:00Z",
    "creationDate": "2026-07-01T10:14:28Z",
    "lastEditedDate": "2026-07-15T13:42:55Z",
    "deliveryFactors": {
        "unit": "IMPRESSIONS",
        "volume": 1500000,
        "pricingType": "CPM",
        "price": 3.0,
        "budget": 4500.0,
        "currency": "EUR",
        "cpcOptimized": true
    },
    "activeDays": [
        "MONDAY",
        "TUESDAY",
        "THURSDAY",
        "FRIDAY",
        "SATURDAY",
        "SUNDAY"
    ],
    "creativeCount": 2,
    "frequencyLimits": [],
    "userFrequencies": [
        {
            "impressionsAmount": 10,
            "expiryInSeconds": 86400
        }
    ],
    "pacing": "FRONTLOADED",
    "deliveryMethod": "AUTO",
    "deliveryParameter": 0.0,
    "deliveryMultiples": "FREE",
    "campaignId": 17,
    "comment": null,
    "priority": null,
    "isBookedOnChannel": false,
    "excludePositionIds": [],
    "excludePublicationIds": [],
    "rtbEnabled": false,
    "targetExpressions": {},
    "autoDeliveryLimits": false,
    "bookingType": null,
    "startTime": "00:00:00",
    "endTime": "23:59:59"
}
```

**Response codes**

<table id="bkmrk-status-meaning-201-c" style="border-collapse: collapse; width: 100%; height: 208.6px;"><colgroup><col style="width: 14.3133%;"></col><col style="width: 85.6847%;"></col></colgroup><thead><tr style="height: 29.8px;"><td style="height: 29.8px;">**Status**</td><td style="height: 29.8px;">**Meaning**</td></tr></thead><tbody><tr style="height: 29.8px;"><td style="height: 29.8px;">`200`</td><td style="height: 29.8px;">Booking found.</td></tr><tr style="height: 29.8px;"><td style="height: 29.8px;">`400`</td><td style="height: 29.8px;">Bad request - invalid input or parameters.</td></tr><tr style="height: 29.8px;"><td style="height: 29.8px;">`401` / `403`</td><td style="height: 29.8px;">Not authenticated / not allowed.</td></tr><tr style="height: 29.8px;"><td style="height: 29.8px;">`404`</td><td style="height: 29.8px;">Not Found - Resource not found.</td></tr><tr style="height: 29.8px;"><td style="height: 29.8px;">`500`</td><td style="height: 29.8px;">Internal Server Error - Unexpected failure.</td></tr></tbody></table>

### Update a booking

```
PUT /v1/bookings/{bookingId}
```

Updates a single booking by booking ID.

**Request body** - <span class="model"><span class=""><span class="pointer"><span class="model-title"><span class="model-title__text">UpdateBookingDto</span></span></span></span></span>

<table id="bkmrk-parameter-in-require-1" style="border-collapse: collapse; width: 100%; height: 89.4px;"><thead><tr style="height: 29.8px;"><td style="width: 18.236%; height: 29.8px;">**Parameter**</td><td style="width: 8.46246%; height: 29.8px;">**In**</td><td style="width: 11.6806%; height: 29.8px;">**Required**</td><td style="width: 10.8462%; height: 29.8px;">**Type**</td><td style="width: 50.7747%; height: 29.8px;">**Description**</td></tr></thead><tbody><tr style="height: 29.8px;"><td style="width: 18.236%; height: 29.8px;">`InternalId`</td><td style="width: 8.46246%; height: 29.8px;">path</td><td style="width: 11.6806%; height: 29.8px;">Yes</td><td style="width: 10.8462%; height: 29.8px;">integer</td><td style="width: 50.7747%; height: 29.8px;">The booking's ID.</td></tr><tr style="height: 29.8px;"><td style="width: 18.236%; height: 29.8px;">`name`</td><td style="width: 8.46246%; height: 29.8px;">body</td><td style="width: 11.6806%; height: 29.8px;">Yes</td><td style="width: 10.8462%; height: 29.8px;">string</td><td style="width: 50.7747%; height: 29.8px;">Name of the campaign under which the booking is active.</td></tr><tr><td style="width: 18.236%; height: 46.6px;">`startDate`</td><td style="width: 8.46246%; height: 46.6px;">body</td><td style="width: 11.6806%; height: 46.6px;">Yes</td><td style="width: 10.8462%; height: 46.6px;">string</td><td style="width: 50.7747%; height: 46.6px;">Start date of the booking in date-time format `yyyy-mm-ddThh:mm:ssZ`</td></tr><tr><td style="width: 18.236%; height: 46.6px;">`endDate`</td><td style="width: 8.46246%; height: 46.6px;">body</td><td style="width: 11.6806%; height: 46.6px;">Yes</td><td style="width: 10.8462%; height: 46.6px;">string</td><td style="width: 50.7747%; height: 46.6px;">End date of the booking in date-time format `yyyy-mm-ddThh:mm:ssZ`</td></tr><tr><td style="width: 18.236%; height: 63.4px;">`activeDays`

</td><td style="width: 8.46246%; height: 63.4px;">body</td><td style="width: 11.6806%; height: 63.4px;">Yes</td><td style="width: 10.8462%; height: 63.4px;">string</td><td style="width: 50.7747%; height: 63.4px;">Days of the week the booking is active. Possible values are: <span class="model"><span class=""><span class="inner-object"><span class="prop"><span class="prop-enum">`MONDAY`, `TUESDAY`, `WEDNESDAY`, `THURSDAY`, `FRIDAY`, `SATURDAY`, `SUNDAY`</span></span></span></span></span></td></tr><tr><td style="width: 18.236%; height: 86.2px;">`deliveryFactors`

</td><td style="width: 8.46246%; height: 86.2px;">body</td><td style="width: 11.6806%; height: 86.2px;">Yes</td><td style="width: 10.8462%; height: 86.2px;">string, integer, number, boolean</td><td style="width: 50.7747%; height: 86.2px;">Options that set the goals and to reach of the booking.</td></tr><tr><td style="width: 18.236%; height: 46.6px;">\- `unit`

</td><td style="width: 8.46246%; height: 46.6px;">body</td><td style="width: 11.6806%; height: 46.6px;">Yes</td><td style="width: 10.8462%; height: 46.6px;">string</td><td style="width: 50.7747%; height: 46.6px;">Unit of the to reach volume of the booking. Possible values are: `Impressions` or `Clicks`</td></tr><tr><td style="width: 18.236%; height: 29.8px;">\- `volume`

</td><td style="width: 8.46246%; height: 29.8px;">body</td><td style="width: 11.6806%; height: 29.8px;">No</td><td style="width: 10.8462%; height: 29.8px;">integer</td><td style="width: 50.7747%; height: 29.8px;">Amount of the unit to reach before the booking stops.</td></tr><tr><td style="width: 18.236%; height: 29.8px;">\- `price`

</td><td style="width: 8.46246%; height: 29.8px;">body</td><td style="width: 11.6806%; height: 29.8px;">No</td><td style="width: 10.8462%; height: 29.8px;">number</td><td style="width: 50.7747%; height: 29.8px;">Price of the booking set by pricing type.</td></tr><tr><td style="width: 18.236%; height: 46.6px;">\- `budget`

</td><td style="width: 8.46246%; height: 46.6px;">body</td><td style="width: 11.6806%; height: 46.6px;">No</td><td style="width: 10.8462%; height: 46.6px;">number</td><td style="width: 50.7747%; height: 46.6px;">Budget of the booking. When the budget is spent by the booking, delivery stops.</td></tr><tr><td style="width: 18.236%; height: 46.6px;">\- `pricingType`

</td><td style="width: 8.46246%; height: 46.6px;">body</td><td style="width: 11.6806%; height: 46.6px;">Yes</td><td style="width: 10.8462%; height: 46.6px;">string</td><td style="width: 50.7747%; height: 46.6px;">Method for determining ad spend via price. Possible values are: `CPM`, `CPC`, `CPP`, `CPL` or `ADM`</td></tr><tr><td style="width: 18.236%; height: 29.8px;">\- `cpcOptimized`

</td><td style="width: 8.46246%; height: 29.8px;">body</td><td style="width: 11.6806%; height: 29.8px;">No</td><td style="width: 10.8462%; height: 29.8px;">boolean</td><td style="width: 50.7747%; height: 29.8px;">Is CPC optimisation enabled for the booking: `true` or `false`</td></tr><tr><td style="width: 18.236%; height: 29.8px;">`mediaProduct`

</td><td style="width: 8.46246%; height: 29.8px;">body</td><td style="width: 11.6806%; height: 29.8px;">Yes</td><td style="width: 10.8462%; height: 29.8px;">integer</td><td style="width: 50.7747%; height: 29.8px;">Position and format ID of the position of the booking.</td></tr><tr><td style="width: 18.236%; height: 29.8px;">\- `positionID`

</td><td style="width: 8.46246%; height: 29.8px;">body</td><td style="width: 11.6806%; height: 29.8px;">Yes</td><td style="width: 10.8462%; height: 29.8px;">integer</td><td style="width: 50.7747%; height: 29.8px;">Slot ID of the position.</td></tr><tr><td style="width: 18.236%; height: 29.8px;">\- `formatID`

</td><td style="width: 8.46246%; height: 29.8px;">body</td><td style="width: 11.6806%; height: 29.8px;">Yes</td><td style="width: 10.8462%; height: 29.8px;">integer</td><td style="width: 50.7747%; height: 29.8px;">ID of the format used in the position.</td></tr><tr><td style="width: 18.236%;">`frequencyLimits`

</td><td style="width: 8.46246%;">body</td><td style="width: 11.6806%;">No</td><td style="width: 10.8462%;">integer, string</td><td style="width: 50.7747%;">Setting for capping delivery.</td></tr><tr><td style="width: 18.236%;">\- `amount`

</td><td style="width: 8.46246%;">body</td><td style="width: 11.6806%;">No</td><td style="width: 10.8462%;">string</td><td style="width: 50.7747%;">Amount of *event* to cap delivery by.</td></tr><tr><td style="width: 18.236%;">\- `event`

</td><td style="width: 8.46246%;">body</td><td style="width: 11.6806%;">No</td><td style="width: 10.8462%;">string</td><td style="width: 50.7747%;">Unit to measure for capping delivery. Either `IMPRESSIONS` or `CLICKS`</td></tr><tr><td style="width: 18.236%;">\- `period`

</td><td style="width: 8.46246%;">body</td><td style="width: 11.6806%;">No</td><td style="width: 10.8462%;">string</td><td style="width: 50.7747%;">Period where the cap is active, either `HOURLY` or `DAILY`. After the period has run out, the cap resets, either for the next hour or next day.</td></tr><tr><td style="width: 18.236%;">`pacing`

</td><td style="width: 8.46246%;">body</td><td style="width: 11.6806%;">Yes</td><td style="width: 10.8462%;">string</td><td style="width: 50.7747%;">Delivery pacing options for the booking. Possible values are: `EVEN`, `FRONTLOADED`, `AS_FAST_AS_POSSIBLE`, `ROTATION`, `SHARE_OF_VOICE` or `ACCOUNT_SETTING`. Account setting takes the default pacing option set for the account</td></tr><tr><td style="width: 18.236%;">`deliveryParameter`

</td><td style="width: 8.46246%;">body</td><td style="width: 11.6806%;">No</td><td style="width: 10.8462%;">number</td><td style="width: 50.7747%;">Sets the delivery percentage for SOV. Expressed as `1` for 100% of desired delivery share.</td></tr><tr><td style="width: 18.236%;">`comment`

</td><td style="width: 8.46246%;">body</td><td style="width: 11.6806%;">No</td><td style="width: 10.8462%;">string</td><td style="width: 50.7747%;">Optional comment in the booking UI.</td></tr><tr><td style="width: 18.236%;">`rtbEnabled`

</td><td style="width: 8.46246%;">body</td><td style="width: 11.6806%;">No</td><td style="width: 10.8462%;">boolean</td><td style="width: 50.7747%;">Can the booking go in competition with RTB bookings. Possible values are `true` or `false`</td></tr><tr><td style="width: 18.236%;">`priorityID`

</td><td style="width: 8.46246%;">body</td><td style="width: 11.6806%;">No</td><td style="width: 10.8462%;">integer</td><td style="width: 50.7747%;">Priority of the booking expressed from `1` till `5`, If no value is chosen, the campaign priority will be picked.</td></tr><tr><td style="width: 18.236%;">`deliveryMultiples`

</td><td style="width: 8.46246%;">body</td><td style="width: 11.6806%;">No</td><td style="width: 10.8462%;">string</td><td style="width: 50.7747%;">Extra exclusion settings for bookings. Possible values are: `EXCLUSIVE_ON_CAMPAIGN`, `EXCLUSIVE_ON_CREATIVE`, `ONE_AT_A_TIME`, `FREE`. Free is the default option and means no deliveryMultiples is set. ONE\_AT\_A\_TIME refers to [Exclusive on Advertiser](https://documentation.adhese.eu/books/campaign-management/page/bookings#bkmrk-exclude-delivery).</td></tr><tr><td style="width: 18.236%;">`excludePositionIds`

</td><td style="width: 8.46246%;">body</td><td style="width: 11.6806%;">No</td><td style="width: 10.8462%;">integer</td><td style="width: 50.7747%;">Position IDs to exclude from the selected media product (if it's a channel).</td></tr><tr><td style="width: 18.236%;">`excludePublicationIds`

</td><td style="width: 8.46246%;">body</td><td style="width: 11.6806%;">No</td><td style="width: 10.8462%;">integer</td><td style="width: 50.7747%;">Publication IDs to exclude certain publication's inventory from the selected media product (if it's a channel)</td></tr><tr><td style="width: 18.236%;">`autoDeliveryLimits`

</td><td style="width: 8.46246%;">body</td><td style="width: 11.6806%;">No</td><td style="width: 10.8462%;">boolean</td><td style="width: 50.7747%;">Activate auto delivery limits. Possible values are `true` or `false`.</td></tr><tr><td style="width: 18.236%;">`sponsoredProductIds`

</td><td style="width: 8.46246%;">body</td><td style="width: 11.6806%;">No</td><td style="width: 10.8462%;">string</td><td style="width: 50.7747%;">ID's of the sponsored products attached to this booking.</td></tr><tr><td style="width: 18.236%;">`startTime`

</td><td style="width: 8.46246%;">body</td><td style="width: 11.6806%;">No</td><td style="width: 10.8462%;">string</td><td style="width: 50.7747%;">Hour of the day when the booking will start delivery. formatted as `hh:mm:ss`.</td></tr><tr><td style="width: 18.236%;">`endTime`

</td><td style="width: 8.46246%;">body</td><td style="width: 11.6806%;">No</td><td style="width: 10.8462%;">string</td><td style="width: 50.7747%;">Hour of the day when the booking will stop delivery (until the next day). formatted as `hh:mm:ss`.</td></tr></tbody></table>

**Updating a booking**

```
{
    "internalId": 22,
    "name": "Evnia 27M2N8500/01",
    "status": "ACTIVE",
    "lifetimeStatus": "STARTED",
    "positionId": 8,
    "positionName": "Home Halfpage",
    "formatId": 1,
    "formatName": "Halfpage",
    "startDate": "2026-07-04T22:00:00Z",
    "endDate": "2026-07-31T21:59:00Z",
    "creationDate": "2026-07-01T10:14:28Z",
    "lastEditedDate": "2026-07-15T13:42:55Z",
    "deliveryFactors": {
        "unit": "IMPRESSIONS",
        "volume": 2500000,
        "pricingType": "CPM",
        "price": 3.0,
        "budget": 5500.0,
        "currency": "EUR",
        "cpcOptimized": true
    },
    "mediaProduct": {
      "positionId": 8,
      "formatId": 1
    },
    "activeDays": [
        "MONDAY",
        "TUESDAY",
        "THURSDAY",
        "FRIDAY",
        "SATURDAY",
        "SUNDAY"
    ],
    "creativeCount": 2,
    "frequencyLimits": [],
    "userFrequencies": [
        {
            "impressionsAmount": 10,
            "expiryInSeconds": 86400
        }
    ],
    "pacing": "FRONTLOADED",
    "deliveryMethod": "AUTO",
    "deliveryMultiples": "FREE",
    "campaignId": 17,
    "comment": null,
    "priority": null,
    "isBookedOnChannel": false,
    "excludePositionIds": [],
    "excludePublicationIds": [],
    "rtbEnabled": false,
    "targetExpressions": {},
    "autoDeliveryLimits": false,
    "bookingType": null,
    "startTime": "00:00:00",
    "endTime": "23:59:59"
}
```

**Response** - 200

```
{
    "internalId": 22,
    "name": "Evnia 27M2N8500/01",
    "status": "ACTIVE",
    "lifetimeStatus": "STARTED",
    "positionId": 8,
    "positionName": "Home Halfpage",
    "formatId": 1,
    "formatName": "Halfpage",
    "startDate": "2026-07-04T22:00:00Z",
    "endDate": "2026-07-31T21:59:00Z",
    "creationDate": "2026-07-01T10:14:28Z",
    "lastEditedDate": "2026-07-31T12:02:18Z",
    "deliveryFactors": {
        "unit": "IMPRESSIONS",
        "volume": 2500000,
        "pricingType": "CPM",
        "price": 3.0,
        "budget": 5500.0,
        "currency": "EUR",
        "cpcOptimized": true
    },
    "activeDays": [
        "MONDAY",
        "TUESDAY",
        "THURSDAY",
        "FRIDAY",
        "SATURDAY",
        "SUNDAY"
    ],
    "creativeCount": 2,
    "frequencyLimits": [],
    "userFrequencies": [
        {
            "impressionsAmount": 10,
            "expiryInSeconds": 86400
        }
    ],
    "pacing": "FRONTLOADED",
    "deliveryMethod": "AUTO",
    "deliveryParameter": null,
    "deliveryMultiples": "FREE",
    "campaignId": 17,
    "comment": null,
    "priority": null,
    "isBookedOnChannel": false,
    "excludePositionIds": [],
    "excludePublicationIds": [],
    "rtbEnabled": false,
    "targetExpressions": {},
    "autoDeliveryLimits": false,
    "bookingType": null,
    "startTime": "00:00:00",
    "endTime": "23:59:59"
}
```

**Response codes**

<table id="bkmrk-status-meaning-200-b" style="border-collapse: collapse; width: 100%; height: 238.4px;"><colgroup><col style="width: 14.3133%;"></col><col style="width: 85.6847%;"></col></colgroup><thead><tr style="height: 29.8px;"><td style="height: 29.8px;">**Status**</td><td style="height: 29.8px;">**Meaning**</td></tr></thead><tbody><tr style="height: 29.8px;"><td style="height: 29.8px;">`200`</td><td style="height: 29.8px;">Booking updated.</td></tr><tr style="height: 29.8px;"><td style="height: 29.8px;">`400`</td><td style="height: 29.8px;">Bad request - invalid input or parameters.</td></tr><tr style="height: 29.8px;"><td style="height: 29.8px;">`401` / `403`</td><td style="height: 29.8px;">Not authenticated / not allowed.</td></tr><tr style="height: 29.8px;"><td style="height: 29.8px;">`404`</td><td style="height: 29.8px;">Not Found - Resource not found.</td></tr><tr style="height: 29.8px;"><td style="height: 29.8px;">`409`</td><td style="height: 29.8px;">Conflict.</td></tr><tr style="height: 29.8px;"><td style="height: 29.8px;">`422`</td><td style="height: 29.8px;">Unprocessable Entity</td></tr><tr style="height: 29.8px;"><td style="height: 29.8px;">`500`</td><td style="height: 29.8px;">Internal Server Error - Unexpected failure.</td></tr></tbody></table>

### Change the status of a booking

```
PUT /v1/bookings/{bookingId}/status
```

Change the status of a booking

**Request** **body**

<table id="bkmrk-parameter-in-require-2" style="border-collapse: collapse; width: 100%; height: 107.2px;"><thead><tr style="height: 29.8px;"><td style="width: 18.236%; height: 29.8px;">**Parameter**</td><td style="width: 8.46246%; height: 29.8px;">**In**</td><td style="width: 10.1311%; height: 29.8px;">**Required**</td><td style="width: 12.3957%; height: 29.8px;">**Type**</td><td style="width: 50.7747%; height: 29.8px;">**Description**</td></tr></thead><tbody><tr style="height: 29.8px;"><td style="width: 18.236%; height: 29.8px;">`bookingId`</td><td style="width: 8.46246%; height: 29.8px;">path</td><td style="width: 10.1311%; height: 29.8px;">Yes</td><td style="width: 12.3957%; height: 29.8px;">integer</td><td style="width: 50.7747%; height: 29.8px;">The booking's ID.</td></tr><tr style="height: 47.6px;"><td style="width: 18.236%; height: 47.6px;">/</td><td style="width: 8.46246%; height: 47.6px;">body</td><td style="width: 10.1311%; height: 47.6px;">Yes</td><td style="width: 12.3957%; height: 47.6px;">string</td><td style="width: 50.7747%; height: 47.6px;">Desired booking status. Possible values are: `ACTIVE`, `PAUSED`, `STOPPED`</td></tr></tbody></table>

**Changing the status of a booking**

```
"ACTIVE"
```

**Response codes**

<table id="bkmrk-status-meaning-204-b" style="border-collapse: collapse; width: 100%; height: 208.6px;"><colgroup><col style="width: 14.3133%;"></col><col style="width: 85.6847%;"></col></colgroup><thead><tr style="height: 29.8px;"><td style="height: 29.8px;">**Status**</td><td style="height: 29.8px;">**Meaning**</td></tr></thead><tbody><tr style="height: 29.8px;"><td style="height: 29.8px;">`204`</td><td style="height: 29.8px;">Booking status updated.</td></tr><tr style="height: 29.8px;"><td style="height: 29.8px;">`400`</td><td style="height: 29.8px;">Bad request - invalid input or parameters.</td></tr><tr style="height: 29.8px;"><td style="height: 29.8px;">`401` / `403`</td><td style="height: 29.8px;">Not authenticated / not allowed.</td></tr><tr style="height: 29.8px;"><td style="height: 29.8px;">`404`</td><td style="height: 29.8px;">Not Found - Resource not found.</td></tr><tr style="height: 29.8px;"><td style="height: 29.8px;">`409`</td><td style="height: 29.8px;">Conflict.</td></tr><tr style="height: 29.8px;"><td style="height: 29.8px;">`500`</td><td style="height: 29.8px;">Internal Server Error - Unexpected failure.</td></tr></tbody></table>

### List bookings

```
GET /v1/bookings
```

List one or multiple bookings depending on filters chosen. Filtering is required for retrieving a list of bookings.

**Request body**

<table id="bkmrk-parameter-in-require-3" style="border-collapse: collapse; width: 100%; height: 416.6px;"><thead><tr style="height: 29.8px;"><td style="width: 16.0906%; height: 29.8px;">**Parameter**</td><td style="width: 13.4684%; height: 29.8px;">**In**</td><td style="width: 10.0119%; height: 29.8px;">**Required**</td><td style="width: 9.65435%; height: 29.8px;">**Type**</td><td style="width: 50.7747%; height: 29.8px;">**Description**</td></tr></thead><tbody><tr style="height: 46.6px;"><td style="width: 16.0906%; height: 46.6px;">`campaignId`</td><td style="width: 13.4684%; height: 46.6px;">parameters</td><td style="width: 10.0119%; height: 46.6px;">No</td><td style="width: 9.65435%; height: 46.6px;">integer</td><td style="width: 50.7747%; height: 46.6px;">Campaign Id of the campaign whose bookings you want to list</td></tr><tr style="height: 47.6px;"><td style="width: 16.0906%; height: 47.6px;">`boookingId`</td><td style="width: 13.4684%; height: 47.6px;">parameters</td><td style="width: 10.0119%; height: 47.6px;">No</td><td style="width: 9.65435%; height: 47.6px;">integer</td><td style="width: 50.7747%; height: 47.6px;">Booking Ids of the booking(s) you want to list. IDs are comma separated.</td></tr><tr style="height: 46.6px;"><td style="width: 16.0906%; height: 46.6px;">`creativeId`</td><td style="width: 13.4684%; height: 46.6px;">parameters</td><td style="width: 10.0119%; height: 46.6px;">No</td><td style="width: 9.65435%; height: 46.6px;">integer</td><td style="width: 50.7747%; height: 46.6px;">ID of the creatives by which you want to return trafficked bookings. IDs are comma separated.</td></tr><tr style="height: 29.8px;"><td style="width: 16.0906%; height: 29.8px;">`limit`</td><td style="width: 13.4684%; height: 29.8px;">parameters</td><td style="width: 10.0119%; height: 29.8px;">No</td><td style="width: 9.65435%; height: 29.8px;">integer</td><td style="width: 50.7747%; height: 29.8px;">Pagination property to limit the number of returned targets.</td></tr><tr style="height: 29.8px;"><td style="width: 16.0906%; height: 29.8px;">`offset`</td><td style="width: 13.4684%; height: 29.8px;">parameters</td><td style="width: 10.0119%; height: 29.8px;">No</td><td style="width: 9.65435%; height: 29.8px;">integer</td><td style="width: 50.7747%; height: 29.8px;">Pagination property to offset the returned targets.</td></tr><tr style="height: 46.6px;"><td style="width: 16.0906%; height: 46.6px;">`search`</td><td style="width: 13.4684%; height: 46.6px;">parameters</td><td style="width: 10.0119%; height: 46.6px;">No</td><td style="width: 9.65435%; height: 46.6px;">string</td><td style="width: 50.7747%; height: 46.6px;">An url-encoded search string to apply to the list of bookings (ignoring case, on id and name).</td></tr><tr style="height: 46.6px;"><td style="width: 16.0906%; height: 46.6px;">`status`</td><td style="width: 13.4684%; height: 46.6px;">parameters</td><td style="width: 10.0119%; height: 46.6px;">No</td><td style="width: 9.65435%; height: 46.6px;">string</td><td style="width: 50.7747%; height: 46.6px;">Filter applied to one or more booking statuses. Possible values are: `ACTIVE`, `PAUSED`, `STOPPED`</td></tr><tr style="height: 63.4px;"><td style="width: 16.0906%; height: 63.4px;">`sortField`</td><td style="width: 13.4684%; height: 63.4px;">parameters</td><td style="width: 10.0119%; height: 63.4px;">No</td><td style="width: 9.65435%; height: 63.4px;">string</td><td style="width: 50.7747%; height: 63.4px;">Field that results should be sorted on. Possible values are: `INTERNAL_ID`, `NAME`, `STATUS`, `START_DATE`, `END_DATE`, `BOOKING_TYPE`</td></tr><tr style="height: 29.8px;"><td style="width: 16.0906%; height: 29.8px;">`sortDirection`</td><td style="width: 13.4684%; height: 29.8px;">parameters</td><td style="width: 10.0119%; height: 29.8px;">No</td><td style="width: 9.65435%; height: 29.8px;">string</td><td style="width: 50.7747%; height: 29.8px;">Sort direction to be applied. Possible values are: `ASC`, `DESC`</td></tr></tbody></table>

**Response** - 200

```
[
    {
        "internalId": 26,
        "name": "",
        "status": "ACTIVE",
        "lifetimeStatus": "COMPLETED",
        "positionId": 10,
        "positionName": "",
        "formatId": 1,
        "formatName": "Halfpage",
        "startDate": "2026-07-14T22:00:00Z",
        "endDate": "2026-07-31T21:59:59Z",
        "creationDate": "2026-07-15T13:44:13Z",
        "lastEditedDate": "2026-07-15T13:46:38Z",
        "deliveryFactors": {
            "unit": "IMPRESSIONS",
            "volume": 20000,
            "pricingType": "CPM",
            "price": 0.0,
            "budget": 0.0,
            "currency": "EUR",
            "cpcOptimized": false
        },
        "activeDays": [
            "MONDAY",
            "TUESDAY",
            "WEDNESDAY",
            "THURSDAY",
            "FRIDAY",
            "SATURDAY",
            "SUNDAY"
        ],
        "creativeCount": 1,
        "frequencyLimits": [],
        "userFrequencies": [],
        "pacing": "EVEN",
        "deliveryMethod": "AUTO",
        "deliveryParameter": 0.0,
        "deliveryMultiples": "FREE",
        "campaignId": 21,
        "comment": "",
        "priority": null,
        "isBookedOnChannel": true,
        "excludePositionIds": [],
        "excludePublicationIds": [],
        "rtbEnabled": false,
        "targetExpressions": {},
        "autoDeliveryLimits": false,
        "bookingType": null,
        "startTime": "00:00:00",
        "endTime": "23:59:59"
    },
    {
        "internalId": 29,
        "name": "",
        "status": "ACTIVE",
        "lifetimeStatus": "COMPLETED",
        "positionId": 15,
        "positionName": "",
        "formatId": 7,
        "formatName": "Portrait Screen",
        "startDate": "2026-07-28T22:00:00Z",
        "endDate": "2026-07-29T21:59:59Z",
        "creationDate": "2026-07-29T07:48:51Z",
        "lastEditedDate": "2026-07-29T07:49:31Z",
        "deliveryFactors": {
            "unit": "IMPRESSIONS",
            "volume": 0,
            "pricingType": "CPM",
            "price": 0.0,
            "budget": 0.0,
            "currency": "EUR",
            "cpcOptimized": false
        },
        "activeDays": [
            "MONDAY",
            "TUESDAY",
            "WEDNESDAY",
            "THURSDAY",
            "FRIDAY",
            "SATURDAY",
            "SUNDAY"
        ],
        "creativeCount": 0,
        "frequencyLimits": [],
        "userFrequencies": [],
        "pacing": "SHARE_OF_VOICE",
        "deliveryMethod": "SOV",
        "deliveryParameter": 1.0,
        "deliveryMultiples": "FREE",
        "campaignId": 21,
        "comment": "",
        "priority": null,
        "isBookedOnChannel": false,
        "excludePositionIds": [],
        "excludePublicationIds": [],
        "rtbEnabled": false,
        "targetExpressions": {},
        "autoDeliveryLimits": false,
        "bookingType": null,
        "startTime": "00:00:00",
        "endTime": "23:59:59"
    }
]
```

**Response codes**

<table id="bkmrk-status-meaning-200-b-1" style="border-collapse: collapse; width: 100%; height: 208.6px;"><colgroup><col style="width: 14.3133%;"></col><col style="width: 85.6847%;"></col></colgroup><thead><tr style="height: 29.8px;"><td style="height: 29.8px;">**Status**</td><td style="height: 29.8px;">**Meaning**</td></tr></thead><tbody><tr style="height: 29.8px;"><td style="height: 29.8px;">`200`</td><td style="height: 29.8px;">Bookings returned successfully. </td></tr><tr style="height: 29.8px;"><td style="height: 29.8px;">`400`</td><td style="height: 29.8px;">Bad request - invalid input or parameters.</td></tr><tr style="height: 29.8px;"><td style="height: 29.8px;">`401` / `403`</td><td style="height: 29.8px;">Not authenticated / not allowed.</td></tr><tr style="height: 29.8px;"><td style="height: 29.8px;">`404`</td><td style="height: 29.8px;">Not Found - Resource not found.</td></tr><tr style="height: 29.8px;"><td style="height: 29.8px;">`409`</td><td style="height: 29.8px;">Conflict.</td></tr><tr style="height: 29.8px;"><td style="height: 29.8px;">`500`</td><td style="height: 29.8px;">Internal Server Error - Unexpected failure.</td></tr></tbody></table>

### Create a booking

```
POST /v1/bookings
```

Create a new booking based on the parameters entered in the request.

**Request body**

<table id="bkmrk-parameter-in-require-4" style="border-collapse: collapse; width: 100%; height: 1613.8px;"><thead><tr style="height: 29.8px;"><td style="width: 19.4279%; height: 29.8px;">**Parameter**</td><td style="width: 8.10489%; height: 29.8px;">**In**</td><td style="width: 10.8462%; height: 29.8px;">**Required**</td><td style="width: 9.77482%; height: 29.8px;">**Type**</td><td style="width: 51.8462%; height: 29.8px;">**Description**</td></tr></thead><tbody><tr style="height: 46.6px;"><td style="width: 19.4279%; height: 46.6px;">`InternalId`</td><td style="width: 8.10489%; height: 46.6px;">path</td><td style="width: 10.8462%; height: 46.6px;">Yes</td><td style="width: 9.77482%; height: 46.6px;">integer</td><td style="width: 51.8462%; height: 46.6px;">The booking's ID.</td></tr><tr style="height: 47.6px;"><td style="width: 19.4279%; height: 47.6px;">`name`</td><td style="width: 8.10489%; height: 47.6px;">body</td><td style="width: 10.8462%; height: 47.6px;">Yes</td><td style="width: 9.77482%; height: 47.6px;">string</td><td style="width: 51.8462%; height: 47.6px;">Name of the campaign under which the booking is active.</td></tr><tr style="height: 46.6px;"><td style="width: 19.4279%; height: 46.6px;">`startDate`</td><td style="width: 8.10489%; height: 46.6px;">body</td><td style="width: 10.8462%; height: 46.6px;">Yes</td><td style="width: 9.77482%; height: 46.6px;">string</td><td style="width: 51.8462%; height: 46.6px;">Start date of the booking in date-time format `yyyy-mm-ddThh:mm:ssZ`</td></tr><tr style="height: 46.6px;"><td style="width: 19.4279%; height: 46.6px;">`endDate`</td><td style="width: 8.10489%; height: 46.6px;">body</td><td style="width: 10.8462%; height: 46.6px;">Yes</td><td style="width: 9.77482%; height: 46.6px;">string</td><td style="width: 51.8462%; height: 46.6px;">End date of the booking in date-time format `yyyy-mm-ddThh:mm:ssZ`</td></tr><tr style="height: 63.4px;"><td style="width: 19.4279%; height: 63.4px;">`activeDays`

</td><td style="width: 8.10489%; height: 63.4px;">body</td><td style="width: 10.8462%; height: 63.4px;">Yes</td><td style="width: 9.77482%; height: 63.4px;">string</td><td style="width: 51.8462%; height: 63.4px;">Days of the week the booking is active. Possible values are: <span class="model"><span class=""><span class="inner-object"><span class="prop"><span class="prop-enum">`MONDAY`, `TUESDAY`, `WEDNESDAY`, `THURSDAY`, `FRIDAY`, `SATURDAY`, `SUNDAY`</span></span></span></span></span></td></tr><tr style="height: 86.2px;"><td style="width: 19.4279%; height: 86.2px;">`deliveryFactors`

</td><td style="width: 8.10489%; height: 86.2px;">body</td><td style="width: 10.8462%; height: 86.2px;">Yes</td><td style="width: 9.77482%; height: 86.2px;">string, integer, number, boolean</td><td style="width: 51.8462%; height: 86.2px;">Options that set the goals and to reach of the booking.</td></tr><tr style="height: 46.6px;"><td style="width: 19.4279%; height: 46.6px;">\- `unit`

</td><td style="width: 8.10489%; height: 46.6px;">body</td><td style="width: 10.8462%; height: 46.6px;">Yes</td><td style="width: 9.77482%; height: 46.6px;">string</td><td style="width: 51.8462%; height: 46.6px;">Unit of the to reach volume of the booking. Possible values are: `Impressions` or `Clicks`</td></tr><tr style="height: 63.4px;"><td style="width: 19.4279%; height: 63.4px;">\- `volume`

</td><td style="width: 8.10489%; height: 63.4px;">body</td><td style="width: 10.8462%; height: 63.4px;">No</td><td style="width: 9.77482%; height: 63.4px;">integer</td><td style="width: 51.8462%; height: 63.4px;">Amount of the unit to reach before the booking stops.</td></tr><tr style="height: 29.8px;"><td style="width: 19.4279%; height: 29.8px;">\- `price`

</td><td style="width: 8.10489%; height: 29.8px;">body</td><td style="width: 10.8462%; height: 29.8px;">No</td><td style="width: 9.77482%; height: 29.8px;">number</td><td style="width: 51.8462%; height: 29.8px;">Price of the booking set by pricing type.</td></tr><tr style="height: 46.6px;"><td style="width: 19.4279%; height: 46.6px;">\- `budget`

</td><td style="width: 8.10489%; height: 46.6px;">body</td><td style="width: 10.8462%; height: 46.6px;">No</td><td style="width: 9.77482%; height: 46.6px;">number</td><td style="width: 51.8462%; height: 46.6px;">Budget of the booking. When the budget is spent by the booking, delivery stops.</td></tr><tr style="height: 46.6px;"><td style="width: 19.4279%; height: 46.6px;">\- `pricingType`

</td><td style="width: 8.10489%; height: 46.6px;">body</td><td style="width: 10.8462%; height: 46.6px;">Yes</td><td style="width: 9.77482%; height: 46.6px;">string</td><td style="width: 51.8462%; height: 46.6px;">Method for determining ad spend via price. Possible values are: `CPM`, `CPC`, `CPP`, `CPL` or `ADM`</td></tr><tr style="height: 29.8px;"><td style="width: 19.4279%; height: 29.8px;">\- `cpcOptimized`

</td><td style="width: 8.10489%; height: 29.8px;">body</td><td style="width: 10.8462%; height: 29.8px;">No</td><td style="width: 9.77482%; height: 29.8px;">boolean</td><td style="width: 51.8462%; height: 29.8px;">Is CPC optimisation enabled for the booking: `true` or `false`</td></tr><tr style="height: 29.8px;"><td style="width: 19.4279%; height: 29.8px;">`mediaProduct`

</td><td style="width: 8.10489%; height: 29.8px;">body</td><td style="width: 10.8462%; height: 29.8px;">Yes</td><td style="width: 9.77482%; height: 29.8px;">integer</td><td style="width: 51.8462%; height: 29.8px;">Position and format ID of the position of the booking.</td></tr><tr style="height: 29.8px;"><td style="width: 19.4279%; height: 29.8px;">\- `positionID`

</td><td style="width: 8.10489%; height: 29.8px;">body</td><td style="width: 10.8462%; height: 29.8px;">Yes</td><td style="width: 9.77482%; height: 29.8px;">integer</td><td style="width: 51.8462%; height: 29.8px;">Slot ID of the position.</td></tr><tr style="height: 29.8px;"><td style="width: 19.4279%; height: 29.8px;">\- `formatID`

</td><td style="width: 8.10489%; height: 29.8px;">body</td><td style="width: 10.8462%; height: 29.8px;">Yes</td><td style="width: 9.77482%; height: 29.8px;">integer</td><td style="width: 51.8462%; height: 29.8px;">ID of the format used in the position.</td></tr><tr style="height: 46.6px;"><td style="width: 19.4279%; height: 46.6px;">`frequencyLimits`

</td><td style="width: 8.10489%; height: 46.6px;">body</td><td style="width: 10.8462%; height: 46.6px;">No</td><td style="width: 9.77482%; height: 46.6px;">integer, string</td><td style="width: 51.8462%; height: 46.6px;">Setting for capping delivery.</td></tr><tr style="height: 29.8px;"><td style="width: 19.4279%; height: 29.8px;">\- `amount`

</td><td style="width: 8.10489%; height: 29.8px;">body</td><td style="width: 10.8462%; height: 29.8px;">No</td><td style="width: 9.77482%; height: 29.8px;">string</td><td style="width: 51.8462%; height: 29.8px;">Amount of *event* to cap delivery by.</td></tr><tr style="height: 46.6px;"><td style="width: 19.4279%; height: 46.6px;">\- `event`

</td><td style="width: 8.10489%; height: 46.6px;">body</td><td style="width: 10.8462%; height: 46.6px;">No</td><td style="width: 9.77482%; height: 46.6px;">string</td><td style="width: 51.8462%; height: 46.6px;">Unit to measure for capping delivery. Either `IMPRESSIONS` or `CLICKS`</td></tr><tr style="height: 63.4px;"><td style="width: 19.4279%; height: 63.4px;">\- `period`

</td><td style="width: 8.10489%; height: 63.4px;">body</td><td style="width: 10.8462%; height: 63.4px;">No</td><td style="width: 9.77482%; height: 63.4px;">string</td><td style="width: 51.8462%; height: 63.4px;">Period where the cap is active, either `HOURLY` or `DAILY`. After the period has run out, the cap resets, either for the next hour or next day.</td></tr><tr style="height: 80.2px;"><td style="width: 19.4279%; height: 80.2px;">`pacing`

</td><td style="width: 8.10489%; height: 80.2px;">body</td><td style="width: 10.8462%; height: 80.2px;">Yes</td><td style="width: 9.77482%; height: 80.2px;">string</td><td style="width: 51.8462%; height: 80.2px;">Delivery pacing options for the booking. Possible values are: `EVEN`, `FRONTLOADED`, `AS_FAST_AS_POSSIBLE`, `ROTATION`, `SHARE_OF_VOICE` or `ACCOUNT_SETTING`. Account setting takes the default pacing option set for the account</td></tr><tr style="height: 46.6px;"><td style="width: 19.4279%; height: 46.6px;">`deliveryParameter`

</td><td style="width: 8.10489%; height: 46.6px;">body</td><td style="width: 10.8462%; height: 46.6px;">No</td><td style="width: 9.77482%; height: 46.6px;">number</td><td style="width: 51.8462%; height: 46.6px;">Sets the delivery percentage for SOV. Expressed as `1` for 100% of desired delivery share.</td></tr><tr style="height: 29.8px;"><td style="width: 19.4279%; height: 29.8px;">`comment`

</td><td style="width: 8.10489%; height: 29.8px;">body</td><td style="width: 10.8462%; height: 29.8px;">No</td><td style="width: 9.77482%; height: 29.8px;">string</td><td style="width: 51.8462%; height: 29.8px;">Optional comment in the booking UI.</td></tr><tr style="height: 46.6px;"><td style="width: 19.4279%; height: 46.6px;">`rtbEnabled`

</td><td style="width: 8.10489%; height: 46.6px;">body</td><td style="width: 10.8462%; height: 46.6px;">No</td><td style="width: 9.77482%; height: 46.6px;">boolean</td><td style="width: 51.8462%; height: 46.6px;">Can the booking go in competition with RTB bookings. Possible values are `true` or `false`</td></tr><tr style="height: 46.6px;"><td style="width: 19.4279%; height: 46.6px;">`priorityID`

</td><td style="width: 8.10489%; height: 46.6px;">body</td><td style="width: 10.8462%; height: 46.6px;">No</td><td style="width: 9.77482%; height: 46.6px;">integer</td><td style="width: 51.8462%; height: 46.6px;">Priority of the booking expressed from `1` till `5`, If no value is chosen, the campaign priority will be picked.</td></tr><tr style="height: 102.6px;"><td style="width: 19.4279%; height: 102.6px;">`deliveryMultiples`

</td><td style="width: 8.10489%; height: 102.6px;">body</td><td style="width: 10.8462%; height: 102.6px;">No</td><td style="width: 9.77482%; height: 102.6px;">string</td><td style="width: 51.8462%; height: 102.6px;">Extra exclusion settings for bookings. Possible values are: `EXCLUSIVE_ON_CAMPAIGN`, `EXCLUSIVE_ON_CREATIVE`, `ONE_AT_A_TIME`, `FREE`. Free is the default option and means no deliveryMultiples is set. ONE\_AT\_A\_TIME refers to [Exclusive on Advertiser](https://documentation.adhese.eu/books/campaign-management/page/bookings#bkmrk-exclude-delivery).</td></tr><tr style="height: 46.6px;"><td style="width: 19.4279%; height: 46.6px;">`excludePositionIds`

</td><td style="width: 8.10489%; height: 46.6px;">body</td><td style="width: 10.8462%; height: 46.6px;">No</td><td style="width: 9.77482%; height: 46.6px;">integer</td><td style="width: 51.8462%; height: 46.6px;">Position IDs to exclude from the selected media product (if it's a channel).</td></tr><tr style="height: 46.6px;"><td style="width: 19.4279%; height: 46.6px;">`excludePublicationIds`

</td><td style="width: 8.10489%; height: 46.6px;">body</td><td style="width: 10.8462%; height: 46.6px;">No</td><td style="width: 9.77482%; height: 46.6px;">integer</td><td style="width: 51.8462%; height: 46.6px;">Publication IDs to exclude certain publication's inventory from the selected media product (if it's a channel)</td></tr><tr style="height: 46.6px;"><td style="width: 19.4279%; height: 46.6px;">`autoDeliveryLimits`

</td><td style="width: 8.10489%; height: 46.6px;">body</td><td style="width: 10.8462%; height: 46.6px;">No</td><td style="width: 9.77482%; height: 46.6px;">boolean</td><td style="width: 51.8462%; height: 46.6px;">Activate auto delivery limits. Possible values are `true` or `false`.</td></tr><tr style="height: 46.6px;"><td style="width: 19.4279%; height: 46.6px;">`sponsoredProductIds`

</td><td style="width: 8.10489%; height: 46.6px;">body</td><td style="width: 10.8462%; height: 46.6px;">No</td><td style="width: 9.77482%; height: 46.6px;">string</td><td style="width: 51.8462%; height: 46.6px;">ID's of the sponsored products attached to this booking.</td></tr><tr style="height: 46.6px;"><td style="width: 19.4279%; height: 46.6px;">`startTime`

</td><td style="width: 8.10489%; height: 46.6px;">body</td><td style="width: 10.8462%; height: 46.6px;">No</td><td style="width: 9.77482%; height: 46.6px;">string</td><td style="width: 51.8462%; height: 46.6px;">Hour of the day when the booking will start delivery. formatted as `hh:mm:ss`.</td></tr><tr style="height: 46.6px;"><td style="width: 19.4279%; height: 46.6px;">`endTime`

</td><td style="width: 8.10489%; height: 46.6px;">body</td><td style="width: 10.8462%; height: 46.6px;">No</td><td style="width: 9.77482%; height: 46.6px;">string</td><td style="width: 51.8462%; height: 46.6px;">Hour of the day when the booking will stop delivery (until the next day). formatted as `hh:mm:ss`.</td></tr><tr style="height: 29.8px;"><td style="width: 19.4279%; height: 29.8px;">campaignId

</td><td style="width: 8.10489%; height: 29.8px;">body</td><td style="width: 10.8462%; height: 29.8px;">Yes</td><td style="width: 9.77482%; height: 29.8px;">integer</td><td style="width: 51.8462%; height: 29.8px;">ID of the campaign you want to create the booking under.</td></tr><tr style="height: 46.6px;"><td style="width: 19.4279%; height: 46.6px;">bookingType

</td><td style="width: 8.10489%; height: 46.6px;">body</td><td style="width: 10.8462%; height: 46.6px;">Yes</td><td style="width: 9.77482%; height: 46.6px;">string</td><td style="width: 51.8462%; height: 46.6px;">Booking type. Possible values are: `DISPLAY`, `IN_STORE`, `SPONSORED_PRODUCT`</td></tr></tbody></table>

**Create a booking - <span class="model"><span class=""><span class="pointer"><span class="model-title"><span class="model-title__text">CreateBookingDto</span></span></span></span></span>**

```
{
  "name": "apibooking",
  "startDate": "2026-08-03T12:28:35.965Z",
  "endDate": "2026-08-30T12:28:35.965Z",
  "activeDays": [
    "MONDAY",
    "TUESDAY",
    "WEDNESDAY",
    "THURSDAY",
    "FRIDAY",
    "SATURDAY",
    "SUNDAY"
  ],
  "deliveryFactors": {
    "unit": "IMPRESSIONS",
    "volume": 10000,
    "price": 5,
    "budget": 3000,
    "pricingType": "CPM",
    "cpcOptimized": false
  },
  "mediaProduct": {
    "positionId": 2,
    "formatId": 1 
  },
  "frequencyLimits": [
  ],
  "userFrequencies": [
    {
      "impressionsAmount": 0,
      "expiryInSeconds": 0
    }
  ],
  "pacing": "FRONTLOADED",
  "comment": "string",
  "rtbEnabled": true,
  "priorityId": 1,
  "deliveryMultiples": null,
  "excludePositionIds": [
  ],
  "excludePublicationIds": [
  ],
  "autoDeliveryLimits": true,
  "sponsoredProductIds": [
    "string"
  ],
  "startTime": "08:30:00",
  "endTime": "20:30:00",
  "campaignId": 21,
  "bookingType": "DISPLAY"
}
```

**Response** - 201

```
{
    "internalId": 31,
    "name": "apibooking",
    "status": "ACTIVE",
    "lifetimeStatus": "INCOMPLETE",
    "positionId": 2,
    "positionName": "",
    "formatId": 1,
    "formatName": "Halfpage",
    "startDate": "2026-08-03T12:28:35Z",
    "endDate": "2026-08-30T12:28:35Z",
    "creationDate": "2026-08-03T14:05:38Z",
    "lastEditedDate": "2026-08-03T14:05:38Z",
    "deliveryFactors": {
        "unit": "IMPRESSIONS",
        "volume": 10000,
        "pricingType": "CPM",
        "price": 5.0,
        "budget": 3000.0,
        "currency": "EUR",
        "cpcOptimized": false
    },
    "activeDays": [
        "MONDAY",
        "TUESDAY",
        "WEDNESDAY",
        "THURSDAY",
        "FRIDAY",
        "SATURDAY",
        "SUNDAY"
    ],
    "creativeCount": 0,
    "frequencyLimits": [],
    "userFrequencies": [
        {
            "impressionsAmount": 0,
            "expiryInSeconds": 0
        }
    ],
    "pacing": "FRONTLOADED",
    "deliveryMethod": "AUTO",
    "deliveryParameter": null,
    "deliveryMultiples": "FREE",
    "campaignId": 21,
    "comment": "string",
    "priority": {
        "id": 1,
        "name": "paying",
        "index": 0
    },
    "isBookedOnChannel": false,
    "excludePositionIds": [],
    "excludePublicationIds": [],
    "rtbEnabled": true,
    "targetExpressions": {},
    "autoDeliveryLimits": true,
    "bookingType": "DISPLAY",
    "startTime": "08:30:00",
    "endTime": "20:30:00"
}
```

**Response codes**

<table id="bkmrk-status-meaning-201-b" style="border-collapse: collapse; width: 100%; height: 208.6px;"><colgroup><col style="width: 14.3133%;"></col><col style="width: 85.6847%;"></col></colgroup><thead><tr style="height: 29.8px;"><td style="height: 29.8px;">**Status**</td><td style="height: 29.8px;">**Meaning**</td></tr></thead><tbody><tr style="height: 29.8px;"><td style="height: 29.8px;">`201`</td><td style="height: 29.8px;">Bookings created successfully. </td></tr><tr style="height: 29.8px;"><td style="height: 29.8px;">`400`</td><td style="height: 29.8px;">Bad request - invalid input or parameters.</td></tr><tr style="height: 29.8px;"><td style="height: 29.8px;">`401` / `403`</td><td style="height: 29.8px;">Not authenticated / not allowed.</td></tr><tr style="height: 29.8px;"><td style="height: 29.8px;">`404`</td><td style="height: 29.8px;">Not Found - Resource not found.</td></tr><tr style="height: 29.8px;"><td style="height: 29.8px;">`409`</td><td style="height: 29.8px;">Conflict.</td></tr><tr><td>`422`</td><td>Unprocessable Entity.</td></tr><tr style="height: 29.8px;"><td style="height: 29.8px;">`500`</td><td style="height: 29.8px;">Internal Server Error - Unexpected failure.</td></tr></tbody></table>

### Duplicate a booking

```
POST /v1/bookings/{bookingId}/duplicate
```

Creates a duplicate of the booking in the request prepended with *Copy.* State and external key are not copied over.

**Request body**

<table id="bkmrk-parameter-in-require-5" style="border-collapse: collapse; width: 100%; height: 1613.8px;"><thead><tr style="height: 29.8px;"><td style="width: 19.4279%; height: 29.8px;">**Parameter**</td><td style="width: 8.10489%; height: 29.8px;">**In**</td><td style="width: 10.8462%; height: 29.8px;">**Required**</td><td style="width: 9.77482%; height: 29.8px;">**Type**</td><td style="width: 51.8462%; height: 29.8px;">**Description**</td></tr></thead><tbody><tr style="height: 46.6px;"><td style="width: 19.4279%; height: 46.6px;">`InternalId`</td><td style="width: 8.10489%; height: 46.6px;">path</td><td style="width: 10.8462%; height: 46.6px;">Yes</td><td style="width: 9.77482%; height: 46.6px;">integer</td><td style="width: 51.8462%; height: 46.6px;">The booking ID of the booking you want to copy.</td></tr></tbody></table>

**Response** - 200

```
{
    "internalId": 32,
    "name": "Copy: Evnia 27M2N8500/01",
    "status": "PAUSED",
    "lifetimeStatus": "COMPLETED",
    "positionId": 8,
    "positionName": "Home Halfpage",
    "formatId": 1,
    "formatName": "Halfpage",
    "startDate": "2026-07-04T22:00:00Z",
    "endDate": "2026-07-31T21:59:00Z",
    "creationDate": "2026-08-05T15:20:49Z",
    "lastEditedDate": "2026-08-05T15:20:49Z",
    "deliveryFactors": {
        "unit": "IMPRESSIONS",
        "volume": 2500000,
        "pricingType": "CPM",
        "price": 3.0,
        "budget": 5500.0,
        "currency": "EUR",
        "cpcOptimized": true
    },
    "activeDays": [
        "MONDAY",
        "TUESDAY",
        "THURSDAY",
        "FRIDAY",
        "SATURDAY",
        "SUNDAY"
    ],
    "creativeCount": 0,
    "frequencyLimits": [],
    "userFrequencies": [
        {
            "impressionsAmount": 10,
            "expiryInSeconds": 86400
        }
    ],
    "pacing": "FRONTLOADED",
    "deliveryMethod": "AUTO",
    "deliveryParameter": null,
    "deliveryMultiples": "FREE",
    "campaignId": 17,
    "comment": null,
    "priority": null,
    "isBookedOnChannel": false,
    "excludePositionIds": [],
    "excludePublicationIds": [],
    "rtbEnabled": false,
    "targetExpressions": {},
    "autoDeliveryLimits": false,
    "bookingType": null,
    "startTime": "00:00:00",
    "endTime": "23:59:59"
}
```

**Response codes**

<table id="bkmrk-status-meaning-200-b-2" style="border-collapse: collapse; width: 100%; height: 208.6px;"><colgroup><col style="width: 14.3133%;"></col><col style="width: 85.6847%;"></col></colgroup><thead><tr style="height: 29.8px;"><td style="height: 29.8px;">**Status**</td><td style="height: 29.8px;">**Meaning**</td></tr></thead><tbody><tr style="height: 29.8px;"><td style="height: 29.8px;">`200`</td><td style="height: 29.8px;">Bookings successfully copied. </td></tr><tr style="height: 29.8px;"><td style="height: 29.8px;">`400`</td><td style="height: 29.8px;">Bad request - invalid input or parameters.</td></tr><tr style="height: 29.8px;"><td style="height: 29.8px;">`401` / `403`</td><td style="height: 29.8px;">Not authenticated / not allowed.</td></tr><tr style="height: 29.8px;"><td style="height: 29.8px;">`404`</td><td style="height: 29.8px;">Not Found - Resource not found.</td></tr><tr style="height: 29.8px;"><td style="height: 29.8px;">`409`</td><td style="height: 29.8px;">Conflict.</td></tr><tr style="height: 29.8px;"><td style="height: 29.8px;">`500`</td><td style="height: 29.8px;">Internal Server Error - Unexpected failure.</td></tr></tbody></table>

### Retrieve bookings trafficked to creatives

```
GET /v1/creatives/advar/{id}/bookings
```

Retrieves bookings trafficked to a creative on the ID of an advar creative.

<table id="bkmrk-parameter-in-require-6" style="border-collapse: collapse; width: 100%; height: 76.4px;"><thead><tr style="height: 29.8px;"><td style="width: 19.4279%; height: 29.8px;">**Parameter**</td><td style="width: 8.10489%; height: 29.8px;">**In**</td><td style="width: 10.8462%; height: 29.8px;">**Required**</td><td style="width: 9.77482%; height: 29.8px;">**Type**</td><td style="width: 51.8462%; height: 29.8px;">**Description**</td></tr></thead><tbody><tr style="height: 46.6px;"><td style="width: 19.4279%; height: 46.6px;">`InternalId`</td><td style="width: 8.10489%; height: 46.6px;">path</td><td style="width: 10.8462%; height: 46.6px;">Yes</td><td style="width: 9.77482%; height: 46.6px;">integer</td><td style="width: 51.8462%; height: 46.6px;">The creative ID of the creative who's trafficked bookings you want to retrieve.</td></tr></tbody></table>

**Response** - 200

```
[
    {
        "internalId": 32,
        "name": "Copy: Evnia 27M2N8500/01",
        "status": "PAUSED",
        "lifetimeStatus": "COMPLETED",
        "positionId": 8,
        "positionName": "Home Halfpage",
        "formatId": 1,
        "formatName": "Halfpage",
        "startDate": "2026-07-04T22:00:00Z",
        "endDate": "2026-07-31T21:59:00Z",
        "creationDate": "2026-08-05T15:20:49Z",
        "lastEditedDate": "2026-08-05T15:20:49Z",
        "deliveryFactors": {
            "unit": "IMPRESSIONS",
            "volume": 2500000,
            "pricingType": "CPM",
            "price": 3.0,
            "budget": 5500.0,
            "currency": "EUR",
            "cpcOptimized": true
        },
        "activeDays": [
            "MONDAY",
            "TUESDAY",
            "THURSDAY",
            "FRIDAY",
            "SATURDAY",
            "SUNDAY"
        ],
        "creativeCount": 0,
        "frequencyLimits": [],
        "userFrequencies": [],
        "pacing": null,
        "deliveryMethod": "AUTO",
        "deliveryParameter": null,
        "deliveryMultiples": "FREE",
        "campaignId": 17,
        "comment": null,
        "priority": null,
        "isBookedOnChannel": false,
        "excludePositionIds": [],
        "excludePublicationIds": [],
        "rtbEnabled": false,
        "targetExpressions": {},
        "autoDeliveryLimits": false,
        "bookingType": null,
        "startTime": "00:00:00",
        "endTime": "23:59:59"
    },
    {
        "internalId": 22,
        "name": "Evnia 27M2N8500/01",
        "status": "ACTIVE",
        "lifetimeStatus": "COMPLETED",
        "positionId": 8,
        "positionName": "Home Halfpage",
        "formatId": 1,
        "formatName": "Halfpage",
        "startDate": "2026-07-04T22:00:00Z",
        "endDate": "2026-07-31T21:59:00Z",
        "creationDate": "2026-07-01T10:14:28Z",
        "lastEditedDate": "2026-07-31T13:36:26Z",
        "deliveryFactors": {
            "unit": "IMPRESSIONS",
            "volume": 2500000,
            "pricingType": "CPM",
            "price": 3.0,
            "budget": 5500.0,
            "currency": "EUR",
            "cpcOptimized": true
        },
        "activeDays": [
            "MONDAY",
            "TUESDAY",
            "THURSDAY",
            "FRIDAY",
            "SATURDAY",
            "SUNDAY"
        ],
        "creativeCount": 0,
        "frequencyLimits": [],
        "userFrequencies": [],
        "pacing": null,
        "deliveryMethod": "AUTO",
        "deliveryParameter": null,
        "deliveryMultiples": "FREE",
        "campaignId": 17,
        "comment": null,
        "priority": null,
        "isBookedOnChannel": false,
        "excludePositionIds": [],
        "excludePublicationIds": [],
        "rtbEnabled": false,
        "targetExpressions": {},
        "autoDeliveryLimits": false,
        "bookingType": null,
        "startTime": "00:00:00",
        "endTime": "23:59:59"
    }
]
```

**Response codes**

<table id="bkmrk-status-meaning-200-b-3" style="border-collapse: collapse; width: 100%; height: 208.6px;"><colgroup><col style="width: 14.3133%;"></col><col style="width: 85.6847%;"></col></colgroup><thead><tr style="height: 29.8px;"><td style="height: 29.8px;">**Status**</td><td style="height: 29.8px;">**Meaning**</td></tr></thead><tbody><tr style="height: 29.8px;"><td style="height: 29.8px;">`200`</td><td style="height: 29.8px;">Bookings successfully retrieved. </td></tr><tr style="height: 29.8px;"><td style="height: 29.8px;">`400`</td><td style="height: 29.8px;">Bad request - invalid input or parameters.</td></tr><tr style="height: 29.8px;"><td style="height: 29.8px;">`401` / `403`</td><td style="height: 29.8px;">Not authenticated / not allowed.</td></tr><tr style="height: 29.8px;"><td style="height: 29.8px;">`404`</td><td style="height: 29.8px;">Not Found - Resource not found.</td></tr><tr style="height: 29.8px;"><td style="height: 29.8px;">`409`</td><td style="height: 29.8px;">Conflict.</td></tr><tr style="height: 29.8px;"><td style="height: 29.8px;">`500`</td><td style="height: 29.8px;">Internal Server Error - Unexpected failure.</td></tr></tbody></table>

### Retrieve creatives trafficked to a booking

```
GET /v1/bookings/{bookingId}/creatives
```

Retrieves all creatives trafficked to a booking by way of Booking ID.

<table id="bkmrk-parameter-in-require-7" style="border-collapse: collapse; width: 100%; height: 76.4px;"><thead><tr style="height: 29.8px;"><td style="width: 19.4279%; height: 29.8px;">**Parameter**</td><td style="width: 8.10489%; height: 29.8px;">**In**</td><td style="width: 10.8462%; height: 29.8px;">**Required**</td><td style="width: 9.77482%; height: 29.8px;">**Type**</td><td style="width: 51.8462%; height: 29.8px;">**Description**</td></tr></thead><tbody><tr style="height: 46.6px;"><td style="width: 19.4279%; height: 46.6px;">`InternalId`</td><td style="width: 8.10489%; height: 46.6px;">path</td><td style="width: 10.8462%; height: 46.6px;">Yes</td><td style="width: 9.77482%; height: 46.6px;">integer</td><td style="width: 51.8462%; height: 46.6px;">The booking ID of the booking who's trafficked creatives you want to retrieve.</td></tr></tbody></table>

**Response** - 200

```
[
    {
        "creativeId": 18,
        "campaignId": 17,
        "creativeName": "27M2N8500/01 Rectangle 1",
        "formatId": 1,
        "advarTemplateName": "Image_FlexBanner.html",
        "sku": null,
        "lastEditedDate": "2026-07-01T10:16:32Z",
        "templateParameters": {
            "<CLICKURL>": "https://www.philips.be/c-p/27M2N8500_01/gamemonitor-qd-oled-gamemonitor",
            "<ALT_TEXT>": "QD OLED-gamemonitor"
        },
        "templateFiles": {
            "2": {
                "fileName": null,
                "filePath": "https://demo-preview.adhese.org/pool/lib/18_2nd_1.png"
            }
        },
        "lastEdited": 1782900992000
    },
    {
        "creativeId": 19,
        "campaignId": 17,
        "creativeName": "27M2N8500/01 Rectangle 2",
        "formatId": 1,
        "advarTemplateName": "Image_FlexBanner.html",
        "sku": null,
        "lastEditedDate": "2026-07-01T10:19:06Z",
        "templateParameters": {
            "<CLICKURL>": "https://www.philips.be/c-p/27M2N8500_01/gamemonitor-qd-oled-gamemonitor",
            "<ALT_TEXT>": "QD OLED-gamemonitor 2"
        },
        "templateFiles": {
            "2": {
                "fileName": null,
                "filePath": "https://demo-preview.adhese.org/pool/lib/19_2nd_1.png"
            }
        },
        "lastEdited": 1782901146000
    },
    {
        "creativeId": 27,
        "campaignId": 17,
        "creativeName": "Apitest advar banner ",
        "formatId": 1,
        "advarTemplateName": "Image_FlexBanner_recu.html",
        "sku": "",
        "lastEditedDate": "2026-08-06T07:35:49Z",
        "templateParameters": {
            "<CLICKURL>": "",
            "<ALT_TEXT>": "",
            "<recu-open_ADHESE_LIB_ID>": "<ADHESE_LIB_ID>"
        },
        "templateFiles": {
            "2": {
                "fileName": null,
                "filePath": "https://demo-preview.adhese.org/pool/lib/27_2nd_1.png"
            }
        },
        "lastEdited": 1786001749000
    }
]
```

**Response codes**

<table id="bkmrk-status-meaning-200-b-4" style="border-collapse: collapse; width: 100%; height: 208.6px;"><colgroup><col style="width: 14.3133%;"></col><col style="width: 85.6847%;"></col></colgroup><thead><tr style="height: 29.8px;"><td style="height: 29.8px;">**Status**</td><td style="height: 29.8px;">**Meaning**</td></tr></thead><tbody><tr style="height: 29.8px;"><td style="height: 29.8px;">`200`</td><td style="height: 29.8px;">Bookings successfully retrieved. </td></tr><tr style="height: 29.8px;"><td style="height: 29.8px;">`400`</td><td style="height: 29.8px;">Bad request - invalid input or parameters.</td></tr><tr style="height: 29.8px;"><td style="height: 29.8px;">`401` / `403`</td><td style="height: 29.8px;">Not authenticated / not allowed.</td></tr><tr style="height: 29.8px;"><td style="height: 29.8px;">`404`</td><td style="height: 29.8px;">Not Found - Resource not found.</td></tr><tr style="height: 29.8px;"><td style="height: 29.8px;">`409`</td><td style="height: 29.8px;">Conflict.</td></tr><tr style="height: 29.8px;"><td style="height: 29.8px;">`500`</td><td style="height: 29.8px;">Internal Server Error - Unexpected failure.</td></tr></tbody></table>