Reassign a brought creative to a different placement
curl --request POST \
--url https://api.interchange.io/api/v2/buyer/campaigns/{campaignId}/creatives/{creativeId}/placement \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"format_id": {
"agent_url": "<string>",
"id": "<string>"
}
}
'import requests
url = "https://api.interchange.io/api/v2/buyer/campaigns/{campaignId}/creatives/{creativeId}/placement"
payload = { "format_id": {
"agent_url": "<string>",
"id": "<string>"
} }
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({format_id: {agent_url: '<string>', id: '<string>'}})
};
fetch('https://api.interchange.io/api/v2/buyer/campaigns/{campaignId}/creatives/{creativeId}/placement', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));{
"coverage": {
"total_placements": 0,
"covered_placements": 0
},
"files": [
{
"file_id": "<string>",
"filename": "<string>",
"media_kind": "image",
"status": "recognizing",
"detected": {
"dimensions": "<string>",
"duration": "<string>",
"codec": "<string>",
"bitrate": "<string>",
"frameRate": "<string>",
"sampleRate": "<string>",
"container": "<string>",
"fileSize": "<string>",
"tagType": "<string>"
},
"suggestion": "<string>",
"format_incompatible": "<string>",
"preview_url": "<string>",
"message": "<string>",
"suggestions": [
"<string>"
],
"accepts_context": true,
"placements": [
{
"placement_id": "<string>",
"placement_name": "<string>",
"product_name": "<string>"
}
]
}
],
"campaign_id": "<string>",
"campaign_name": "<string>",
"missing_placements": [
{
"placement_id": "<string>",
"placement_name": "<string>",
"spec_label": "<string>",
"product_name": "<string>"
}
],
"available_placements": [
{
"placement_id": "<string>",
"placement_name": "<string>",
"spec_label": "<string>",
"product_name": "<string>"
}
],
"truncated": true,
"unreadable_placements": 4503599627370495,
"skipped_files_notice": "<string>",
"skipped_files": [
"<string>"
],
"attachment_summary": {
"requested_creatives": 4503599627370495,
"created_creatives": 4503599627370495,
"failed_creatives": 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": {}
}
}Creatives
Reassign a brought creative to a different placement
Reassigns an already-attached creative to a different required placement (the “correction” step, e.g. “move the 300×250 to the leaderboard”), then returns the refreshed confirmation card. format_id is the target placement, resolved from the campaign’s required formats.
POST
/
campaigns
/
{campaignId}
/
creatives
/
{creativeId}
/
placement
Reassign a brought creative to a different placement
curl --request POST \
--url https://api.interchange.io/api/v2/buyer/campaigns/{campaignId}/creatives/{creativeId}/placement \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"format_id": {
"agent_url": "<string>",
"id": "<string>"
}
}
'import requests
url = "https://api.interchange.io/api/v2/buyer/campaigns/{campaignId}/creatives/{creativeId}/placement"
payload = { "format_id": {
"agent_url": "<string>",
"id": "<string>"
} }
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({format_id: {agent_url: '<string>', id: '<string>'}})
};
fetch('https://api.interchange.io/api/v2/buyer/campaigns/{campaignId}/creatives/{creativeId}/placement', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));{
"coverage": {
"total_placements": 0,
"covered_placements": 0
},
"files": [
{
"file_id": "<string>",
"filename": "<string>",
"media_kind": "image",
"status": "recognizing",
"detected": {
"dimensions": "<string>",
"duration": "<string>",
"codec": "<string>",
"bitrate": "<string>",
"frameRate": "<string>",
"sampleRate": "<string>",
"container": "<string>",
"fileSize": "<string>",
"tagType": "<string>"
},
"suggestion": "<string>",
"format_incompatible": "<string>",
"preview_url": "<string>",
"message": "<string>",
"suggestions": [
"<string>"
],
"accepts_context": true,
"placements": [
{
"placement_id": "<string>",
"placement_name": "<string>",
"product_name": "<string>"
}
]
}
],
"campaign_id": "<string>",
"campaign_name": "<string>",
"missing_placements": [
{
"placement_id": "<string>",
"placement_name": "<string>",
"spec_label": "<string>",
"product_name": "<string>"
}
],
"available_placements": [
{
"placement_id": "<string>",
"placement_name": "<string>",
"spec_label": "<string>",
"product_name": "<string>"
}
],
"truncated": true,
"unreadable_placements": 4503599627370495,
"skipped_files_notice": "<string>",
"skipped_files": [
"<string>"
],
"attachment_summary": {
"requested_creatives": 4503599627370495,
"created_creatives": 4503599627370495,
"failed_creatives": 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
Body
application/json
Show child attributes
Show child attributes
Response
Reassign a brought creative to a different placement
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Required range:
0 < x <= 9007199254740991Show child attributes
Show child attributes