Creates a new promotion and its first version. For file-based formats (pdf, image, video, etc.), upload files first via the File API and provide uploadIds. For text format, provide inline content instead of uploadIds. Returns 409 if any referenced upload has not finished uploading to storage.
Unkey API key passed as Bearer token
External user identifier from the calling system
External user email from the calling system
Content format (text, video, audio, image, pdf, document)
text, video, audio, image, pdf, document Display name for the promotion
1Channel IDs (from /v1/channels)
1Product IDs (from /v1/products)
1Jurisdiction ID (from /v1/jurisdictions)
Upload IDs from the File API. Required for file-based formats (pdf, image, video, etc.). Must be omitted when fileFormat is "text".
Inline text or HTML content. Required when fileFormat is "text". Must be omitted for file-based formats.
1Deadline in ISO 8601 format
Whether this is a paid promotion
Whether this is a financial promotion
Whether this promotion is evergreen (no expiry)
Next review date in ISO 8601 format
Promotion type (single, batch, carousel, variations)
single, batch, carousel, variations Arbitrary key-value pairs stored with the promotion and echoed back in webhook payloads. Max 20 keys. Keys: alphanumeric/underscore/hyphen, max 128 chars. Values: max 1024 chars. Do not store PII, credentials, or sensitive data.
{
"workfrontProjectId": "PROJ-123",
"workfrontTaskId": "TASK-456",
"workfrontDocumentId": "DOC-789"
}