---
title: "Create Creative"
method: POST
path: "/v1/creative"
---

# Create Creative

`POST /v1/creative`

This creates a new creative under an advertiser.

## Request body

- object
  - `AdvertiserId` integer, required — The ID of the Advertiser.
  - `AdTypeId` integer, required — The ad size's ID. More info [here](https://dev.kevel.com/docs/ad-sizes).
  - `IsActive` boolean, required — Specifies whether creative is eligible to serve.
  - `Title` string — A short description of creative (in UI, it is called 'Friendly Name'). Max 500 characters.
  - `ImageName` string — The file name as it is stored in our database. It is not needed to create a creative, but it will be passed back in the result view. If the string is manually entered, it will result in a null string.
  - `Body` string — This is the body text associated with AdType 1 (in UI it's called "Text"). If AdType1 is not being used, pass an empty string: `""`.
  - `Url` string — The click URL. Max length is 2000 characters. Must not contain leading or trailing spaces.
  - `Alt` string — Alt text. The maximum length is 500 characters after HTML-encoding the value.
  - `IsDeleted` boolean — Specifies whether creative is deleted.
  - `IsHTMLJS` boolean — Specifies whether to override image with HTML or JavaScript ad. If `true` = the `ScriptBody` field should have value.
  - `ScriptBody` string — If `IsHTMLJS` = `true`, then this field needs to be filled with a HTML/JavaScript ad.
  - `Metadata` string — Adds custom [metadata](https://dev.adzerk.com/docs/creatives#section-metadata-field) to your creative. Note that this should be a JSON **object** in a string, for example: `{ ... "Metadata": "{ \"foo\":1234 }" }` The entire Metadata string must be url encoded to support URLs and special characters that can break the JSON object. Maximum character limit of 1000 characters.
  - `ImageLink` string — The URL of an image hosted remotely. Use if you are serving an image file without uploading it to Kevel's CDN or calling it in the `ScriptBody`
  - `SaveEmptyCreative` boolean — If set to `true`, this allows you to save or update a creative that contains no `ScriptBody` or `Metadata`. Note that `SaveEmptyCreative` is not a database field on the creative object, but is instead an option when creating or updating creatives. This means that the `SaveEmptyCreative` parameter will always be returned as `null` once a creative has been created.
  - `IsNoTrack` boolean — Indicates that a creative originating from a third-party (i.e. it uses third-party ad tags) is EFF Do Not Track compliant. Can only be used if DNT is enabled for your account.
  - `IsNetworkAd` boolean — Indicates that a creative originates from a third-party source (such as an ad network) that will serve multiple ads. (BETA)
  - `TemplateId` integer — If you are using a creative template, specifies which template to use. IDs can be retrieved from the Creative Template API.
  - `TemplateValues` string — If you are using a creative template, sets the values for the fields in the creative. Fields must match the TemplateId and the object must be wrapped in a string. For example: `"{\"ctString\":\"A string goes here\",\"ctExternalFile\":\"http://cdn.com/ad.gif\"}"`

## Response `200`

200

- object
  - `Id` integer
  - `Title` string
  - `ImageName` string
  - `Url` string
  - `Body` string
  - `AdvertiserId` integer
  - `IsActive` boolean
  - `AdTypeId` integer
  - `Alt` string
  - `IsDeleted` boolean
  - `IsSync` boolean
  - `IsHTMLJS` boolean
  - `ScriptBody` string
  - `Metadata` string
  - `ImageLink` string
  - `IsNoTrack` boolean
  - `IsNetworkAd` boolean

---

[API](https://skmtc.net/kevel/apis/engine-apis.md) · [All operations](https://skmtc.net/kevel/apis/engine-apis/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/kevel/engine-apis/versions/0ca55f45aa7d/schema)
