---
title: "Upload Marketing Collateral"
method: POST
path: "/marketing/collateral/upload"
tags: ["marketing-collateral"]
---

# Upload Marketing Collateral

`POST /marketing/collateral/upload`

## Request

- Base URL: `https://api.kobaltlabs.com` (the document declares no server; this is the origin it was published from)
- URL: `https://api.kobaltlabs.com/marketing/collateral/upload`
- Auth: none declared

Upload marketing collateral files.

Creates Files + FileVersions + MarketingCollateral rows atomically.

Every file must carry a collateral type, matching the Figma and Google
endpoints. An untyped asset has no channel, and a rule with an explicit
`collateral_types` scope never applies to one, so every standard is
enforced against it at once.

vendor_id selects which company on the marketing page the collateral belongs
to — the self company, a partner, or a fintech prospect are screenable.
Defaults to the self vendor.

## Request body `multipart/form-data`

- BodyUploadMarketingCollateralMarketingCollateralUploadPost
  - `files` string[], required
  - `collateral_types` union[], required
    - union
      - 'Agent Call Flow' | 'Audio' | 'Billboard' | 'Communications' | 'Conversation Design' | 'Email' | 'Help Center Article' | 'In-App' | 'Mailer' | 'Organic Social' | 'Paid Advertising' | 'Paid Search' | 'Paid Social' | 'Press Release' | 'Procedure/Decision Tree' | 'Support Agent Training' | 'TV' | 'Web' | 'Wiki' | 'Other'
      - ''
  - `marketing_team_id` string, uuid, nullable
  - `vendor_id` string, uuid, nullable

## Response `200`

Successful Response

- FileUploadResponse
  - `files` FileUploadResult[], required
    - `file_id` string, uuid, required
    - `upload_id` string, uuid, required

## Other responses

- `422`: Validation Error

---

[API](https://skmtc.dev/kobaltlabs/apis/kobaltlabs-api.md) - [All operations](https://skmtc.dev/kobaltlabs/apis/kobaltlabs-api/llms.txt) - [OpenAPI document](https://skmtc.dev/kobaltlabs/apis/kobaltlabs-api/revisions/8587332d5e43?raw)
