> ## Documentation Index
> Fetch the complete documentation index at: https://docs.sequenzy.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Run Warehouse Sync

> Run a sync now, optionally as a full resync

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. Requires `warehouse:write` and `subscribers:write` (plus `events:write` for event syncs). A full resync of a sync that starts automations or sends double opt-in emails also needs `automations:trigger`.

<ParamField path="id" type="string" required>
  Sync ID.
</ParamField>

<ParamField body="fullResync" type="boolean" default="false">
  Forget which rows were sent and the cursor position, and send every row again.
  Use it after fixing data in your warehouse without touching the cursor column.
</ParamField>

```bash theme={null}
curl -X POST "https://api.sequenzy.com/api/v1/warehouse-syncs/wsync_abc123/run" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{ "fullResync": true }'
```

<ResponseExample>
  ```json 200 theme={null}
  {
    "success": true,
    "queued": true,
    "sync": {
      "id": "wsync_abc123",
      "connectionId": "wconn_abc123",
      "name": "Customers",
      "kind": "subscribers",
      "query": "select email, first_name, plan, updated_at from analytics.customers",
      "mapping": {
        "emailColumn": "EMAIL",
        "firstNameColumn": "FIRST_NAME",
        "attributes": [
          {
            "column": "PLAN",
            "attribute": "plan"
          }
        ]
      },
      "cursorColumn": "UPDATED_AT",
      "cursorValue": "2026-09-30T11:58:02.000Z",
      "listIds": [],
      "optInMode": "confirmed",
      "triggerAutomations": false,
      "frequency": "hourly",
      "isEnabled": true,
      "fullResyncRequested": true,
      "status": "queued",
      "nextRunAt": "2026-09-30T13:00:00.000Z",
      "lastRunAt": "2026-09-30T12:00:00.000Z",
      "lastSuccessAt": "2026-09-30T12:00:41.000Z",
      "lastError": null,
      "lastErrorAt": null,
      "consecutiveFailures": 0,
      "latestRun": {
        "id": "wrun_1",
        "syncId": "wsync_abc123",
        "status": "succeeded",
        "isManual": false,
        "isFullResync": false,
        "rowsRead": 1204,
        "rowsUnchanged": 1100,
        "rowsSynced": 98,
        "rowsSkipped": 6,
        "rowsFailed": 0,
        "errorSamples": [
          {
            "row": 17,
            "reason": "Missing email"
          }
        ],
        "subscriberImportIds": [
          "imp_1"
        ],
        "imports": [
          {
            "id": "imp_1",
            "status": "completed",
            "totalRows": 98,
            "processedCount": 98,
            "addedCount": 12,
            "updatedCount": 86,
            "skippedCount": 0,
            "failedCount": 0
          }
        ],
        "error": null,
        "startedAt": "2026-09-30T12:00:00.000Z",
        "finishedAt": "2026-09-30T12:00:41.000Z"
      },
      "createdAt": "2026-09-30T10:00:00.000Z",
      "updatedAt": "2026-09-30T12:00:41.000Z"
    }
  }
  ```

  ```json 409 theme={null}
  {
    "success": false,
    "code": "sync_disabled",
    "error": "This sync is paused. Enable it before running it."
  }
  ```

  ```json 403 theme={null}
  {
    "success": false,
    "code": "missing_scope",
    "error": "Starting automations or sending double opt-in emails from a sync requires the automations:trigger permission."
  }
  ```

  ```json 404 theme={null}
  {
    "success": false,
    "code": "not_found",
    "error": "Warehouse sync not found."
  }
  ```
</ResponseExample>


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.