---
title: "Upload Audience File"
method: POST
path: "/campaigns/audience-uploads"
tags: ["campaigns"]
---

# Upload Audience File

`POST /campaigns/audience-uploads`

Store an operator-supplied audience file (.csv, .xlsx or .txt).

Storage only — the file is kept exactly as supplied and nothing is read from
it here. The returned upload_id is what an audience build names to say the
audience is this file.

## Response `200`

Successful Response

- AudienceUploadResponse — Receipt for a stored audience file. Nothing has been read from it yet.
  - `upload_id` string, required
  - `filename` string, required
  - `extension` string, required
  - `byte_size` integer, required
  - `checksum_sha256` string, required
  - `object_key` string, required
  - `uploaded_at` string, required

## Other responses

- `404` — Not found
- `422` — Validation Error

## Changes

- **2026-09-09** `db50150bcca5` — 1 info
  - endpoint added

[Change history](https://skmtc.dev/noso/apis/crucible-backend-api/changes/campaigns/audience-uploads/post.md)

---

[API](https://skmtc.dev/noso/apis/crucible-backend-api.md) · [All operations](https://skmtc.dev/noso/apis/crucible-backend-api/llms.txt) · [OpenAPI document](https://skmtc.dev/noso/apis/crucible-backend-api/revisions/c714e58b5156?raw)
