---
title: "Approve Sync Draft"
method: POST
path: "/syncs/{syncId}/drafts/{draftId}/approve"
---

# Approve Sync Draft

`POST /syncs/{syncId}/drafts/{draftId}/approve`

## Request

- Base URL: `https://api.hightouch.com/api/v1`
- URL: `https://api.hightouch.com/api/v1/syncs/{syncId}/drafts/{draftId}/approve`
- Auth: HTTP bearer

Approve a sync draft and apply its change. Fails with 409 and applies
nothing when the draft or the sync changed after the versions you send.

## Path parameters

- `syncId` number, double, required
- `draftId` string, required

## Request body

- ApproveSyncDraftInput
  - `expectedDraftVersion` string, required: The `draftVersion` from the draft the reviewer saw
  - `expectedResourceVersion` string, required: The `resourceVersion` from the draft the reviewer saw
  - `metadata` DraftReviewMetadataInput: Identifies the reviewer in the caller's own approval system.
    - `extId` string, required: The reviewer's id in the caller's approval system

## Response `200`

Ok

- SyncDraft: A proposed change to a sync that waits for approval. Approving it applies the change; rejecting it closes it without applying anything.
  - `id` string, required: The draft's id
  - `syncId` string, required: The id of the sync the draft changes
  - `operation` 'create' | 'update', required: `create` publishes a new sync, `update` changes an existing one
  - `status` 'pending' | 'approved' | 'rejected' | 'canceled', required: The state of a sync draft. New values may be added, so treat an unknown value as closed.
  - `requestedBy` UserReference, required: The Hightouch user who created or last updated a resource. Changes made with an API key are attributed to the user who created the key.
    - `id` number, double, required: The user's id
    - `name` string, required: The user's name
    - `email` string, required: The user's email address
  - `requestedApprovers` UserReference[], required: The users asked to review the draft
    - `id` number, double, required: The user's id
    - `name` string, required: The user's name
    - `email` string, required: The user's email address
  - `requestComment` string, nullable, required: The comment the requester left for reviewers
  - `createdAt` string, date-time, required: The timestamp when the draft was created
  - `updatedAt` string, date-time, required: The timestamp when the draft last changed
  - `reviewedBy` UserReference, required: The Hightouch user who created or last updated a resource. Changes made with an API key are attributed to the user who created the key.
    - `id` number, double, required: The user's id
    - `name` string, required: The user's name
    - `email` string, required: The user's email address
  - `reviewedAt` string, date-time, nullable, required: The timestamp when the draft was approved or rejected
  - `reviewMetadata` object, nullable, required: The metadata sent with the approval or rejection
    - `extId` string, required

## Other responses

- `401`: Unauthorized
- `403`: Forbidden
- `404`: Not found
- `409`: Conflict
- `413`: Payload Too Large
- `422`: Validation Failed

## Changes

- **2026-10-14** `4ea0926df6e4`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/hightouch/apis/hightouch-api/changes/syncs/:syncId/drafts/:draftId/approve/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)
