Skip to main content

Positions

List a single position

GET /v1/inventory/position/{id}

Lists the chosen positions information by ID.

Request body

Parameter In Required Type Description
positionId path Yes integer The position ID whose information you want listed.

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

Status Meaning
200 Position listed.
400 Bad request - invalid input or parameters.
401/403 Not authenticated / not allowed.
404 Not Found - Resource not found.
405 Method not allowed
406 Not acceptable
409 Conflict.
415 Unsupported media type
500 Internal Server Error - Unexpected failure.

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

Parameter In Required Type Description
id path Yes integer The positions ID.
active body No boolean Whether the position is active or not.
name body No string Name of the position, recommended for use with the Campaign Manager UI.
formatId body No integer ID of the positions format.
locationId body No integer ID of the positions location.
url body No string URL for identifying the position.
positionTypeId body No integer ID of the position type (when applicable).

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

Status Meaning
200 Position updated.
400 Bad request - invalid input or parameters.
401/403 Not authenticated / not allowed.
404 Not Found - Resource not found.
405 Method not allowed
406 Not acceptable
409 Conflict.
415 Unsupported media type
500 Internal Server Error - Unexpected failure.

Delete a position

DELETE /v1/inventory/position/{id}

Sets a position to inactive by ID.

Request body

Parameter In Required Type Description
positionId path Yes integer The ID of the position you want deactivated.

Response codes

Status Meaning
204 Position set to inactive.
400 Bad request - invalid input or parameters.
401/403 Not authenticated / not allowed.
404 Not Found - Resource not found.
405 Method not allowed
406 Not acceptable
409 Conflict.
415 Unsupported media type
500 Internal Server Error - Unexpected failure.

List all positions

GET /v1/inventory/position

List the details of all positions.

Request body

Parameter In Required Type Description
publicationId body No integer The publication ID of the publication you want to filter positions on.
active body No boolean Filter on the active or inactive status of positions.

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

Status Meaning
200 Positions listed.
400 Bad request - invalid input or parameters.
401/403 Not authenticated / not allowed.
404 Not Found - Resource not found.
405 Method not allowed
406 Not acceptable
409 Conflict.
415 Unsupported media type
500 Internal Server Error - Unexpected failure.

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

Parameter In Required Type Description
active body No boolean Whether the position is active or not. A request that omits the active status creates an active position.
name body No string Name of the position, recommended for use with the Campaign Manager UI.
formatId body Yes integer ID of the positions format.
locationId body Yes integer ID of the positions location.
url body No string URL for identifying the position.
positionTypeId body No integer ID of the position type (when applicable).

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

Status Meaning
201 Position created.
400 Bad request - invalid input or parameters.
401/403 Not authenticated / not allowed.
404 Not Found - Resource not found.
405 Method not allowed
406 Not acceptable
409 Conflict.
415 Unsupported media type
500 Internal Server Error - Unexpected failure.