---
title: "Get Batch Sync Status"
method: GET
path: "/api/v1/data-collection/batches/{batch_id}/syncs/{sync_id}"
tags: ["aiTaskBuilder"]
---

# Get Batch Sync Status

`GET /api/v1/data-collection/batches/{batch_id}/syncs/{sync_id}`

Returns the current status of a batch sync job created by `POST /batches/{batch_id}/sync`.

A sync job transitions through the following statuses:
- `queued` — sync accepted, awaiting the background worker.
- `processing` — the worker is materialising tasks.

**Terminal statuses:**
- `complete` — the sync finished. `tasks_created`, `datapoints_processed`, `groups_created`, and `groups_expanded` are populated.
- `failed` — the sync failed. `reason` is populated.

Continue polling while the status is `queued` or `processing`.

## Path parameters

- `batch_id` string, uuid, required
- `sync_id` string, uuid, required

## Headers

- `Authorization` string, required

## Response `200`

Sync job status

- SyncJob — Tracks the asynchronous materialisation of tasks for datapoints appended to a batch's dataset since setup or the last sync. Created by `POST /batches/{batch_id}/sync`; poll `GET /batches/{batch_id}/syncs/{sync_id}` until a terminal status (`complete` or `failed`). The shape depends on `status`: the fields below marked as terminal-only are present only for the corresponding status.
  - `batch_id` string, uuid, required — The batch this sync job belongs to.
  - `dataset_id` string, uuid, required — The dataset whose appended datapoints are being synced.
  - `sync_id` string, uuid, required — The unique identifier of the sync job.
  - `created_at` string, date-time, required — When the sync job was created (ISO 8601, UTC).
  - `updated_at` string, date-time, required — When the sync job was last updated (ISO 8601, UTC).
  - `status` 'queued' | 'processing' | 'complete' | 'failed', required — Current status of the sync job.
  - `tasks_created` integer — Number of tasks created this sync. Present when status is `complete`.
  - `datapoints_processed` integer — Number of datapoints processed this sync. Present when status is `complete`.
  - `groups_created` integer — Number of new task groups created this sync. Present when status is `complete`.
  - `groups_expanded` integer — Number of existing task groups grown this sync. Non-zero only for predetermined-grouping batches; always `0` for tasks-per-group batches. Present when status is `complete`.
  - `reason` string — Human-readable reason for failure. Present when status is `failed`.

## Other responses

- `400` — Error
- `404` — Sync job not found

## Changes

> 11 revisions in range; 6 could not be searched.

- **2026-07-26** `421c6aa415ef` — 1 info
  - endpoint added

[Change history](https://skmtc.dev/prolific/apis/api-reference/changes/api/v1/data-collection/batches/:batch_id/syncs/:sync_id/get.md)

---

[API](https://skmtc.dev/prolific/apis/api-reference.md) · [All operations](https://skmtc.dev/prolific/apis/api-reference/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/prolific/api-reference/revisions/578f400cea53/schema)
