curl --request POST \
--url https://api.interchange.io/api/v2/buyer/advertisers/{advertiserId}/creatives/save-to-library \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '{}'import requests
url = "https://api.interchange.io/api/v2/buyer/advertisers/{advertiserId}/creatives/save-to-library"
payload = {}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({})
};
fetch('https://api.interchange.io/api/v2/buyer/advertisers/{advertiserId}/creatives/save-to-library', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));{
"role": "evergreen",
"updated": [
"<string>"
],
"manifests": [
{
"creative_id": "<string>",
"name": "<string>",
"created_at": "2023-11-07T05:31:56Z",
"updated_at": "2023-11-07T05:31:56Z",
"asset_count": 3,
"campaign_id": "<string>",
"format_id": {
"id": "<string>",
"agent_url": "<string>",
"width": 123,
"height": 123,
"duration_ms": 123
},
"format_kind": "<string>",
"template_id": "<string>",
"brand_domain": "<string>",
"preview_url": "<string>",
"requires_upgrade": true,
"reuse_count": 4503599627370495,
"creative_role": "evergreen",
"creative_source": "uploaded",
"platform_links": [
{
"agent_id": "<string>",
"agent_name": "<string>",
"status": "<string>",
"platform_id": "<string>",
"approval_status": "<string>",
"synced_at": "2023-11-07T05:31:56Z"
}
],
"primary_asset_type": "IMAGE",
"sync_status": {
"synced": true,
"agent_count": 0
},
"target_format_ids": [
{
"id": "<string>",
"agent_url": "<string>",
"width": 123,
"height": 123,
"duration_ms": 123
}
],
"placements": [
{
"placement_id": "<string>",
"placement_name": "<string>"
}
]
}
],
"total": 4503599627370495
}{
"data": null,
"error": {
"code": "<string>",
"message": "<string>",
"field": "<string>",
"details": {}
}
}{
"data": null,
"error": {
"code": "<string>",
"message": "<string>",
"field": "<string>",
"details": {}
}
}{
"data": null,
"error": {
"code": "<string>",
"message": "<string>",
"field": "<string>",
"details": {}
}
}Promote advertiser creatives into the library shelf
Promotes advertiser creatives into the durable creative library (“the shelf”) with a role — evergreen (serve-ready, reusable across campaigns) or reference (a generation input, not served). Identify the creatives by creative_ids or by collection_id. No campaign is required.
curl --request POST \
--url https://api.interchange.io/api/v2/buyer/advertisers/{advertiserId}/creatives/save-to-library \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '{}'import requests
url = "https://api.interchange.io/api/v2/buyer/advertisers/{advertiserId}/creatives/save-to-library"
payload = {}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({})
};
fetch('https://api.interchange.io/api/v2/buyer/advertisers/{advertiserId}/creatives/save-to-library', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));{
"role": "evergreen",
"updated": [
"<string>"
],
"manifests": [
{
"creative_id": "<string>",
"name": "<string>",
"created_at": "2023-11-07T05:31:56Z",
"updated_at": "2023-11-07T05:31:56Z",
"asset_count": 3,
"campaign_id": "<string>",
"format_id": {
"id": "<string>",
"agent_url": "<string>",
"width": 123,
"height": 123,
"duration_ms": 123
},
"format_kind": "<string>",
"template_id": "<string>",
"brand_domain": "<string>",
"preview_url": "<string>",
"requires_upgrade": true,
"reuse_count": 4503599627370495,
"creative_role": "evergreen",
"creative_source": "uploaded",
"platform_links": [
{
"agent_id": "<string>",
"agent_name": "<string>",
"status": "<string>",
"platform_id": "<string>",
"approval_status": "<string>",
"synced_at": "2023-11-07T05:31:56Z"
}
],
"primary_asset_type": "IMAGE",
"sync_status": {
"synced": true,
"agent_count": 0
},
"target_format_ids": [
{
"id": "<string>",
"agent_url": "<string>",
"width": 123,
"height": 123,
"duration_ms": 123
}
],
"placements": [
{
"placement_id": "<string>",
"placement_name": "<string>"
}
]
}
],
"total": 4503599627370495
}{
"data": null,
"error": {
"code": "<string>",
"message": "<string>",
"field": "<string>",
"details": {}
}
}{
"data": null,
"error": {
"code": "<string>",
"message": "<string>",
"field": "<string>",
"details": {}
}
}{
"data": null,
"error": {
"code": "<string>",
"message": "<string>",
"field": "<string>",
"details": {}
}
}Authorizations
API key or access token
Path Parameters
Advertiser ID
1Body
Promote advertiser creatives into the library ("the shelf") with a role. Identify the creatives by creative_ids or by collection_id.
Library role to assign: evergreen (serve-ready) or reference (generation input).
evergreen, reference Creative manifest IDs to promote into the advertiser library. Provide this or collection_id.
1A saved collection (e.g. the one grouped at creative-intent time) whose creative members are all promoted. Provide this or creative_ids — collection_id scales to any number of creatives.
1Response
Promote advertiser creatives into the library shelf
Result of promoting creatives into the advertiser library.
Advertiser creative-library role: evergreen (serve-ready, reusable across campaigns) or reference (a generation input, not served). Absent for flight-specific creatives. Never seller Library.
evergreen, reference Creative manifest IDs whose role was set.
The advertiser library after the save (promoted creatives only), so the result can render the shelf.
Show child attributes
Show child attributes
Total promoted creatives in the advertiser library.
0 <= x <= 9007199254740991