Create Creative
Create a new creative. creative_type determines which fields apply - media_file creatives reference an uploaded video (see Get Creative Upload URL), vast_url creatives reference a third-party VAST tag.
curl -X POST "https://api.5centscdn.com/v2/ad-manager/101/creatives" \
-H "Content-Type: application/json" \
-H "X-API-Key: YOUR_API_KEY" \
-d '{
"name": "Summer 30s Spot",
"creative_type": "media_file",
"duration_seconds": 30,
"media_url": "https://cdn.5centscdn.com/ad-manager-uploads/abc123.mp4",
"vast_url": "https://ads.example.com/vast?id=123",
"click_url": "https://acmecorp.com/summer-sale",
"mime_type": "video/mp4",
"width": 1920,
"height": 1080,
"bitrate": 4000000,
"tracking_mode": "proxy",
"vast_query_params": [
{
"name": "cachebuster",
"type": "from-variable",
"value": "${CACHE_BUSTER}"
}
],
"ad_origin": {
"customHeaders": [
{
"name": "X-Custom-Auth",
"value": "secret-token"
}
]
},
"skip_override": {
"skippable": true,
"offset_type": "seconds",
"offset_value": 5
},
"metadata": {}
}'
import requests
import json
url = "https://api.5centscdn.com/v2/ad-manager/101/creatives"
headers = {
"Content-Type": "application/json",
"X-API-Key": "YOUR_API_KEY"
}
data = {
"name": "Summer 30s Spot",
"creative_type": "media_file",
"duration_seconds": 30,
"media_url": "https://cdn.5centscdn.com/ad-manager-uploads/abc123.mp4",
"vast_url": "https://ads.example.com/vast?id=123",
"click_url": "https://acmecorp.com/summer-sale",
"mime_type": "video/mp4",
"width": 1920,
"height": 1080,
"bitrate": 4000000,
"tracking_mode": "proxy",
"vast_query_params": [
{
"name": "cachebuster",
"type": "from-variable",
"value": "${CACHE_BUSTER}"
}
],
"ad_origin": {
"customHeaders": [
{
"name": "X-Custom-Auth",
"value": "secret-token"
}
]
},
"skip_override": {
"skippable": true,
"offset_type": "seconds",
"offset_value": 5
},
"metadata": {}
}
response = requests.post(url, headers=headers, json=data)
print(response.json())
const response = await fetch("https://api.5centscdn.com/v2/ad-manager/101/creatives", {
method: "POST",
headers: {
"Content-Type": "application/json",
"X-API-Key": "YOUR_API_KEY"
},
body: JSON.stringify({
"name": "Summer 30s Spot",
"creative_type": "media_file",
"duration_seconds": 30,
"media_url": "https://cdn.5centscdn.com/ad-manager-uploads/abc123.mp4",
"vast_url": "https://ads.example.com/vast?id=123",
"click_url": "https://acmecorp.com/summer-sale",
"mime_type": "video/mp4",
"width": 1920,
"height": 1080,
"bitrate": 4000000,
"tracking_mode": "proxy",
"vast_query_params": [
{
"name": "cachebuster",
"type": "from-variable",
"value": "${CACHE_BUSTER}"
}
],
"ad_origin": {
"customHeaders": [
{
"name": "X-Custom-Auth",
"value": "secret-token"
}
]
},
"skip_override": {
"skippable": true,
"offset_type": "seconds",
"offset_value": 5
},
"metadata": {}
})
});
const data = await response.json();
console.log(data);
package main
import (
"fmt"
"net/http"
"bytes"
"encoding/json"
)
func main() {
data := []byte(`{
"name": "Summer 30s Spot",
"creative_type": "media_file",
"duration_seconds": 30,
"media_url": "https://cdn.5centscdn.com/ad-manager-uploads/abc123.mp4",
"vast_url": "https://ads.example.com/vast?id=123",
"click_url": "https://acmecorp.com/summer-sale",
"mime_type": "video/mp4",
"width": 1920,
"height": 1080,
"bitrate": 4000000,
"tracking_mode": "proxy",
"vast_query_params": [
{
"name": "cachebuster",
"type": "from-variable",
"value": "${CACHE_BUSTER}"
}
],
"ad_origin": {
"customHeaders": [
{
"name": "X-Custom-Auth",
"value": "secret-token"
}
]
},
"skip_override": {
"skippable": true,
"offset_type": "seconds",
"offset_value": 5
},
"metadata": {}
}`)
req, err := http.NewRequest("POST", "https://api.5centscdn.com/v2/ad-manager/101/creatives", bytes.NewBuffer(data))
if err != nil {
panic(err)
}
req.Header.Set("Content-Type", "application/json")
req.Header.Set("X-API-Key", "YOUR_API_KEY")
client := &http.Client{}
resp, err := client.Do(req)
if err != nil {
panic(err)
}
defer resp.Body.Close()
fmt.Println("Response Status:", resp.Status)
}
require 'net/http'
require 'json'
uri = URI('https://api.5centscdn.com/v2/ad-manager/101/creatives')
http = Net::HTTP.new(uri.host, uri.port)
http.use_ssl = true
request = Net::HTTP::Post.new(uri)
request['Content-Type'] = 'application/json'
request['X-API-Key'] = 'YOUR_API_KEY'
request.body = '{
"name": "Summer 30s Spot",
"creative_type": "media_file",
"duration_seconds": 30,
"media_url": "https://cdn.5centscdn.com/ad-manager-uploads/abc123.mp4",
"vast_url": "https://ads.example.com/vast?id=123",
"click_url": "https://acmecorp.com/summer-sale",
"mime_type": "video/mp4",
"width": 1920,
"height": 1080,
"bitrate": 4000000,
"tracking_mode": "proxy",
"vast_query_params": [
{
"name": "cachebuster",
"type": "from-variable",
"value": "${CACHE_BUSTER}"
}
],
"ad_origin": {
"customHeaders": [
{
"name": "X-Custom-Auth",
"value": "secret-token"
}
]
},
"skip_override": {
"skippable": true,
"offset_type": "seconds",
"offset_value": 5
},
"metadata": {}
}'
response = http.request(request)
puts response.body
{
"result": "success",
"creative": {
"id": "crv_9a71",
"admanager_id": 9071,
"name": "Summer 30s Spot",
"creative_type": "media_file",
"status": "active",
"approval_status": "pending",
"duration_seconds": 30,
"media_url": "https://cdn.5centscdn.com/ad-manager-uploads/abc123.mp4",
"vast_url": "https://ads.example.com/vast?id=123",
"click_url": "https://acmecorp.com/summer-sale",
"mime_type": "video/mp4",
"width": 1920,
"height": 1080,
"bitrate": 4000000,
"tracking_mode": "proxy",
"vast_query_params": [
{
"name": "cachebuster",
"type": "from-variable",
"value": "${CACHE_BUSTER}"
}
],
"ad_origin": {
"customHeaders": [
{
"name": "X-Custom-Auth",
"value": "secret-token"
}
]
},
"skip_override": {
"skippable": true,
"offset_type": "seconds",
"offset_value": 5
},
"metadata": [],
"created_at": "2026-01-15T10:30:00Z",
"updated_at": "2026-01-15T10:30:00Z"
}
}
/ad-manager/{pid}/creativesTarget server for requests. Edit to use your own host.
API key (sent in header)
ID of the Ad Manager project.
The media type of the request body
Required for media_file creatives. Maximum 180 seconds.
Required for media_file creatives. Set from object_url returned by the upload-url endpoint.
Required for vast_url creatives.
Request Preview
Response
Response will appear here after sending the request
Authentication
API Key for authentication. Provide your API key in the header.
Path Parameters
Body
Summer 30s Spotmedia_filevast_urlRequired for media_file creatives. Set from object_url returned by the upload-url endpoint.
https://cdn.5centscdn.com/ad-manager-uploads/abc123.mp4https://acmecorp.com/summer-salevideo/mp4192010804000000proxypassthroughResponses
Operation outcome.
successerror