Creative API
Creatives
List creatives
GET /v1/creatives/advar
Get a list of advar creatives filtered on at least one parameter.
Request body
| Parameter | In | Required | Type | Description |
creativeId |
path | Yes | integer | The creatives ID. |
campaignId |
parameter | No | integer | Campaign ID of the campaign whose advar creatives you want to list. |
creativeId |
parameter | No | integer | Comma separated list of creative ids you want to list. |
bookingId |
parameter | No | integer | Comma separated list of booking ids you want to list creatives for. |
search |
parameter | No | string | An url-encoded search string to apply to the list of creatives (ignoring case, on creative name). |
limit |
parameter | No | integer | Pagination property to limit the number of returned targets. |
offset |
parameter | No | integer | Pagination property to offset the returned targets. |
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.html",
"sku": "",
"lastEditedDate": "2026-08-10T07:29:49Z",
"templateParameters": {
"<CLICKURL>": "",
"<ALT_TEXT>": ""
},
"templateFiles": {
"2": {
"fileName": null,
"filePath": "https://demo-preview.adhese.org/pool/lib/27_2nd_1.png"
}
},
"lastEdited": 1786346989000
}
]
Response codes
| Status | Meaning |
200 |
Creatives found. |
400 |
Bad request - invalid input or parameters. |
401 / 403 |
Not authenticated / not allowed. |
404 |
Not Found - Resource not found. |
409 |
Conflict. |
500 |
Internal Server Error - Unexpected failure. |
Update an advar creative
PUT /v1/creatives/advar/{creativeId}
Updates an advar creative by creative ID
Request body
| Parameter | In | Required | Type | Description |
creativeId |
path | Yes | integer | The creatives ID. |
Updating an advar creative
{
"campaignId": 17,
"creativeName": "Apitest advar banner update",
"sku": "string",
"formatId": 1,
"advarTemplateName": "Image_FlexBanner.html",
"templateParameters": {},
"templateFiles": {}
}
Response - 200
{
"creativeId": 27,
"campaignId": 17,
"creativeName": "Apitest advar banner update",
"formatId": 1,
"advarTemplateName": "Image_FlexBanner.html",
"sku": "string",
"lastEditedDate": "2026-08-10T13:36:10Z",
"templateParameters": {},
"templateFiles": {
"2": {
"fileName": null,
"filePath": "https://demo-preview.adhese.org/pool/lib/27_2nd_1.png"
}
},
"lastEdited": 1786368970000
}
Response codes
| Status | Meaning |
200 |
Creative updated. |
400 |
Bad request - invalid input or parameters. |
401 / 403 |
Not authenticated / not allowed. |
404 |
Not Found - Resource not found. |
409 |
Conflict. |
500 |
Internal Server Error - Unexpected failure. |
Upload a creative file
POST /v1/creatives/file
Uploads a creative file to temporary storage to use when uploading an advar creative.
Request body
| Parameter | In | Required | Type | Description |
Content-Disposition |
header | Yes | string | Contains the file name and is filled in accordingly attachment; filename=filename.extension |
Use-Keycloak-Auth |
header | Yes | boolean | Default is true |
Content-Type |
header | Yes | string | application/octet-stream |
formatId |
parameter | Yes | string | The ID of the format that will be associated with the creative. |
key |
parameter | No | string | Creative file index written as ordinal number (e.g. 2nd) with the exception of 1, which has key "main" (but is not used in advar creatives). Default value is main |
File contents |
body | Yes | binary data | File contents as binary data to be uploaded to temporary storage. |
Response - 201
{
"filePath": "/home/adhese/www/docker.adhese.org/tmp/file_by_user_1_9072608199649672610.jpg"
}
Response codes
| Status | Meaning |
201 |
File uploaded successfully. |
400 |
Bad request - invalid input or parameters. |
401 / 403 |
Not authenticated / not allowed. |
404 |
Not Found - Resource not found. |
409 |
Conflict. |
415 |
Unsupported Media Type. |
422 |
Unprocessable entity. |
500 |
Internal Server Error - Unexpected failure. |
Create an advar creative
POST /v1/creatives/advar
Creates an advar creative under the chosen campaign.
Request body
| Parameter | In | Required | Type | Description |
campaignId |
body | Yes | string | Id of the campaign under wich you want to create a creative. |
creativeName |
body | Yes | string | The ID of the format that will be associated with the creative. |
sku |
body | No | string | SKU of the product related to the product. |
formatId |
body | Yes | integer | ID of the format that will be used for the creative. |
advarTemplateName |
body | Yes | string | Name of the advar template that will be used. |
templateParameters |
body | No | string | Additional parameters related to the advar. To be filled in as the macro of the parameter such as <CLICKURL> or <ALT_TEXT>. |
|
|
body | No | string | Creative name and files. |
|
|
body | Yes | integer | Creative file index written as ordinal number (e.g. 2) with the exception of 1, which has key "main" (but is not used in advar creatives). Default value is main |
- fileName |
body | No | string | Name of the creative's file. |
- filePath |
body | No | string | Path where the file can be found. If a creative was uploaded via the API, this can be found in the response. |
Creating an advar creative
{
"campaignId": 27,
"creativeName": "Apitestpotmancreative",
"sku": null,
"formatId": 1,
"advarTemplateName": "Image_FlexBanner.html",
"templateParameters": {
"<CLICKURL>": "https://example.com",
"<ALT_TEXT>": "My creative alt text"
},
"templateFiles": {
"2": {
"fileName": "banner.png",
"filePath": "/home/adhese/www/docker.adhese.org/tmp/file_by_user_1_9072608199649672610.jpg"
}
}
}
Response - 201
{
"creativeId": 29,
"campaignId": 27,
"creativeName": "Apitestpotmancreative",
"formatId": 1,
"advarTemplateName": "Image_FlexBanner.html",
"sku": null,
"lastEditedDate": "2026-09-02T13:25:48Z",
"templateParameters": {
"<CLICKURL>": "https://example.com",
"<ALT_TEXT>": "My creative alt text"
},
"templateFiles": {
"2": {
"fileName": null,
"filePath": "https://demo.preview.adhese.eu/pool/lib/29_2nd_1.jpg"
}
},
"readonly": false,
"lastEdited": 1788355548000
}
Response codes
| Status | Meaning |
201 |
File uploaded successfully. |
400 |
Bad request - invalid input or parameters. |
401 / 403 |
Not authenticated / not allowed. |
404 |
Not Found - Resource not found. |
409 |
Conflict. |
422 |
Unprocessable entity. |
500 |
Internal Server Error - Unexpected failure. |
Duplicate a creative
POST /v1/creatives/advar/{creativeId}/duplicate
Duplicates a chosen creative by campaign and creative ID.
Request body
creativeId
path
Yes
string
Id of the creative you wish to duplicate.
destinationCampaignId
body
Yes
string
The ID campaign to which the creative you wish to duplicate belongs.
Duplicating a campaign
{
"destinationCampaignId": 27
}
Response - 200
{
"creativeId": 30,
"campaignId": 27,
"creativeName": "Copy of Apitestpotmancreative",
"formatId": 1,
"advarTemplateName": "Image_FlexBanner.html",
"sku": null,
"lastEditedDate": "2026-09-08T08:00:13Z",
"templateParameters": {
"<CLICKURL>": "https://example.com",
"<ALT_TEXT>": "My creative alt text"
},
"templateFiles": {
"2": {
"fileName": null,
"filePath": "https://demo.preview.adhese.eu/pool/lib/30_2nd_1.jpg"
}
},
"readonly": false,
"lastEdited": 1788854413000
}
Response codes
200
Creative duplicated succesfuly.
400
Bad request - invalid input or parameters.
401 / 403
Not authenticated / not allowed.
404
Not Found - Resource not found.
409
Conflict.
500
Internal Server Error - Unexpected failure.