---
title: "Create an audience draft"
method: POST
path: "/public/v1/audience-drafts"
tags: ["Audiences"]
---

# Create an audience draft

`POST /public/v1/audience-drafts`

## Request body

- PublicAudienceDraftInput
  - `name` string, required
  - `description` string, nullable
  - `recordTypes` union
    - integer[]
    - 'all'

## Response `201`

Created audience draft

- PublicAudience
  - `id` string, required
  - `name` string, required
  - `description` string, nullable
  - `status` 'DRAFT' | 'ACTIVE' | 'ARCHIVED', required
  - `source` 'FILTER' | 'CSV', required
  - `recordTypes` union, required
    - integer[]
    - 'all'
  - `recordTypeQueries` object[], required
    - `recordTypeId` integer, required
    - `query` object, nullable
  - `sort` object, nullable
  - `search` string, nullable
  - `revision` integer, required
  - `createdBy` object
    - `id` integer, required
    - `firstName` string, nullable
    - `lastName` string, nullable
    - `avatar` string, nullable
  - `imports` PublicAudienceImport[]
    - `id` string, required
    - `audienceId` string, required
    - `filename` string, required
    - `disposition` 'INCLUDE' | 'EXCLUDE', required
    - `overwriteExisting` boolean, required
    - `status` 'PENDING' | 'VALIDATING' | 'PROCESSING' | 'COMPLETED' | 'FAILED' | 'CANCELLED', required
    - `totalRows` integer, required
    - `createdRows` integer, required
    - `linkedRows` integer, required
    - `completedRows` integer, required
    - `rejectedRows` integer, required
    - `error` string, nullable
    - `createdAt` string, date-time
    - `startedAt` string, date-time, nullable
    - `completedAt` string, date-time, nullable
    - `updatedAt` string, date-time
  - `importBatches` PublicAudienceImportBatch[]
    - `id` string, required
    - `audienceId` string, required
    - `status` 'PENDING' | 'PROCESSING' | 'CANCEL_REQUESTED' | 'COMPLETED' | 'FAILED' | 'CANCELLED', required
    - `version` integer, required
    - `error` string, nullable
    - `deletedPeopleCount` integer, required
    - `preservedPeopleCount` integer, required
    - `imports` PublicAudienceImport[]
      - `id` string, required
      - `audienceId` string, required
      - `filename` string, required
      - `disposition` 'INCLUDE' | 'EXCLUDE', required
      - `overwriteExisting` boolean, required
      - `status` 'PENDING' | 'VALIDATING' | 'PROCESSING' | 'COMPLETED' | 'FAILED' | 'CANCELLED', required
      - `totalRows` integer, required
      - `createdRows` integer, required
      - `linkedRows` integer, required
      - `completedRows` integer, required
      - `rejectedRows` integer, required
      - `error` string, nullable
      - `createdAt` string, date-time
      - `startedAt` string, date-time, nullable
      - `completedAt` string, date-time, nullable
      - `updatedAt` string, date-time
    - `cancelRequestedAt` string, date-time, nullable
    - `startedAt` string, date-time, nullable
    - `completedAt` string, date-time, nullable
    - `createdAt` string, date-time
    - `updatedAt` string, date-time
  - `createdAt` string, date-time
  - `updatedAt` string, date-time

## Other responses

- `400` — Invalid request
- `401` — A USER API key is required
- `403` — Insufficient campaign or audience permission
- `404` — Resource not found

## Changes

- **2026-10-03** `666cd9efa9f3` — 1 info
  - endpoint added

[Change history](https://skmtc.dev/getfrontline/apis/public-api/changes/public/v1/audience-drafts/post.md)

---

[API](https://skmtc.dev/getfrontline/apis/public-api.md) · [All operations](https://skmtc.dev/getfrontline/apis/public-api/llms.txt) · [OpenAPI document](https://skmtc.dev/getfrontline/apis/public-api/revisions/666cd9efa9f3?raw)
