---
title: "Get Git sync status"
method: GET
path: "/sync/status"
tags: ["sync"]
---

# Get Git sync status

`GET /sync/status`

Returns the overall Git sync status including status of all DAGs

## Query parameters

- `remoteNode` string

## Response `200`

Sync status retrieved successfully

- SyncStatusResponse — Overall Git sync status
  - `enabled` boolean, required — Whether Git sync is enabled
  - `repository` string — Repository URL
  - `branch` string — Branch being synced
  - `summary` 'synced' | 'pending' | 'conflict' | 'missing' | 'error', required — Summary status for the sync badge
  - `lastSyncAt` string, date-time — When the last sync occurred
  - `lastSyncCommit` string — Commit hash of last sync
  - `lastSyncStatus` string — Status of last sync (success/error)
  - `lastError` string — Error message from last failed sync
  - `items` SyncItem[], required — Sync state for each item
    - `itemId` string, required — Stable item identifier (file path without extension)
    - `filePath` string, required — Relative file path with extension
    - `displayName` string, required — Display-friendly item name
    - `status` 'synced' | 'modified' | 'untracked' | 'conflict' | 'missing', required — Sync status of a DAG
    - `kind` 'dag' | 'config' | 'memory' | 'skill' | 'soul' | 'doc', required — Type of sync item
    - `baseCommit` string — Commit hash when last synced
    - `lastSyncedHash` string — Content hash when last synced
    - `lastSyncedAt` string, date-time — When the DAG was last synced
    - `modifiedAt` string, date-time — When the DAG was last modified locally
    - `localHash` string — Current local content hash
    - `remoteCommit` string — Remote commit hash (for conflicts)
    - `remoteAuthor` string — Author of the remote commit (for conflicts)
    - `remoteMessage` string — Message of the remote commit (for conflicts)
    - `conflictDetectedAt` string, date-time — When the conflict was detected
    - `previousStatus` 'synced' | 'modified' | 'untracked' | 'conflict' | 'missing' — Sync status of a DAG
    - `missingAt` string, date-time — When the file was first detected as missing
  - `counts` SyncStatusCounts, required — Counts of DAGs in each sync status
    - `synced` integer, required
    - `modified` integer, required
    - `untracked` integer, required
    - `conflict` integer, required
    - `missing` integer, required

## Other responses

- `default` — Unexpected error

## Changes

- **2026-05-24** (v1) `8a2d5d3e9608` — 1 warning
  - added the new `rate_limited` enum value to the `code` response property for the response status `default`
- **2026-05-06** (v1) `cc0e168f1571` — 1 warning
  - added the new `config` enum value to the `items/items/kind` response property for the response status `200`
- **2026-04-30** (v1) `50e1d517afc1` — 1 warning, 2 info
  - added the new `doc` enum value to the `items/items/kind` response property for the response status `200`
  - removed the `config` enum value from the `items/items/kind` response property for the response status `200`
  - removed the `rate_limited` enum value from the `code` response property for the response status `default`

[Change history](https://skmtc.dev/dagucloud/apis/dagu/changes/sync/status/get.md)

---

[API](https://skmtc.dev/dagucloud/apis/dagu.md) · [All operations](https://skmtc.dev/dagucloud/apis/dagu/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/dagucloud/dagu/revisions/8a2d5d3e9608/schema)
