---
title: "Get Bulk Sync Status"
method: GET
path: "/api/bulk/syncs/{id}/status"
tags: ["Bulk Sync"]
---

# Get Bulk Sync Status

`GET /api/bulk/syncs/{id}/status`

Returns the current status of a bulk sync.

The response includes the sync's current active/inactive state together with
information about the most recent execution — its status, start time, and any
errors — making this endpoint well-suited for health checks and monitoring
dashboards.

For the complete execution history, use
[`GET /api/bulk/syncs/{id}/executions`](../../../../../api-reference/bulk-sync/executions/list).
For the full details of a specific run, including per-schema breakdowns, use
[`GET /api/bulk/syncs/{id}/executions/{exec_id}`](../../../../../api-reference/bulk-sync/executions/get).

## Path parameters

- `id` string, uuid, required — Unique identifier of the bulk sync.

## Headers

- `X-Polytomic-Version` string

## Response `200`

OK

- BulkSyncStatusEnvelope
  - `data` BulkSyncStatusResponse
    - `current_execution` BulkSyncExecution
      - `completed_at` string, date-time, nullable
      - `created_at` string, date-time
      - `error_count` integer
      - `fetch_mode` 'none' | 'incremental' | 'full' — How the data is fetched. 'none' is normal operation for Polytomic. 'incremental' and 'full' apply to syncs from Salesforce. 'incremental' indicates the data is synced incrementally using record modification time. 'full' is necessary to catch up to the latest values for formula fields and rollup fields whose updates don't show up in incremental runs due to limitations in Salesforce.
      - `id` string, uuid
      - `is_partial` boolean
      - `is_resync` boolean
      - `is_test` boolean
      - `output_disposition` 'retain' | 'truncate' | 'rebuild'
      - `record_count` integer
      - `schemas` BulkSyncSchemaExecution[], nullable
        - `completed_at` string, date-time, nullable
        - `created_at` string, date-time
        - `error_count` integer
        - `output_name` string
        - `record_count` integer
        - `schema` string
        - `started_at` string, date-time, nullable
        - `status` 'created' | 'scheduled' | 'running' | 'exporting' | 'canceled' | 'completed' | 'failed' | 'interrupted' | 'processing'
        - `status_message` string
        - `updated_at` string, date-time
        - `warning_count` integer
      - `started_at` string, date-time, nullable
      - `status` 'created' | 'scheduled' | 'running' | 'exporting' | 'canceling' | 'canceled' | 'completed' | 'failed' | 'processing' | 'errors' | 'interrupted'
      - `status_message` string
      - `type` string
      - `updated_at` string, date-time
      - `warning_count` integer
    - `ingestion_status` BulkSyncIngestionStatus
      - `enabled` boolean
      - `highwater_mark` string
      - `is_running` boolean
      - `position` string
      - `position_time` string, date-time, nullable
      - `status` 'ok' | 'warning' | 'error' — The health status of CDC ingestion for a bulk sync. 'ok' means ingestion is operating normally. 'warning' indicates a non-fatal issue. 'error' indicates a potentially fatal ingestion error.
      - `status_message` string
      - `updated_at` string, date-time
    - `last_execution` BulkSyncExecution
      - `completed_at` string, date-time, nullable
      - `created_at` string, date-time
      - `error_count` integer
      - `fetch_mode` 'none' | 'incremental' | 'full' — How the data is fetched. 'none' is normal operation for Polytomic. 'incremental' and 'full' apply to syncs from Salesforce. 'incremental' indicates the data is synced incrementally using record modification time. 'full' is necessary to catch up to the latest values for formula fields and rollup fields whose updates don't show up in incremental runs due to limitations in Salesforce.
      - `id` string, uuid
      - `is_partial` boolean
      - `is_resync` boolean
      - `is_test` boolean
      - `output_disposition` 'retain' | 'truncate' | 'rebuild'
      - `record_count` integer
      - `schemas` BulkSyncSchemaExecution[], nullable
        - `completed_at` string, date-time, nullable
        - `created_at` string, date-time
        - `error_count` integer
        - `output_name` string
        - `record_count` integer
        - `schema` string
        - `started_at` string, date-time, nullable
        - `status` 'created' | 'scheduled' | 'running' | 'exporting' | 'canceled' | 'completed' | 'failed' | 'interrupted' | 'processing'
        - `status_message` string
        - `updated_at` string, date-time
        - `warning_count` integer
      - `started_at` string, date-time, nullable
      - `status` 'created' | 'scheduled' | 'running' | 'exporting' | 'canceling' | 'canceled' | 'completed' | 'failed' | 'processing' | 'errors' | 'interrupted'
      - `status_message` string
      - `type` string
      - `updated_at` string, date-time
      - `warning_count` integer
    - `next_execution_time` string, date-time, nullable

## Other responses

- `404` — Not Found
- `500` — Internal Server Error

---

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