---
title: "Create Sync Template"
method: POST
path: "/sync-templates"
---

# Create Sync Template

`POST /sync-templates`

## Request

- Base URL: `https://api.hightouch.com/api/v1`
- URL: `https://api.hightouch.com/api/v1/sync-templates`
- Auth: HTTP bearer

Create a new sync template

A sync template holds a destination configuration that syncs created from
it share. `overrideConfig` names the configuration fields those syncs may
set for themselves; every other field is locked to the template's value.
Create a sync from the template with `POST /syncs` and `syncTemplateId`.

## Request body

- SyncTemplateCreate: The input for creating a Sync Template. A `slug` is generated automatically from the name; it is a legacy column and is no longer accepted on input.
  - `name` string, required
  - `description` string
  - `modelId` number, double, required
  - `destinationId` number, double, required
  - `configuration` object, required
  - `schedule` object
  - `schedulePaused` boolean
  - `matchboosterRegion` string, nullable
  - `overrideConfig` object, nullable

## Response `200`

Ok

- union
  - SyncTemplate: A sync template defines a reusable sync configuration that can be shared across multiple syncs. User Groups can be granted access to templates so users can create syncs from them without seeing the raw destination credentials.
    - `id` number, double, required: The sync template's id
    - `name` string, required: The sync template's name
    - `description` string, nullable: The sync template's description
    - `workspaceId` number, double, required: The id of the workspace that the sync template belongs to
    - `createdAt` string, date-time, required: The timestamp when the sync template was created
    - `updatedAt` string, date-time, required: The timestamp when the sync template was last updated
    - `modelId` number, double, required: The id of the parent Model that the sync template is connected to
    - `destinationId` number, double, required: The id of the Destination that the sync template is connected to. Cannot be changed after creation.
    - `configuration` object, required: The sync template's configuration. The schema depends on the destination type. Consumers should NOT make assumptions on the contents of the configuration. It may change as Hightouch updates its internal code.
    - `schedule` object, nullable, required: The sync template's schedule. May be null if the template does not impose a schedule on its child syncs.
    - `schedulePaused` boolean, required: Whether the sync template's schedule is paused
    - `tags` object, required: The tags of the sync template
    - `matchboosterRegion` string, nullable: Match Booster region for syncs created from this template. Null means inherit the model's single-region default at runtime.
    - `overrideConfig` object, nullable, required: Which configuration fields syncs created from this template may override, keyed by configuration field path (for example "externalIdMapping" or "target.schema"). A field is unlocked when listed with `overridable: true`; every other field is locked to the template's value. Null when no field is overridable.
  - ValidateErrorJSON
    - `message` 'Validation failed', required
    - `details` object, required
  - 'Internal Server Error'

## Other responses

- `401`: Unauthorized
- `422`: Validation Failed
- `500`: Something went wrong

## Changes

- **2026-09-25** `5574262d4032`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/hightouch/apis/hightouch-api/changes/sync-templates/post.md)

---

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