Creative Testing API (1.0.0-beta)
Download OpenAPI specification:Download
API reference for the Creative Testing API, including creatives, prediction jobs management, prediction and webhook endpoints.
Creatives provides a complete set of API endpoints for handling creative assets across their entire lifecycle.
Get all creatives
Returns all registered creative assets and their metadata for easy tracking and management.
Responses
Response samples
- 200
[- {
- "id": "550e8400-e29b-41d4-a716-446655440000",
- "file_name": "my_creative_video.mp4",
- "file_source": "external_downloadable_link",
- "file_size": 10000,
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z",
- "status": "uploaded",
- "prediction_jobs": [
- {
- "id": "550e8400-e29b-41d4-a716-446655441111",
- "creative_id": "550e8400-e29b-41d4-a716-446655440000",
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z",
- "status": "in-progress",
- "platform_formats": [
- {
- "platform": "youtube",
- "format": "pre-roll",
- "skippable": [
- false
]
}
], - "genders": [
- "male",
- "female"
], - "countries": [
- "AU",
- "US",
- "UK"
], - "age_groups": [
- "18-24",
- "25-34"
]
}
]
}
]
Create a creative by given a downloadable URL
Registers a new creative by providing a downloadable URL, enabling quick onboarding with optional targeting details for prediction jobs.
Request Body schema: application/json
downloadable_url | string A public URL where the creative file can be accessed and downloaded. This link must be reachable over the internet to allow the system to fetch and process the creative asset. The ad length must follow the guidence: . The file format must be .mp4 or .mov.The file FPS should not exceed 60 and file size must <=3GB. |
webhook_url | string The callback URL provided by the API caller to receive asynchronous updates on the prediction job’status, such as completion or errors. |
Array of objects or null (creatives_platformFormats) A list of platform and format configurations applied to this prediction job, detailing which media the creative is evaluated on (platform, format, skippable settings). | |
genders | Array of strings or null Enum: "male" "female" Specifies the target genders for which the creative should be evaluated on(optional). If no argument is given, the data across all available genders will be returned. If multiple genders are provided, data will be aggregated across all selected genders. |
countries | Array of strings or null Enum: "AU" "UK" "US" "DE" "SA" "AE" "NZ" "PL" "CA" "FR" "BE" A list of country codes specifying the geographic regions targeted for evaluation(optional). If no argument is given, the data across all available countries will be returned. If multiple country codes are provided, data will be aggregated across all selected regions. |
age_groups | Array of strings or null Enum: "18-24" "25-34" "35-44" "45-54" "55+" Defines the age groups the creative should be assessed against(optional).If no argument is given, the data across all available countries will be returned. If multiple age_groups s are provided, data will be aggregated across all selected age_groups. |
Responses
Request samples
- Payload
{- "platform_formats": [
- {
- "platform": "youtube",
- "format": "pre-roll",
- "skippable": [
- false
]
}
], - "genders": [
- "male",
- "female"
], - "countries": [
- "AU",
- "US",
- "UK"
], - "age_groups": [
- "18-24",
- "25-34"
]
}
Response samples
- 200
{- "id": "550e8400-e29b-41d4-a716-446655440000",
- "file_name": "my_creative_video.mp4",
- "file_source": "external_downloadable_link",
- "file_size": 10000,
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z",
- "status": "uploaded",
- "prediction_jobs": [
- {
- "id": "550e8400-e29b-41d4-a716-446655441111",
- "creative_id": "550e8400-e29b-41d4-a716-446655440000",
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z",
- "status": "in-progress",
- "platform_formats": [
- {
- "platform": "youtube",
- "format": "pre-roll",
- "skippable": [
- false
]
}
], - "genders": [
- "male",
- "female"
], - "countries": [
- "AU",
- "US",
- "UK"
], - "age_groups": [
- "18-24",
- "25-34"
]
}
]
}
Find creative by ID
Retrieves metadata for a specific creative using its creativeId
.
path Parameters
creativeId required | string Example: 550e8400-e29b-41d4-a716-446655445555 The unique identifier (UUID) of the creative you want to retrieve. |
Responses
Response samples
- 200
{- "id": "550e8400-e29b-41d4-a716-446655440000",
- "file_name": "my_creative_video.mp4",
- "file_source": "external_downloadable_link",
- "file_size": 10000,
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z",
- "status": "uploaded",
- "prediction_jobs": [
- {
- "id": "550e8400-e29b-41d4-a716-446655441111",
- "creative_id": "550e8400-e29b-41d4-a716-446655440000",
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z",
- "status": "in-progress",
- "platform_formats": [
- {
- "platform": "youtube",
- "format": "pre-roll",
- "skippable": [
- false
]
}
], - "genders": [
- "male",
- "female"
], - "countries": [
- "AU",
- "US",
- "UK"
], - "age_groups": [
- "18-24",
- "25-34"
]
}
]
}
Create a creative by uploading a file
Creates a new creative by uploading a video file directly (mp4 or mov, ≤5MB) with optional targeting details for prediction jobs.
Request Body schema:
webhook_url | string The callback URL provided by the API caller to receive asynchronous updates on the prediction job’status, such as completion or errors. |
Array of objects or null (creatives_platformFormats) A list of platform and format configurations applied to this prediction job, detailing which media the creative is evaluated on (e.g., platform type, ad format, skippable settings). | |
genders | Array of strings or null Enum: "male" "female" Specifies the target genders for which the creative should be evaluated on(optional). If no argument is given, the data across all available genders will be returned. If multiple genders are provided, data will be aggregated across all selected genders. |
countries | Array of strings or null Enum: "AU" "UK" "US" "DE" "SA" "AE" "NZ" "PL" "CA" "FR" "BE" A list of country codes specifying the geographic regions targeted for evaluation(optional). If no argument is given, the data across all available countries will be returned. If multiple country codes are provided, data will be aggregated across all selected regions. |
age_groups | Array of strings or null Enum: "18-24" "25-34" "35-44" "45-54" "55+" Defines the age groups the creative should be assessed against(optional).If no argument is given, the data across all available countries will be returned. If multiple age_groups s are provided, data will be aggregated across all selected age_groups. |
Responses
Request samples
- Payload
{- "platform_formats": [
- {
- "platform": "youtube",
- "format": "pre-roll",
- "skippable": [
- false
]
}
], - "genders": [
- "male",
- "female"
], - "countries": [
- "AU",
- "US",
- "UK"
], - "age_groups": [
- "18-24",
- "25-34"
]
}
Response samples
- 200
{- "id": "550e8400-e29b-41d4-a716-446655440000",
- "file_name": "my_creative_video.mp4",
- "file_source": "external_downloadable_link",
- "file_size": 10000,
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z",
- "status": "uploaded",
- "prediction_jobs": [
- {
- "id": "550e8400-e29b-41d4-a716-446655441111",
- "creative_id": "550e8400-e29b-41d4-a716-446655440000",
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z",
- "status": "in-progress",
- "platform_formats": [
- {
- "platform": "youtube",
- "format": "pre-roll",
- "skippable": [
- false
]
}
], - "genders": [
- "male",
- "female"
], - "countries": [
- "AU",
- "US",
- "UK"
], - "age_groups": [
- "18-24",
- "25-34"
]
}
]
}
Prediction Jobs provides a complete set of API endpoints for managing the entire lifecycle of prediction tasks.
Get all prediction jobs
Retrieves a list of all prediction jobs created in the system, including their details, statuses, and associated creatives. This endpoint gives developers a full overview of active, completed, and historical prediction tasks for better tracking and management.
Responses
Response samples
- 200
[- {
- "id": "550e8400-e29b-41d4-a716-446655441111",
- "creative_id": "550e8400-e29b-41d4-a716-446655440000",
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z",
- "status": "in-progress",
- "platform_formats": [
- {
- "platform": "youtube",
- "format": "pre-roll",
- "skippable": [
- false
]
}
], - "genders": [
- "male",
- "female"
], - "countries": [
- "AU",
- "US",
- "UK"
], - "age_groups": [
- "18-24",
- "25-34"
], - "creative": {
- "id": "550e8400-e29b-41d4-a716-446655440000",
- "file_name": "my_creative_video.mp4",
- "file_source": "external_downloadable_link",
- "file_size": 10000,
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z",
- "status": "uploaded"
}
}
]
Create a prediection job
Creates a new prediction job for a specified creative, allowing you to analyze attention performance across selected demographics, platforms, and formats.
Request Body schema: application/json
creative_id | string The unique identifier of the creative you want to run a prediction on. |
webhook_url | string The callback URL provided by the API caller to receive asynchronous updates on the prediction job’status. |
Array of objects or null (creatives_platformFormats) A list of platform and format configurations applied to this prediction job, detailing which media the creative is evaluated on (e.g., platform type, ad format, skippable settings). | |
genders | Array of strings or null Enum: "male" "female" Specifies the target genders for which the creative should be evaluated on(optional). If no argument is given, the data across all available genders will be returned. If multiple genders are provided, data will be aggregated across all selected genders. |
countries | Array of strings or null Enum: "AU" "UK" "US" "DE" "SA" "AE" "NZ" "PL" "CA" "FR" "BE" A list of country codes specifying the geographic regions targeted for evaluation(optional). If no argument is given, the data across all available countries will be returned. If multiple country codes are provided, data will be aggregated across all selected regions. |
age_groups | Array of strings or null Enum: "18-24" "25-34" "35-44" "45-54" "55+" Defines the age groups the creative should be assessed against(optional).If no argument is given, the data across all available countries will be returned. If multiple age_groups s are provided, data will be aggregated across all selected age_groups. |
Responses
Request samples
- Payload
{- "creative_id": "550e8400-e29b-41d4-a716-446655445555",
- "platform_formats": [
- {
- "platform": "youtube",
- "format": "pre-roll",
- "skippable": [
- false
]
}
], - "genders": [
- "male",
- "female"
], - "countries": [
- "AU",
- "US",
- "UK"
], - "age_groups": [
- "18-24",
- "25-34"
]
}
Response samples
- 200
{- "id": "550e8400-e29b-41d4-a716-446655441111",
- "creative_id": "550e8400-e29b-41d4-a716-446655440000",
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z",
- "status": "in-progress",
- "platform_formats": [
- {
- "platform": "youtube",
- "format": "pre-roll",
- "skippable": [
- false
]
}
], - "genders": [
- "male",
- "female"
], - "countries": [
- "AU",
- "US",
- "UK"
], - "age_groups": [
- "18-24",
- "25-34"
], - "creative": {
- "id": "550e8400-e29b-41d4-a716-446655440000",
- "file_name": "my_creative_video.mp4",
- "file_source": "external_downloadable_link",
- "file_size": 10000,
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z",
- "status": "uploaded"
}
}
Find prediction job by ID
Retrieves detailed metadata and status for a specific prediction job using its predictionJobId.
path Parameters
predictionJobId required | string Example: 550e8400-e29b-41d4-a716-446655446666 The unique identifier (UUID) of the prediction job you want to retrieve. |
Responses
Response samples
- 200
{- "id": "550e8400-e29b-41d4-a716-446655441111",
- "creative_id": "550e8400-e29b-41d4-a716-446655440000",
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z",
- "status": "in-progress",
- "platform_formats": [
- {
- "platform": "youtube",
- "format": "pre-roll",
- "skippable": [
- false
]
}
], - "genders": [
- "male",
- "female"
], - "countries": [
- "AU",
- "US",
- "UK"
], - "age_groups": [
- "18-24",
- "25-34"
], - "creative": {
- "id": "550e8400-e29b-41d4-a716-446655440000",
- "file_name": "my_creative_video.mp4",
- "file_source": "external_downloadable_link",
- "file_size": 10000,
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z",
- "status": "uploaded"
}
}
The Prediction endpoints provide access to detailed analysis results for completed prediction jobs. They allow you to retrieve attention metrics and tailored platform recommendations to help optimize creative performance across different audiences and channels.
Get attention data
Retrieves second-by-second attention predictions for a specific prediction job, detailing how active, passive, and no-attention levels shift over time.
Attention score: overall attention score of the creative on the given platform_formats. It measures how well an ad holds audience attention over time, while giving more emphasis on attention captured early where people are most engaged.
Benchmark: score of the given platform_formats for comparison.
Go signal:
Fix indicates that your creative performs below the benchmark for the specified platform formats.
Good indicates that your creative meets or exceeds performance expectations for the specified platform formats.
Excellent indicates that your creative ranks within the top 20% of the specified platform formats.
Attention seconds and decay:
Example of a visualised attention seconds prediction and attention decay returned via the endpoint:
path Parameters
predictionJobId required | string Example: 550e8400-e29b-41d4-a716-446655445555 The unique identifier (UUID) of the prediction job you want to query. |
Responses
Response samples
- 200
{- "predicted_at": "2019-08-24T14:15:22Z",
- "creative": {
- "id": "550e8400-e29b-41d4-a716-446655440000",
- "file_name": "my_creative_video.mp4",
- "file_source": "external_downloadable_link",
- "file_size": 10000,
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z",
- "status": "uploaded",
- "prediction_job": {
- "id": "550e8400-e29b-41d4-a716-446655441111",
- "creative_id": "550e8400-e29b-41d4-a716-446655440000",
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z",
- "status": "in-progress",
- "platform_formats": [
- {
- "platform": "youtube",
- "format": "pre-roll",
- "skippable": [
- false
]
}
], - "genders": [
- "male",
- "female"
], - "countries": [
- "AU",
- "US",
- "UK"
], - "age_groups": [
- "18-24",
- "25-34"
]
}
}, - "attentions": [
- {
- "platform": "youtube",
- "format": "pre-roll",
- "skippable": true,
- "attention_score": 68,
- "attention_score_benchmark": 60,
- "go_signal": "fix",
- "attention_seconds": {
- "active": 5,
- "passive": 3,
- "none": 2
}, - "attention_decay": [
- [
- {
- "second_sequence": 1,
- "attention_proportion": {
- "active": 60,
- "passive": 30,
- "none": 10
}
}, - {
- "second_sequence": 2,
- "attention_proportion": {
- "active": 55,
- "passive": 30,
- "none": 15
}
}, - {
- "second_sequence": 3,
- "attention_proportion": {
- "active": 57,
- "passive": 32,
- "none": 11
}
}, - {
- "second_sequence": 4,
- "attention_proportion": {
- "active": 42,
- "passive": 44,
- "none": 14
}
}, - {
- "second_sequence": 5,
- "attention_proportion": {
- "active": 37,
- "passive": 45,
- "none": 18
}
}, - {
- "second_sequence": 6,
- "attention_proportion": {
- "active": 25,
- "passive": 66,
- "none": 19
}
}
]
]
}
]
}
Get recommendations
Retrieves media recommendations and creative recommendations for a specific prediction job, helping guide media placement and creative optimization.These recommendations are based on the predicted attention performance of the creative across different configurations. If only one viable platform exists, only the recommended_platform is given. If two viable platforms exist, both recommended_platform and reconsider_platform are given.
path Parameters
predictionJobId required | string Example: 550e8400-e29b-41d4-a716-446655445555 The unique identifier (UUID) of the prediction job you want recommendations for. |
query Parameters
brand_size required | string Enum: "category_leader" "challenger" "small" The size of the brand or advertiser for contextualizing recommendations. |
first_brand_moment required | number The timestamp (in seconds) when the brand first appears in the creative. |
campaign_objective required | string Enum: "upper_funnel" "mid_funnel" "lower_funnel" The main goal or objective of the campaign. You can choose from |
Responses
Response samples
- 200
{- "predicted_at": "2019-08-24T14:15:22Z",
- "creative": {
- "id": "550e8400-e29b-41d4-a716-446655440000",
- "file_name": "my_creative_video.mp4",
- "file_source": "external_downloadable_link",
- "file_size": 10000,
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z",
- "status": "uploaded",
- "prediction_job": {
- "id": "550e8400-e29b-41d4-a716-446655441111",
- "creative_id": "550e8400-e29b-41d4-a716-446655440000",
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z",
- "status": "in-progress",
- "platform_formats": [
- {
- "platform": "youtube",
- "format": "pre-roll",
- "skippable": [
- false
]
}
], - "genders": [
- "male",
- "female"
], - "countries": [
- "AU",
- "US",
- "UK"
], - "age_groups": [
- "18-24",
- "25-34"
]
}
}, - "recommended_platform": {
- "platform": "youtube",
- "format": "pre-roll",
- "skippable": true,
- "description": "With 5 seconds of Active Attention, youtube pre-roll skippable delivers the strongest potential for a category leader to drive brand-building goals. More than 5/10 of the ad is actively viewed, ensuring the message is absorbed before users scroll, skip, or disengage."
}, - "supplementary_platform": {
- "platform": "facebook",
- "format": "feed",
- "skippable": true,
- "description": "A strong companion to enhance reach and engagement is facebook feed. This format, with 3 seconds of Active Attention and 2 seconds of Passive Attention, serves as a dependable secondary option."
}, - "reconsider_platform": {
- "platform": "pinterest",
- "format": "standard_video",
- "skippable": true,
- "description": "With just 1 seconds of Active Attention, this format falls short for mid-funnel campaigns, making it unsuitable regardless of brand scale. Better alternatives exist for driving engagement mid-funnel."
}, - "creative_recommendations": {
- "branding": "Ineffective: Branding appearing after 4 sec significantly reduces impact in awareness campaigns. By this time, only 46% of viewers will still be engaged—urgent changes needed to maintain visibility.",
- "ad_length_and_format": "Strong: Youtube Pre-roll formats support ad lengths beyond 20 seconds, which is good for storytelling and sustained engagement, making them ideal for upper-funnel brand-building campaigns for leader brands. Reinforce branding earlier for better retention."
}
}
The Webhook endpoints allow developers to set up automated notifications from the Amplified system, delivering real-time updates on prediction job status changes directly to a specified callback URL provided by the caller.
Webhook
Request Body schema: application/json
prediction_job_id | string The unique ID of the prediction job that triggered the webhook update. |
creative_id | string The unique ID of the creative associated with the prediction job. |
webhook_url | string The callback URL (provided by the API caller) where the update notification is sent. |
timestamp | string <date-time> The exact time when the event or status update occurred. |
event | string The type of event triggering the webhook |
status | string The status of the prediction job |
message | string Messages about the update |
error | string Error message when something goes wrong |
Responses
Request samples
- Payload
{- "prediction_job_id": "550e8400-e29b-41d4-a716-446655446666",
- "creative_id": "550e8400-e29b-41d4-a716-446655445555",
- "webhook_url": "string",
- "timestamp": "2019-08-24T14:15:22Z",
- "event": "prediction_job_status_update",
- "status": "prediction_result_ready",
- "message": "string",
- "error": "string"
}