curl --request POST \
--url https://api.interchange.io/api/v2/buyer/creatives/adopt-managed-video-source \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"source_uid": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"advertiser_id": "<string>",
"storefront_id": "<string>",
"name": "<string>"
}
'import requests
url = "https://api.interchange.io/api/v2/buyer/creatives/adopt-managed-video-source"
payload = {
"source_uid": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"advertiser_id": "<string>",
"storefront_id": "<string>",
"name": "<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({
source_uid: '3c90c3cc-0d44-4b50-8888-8dd25736052a',
advertiser_id: '<string>',
storefront_id: '<string>',
name: '<string>'
})
};
fetch('https://api.interchange.io/api/v2/buyer/creatives/adopt-managed-video-source', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));{
"creative_id": "<string>",
"source_uid": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"publication_uid": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"delivery_url": "<string>",
"name": "<string>",
"created": true,
"campaign_id": "<string>"
}{
"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": {}
}
}{
"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": {}
}
}{
"data": null,
"error": {
"code": "<string>",
"message": "<string>",
"field": "<string>",
"details": {}
}
}{
"data": null,
"error": {
"code": "<string>",
"message": "<string>",
"field": "<string>",
"details": {}
}
}Adopt a managed video source into a creative
Adopt a promoted managed video source into a creative manifest. The bounded hosted HTTPS URL is issued server-side, so the caller names a source rather than a URL. Optionally attaches the creative to a campaign and its media-buy packages. Requires managed video upload to be enabled for the customer.
curl --request POST \
--url https://api.interchange.io/api/v2/buyer/creatives/adopt-managed-video-source \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"source_uid": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"advertiser_id": "<string>",
"storefront_id": "<string>",
"name": "<string>"
}
'import requests
url = "https://api.interchange.io/api/v2/buyer/creatives/adopt-managed-video-source"
payload = {
"source_uid": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"advertiser_id": "<string>",
"storefront_id": "<string>",
"name": "<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({
source_uid: '3c90c3cc-0d44-4b50-8888-8dd25736052a',
advertiser_id: '<string>',
storefront_id: '<string>',
name: '<string>'
})
};
fetch('https://api.interchange.io/api/v2/buyer/creatives/adopt-managed-video-source', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));{
"creative_id": "<string>",
"source_uid": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"publication_uid": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"delivery_url": "<string>",
"name": "<string>",
"created": true,
"campaign_id": "<string>"
}{
"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": {}
}
}{
"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": {}
}
}{
"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
Create or adopt a Creative Manifest from a promoted managed video source.
Opaque owner-scoped reference returned when the managed video source was promoted.
^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$Advertiser that owns the source and will own the creative. A positive integer within the signed 64-bit range.
^[1-9][0-9]*$Storefront the source was uploaded against. A positive integer within the signed 64-bit range.
^[1-9][0-9]*$Buyer-facing creative name.
1 - 255Attach the creative to this campaign in the same call. This confirms campaign attachment only — the campaign's live media-buy packages are synced to sellers in the background, and that sync is not part of what the response confirms. Omit to leave the creative advertiser-scoped.
1 - 64Response
Adopt a managed video source into a creative
Result of adopting a managed video source into a creative.
Creative manifest that now carries the managed video.
The managed video source that was adopted.
^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$Bounded hosted publication backing the creative asset. Revoking it revokes delivery.
^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$Public HTTPS URL stored as the creative asset. Expires with the source retention window.
Buyer-facing name of the creative. Adoption never renames an existing creative, so a replay returns the name it already had.
True only when this call created the creative. False means an existing adoption for this source was returned. Either way, a 2xx response with a requested campaign_id means the creative is attached to that campaign — not that sellers have accepted it into their media-buy packages, which sync in the background and are not confirmed here. Attachment is idempotent, so a retry finishes an attachment an earlier call left undone.
A campaign the creative is attached to. Returned when the request named one, and on a replay when the creative is already attached to at least one campaign.