---
title: "Create audience sync"
method: POST
path: "/audience-syncs"
tags: ["Audience Syncs"]
---

# Create audience sync

`POST /audience-syncs`

Pushes a segment to a Meta custom audience and keeps it synced on a schedule. Provide segmentId for an existing segment or predefinedSegmentId for a ready-made template (for example zero-ltv, no-purchase-1y, recent-buyers); template segments are created automatically on first use. The first upload runs immediately. Audiences are add-only - subscribers who later leave the segment stay in the Meta audience. Requires the Meta Ads integration to be connected in the dashboard.

## Request body

- union
  - object
    - `segmentId` string, required — Existing segment ID. Provide either segmentId or predefinedSegmentId, not both.
    - `predefinedSegmentId` string — Ready-made segment template ID (for example recent-buyers). The template segment is created on first use and reused afterwards; an unrelated same-named segment with different filters causes a 409.
    - `adAccountId` string, required — Meta ad account ID (act_...). See GET /ad-accounts.
    - `audienceName` string, required — Name for the custom audience in Meta Ads Manager.
    - `frequency` 'hourly' | 'daily' | 'weekly'
  - object
    - `segmentId` string — Existing segment ID. Provide either segmentId or predefinedSegmentId, not both.
    - `predefinedSegmentId` string, required — Ready-made segment template ID (for example recent-buyers). The template segment is created on first use and reused afterwards; an unrelated same-named segment with different filters causes a 409.
    - `adAccountId` string, required — Meta ad account ID (act_...). See GET /ad-accounts.
    - `audienceName` string, required — Name for the custom audience in Meta Ads Manager.
    - `frequency` 'hourly' | 'daily' | 'weekly'

## Response `200`

Audience sync created

- object
  - `success` boolean
  - `audienceSync` AudienceSync — A segment-to-Meta-custom-audience sync mapping.
    - `id` string
    - `segmentId` string
    - `segmentName` string, nullable
    - `adAccountId` string
    - `audienceName` string
    - `frequency` 'hourly' | 'daily' | 'weekly'
    - `isActive` boolean
    - `syncStatus` string — idle, syncing, error, or disconnected (the Meta connection was revoked; the sync is paused until you reconnect)
    - `lastSyncAt` string, date-time, nullable
    - `lastSyncError` string, nullable
    - `lastSyncedCount` integer — Subscribers uploaded in the most recent run.
    - `createdAt` string, date-time

## Other responses

- `400` — Validation error (for example both segmentId and predefinedSegmentId provided) or Meta Ads not connected
- `401` — Unauthorized
- `404` — Segment not found
- `409` — Segment already synced to that ad account, or the template's name is taken by an unrelated segment with different filters

---

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