Skip to main content

Inventory API

Inventory

The structure and makeup of the places where ads are going to be delivered.

Publishers

List a publisher

GET /v1/inventory/publisher/{id}

Retrieves details of a publisher by it's ID.

Request body

Parameter In Required Type Description
id path Yes integer The publisher's ID.

Response - 200

{
    "id": 1,
    "parentId": 0,
    "companyName": "Main Publisher",
    "quote": "",
    "active": 1,
    "companyAddress": "",
    "companyNumber": "",
    "companyZip": "",
    "companyCity": "",
    "companyCountry": "",
    "companyTelephone": "",
    "companyFax": "",
    "companyEmail": "",
    "companyURL": "",
    "companyVat": "",
    "companyBankAccount": "",
    "contactName": "",
    "contactFirstName": "",
    "contactAddress": "",
    "contactNumber": "",
    "contactZip": "",
    "contactCity": "",
    "contactCountry": "",
    "contactTelephone": "",
    "contactFax": "",
    "contactEmail": "",
    "description": "",
    "paymentMethod": "",
    "invoicingParty": ""
}

Response codes

Status Meaning
200 Publisher retrieved.
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 Unssuported media type
500 Internal Server Error - Unexpected failure.

Update a publisher

PUT /v1/inventory/publisher/{id}

Updates the name, parent publisher, and active status of an existing publisher. Fields the request omits are left as they are.

Request body

Parameter In Required Type Description
parentPublisherId body No integer The ID of the parent publisher.
name body No string Name of the publisher
active body No boolean Is the publisher active?

Updating a publisher

{
    "name": "Demo Publisher"
}

Response - 200

{
    "id": 1,
    "parentId": 0,
    "companyName": "Demo Publisher",
    "quote": "",
    "active": 1,
    "companyAddress": "",
    "companyNumber": "",
    "companyZip": "",
    "companyCity": "",
    "companyCountry": "",
    "companyTelephone": "",
    "companyFax": "",
    "companyEmail": "",
    "companyURL": "",
    "companyVat": "",
    "companyBankAccount": "",
    "contactName": "",
    "contactFirstName": "",
    "contactAddress": "",
    "contactNumber": "",
    "contactZip": "",
    "contactCity": "",
    "contactCountry": "",
    "contactTelephone": "",
    "contactFax": "",
    "contactEmail": "",
    "description": "",
    "paymentMethod": "",
    "invoicingParty": ""
}

Response codes

Status Meaning
200 Publisher 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 publisher

DELETE /v1/inventory/publisher/{id}

Sets a publisher to inactive.

Request body

Parameter In Required Type Description
id path Yes integer The publisher's ID.

Response codes

Status Meaning
204 Publisher 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 publishers

GET /v1/inventory/publisher

Retrieves all publishers and their information.

Response - 200

[
    {
        "id": 1,
        "parentId": 0,
        "companyName": "Demo Publisher",
        "quote": "",
        "active": 1,
        "companyAddress": "",
        "companyNumber": "",
        "companyZip": "",
        "companyCity": "",
        "companyCountry": "",
        "companyTelephone": "",
        "companyFax": "",
        "companyEmail": "",
        "companyURL": "",
        "companyVat": "",
        "companyBankAccount": "",
        "contactName": "",
        "contactFirstName": "",
        "contactAddress": "",
        "contactNumber": "",
        "contactZip": "",
        "contactCity": "",
        "contactCountry": "",
        "contactTelephone": "",
        "contactFax": "",
        "contactEmail": "",
        "description": "",
        "paymentMethod": "",
        "invoicingParty": ""
    },
    {
        "id": 2,
        "parentId": 1,
        "companyName": "Example Demo Publisher",
        "quote": "",
        "active": 0,
        "companyAddress": "",
        "companyNumber": "",
        "companyZip": "",
        "companyCity": "",
        "companyCountry": "",
        "companyTelephone": "",
        "companyFax": "",
        "companyEmail": "",
        "companyURL": "",
        "companyVat": "",
        "companyBankAccount": "",
        "contactName": "",
        "contactFirstName": "",
        "contactAddress": "",
        "contactNumber": "",
        "contactZip": "",
        "contactCity": "",
        "contactCountry": "",
        "contactTelephone": "",
        "contactFax": "",
        "contactEmail": "",
        "description": "",
        "paymentMethod": "-",
        "invoicingParty": ""
    }
]

Create a publisher

POST /v1/inventory/publisher

Creates a new publisher.

Request body

Parameter In Required Type Description
parentPublisherId body No integer The ID of the parent publisher. Leave blank if the new publisher is a main publisher
name body Yes string Name of the publisher
active body No boolean Is the publisher active? Default is true

Creating a new publisher

{
  "parentPublisherId": 1,
  "name": "Example API Publisher",
  "active": true
}

Response - 201

{
    "id": 3,
    "parentId": 1,
    "companyName": "Example API Publisher",
    "quote": "",
    "active": 1,
    "companyAddress": "",
    "companyNumber": "",
    "companyZip": "",
    "companyCity": "",
    "companyCountry": "",
    "companyTelephone": "",
    "companyFax": "",
    "companyEmail": "",
    "companyURL": "",
    "companyVat": "",
    "companyBankAccount": "",
    "contactName": "",
    "contactFirstName": "",
    "contactAddress": "",
    "contactNumber": "",
    "contactZip": "",
    "contactCity": "",
    "contactCountry": "",
    "contactTelephone": "",
    "contactFax": "",
    "contactEmail": "",
    "description": "",
    "paymentMethod": "-",
    "invoicingParty": ""
}

Response codes

Status Meaning
201 Publisher 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.

Publications

List a publication

GET /v1/inventory/publication/{id}

List a single publication by ID.

Request body

Parameter In Required Type Description
id path Yes integer The publisher's ID.

Response - 200

{
    "id": 3,
    "companyName": "Demo Sponsored Placements",
    "companyAddress": "",
    "companyNumber": "",
    "companyZip": "",
    "companyCity": "",
    "companyCountry": "",
    "companyTel": "",
    "companyFax": "",
    "companyUrl": "https://pool-demo.adhese.com/projects/marketing/index.html",
    "companyEmail": "",
    "publishersId": 1,
    "quote": "",
    "parentPublicationsId": 0,
    "description": "",
    "comment": "",
    "active": 1,
    "rank": 0,
    "screenshotExtension": "",
    "catchphrase": "",
    "language": "",
    "numberOfAuthors": 0,
    "inventoryCategory": "sponsored_product"
}

Response codes

Status Meaning
200 Publication retrieved.
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.

Update a publication

PUT /v1/inventory/publication/{id}

Updates the name, parent publisher, active status, quote and website of an existing publication. Fields the request omits are left as they are.

Request body

Parameter In Required Type Description
parentPublisherId body No integer The ID of the publication's publisher.
active body No boolean Is the publication active? Default is true.
name body Yes string Name of the publication.
quote body No string Quote field of the publication.
website body Yes string Website of the publication.

Updating a publication

{
  "publisherId": 1,
  "active": true,
  "name": "Demo Display",
  "quote": "DD",
  "website": "https://pool-demo.adhese.com/projects/marketing/index.html"
}

Response - 200

{
    "id": 1,
    "companyName": "Demo Display",
    "companyAddress": "",
    "companyNumber": "",
    "companyZip": "",
    "companyCity": "",
    "companyCountry": "",
    "companyTel": "",
    "companyFax": "",
    "companyUrl": "https://pool-demo.adhese.com/projects/marketing/index.html",
    "companyEmail": "",
    "publishersId": 1,
    "quote": "DD",
    "parentPublicationsId": 0,
    "description": "",
    "comment": "",
    "active": 1,
    "rank": 0,
    "screenshotExtension": "",
    "catchphrase": "",
    "language": "",
    "numberOfAuthors": 0,
    "inventoryCategory": "display"
}

Response codes

Status Meaning
200 Publication retrieved.
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 publication

DELETE /v1/inventory/publication/{id}

Sets a publication to inactive.

Request body

Parameter In Required Type Description
id path Yes integer The publication's ID.

Response codes

Status Meaning
204 Publication 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 publications under a publisher

GET /v1/inventory/publication

List all publications under one or more publishers.

Request body

Parameter In Required Type Description
publisherIds parameter Yes integer The publisher IDs whose publications you want listed. The publisher IDs are comma separated.

Response - 200

[
    {
        "id": 1,
        "companyName": "Demo Display",
        "companyAddress": "",
        "companyNumber": "",
        "companyZip": "",
        "companyCity": "",
        "companyCountry": "",
        "companyTel": "",
        "companyFax": "",
        "companyUrl": "https://pool-demo.adhese.com/projects/marketing/index.html",
        "companyEmail": "",
        "publishersId": 1,
        "quote": "DD",
        "parentPublicationsId": 0,
        "description": "",
        "comment": "",
        "active": 1,
        "rank": 0,
        "screenshotExtension": "",
        "catchphrase": "",
        "language": "",
        "numberOfAuthors": 0,
        "inventoryCategory": "display"
    },
    {
        "id": 2,
        "companyName": "Demo DOOH",
        "companyAddress": "",
        "companyNumber": "",
        "companyZip": "",
        "companyCity": "",
        "companyCountry": "",
        "companyTel": "",
        "companyFax": "",
        "companyUrl": "https://adhese.eu",
        "companyEmail": "",
        "publishersId": 1,
        "quote": "",
        "parentPublicationsId": 0,
        "description": "",
        "comment": "",
        "active": 1,
        "rank": 0,
        "screenshotExtension": "",
        "catchphrase": "",
        "language": "",
        "numberOfAuthors": 0,
        "inventoryCategory": "in_store"
    },
    {
        "id": 3,
        "companyName": "Demo Sponsored Placements",
        "companyAddress": "",
        "companyNumber": "",
        "companyZip": "",
        "companyCity": "",
        "companyCountry": "",
        "companyTel": "",
        "companyFax": "",
        "companyUrl": "https://pool-demo.adhese.com/projects/marketing/index.html",
        "companyEmail": "",
        "publishersId": 1,
        "quote": "",
        "parentPublicationsId": 0,
        "description": "",
        "comment": "",
        "active": 1,
        "rank": 0,
        "screenshotExtension": "",
        "catchphrase": "",
        "language": "",
        "numberOfAuthors": 0,
        "inventoryCategory": "sponsored_product"
    }
]

Response codes

Status Meaning
200 Publications retrieved.
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 publication

POST /v1/inventory/publication

Create a new publication.

Request body

Parameter In Required Type Description
publisherId body No integer The ID of the parent publisher. Leave blank if the new publisher is a main publisher
active body No boolean Is the publication active? Default is true.
name body Yes string Name of the publication.
quote body No string Quote field of the publication.
website body Yes string Website of the publication.

Creating a new publication

{
  "publisherId": 3,
  "active": true,
  "name": "String Created Publication",
  "quote": "SCP",
  "website": "https://pool-demo.adhese.com/projects/marketing/index.html"
}

Response - 201

{
    "id": 5,
    "companyName": "String Created Publication",
    "companyAddress": "",
    "companyNumber": "",
    "companyZip": "",
    "companyCity": "",
    "companyCountry": "",
    "companyTel": "",
    "companyFax": "",
    "companyUrl": "https://pool-demo.adhese.com/projects/marketing/index.html",
    "companyEmail": "",
    "publishersId": 3,
    "quote": "SCP",
    "parentPublicationsId": 0,
    "description": "",
    "comment": "",
    "active": 1,
    "rank": 0,
    "screenshotExtension": "",
    "catchphrase": "",
    "language": "",
    "numberOfAuthors": 0,
    "inventoryCategory": null
}

Response codes

Status Meaning
201 Publication 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.

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 position ID whose information you want deactivated.

Response codes

Status Meaning
204 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.

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.