---
title: "List Syncs"
method: GET
path: "/api/syncs"
tags: ["Model Sync"]
---

# List Syncs

`GET /api/syncs`

Lists model syncs in the caller's organization.

Results are ordered by `updated_at` descending, with `id` used as a tiebreaker.
If more results are available, the response includes `pagination.next_page_token`.
Pass that token back unchanged to continue from the last item you received.

The token is opaque. Do not construct or edit it yourself.

The `limit` is capped at 50. Values above that cap are reduced to 50, and
non-positive values fall back to the same default.

This endpoint returns syncs visible to the current caller's organization scope.
To inspect a specific sync in more detail, follow up with
[`GET /api/syncs/{id}`](../../api-reference/model-sync/get).

## Query parameters

- `active` boolean, nullable — Filter to only active or only paused syncs.
- `mode` 'create' | 'update' | 'updateOrCreate' | 'replace' | 'append' | 'remove' | 'snapshot'
- `target_connection_id` string, uuid — Filter to syncs that write to the specified target connection.
- `page_token` string — Pagination cursor returned in the previous response. Omit on the first request.
- `limit` integer — Maximum number of syncs to return. Default and maximum is 50.

## Headers

- `X-Polytomic-Version` string

## Response `200`

OK

- ListSyncResponseEnvelope
  - `data` ListSyncItem[], nullable
    - `active` boolean — Whether the sync runs on its schedule.
    - `created_at` string, date-time — Timestamp the sync was created.
    - `created_by` OutputActor
      - `id` string, uuid
      - `name` string
      - `type` string
    - `id` string, uuid — Unique identifier of the sync.
    - `mode` string — How source records are written to the target (e.g. create, updateOrCreate, enrich).
    - `model_ids` string[] — Model IDs used in the sync.
    - `name` string — Human-readable name of the sync.
    - `only_enrich_updates` boolean — For enrichment syncs, only process records that have been updated since the previous run.
    - `organization_id` string, uuid — Organization the sync belongs to.
    - `schedule` Schedule
      - `connection_id` string, uuid
      - `day_of_month` string, nullable
      - `day_of_week` string, nullable
      - `frequency` 'manual' | 'continuous' | 'hourly' | 'daily' | 'weekly' | 'custom' | 'builder' | 'runafter' | 'multi' | 'dbtcloud'
      - `hour` string, nullable
      - `job_id` integer, nullable
      - `minute` string, nullable
      - `month` string, nullable
      - `run_after` RunAfter
        - `bulk_sync_ids` string[]
        - `sync_ids` string[]
      - `run_after_success_only` boolean, nullable — If true, the sync will only run if the dependent syncs completed successfully.
    - `skip_initial_backfill` boolean — When true, the first execution of the sync skips the initial backfill and only processes new changes.
    - `sync_all_records` boolean — When true, every execution syncs the full set of source records rather than only changes since the previous run.
    - `target_connection_id` string, uuid — Connection the sync writes to.
    - `target_object` string — Destination object (e.g. table, SaaS object) the sync writes to.
    - `updated_at` string, date-time — Timestamp the sync was last updated.
    - `updated_by` OutputActor
      - `id` string, uuid
      - `name` string
      - `type` string
  - `pagination` PaginationDetails
    - `next_page_token` string

## Other responses

- `400` — Bad Request
- `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/revisions/31d9a913d396/schema)
