---
title: "List Sync Runs"
method: GET
path: "/syncs/{syncId}/runs"
---

# List Sync Runs

`GET /syncs/{syncId}/runs`

List all sync runs under a sync

## Path parameters

- `syncId` number, double, required

## Query parameters

- `runId` number, double
- `after` string, date-time
- `before` string, date-time
- `within` number, double
- `offset` number, double
- `limit` number, double
- `orderBy` 'id' | 'createdAt' | 'startedAt' | 'finishedAt'

## Response `200`

Ok

- object
  - `hasMore` boolean, required
  - `data` SyncRun[], required
    - `id` number, double, required — The sync run's id
    - `createdAt` string, date-time, required — The timestamp when sync run was created. In most cases this will be equivalent to `startedAt`, but it may be earlier if the sync was triggered while a run was already in progress, and the new run didn't start for a while.
    - `startedAt` string, date-time, required — The timestamp when the sync run started
    - `finishedAt` string, date-time, required — The timestamp when the sync run finished
    - `querySize` number, double, required — The number of rows in the query.
    - `status` 'cancelled' | 'failed' | 'queued' | 'success' | 'warning' | 'querying' | 'processing' | 'reporting' | 'interrupted', required — The status of sync runs
    - `completionRatio` number, double, required — The completion ratio of sync run, showing the progress of a sync run
    - `plannedRows` object, required — The number of planned rows that this sync run was supposed to execute. Note that the counts for `successfulRows` and `failedRows` may not add up to `plannedRows` if the sync was cancelled.
      - `removedCount` number, double, required — The number of removed rows.
      - `changedCount` number, double, required — The number of changed rows.
      - `addedCount` number, double, required — The number of added rows.
    - `successfulRows` object, required — The number of rows that were successfully processed by the destination.
      - `removedCount` number, double, required — The number of successful removes.
      - `changedCount` number, double, required — The number of successful changes.
      - `addedCount` number, double, required — The number of successful adds.
    - `failedRows` object, required — The number of rows that we attempted to sync, but were rejected by the destination. This does not include rows that weren't attempted due to the sync being cancelled.
      - `removedCount` number, double, required — The number of failed removes.
      - `changedCount` number, double, required — The number of failed changes.
      - `addedCount` number, double, required — The number of failed adds.
    - `error` string — Error message if the sync run didn't finish successfully

## Other responses

- `400` — Bad request
- `401` — Unauthorized
- `422` — Validation Failed

---

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