# Positions

### List a single position

```
GET /v1/inventory/position/{id}
```

Lists the chosen positions information by ID.

**Request body**

<table id="bkmrk-parameter-in-require-9" style="border-collapse: collapse; width: 100%; height: 287.8px;"><thead><tr style="height: 29.8px;"><td style="width: 14.7795%; height: 29.8px;">**Parameter**</td><td style="width: 11.6848%; height: 29.8px;">**In**</td><td style="width: 13.4642%; height: 29.8px;">**Required**</td><td style="width: 9.29678%; 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: 14.7795%; height: 29.8px;">`positionId`</td><td style="width: 11.6848%; height: 29.8px;">path</td><td style="width: 13.4642%; height: 29.8px;">Yes</td><td style="width: 9.29678%; height: 29.8px;">integer</td><td style="width: 50.7747%; height: 29.8px;">The position ID whose information you want listed.</td></tr></tbody></table>

**Response** - 200

```
{
    "id": 9,
    "publisherId": 1,
    "transferId": 0,
    "active": true,
    "creation": "Mar 25, 2026, 2:31:29 PM CET",
    "edited": "Mar 25, 2026, 2:31:29 PM CET",
    "name": "",
    "formatId": 4,
    "formatName": "Billboard",
    "formatWidth": 970,
    "formatHeight": 250,
    "formatSize": 0,
    "locationId": 5,
    "locationName": "ROS",
    "locationTypeId": 10,
    "publicationName": "Demo Display",
    "previewUrl": "",
    "url": ""
}
```

**Response codes**

<table id="bkmrk-status-meaning-200-p-4" style="border-collapse: collapse; width: 100%; height: 305px;"><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;">Position listed.</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;">`405`</td><td style="height: 29.8px;">Method not allowed</td></tr><tr style="height: 29.8px;"><td style="height: 29.8px;">`406`</td><td style="height: 29.8px;">Not acceptable</td></tr><tr style="height: 30.8px;"><td style="height: 30.8px;">`409`</td><td style="height: 30.8px;">Conflict.</td></tr><tr style="height: 29.8px;"><td style="height: 29.8px;">`415`</td><td style="height: 29.8px;">Unsupported media type</td></tr><tr style="height: 35.8px;"><td style="height: 35.8px;">`500`</td><td style="height: 35.8px;">Internal Server Error - Unexpected failure.</td></tr></tbody></table>

### Updating a position

```
PUT /v1/inventory/position/{id}
```

Updates a chosen positions name, format, location, position type, active status, and URL. Fields the request omits are left as they are.

**Request body**

<table id="bkmrk-parameter-in-require-10" style="border-collapse: collapse; width: 100%; height: 238.4px;"><thead><tr style="height: 29.8px;"><td style="width: 15.1366%; height: 29.8px;">**Parameter**</td><td style="width: 11.3234%; height: 29.8px;">**In**</td><td style="width: 13.4684%; height: 29.8px;">**Required**</td><td style="width: 9.29678%; 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: 15.1366%; height: 29.8px;">`id`</td><td style="width: 11.3234%; height: 29.8px;">path</td><td style="width: 13.4684%; height: 29.8px;">Yes</td><td style="width: 9.29678%; height: 29.8px;">integer</td><td style="width: 50.7747%; height: 29.8px;">The positions ID.</td></tr><tr style="height: 29.8px;"><td style="width: 15.1366%; height: 29.8px;">`active`</td><td style="width: 11.3234%; height: 29.8px;">body</td><td style="width: 13.4684%; height: 29.8px;">No</td><td style="width: 9.29678%; height: 29.8px;">boolean</td><td style="width: 50.7747%; height: 29.8px;">Whether the position is active or not.</td></tr><tr style="height: 29.8px;"><td style="width: 15.1366%; height: 29.8px;">`name`</td><td style="width: 11.3234%; height: 29.8px;">body</td><td style="width: 13.4684%; height: 29.8px;">No</td><td style="width: 9.29678%; height: 29.8px;">string</td><td style="width: 50.7747%; height: 29.8px;">Name of the position, recommended for use with the Campaign Manager UI.</td></tr><tr style="height: 29.8px;"><td style="width: 15.1366%; height: 29.8px;">`formatId`</td><td style="width: 11.3234%; height: 29.8px;">body</td><td style="width: 13.4684%; height: 29.8px;">No</td><td style="width: 9.29678%; height: 29.8px;">integer</td><td style="width: 50.7747%; height: 29.8px;">ID of the positions format.</td></tr><tr style="height: 29.8px;"><td style="width: 15.1366%; height: 29.8px;">`locationId`</td><td style="width: 11.3234%; height: 29.8px;">body</td><td style="width: 13.4684%; height: 29.8px;">No</td><td style="width: 9.29678%; height: 29.8px;">integer</td><td style="width: 50.7747%; height: 29.8px;">ID of the positions location.</td></tr><tr style="height: 29.8px;"><td style="width: 15.1366%; height: 29.8px;">`url`</td><td style="width: 11.3234%; height: 29.8px;">body</td><td style="width: 13.4684%; height: 29.8px;">No</td><td style="width: 9.29678%; height: 29.8px;">string</td><td style="width: 50.7747%; height: 29.8px;">URL for identifying the position.</td></tr><tr style="height: 29.8px;"><td style="width: 15.1366%; height: 29.8px;">`positionTypeId`</td><td style="width: 11.3234%; height: 29.8px;">body</td><td style="width: 13.4684%; height: 29.8px;">No</td><td style="width: 9.29678%; height: 29.8px;">integer</td><td style="width: 50.7747%; height: 29.8px;">ID of the position type (when applicable).</td></tr></tbody></table>

**Updating a position**

```
{
  "active": true,
  "name": "SCP Halfpage",
  "formatId": 1,
  "locationId": 9,
  "url": "_scp_halfpage",
  "positionTypeId": 10
}
```

**Response** - 200

```
{
    "id": 19,
    "publisherId": 5,
    "transferId": 0,
    "active": true,
    "creation": "Sep 22, 2026, 11:46:01 AM CEST",
    "edited": "Sep 22, 2026, 11:52:26 AM CEST",
    "name": "SCP Halfpage",
    "formatId": 1,
    "formatName": "Halfpage",
    "formatWidth": 300,
    "formatHeight": 600,
    "formatSize": 0,
    "locationId": 9,
    "locationName": "SCP",
    "locationTypeId": 10,
    "publicationName": "String Created Publication",
    "previewUrl": "",
    "url": "_scp_halfpage"
}
```

**Response codes**

<table id="bkmrk-status-meaning-200-p-5" style="border-collapse: collapse; width: 100%; height: 305px;"><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;">Position 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;">`405`</td><td style="height: 29.8px;">Method not allowed</td></tr><tr style="height: 29.8px;"><td style="height: 29.8px;">`406`</td><td style="height: 29.8px;">Not acceptable</td></tr><tr style="height: 30.8px;"><td style="height: 30.8px;">`409`</td><td style="height: 30.8px;">Conflict.</td></tr><tr style="height: 29.8px;"><td style="height: 29.8px;">`415`</td><td style="height: 29.8px;">Unsupported media type</td></tr><tr style="height: 35.8px;"><td style="height: 35.8px;">`500`</td><td style="height: 35.8px;">Internal Server Error - Unexpected failure.</td></tr></tbody></table>

### Delete a position

```
DELETE /v1/inventory/position/{id}
```

Sets a position to inactive by ID.

**Request body**

<table id="bkmrk-parameter-in-require-11" style="border-collapse: collapse; width: 100%; height: 287.8px;"><thead><tr style="height: 29.8px;"><td style="width: 14.7795%; height: 29.8px;">**Parameter**</td><td style="width: 11.6848%; height: 29.8px;">**In**</td><td style="width: 13.4642%; height: 29.8px;">**Required**</td><td style="width: 9.29678%; 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: 14.7795%; height: 29.8px;">`positionId`</td><td style="width: 11.6848%; height: 29.8px;">path</td><td style="width: 13.4642%; height: 29.8px;">Yes</td><td style="width: 9.29678%; height: 29.8px;">integer</td><td style="width: 50.7747%; height: 29.8px;">The ID of the position you want deactivated.</td></tr></tbody></table>

**Response codes**

<table id="bkmrk-status-meaning-204-p-2" style="border-collapse: collapse; width: 100%; height: 305px;"><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;">Position set to inactive.</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;">`405`</td><td style="height: 29.8px;">Method not allowed</td></tr><tr style="height: 29.8px;"><td style="height: 29.8px;">`406`</td><td style="height: 29.8px;">Not acceptable</td></tr><tr style="height: 30.8px;"><td style="height: 30.8px;">`409`</td><td style="height: 30.8px;">Conflict.</td></tr><tr style="height: 29.8px;"><td style="height: 29.8px;">`415`</td><td style="height: 29.8px;">Unsupported media type</td></tr><tr style="height: 35.8px;"><td style="height: 35.8px;">`500`</td><td style="height: 35.8px;">Internal Server Error - Unexpected failure.</td></tr></tbody></table>

### List all positions

```
GET /v1/inventory/position
```

List the details of all positions.

**Request body**

<table id="bkmrk-parameter-in-require-12" style="border-collapse: collapse; width: 100%; height: 287.8px;"><thead><tr style="height: 29.8px;"><td style="width: 14.7795%; height: 29.8px;">**Parameter**</td><td style="width: 11.6848%; height: 29.8px;">**In**</td><td style="width: 13.4642%; height: 29.8px;">**Required**</td><td style="width: 9.29678%; 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: 14.7795%; height: 29.8px;">`publicationId`</td><td style="width: 11.6848%; height: 29.8px;">body</td><td style="width: 13.4642%; height: 29.8px;">No</td><td style="width: 9.29678%; height: 29.8px;">integer</td><td style="width: 50.7747%; height: 29.8px;">The publication ID of the publication you want to filter positions on.</td></tr><tr><td style="width: 14.7795%;">`active`</td><td style="width: 11.6848%;">body</td><td style="width: 13.4642%;">No</td><td style="width: 9.29678%;">boolean</td><td style="width: 50.7747%;">Filter on the active or inactive status of positions.</td></tr></tbody></table>

**Response** - 200

```
[
    {
        "id": 1,
        "publisherId": 1,
        "transferId": 0,
        "active": true,
        "creation": "Mar 13, 2026, 3:09:34 PM CET",
        "edited": "Mar 13, 2026, 3:09:34 PM CET",
        "name": "",
        "formatId": 4,
        "formatName": "Billboard",
        "formatWidth": 970,
        "formatHeight": 250,
        "formatSize": 0,
        "locationId": 2,
        "locationName": "Kitchen",
        "locationTypeId": 10,
        "publicationName": "Demo Display",
        "previewUrl": "",
        "url": ""
    },
    {
        "id": 2,
        "publisherId": 1,
        "transferId": 0,
        "active": true,
        "creation": "Mar 13, 2026, 3:09:46 PM CET",
        "edited": "Mar 13, 2026, 3:12:44 PM CET",
        "name": "",
        "formatId": 1,
        "formatName": "Halfpage",
        "formatWidth": 300,
        "formatHeight": 600,
        "formatSize": 0,
        "locationId": 2,
        "locationName": "Kitchen",
        "locationTypeId": 10,
        "publicationName": "Demo Display",
        "previewUrl": "",
        "url": ""
    },
    {
        "id": 3,
        "publisherId": 1,
        "transferId": 0,
        "active": true,
        "creation": "Mar 13, 2026, 3:09:59 PM CET",
        "edited": "Mar 13, 2026, 3:12:56 PM CET",
        "name": "",
        "formatId": 3,
        "formatName": "Wide Skyscraper",
        "formatWidth": 160,
        "formatHeight": 600,
        "formatSize": 0,
        "locationId": 3,
        "locationName": "Electronics",
        "locationTypeId": 10,
        "publicationName": "Demo Display",
        "previewUrl": "",
        "url": ""
    },
]
```

**Response codes**

<table id="bkmrk-status-meaning-200-p-6" style="border-collapse: collapse; width: 100%; height: 305px;"><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;">Positions listed.</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;">`405`</td><td style="height: 29.8px;">Method not allowed</td></tr><tr style="height: 29.8px;"><td style="height: 29.8px;">`406`</td><td style="height: 29.8px;">Not acceptable</td></tr><tr style="height: 30.8px;"><td style="height: 30.8px;">`409`</td><td style="height: 30.8px;">Conflict.</td></tr><tr style="height: 29.8px;"><td style="height: 29.8px;">`415`</td><td style="height: 29.8px;">Unsupported media type</td></tr><tr style="height: 35.8px;"><td style="height: 35.8px;">`500`</td><td style="height: 35.8px;">Internal Server Error - Unexpected failure.</td></tr></tbody></table>

### Create a position

```
POST /v1/inventory/position
```

Creates a new position (ad slot) linked to a location, format, and position type. A request that omits the active status creates an active position.

**Request body**

<table id="bkmrk-parameter-in-require-13" style="border-collapse: collapse; width: 100%; height: 226.4px;"><thead><tr style="height: 29.8px;"><td style="width: 15.1366%; height: 29.8px;">**Parameter**</td><td style="width: 11.3234%; height: 29.8px;">**In**</td><td style="width: 13.4684%; height: 29.8px;">**Required**</td><td style="width: 9.29678%; height: 29.8px;">**Type**</td><td style="width: 50.7747%; height: 29.8px;">**Description**</td></tr></thead><tbody><tr style="height: 30.8px;"><td style="width: 15.1366%; height: 30.8px;">`active`</td><td style="width: 11.3234%; height: 30.8px;">body</td><td style="width: 13.4684%; height: 30.8px;">No</td><td style="width: 9.29678%; height: 30.8px;">boolean</td><td style="width: 50.7747%; height: 30.8px;">Whether the position is active or not. A request that omits the active status creates an active position.</td></tr><tr style="height: 46.6px;"><td style="width: 15.1366%; height: 46.6px;">`name`</td><td style="width: 11.3234%; height: 46.6px;">body</td><td style="width: 13.4684%; height: 46.6px;">No</td><td style="width: 9.29678%; height: 46.6px;">string</td><td style="width: 50.7747%; height: 46.6px;">Name of the position, recommended for use with the Campaign Manager UI.</td></tr><tr style="height: 29.8px;"><td style="width: 15.1366%; height: 29.8px;">`formatId`</td><td style="width: 11.3234%; height: 29.8px;">body</td><td style="width: 13.4684%; height: 29.8px;">Yes</td><td style="width: 9.29678%; height: 29.8px;">integer</td><td style="width: 50.7747%; height: 29.8px;">ID of the positions format.</td></tr><tr style="height: 29.8px;"><td style="width: 15.1366%; height: 29.8px;">`locationId`</td><td style="width: 11.3234%; height: 29.8px;">body</td><td style="width: 13.4684%; height: 29.8px;">Yes</td><td style="width: 9.29678%; height: 29.8px;">integer</td><td style="width: 50.7747%; height: 29.8px;">ID of the positions location.</td></tr><tr style="height: 29.8px;"><td style="width: 15.1366%; height: 29.8px;">`url`</td><td style="width: 11.3234%; height: 29.8px;">body</td><td style="width: 13.4684%; height: 29.8px;">No</td><td style="width: 9.29678%; height: 29.8px;">string</td><td style="width: 50.7747%; height: 29.8px;">URL for identifying the position.</td></tr><tr style="height: 29.8px;"><td style="width: 15.1366%; height: 29.8px;">`positionTypeId`</td><td style="width: 11.3234%; height: 29.8px;">body</td><td style="width: 13.4684%; height: 29.8px;">No</td><td style="width: 9.29678%; height: 29.8px;">integer</td><td style="width: 50.7747%; height: 29.8px;">ID of the position type (when applicable).</td></tr></tbody></table>

**Creating a new position**

```
{
  "active": true,
  "name": "SCP Billboard",
  "formatId": 4,
  "locationId": 9,
  "url": "_scp_billboard",
  "positionTypeId": 10
}
```

**Response** - 201

```
{
    "id": 20,
    "publisherId": 5,
    "transferId": 0,
    "active": true,
    "creation": "Sep 22, 2026, 1:56:07 PM CEST",
    "edited": "Sep 22, 2026, 1:56:07 PM CEST",
    "name": "SCP Billboard",
    "formatId": 4,
    "formatName": "Billboard",
    "formatWidth": 970,
    "formatHeight": 250,
    "formatSize": 0,
    "locationId": 9,
    "locationName": "SCP",
    "locationTypeId": 10,
    "publicationName": "String Created Publication",
    "previewUrl": null,
    "url": "_scp_billboard"
}
```

**Response codes**

<table id="bkmrk-status-meaning-201-p-2" style="border-collapse: collapse; width: 100%; height: 305px;"><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;">Position created.</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;">`405`</td><td style="height: 29.8px;">Method not allowed</td></tr><tr style="height: 29.8px;"><td style="height: 29.8px;">`406`</td><td style="height: 29.8px;">Not acceptable</td></tr><tr style="height: 30.8px;"><td style="height: 30.8px;">`409`</td><td style="height: 30.8px;">Conflict.</td></tr><tr style="height: 29.8px;"><td style="height: 29.8px;">`415`</td><td style="height: 29.8px;">Unsupported media type</td></tr><tr style="height: 35.8px;"><td style="height: 35.8px;">`500`</td><td style="height: 35.8px;">Internal Server Error - Unexpected failure.</td></tr></tbody></table>