---
title: "Run warehouse sync now"
method: POST
path: "/warehouse-syncs/{id}/run"
tags: ["Warehouse Sync"]
---

# Run warehouse sync now

`POST /warehouse-syncs/{id}/run`

## Request

- Base URL: `https://api.sequenzy.com/api/v1`
- URL: `https://api.sequenzy.com/api/v1/warehouse-syncs/{id}/run`
- Auth: HTTP bearer

Queues a run now. Only one run per sync executes at a time; a request made while a run is in progress runs right after it. With fullResync, the run forgets which rows were sent and the cursor position, and sends every row again. A full resync of a sync that starts automations or sends double opt-in emails needs automations:trigger.

## Path parameters

- `id` string, required

## Request body

- object
  - `fullResync` boolean

## Response `200`

Run queued

- object
  - `success` boolean
  - `queued` boolean
  - `sync` WarehouseSync
    - `id` string
    - `connectionId` string
    - `name` string
    - `kind` 'subscribers' | 'events'
    - `query` string
    - `mapping` object
    - `cursorColumn` string, nullable
    - `cursorValue` string, nullable: Rows with the cursor column at or after this value are read next.
    - `listIds` string[]
    - `optInMode` 'confirmed' | 'double_opt_in'
    - `triggerAutomations` boolean
    - `frequency` 'every_15_minutes' | 'hourly' | 'daily' | 'weekly' | 'manual'
    - `isEnabled` boolean
    - `fullResyncRequested` boolean
    - `status` 'idle' | 'queued' | 'running' | 'failed'
    - `nextRunAt` string, date-time, nullable
    - `lastRunAt` string, date-time, nullable
    - `lastSuccessAt` string, date-time, nullable
    - `lastError` string, nullable
    - `lastErrorAt` string, date-time, nullable
    - `consecutiveFailures` integer
    - `latestRun` WarehouseSyncRun
      - `id` string
      - `syncId` string
      - `status` 'running' | 'succeeded' | 'failed'
      - `isManual` boolean
      - `isFullResync` boolean
      - `rowsRead` integer
      - `rowsUnchanged` integer: Rows skipped because they did not change since they were last sent.
      - `rowsSynced` integer
      - `rowsSkipped` integer: Rows missing required values, or events for unknown contacts. Read again when the row changes, on a full resync, or on every run without a cursor column.
      - `rowsFailed` integer: Rows Sequenzy could not write this time. The cursor stays at the first of them, so the next run reads them again.
      - `errorSamples` object[]
        - `row` integer
        - `reason` string
      - `subscriberImportIds` string[]
      - `imports` object[]: Progress of the subscriber imports this run queued.
        - `id` string
        - `status` string
        - `totalRows` integer
        - `processedCount` integer
        - `addedCount` integer
        - `updatedCount` integer
        - `skippedCount` integer
        - `failedCount` integer
      - `error` string, nullable
      - `startedAt` string, date-time
      - `finishedAt` string, date-time, nullable
    - `createdAt` string, date-time
    - `updatedAt` string, date-time

## Other responses

- `401`: Unauthorized
- `403`: Missing scope, or the member role cannot manage workspace settings
- `404`: Not found
- `409`: The sync is paused (code sync_disabled)

## Changes

- **2026-10-16** `db3873ca3d4d`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/sequenzy/apis/sequenzy-api/changes/warehouse-syncs/:id/run/post.md)

---

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