Skip to main content

Creative API

Overview

The Creative API allows you to upload images, videos, audio, or HTML files to the Creative library. You can also get Creative details and manage Creatives, Creative groups and associated Conversions. This page covers the common endpoints and methods associated with the Creative API.

info

File requirements for Creative file:

  • 2MB for JPG, JPEG, PNG
  • 750KB for GIF
  • 400MB for MOV, MP4
  • 100MB for MP3, WAV, OGG, MPEG

For more information on VAST and DAAST XML format specifications, please see iab Tech Lab's Documentation.

Sample CSV file: https://app.iqm.com/creatives/example-files/sample_html_creatives.csv

Learn more about Creatives with our Help Center articles.

Authentication

Use the following header parameters for all requests:

Headers
Authentication
string required
Authentication bearer token
See Authentication Guide
X-IAA-OW-ID
integer required
Organization Worskpace ID Header

Creative Details

Creative Details by ID

GET /api/v3/crt/creatives/{creativeId}

Get Creative details by ID.

Path Parameters
creativeId
integer
Creative ID
Response 200
{
"success": true,
"data": {
"creativeId": 686855,
"creativeName": "300x600-w23-01",
"rtbCreativeTypeId": 1,
"platformCreativeTypeId": 11,
"creativeStatusId": 2,
"creativeSource": "https://d3jme5si7t6llb.cloudfront.net/image/202760/efk0sUk_1730201855013.jpg",
"creativeCardSource": "https://d3jme5si7t6llb.cloudfront.net/Screenshots/202760/278x220/efk0sUk_1730201855013.jpg",
"clickUrl": "http://iqm.com",
"imageDetails": {
"pixelUrl": "http://pixel.com",
"creativeWidth": 300,
"creativeHeight": 600
},
"creativeSourceType": "file",
"creativePreviewFlag": 1,
"createdAt": 1730201855165,
"modifiedAt": "2024-10-29T06:10:15.000+00:00",
"userDetails": {
"uowId": 175891,
"userName": "Hardik",
"userEmail": "hardik.v+iqmsuper@iqm.com",
"hasApprovalAccess": true,
"hasEditAccess": true
},
"organizationDetails": {
"owId": 202760,
"organizationName": "AdWing"
}
}
}

Get List of Creatives and Details

POST /api/v3/crt/creatives/list

Get a list of Creatives with their details.

Request Schema
pageNo
integer
Number of pages for retrieved data
noOfEntries
integer
Maximum number of entries per page
sortBy
string
Sorts by ascending (+) or descending (-)
searchField
string
Search results by keyword
platformCreativeTypeIds
array of integers
Creative type IDs
creativeStatusIds
array of integers
Creative status IDs
creativeIds
array of integers
Creative IDs
creativeGroupId
integer
Creative group ID
campaignIds
array of integers
Campaign IDs
startTime
integer
Unix epoch timestamp (in milliseconds) of start time
endTime
integer
Unix epoch timestamp (in milliseconds) of end time
owIds
integer
(Super/Workspace only) Organization Workspace IDs
allOwIds
boolean
(Super/Workspace only) Filters records with all allowed OW IDs if true, prioritizes records over owIds
includeCreativeSourceDetails
boolean
(Advertiser only) Flag indicating whether to include Creative source details (true) or not (false)
includeOrgnizationDetails
boolean
Flag indicating whether to include Organization details (true) or not (false)
includeUserDetails
boolean
Flag indicating whether to include user details (true) or not (false)
Request Sample
{
"pageNo": 1,
"noOfEntries": 2,
"sortBy": "-creativeId",
"searchField": "creative",
"platformCreativeTypeIds": [
11,
13,
14,
15,
17
],
"creativeStatusIds": [
1,
2,
3,
4
],
"creativeIds": [
130141,
130142
],
"creativeGroupId": null,
"campaignIds": [
20141
],
"startTime": 1734998399000,
"endTime": 1735206867000,
"includeCreativeSourceDetails": true,
"includeOrganizationDetails": false,
"includeUserDetails": false
}
Response 200 (Advertiser)
{
"success": true,
"data": {
"totalRecords": 120,
"filteredRecords": 2,
"filteredList": [
{
"creativeId": 130141,
"creativeName": "Creative 1",
"platformCreativeTypeId": 11,
"creativeStatusId": 2,
"creativePreviewFlag": 1,
"creativeSourceType": "file",
"creativeSource": "https://cdn-cfy-p0.iqm.com/image/457/3W8FRdl_1671813949060.gif",
"creativeThumbnailSource": "https://d3jme5si7t6llb.cloudfront.net/Screenshots/201353/136x82/3W8FRdl_1671813949060.gif",
"creativeCardSource": "https://d3jme5si7t6llb.cloudfront.net/Screenshots/201353/278x220/3W8FRdl_1671813949060.gif",
"createdAt": 1671813949233,
"modifiedAt": 1671819653000,
"clickUrl": "https://example.com/id=130141",
"creativeHeight": 50,
"creativeWidth": 320,
"campaignDetails": {
"campaignIds": [
20141
]
},
"userDetails": {
"uowId": 981
},
"organizationDetails": {
"owId": 201353
}
},
{
"creativeId": 130142,
"creativeName": "Creative 2",
"platformCreativeTypeId": 14,
"creativeStatusId": 2,
"creativePreviewFlag": 1,
"creativeSourceType": "file",
"creativeSource": "<VAST xmlns="http://www.iab.com/VAST" version="4.0"> <Ad conditionalAd="false" id="{IAA_CREATIVE_ID}" sequence="1"> <InLine> <AdSystem version="4.0">4.0</AdSystem> <Impression id="Impression-ID"> <![CDATA[http://example.com/track/impression]]> </Impression> </InLine> </Ad> </VAST>",
"creativeThumbnailSource": "https://d3jme5si7t6llb.cloudfront.net/Screenshots/201353/136x82/EQ4SWN1_1671813949262.png",
"creativeCardSource": "https://d3jme5si7t6llb.cloudfront.net/Screenshots/201353/278x220/EQ4SWN1_1671813949262.png",
"createdAt": 1671813949351,
"modifiedAt": 1671819653000,
"clickUrl": "https://example.com/id=130142",
"duration": 16,
"campaignDetails": {
"campaignIds": [
20141
]
},
"userDetails": {
"uowId": 981
},
"organizationDetails": {
"owId": 201353
}
}
]
}
}
Response 200 (Super/Workspace)
{
"success": true,
"data": {
"totalRecords": 120,
"filteredRecords": 2,
"filteredList": [
{
"creativeId": 130141,
"creativeName": "Creative 1",
"platformCreativeTypeId": 11,
"creativeStatusId": 2,
"creativePreviewFlag": 1,
"creativeSourceType": "file",
"creativeThumbnailSource": "https://d3jme5si7t6llb.cloudfront.net/Screenshots/201353/136x82/3W8FRdl_1671813949060.gif",
"creativeCardSource": "https://d3jme5si7t6llb.cloudfront.net/Screenshots/201353/278x220/3W8FRdl_1671813949060.gif",
"createdAt": 1671813949233,
"modifiedAt": 1671819653000,
"clickUrl": "https://example.com/id=130141",
"pixelUrl": "http://app.iqm.com",
"creativeHeight": 50,
"creativeWidth": 320,
"subMediaType": "Image",
"approvalRequiredPostUrlUpdate": true,
"campaignDetails": {
"campaignIds": [
20141
]
},
"userDetails": {
"uowId": 981,
"userName": "User Name",
"userEmail": "email@domain.com",
"hasEditAccess": true,
"hasApprovalAccess": true
},
"organizationDetails": {
"owId": 201353,
"organizationName": "Organization Name",
"organizationLogo": "https://iqm-web-assets-c92d6b6cbde1-stage.s3.amazonaws.com/avatar/ON.png"
}
},
{
"creativeId": 130142,
"creativeName": "Creative 2",
"platformCreativeTypeId": 14,
"creativeStatusId": 2,
"creativePreviewFlag": 1,
"creativeSourceType": "file",
"creativeThumbnailSource": "https://d3jme5si7t6llb.cloudfront.net/Screenshots/201353/136x82/EQ4SWN1_1671813949262.png",
"creativeCardSource": "https://d3jme5si7t6llb.cloudfront.net/Screenshots/201353/278x220/EQ4SWN1_1671813949262.png",
"createdAt": 1671813949351,
"modifiedAt": 1671819653000,
"clickUrl": "https://example.com/id=130142",
"duration": 16,
"subMediaType": "Video",
"approvalRequiredPostUrlUpdate": false,
"campaignDetails": {
"campaignIds": [
20141
]
},
"userDetails": {
"uowId": 981,
"userName": "User Name",
"userEmail": "email@domain.com",
"hasEditAccess": true,
"hasApprovalAccess": true
},
"organizationDetails": {
"owId": 201353,
"organizationName": "Organization Name",
"organizationLogo": "https://iqm-web-assets-c92d6b6cbde1-stage.s3.amazonaws.com/avatar/ON.png"
}
}
]
}
}

Get Associated Campaigns

GET /api/v3/crt/creatives/{creativeId}/creative-campaign-details

Get details of a Creative by ID along with its associated Campaigns. Includes the option of retrieving modeling details.

Path Parameters
creativeId
integer
Creative ID
Query Parameters
includeModelingInfo
boolean
Indicates whether modeling details should be included (true) or not, default (false)
Response 200
{
"success": true,
"data": {
"creativeId": 604675,
"creativeName": "ad-45s",
"rtbCreativeTypeId": 3,
"platformCreativeTypeId": 14,
"creativeStatusId": 2,
"creativeSource": "VAST...",
"creativeCardSource": "https://d3jme5si7t6llb.cloudfront.net/Screenshots/201427/278x220/fgx01xo_1701846672033.jpg",
"clickUrl": "https://iqm.com/?utm_medium=rtb&utm_campaign=wreckathon-2022-play-4",
"videoDetails": {
"duration": 45,
"xmlType": "inline",
"creativeSourceUrl": "https://cdn-cfy-p0.iqm.com/wreckathon/Videos/iqm-video-202206-45s-720p.mp4",
"availableXmlVersions": "2.0,3.0,4.0,4.1",
"transformed": true
},
"creativeSourceType": "vast-xml",
"creativePreviewFlag": 1,
"createdAt": 1701846671694,
"modifiedAt": "2023-12-13T02:23:26.000+00:00",
"userDetails": {
"uowId": 9483,
"userName": "Hardik Vagadia",
"userEmail": "hardik.v+stageadv@iqm.com"
},
"organizationDetails": {
"owId": 201427,
"organizationName": "Stage Shared Advertiser"
},
"approvalRequiredPostUrlUpdate": true,
"campaignDetails": [
{
"id": 452308,
"name": "Test Campaign - Pre-bid segment not attched",
"status": "pending",
"totalCreativesCount": 3,
"isModelled": false
},
{
"id": 452330,
"name": "checking video campaign",
"status": "expired",
"totalCreativesCount": 7,
"isModelled": true
}
]
}
}

Get List of Creative Groups

POST /api/v3/crt/creatives/groups/list

Get a list of Creative groups by desired filters.

Request Schema
pageNo
integer
Number of pages for retrieved data, default value: 1
noOfEntries
integer
Maximum number of entries per page, default value: 20
sortBy
string
Sorts by ascending (+) or descending (-), default value: -creativeGroupId
searchField
string
Search results by keyword: groupId, groupName, creativeId, name, or 3rd party ID
platformCreativeTypeIds
array of integers
Creative type IDs
creativeStatusIds
array of integers
Creative status IDs
creativeGroupIds
array of integers
Creative group IDs
startTime
integer
Unix epoch timestamp (in milliseconds) of start time
endTime
integer
Unix epoch timestamp (in milliseconds) of end time
allOwIds
boolean
(Super/Workspace only) Filters records with all allowed OW IDs if true, prioritizes records over owIds
Request Sample
{
"pageNo": 1,
"noOfEntries": 2,
"searchField": "test",
"creativeGroupIds": [
46652,
46639
],
"startTime": 1737023769000,
"endTime": 1737369441000,
"sortBy": "-creativeGroupId",
"platformCreativeTypeIds": [
11,
13,
14,
15,
17
],
"creativeStatusIds": [
1,
2,
3,
4
]
}
Response 200
{
"success": true,
"data": {
"totalRecords": 203,
"filteredRecords": 12,
"creativeGroupList": [
{
"creativeGroupId": 17524,
"creativeGroupName": "Group_08",
"creativeTypeId": 11,
"createdAt": 1651570373395,
"creativesCount": 6
},
{
"creativeGroupId": 17522,
"creativeGroupName": "Group_06",
"creativeTypeId": 13,
"createdAt": 1651570273015,
"creativesCount": 5
}
]
}
}

Get Creative Count by Type

POST /api/v3/crt/creatives/count-by-type

Get a count of Creatives by Creative type.

Request Schema
searchField
string
Search results by keyword
Request Sample
{
"searchField": "creative"
}
Response 200
{
"success": true,
"data": {
"totalRecords": 6,
"creativeTypeList": [
{
"id": 0,
"creativeCount": 88829
},
{
"id": 11,
"creativeCount": 52951
},
{
"id": 13,
"creativeCount": 7520
},
{
"id": 14,
"creativeCount": 15004
},
{
"id": 17,
"creativeCount": 1732
},
{
"id": 15,
"creativeCount": 11622
}
],
"filteredRecords": 6
}
}

Get Creative Count by Status

POST /api/v3/crt/creatives/count-by-status

Get count of Creatives by Creative status.

Request Schema
searchField
string
Search results by keyword: groupId, groupName, creativeId, name, or 3rd party ID
platformCreativeTypeIds
array of integers
Creative type IDs
creativeStatusIds
array of integers
Creative status IDs
creativeIds
array of integers
Creative IDs
allCreatives
boolean
Flag indicating whether to include all Creatives in results (true)
groupedCreatives
boolean
Flag indicating whether to include grouped Creaties (true)
startTime
integer
Unix epoch timestamp (in milliseconds) of start time
endTime
integer
Unix epoch timestamp (in milliseconds) of end time
campaignIds
array of integers
Campaign IDs
owIds
array of integers
(Super/Workspace only) Organization Workspace IDs
allOwIds
boolean
(Super/Workspace only) Filters records with all allowed OW IDs if true, prioritizes records over owIds
Request Sample
{
"searchField": "creative",
"creativeStatusIds": [
1,
2,
3,
4
],
"platformCreativeTypeIds": [
11,
13,
14,
15,
17
],
"creativeIds": [
123,
456
],
"allCreatives": true,
"groupedCreatives": false,
"startTime": 1734998399000,
"endTime": 1735206867000,
"owIds": [],
"allOwIds": true,
"campaignIds": [
123456
]
}
Response 200
{
"success": true,
"data": {
"creativeStatusList": [
{
"id": 0,
"creativeCount": 587
},
{
"id": 1,
"creativeCount": 212
},
{
"id": 2,
"creativeCount": 281
},
{
"id": 3,
"creativeCount": 6
},
{
"id": 5,
"creativeCount": 13
},
{
"id": 4,
"creativeCount": 75
}
],
"totalRecords": 6,
"filteredRecords": 6
}
}

Creative Management

Add New Creative

POST /api/v3/crt/creatives

Add a new Creative by providing the Creative metadata and files. Endpoint accepts a JSON payload with Creative details and supports file uploads in multipart form data. The API handles both the metadata and Creative file uploads simultaneously.

Please refer to MDN Documentation on form data format.

Query Parameters
creativeRequest
string
This parameter accepts a Map of UUIDs to Creative details. Each UUID corresponds to a single Creative. The metadata includes information such as Creative name, external Creative ID, Creative type, and click URL. Additionally, the Creative files are sent as multipart form data
creativeFiles
array of strings
Array of Creative files uploaded as multipart files. These files will be used for creating the Creatives. Each file is processed according to its type (image, video, etc.)
Response 200
{
"success": true,
"data": {
"successData": {
"PS": "701388"
},
"failedData": {
"PF": "Creative file missing. Please attach the required file. : null"
}
}
}

Update Creative Details

PATCH /api/v3/crt/creatives/{creativeId}

Update the details of an existing Creative. Users authorized to modify a Creative's properties are: advertisers, workspaces, or super users. Ownership and edit permissions are validated to ensure request is authorized.

Path Parameters
creativeId
integer
Creative ID
Request Schema
creativeName
string
Creative name
externalCreativeId
string
3rd party ID for Creative
creativeRejectionReason
string
Reason for rejecting Creative if applicable
creativeRemarks
string
Adds remarks to Creative
Request Sample
{
"creativeName": "New creative name",
"externalCreativeId": "3rd party id"
}
Response 200
{
"success": true,
"data": {
"id": 68798,
"message": "New creative name updated successfully"
}
}

Update Creative Status

PATCH /api/v3/crt/creatives/update-status

Update the status of an existing Creative. Users authorized to modify a Creative's properties are: advertisers, workspaces, or super users. Ownership and edit permissions are validated to ensure request is authorized.

Request Schema
creativeIds
array of integers
Creative IDs
creativeStatusId
integer
Creative status ID
creativeRejectionReason
string
Reason for rejecting Creative if applicable
Request Sample
{
"creativeIds": [
688549
],
"creativeStatusId": 4
}
Response 200
{
"success": true,
"data": {
"message": "asdf creative updated successfully"
}
}

Create New Creative Group

POST /api/v3/crt/creatives/groups

Create a new Creative group and add desired Creatives to the group.

Request Schema
creativeGroupName
string
Creative Group Name
creativeTypeId
integer
Creative type ID
creativeIds
array of integers
Creative IDs
Request Sample
{
"creativeGroupName": "Group Name",
"creativeTypeId": 1,
"creativeIds": [
1,
2,
3
]
}
Response 200
{
"success": true,
"data": {
"creativeGroupId": 45089,
"message": "testCreatives group created successfully"
}
}

Delete Creative Group

DELETE /api/v3/crt/creatives/groups

Delete Creative group(s) by ID. Also removes mapping of Creatives from deleted group(s).

Request Schema
creativeGroupIds
string
Comma separated group IDs to be deleted
Response 200
{
"success": true,
"data": {
"message": "creativeGroup group deleted successfully"
}
}

Modify Creatives

POST /api/v3/crt/creatives/group/modify-creatives

Add or remove Creatives from Creative groups.

Request Schema
creativeIds
array of integers
Creative IDs to add or remove from group
creativeGroupIds
array of integers
Group IDs to add Creatives to or remove Creatives from
action
string
Supported values: add or remove
Request Sample
{
"creativeIds": [
123456,
123457
],
"creativeGroupIds": [
1,
2
],
"action": "ADD"
}
Response 200
{
"success": true,
"data": {
"message": "2 creatives added to Group_06 group successfully"
}
}

Update Creative Group Name

PATCH /api/v3/crt/creatives/groups/{creativeGroupId}

Update a Creative group name.

Path Parameters
creativeGroupId
integer
Creative group ID
Request Schema
creativeGroupName
string
Creative group name
Request Sample
{
"creativeGroupName": "Group1"
}
Response 200
{
"success": true,
"data": {
"message": "Group1 group renamed successfully"
}
}

Duplicate Creatives

POST /api/v3/crt/creatives/duplicate

Duplicate one or more Creatives. You may also include click URL Conversion in the duplication.

Request Schema
creativeIds
array of integers
Creative IDs to duplicate
clickUrl
string
Click URL to include in duplication
Request Sample
{
"creativeIds": [
130141,
130142
],
"clickUrl": "www.example.com"
}
Response 200
{
"success": true,
"data": {
"message": "Native image 3 creative duplicated successfully"
}
}

Duplicate Creative Group

POST /api/v3/crt/creatives/groups/duplicate/{creativeGroupId}

Duplicate Creative group by ID. Also duplicates existing Creatives within group.

Path Parameters
creativeGroupId
integer
Creative group ID to duplicate
Request Sample
{
"success": true,
"data": {
"duplicatedCreativeGroupId": 45089,
"message": "testCreatives group duplicated successfully"
}
}
Response 200
{
"success": true,
"data": {
"duplicatedCreativeGroupId": 45089,
"message": "testCreatives group duplicated successfully"
}
}

Compress Uploaded Image Creative

POST /api/v3/crt/image/compress

Compress uploaded image Creatives. Also validates file types and size, and returns list of compressed image URLs.

Request Schema
files
array of strings
Image files to compress
Response 200
{
"success": true,
"data": [
{
"fileName": "sample_1MB_img1.jpg",
"originalSizeInBytes": 1042592,
"compressedSizeInBytes": 138572,
"compressedFileUrl": "https://tmpd3vsekqsh1zre3k8n-stage.s3.amazonaws.com/images/1730986298115-1730986300299.jpg"
},
{
"fileName": "Screenshot 2024-08-27 at 6.46.23 PM.png",
"originalSizeInBytes": 916933,
"compressedSizeInBytes": 230436,
"compressedFileUrl": "https://tmpd3vsekqsh1zre3k8n-stage.s3.amazonaws.com/images/1730986298110-1730986302423.png"
}
]
}

Update Pixel URL

PATCH /api/v3/crt/creatives/pixel-url

Update pixel URL Conversion for Creative(s).

info

For further information see the complete documentation:

Request Schema
creativeIds
array of integers
Creative IDs to update Conversion
pixelUrl
string
Pixel URL
Request Sample
{
"creativeIds": [
1,
2
],
"pixelUrl": "http://app.example.com"
}
Response 200
{
"success": true,
"data": {
"message": "Pixel URL updated successfully for 2 creatives"
}
}

Update Click URL

PATCH /api/v3/crt/creatives/click-url

Update click URL Conversion for Creative(s).

info

For further information see the complete documentation:

Request Schema
creativeIds
array of integers
Creative IDs to update Conversion
clickUrl
string
Pixel URL
Request Sample
{
"creativeIds": [
639021
],
"clickUrl": "http://www.iqm.com"
}
Response 200
{
"success": true,
"data": {
"message": "Click URL updated successfully for TEST creative"
}
}

More Creative Details

Get Creative Types List

GET /api/v3/crt/master/static/creative-types

Get a list of Creative types.

Query Parameters
displayAllType
boolean
Flag to add all Creative type in the results
searchField
string
Search results by keyword
creativeTypeIds
array of integers
Filter results by Creative type IDs
Response 200
{
"success": true,
"data": {
"totalRecords": 6,
"creativeTypeList": [
{
"id": 0,
"name": "all",
"order": 0,
"displayName": "All",
"rtbCreativeTypeId": null
},
{
"id": 11,
"name": "Image",
"order": 100,
"displayName": "Image",
"rtbCreativeTypeId": 1
},
{
"id": 13,
"name": "HTML",
"order": 100,
"displayName": "HTML",
"rtbCreativeTypeId": 1
},
{
"id": 14,
"name": "Video",
"order": 100,
"displayName": "Video",
"rtbCreativeTypeId": 3
},
{
"id": 15,
"name": "Native",
"order": 100,
"displayName": "Native",
"rtbCreativeTypeId": 4
},
{
"id": 17,
"name": "Audio",
"order": 100,
"displayName": "Audio",
"rtbCreativeTypeId": 2
}
],
"filteredRecords": 6
}
}

Get Creative Status List

GET /api/v3/crt/master/static/creative-status

Get a list of Creative statuses.

Query Parameters
displayAllStatusOption
boolean
Flag to add all Creative status in the results
Response 200
{
"success": true,
"data": {
"creativeStatusList": [
{
"id": 1,
"name": "pending",
"order": 1,
"displayName": "Pending"
},
{
"id": 2,
"name": "running",
"order": 2,
"displayName": "Running"
},
{
"id": 3,
"name": "paused",
"order": 3,
"displayName": "Paused"
},
{
"id": 5,
"name": "rejected",
"order": 4,
"displayName": "Rejected"
},
{
"id": 4,
"name": "deleted",
"order": 5,
"displayName": "Deleted"
}
],
"totalRecords": 7,
"filteredRecords": 7
}
}

Get CTA Details

GET /api/v3/crt/master/cta/list

Get list of CTA details from the database.

Query Parameters
showOnlyDefault
boolean required
Shows only default CTA if true, otherwise shows all CTA
Response 200
{
"success": true,
"data": {
"ctaDetailsList": [
{
"id": 1,
"ctaText": "Learn More",
"defaultCta": true
},
{
"id": 2,
"ctaText": "Buy Now",
"defaultCta": false
},
{
"id": 3,
"ctaText": "Sign Up",
"defaultCta": false
}
],
"totalRecords": 3,
"filteredRecords": 3
}
}