---
title: "Get Smartadvocate Sync Runs"
method: GET
path: "/developer/smartadvocate/sync-runs"
tags: ["Developer", "Developer - Integrations"]
---

# Get Smartadvocate Sync Runs

`GET /developer/smartadvocate/sync-runs`

## Request

- Base URL: `https://api.openintake.ai` (the document declares no server; this is the origin it was published from)
- URL: `https://api.openintake.ai/developer/smartadvocate/sync-runs`
- Auth: none declared

SmartAdvocate sync run history for the current customer: the running run
(if any) with live progress, plus recent finished runs, newest first.

Developer-only endpoint.

## Query parameters

- `limit` integer

## Response `200`

Successful Response

- SmartAdvocateSyncRunsResponse: Current + recent SmartAdvocate sync runs for the customer
  - `current` SmartAdvocateSyncRunProgress: Progress snapshot of one chunked SmartAdvocate sync run
    - `run_id` string, uuid, required: Sync run ID
    - `kind` string, required: 'full' or 'incremental'
    - `status` string, required: running | completed | failed
    - `phase` string, required: Current (or final) sync phase
    - `phase_index` integer, required: 1-based index of the phase among enabled phases
    - `phase_count` integer, required: Number of enabled phases for this run
    - `percent` number, nullable: Intra-phase percent estimate where computable (case_details / phone_enrich); null for open-ended paged phases
    - `counters` object: Per-phase counters
    - `chunks_executed` integer, required: Chunks completed so far
    - `started_at` string, date-time, required: Run start time
    - `heartbeat_at` string, date-time, required: Last chunk heartbeat (updated_at)
    - `finished_at` string, date-time, nullable: Run completion/failure time
    - `errors` string[]: Capped error list
    - `duration_seconds` number, nullable: Elapsed run duration
    - `is_stale` boolean: Running run whose heartbeat is stale — will be auto-resumed by the reaper, or immediately by re-triggering the sync
  - `recent` SmartAdvocateSyncRunProgress[]: Finished runs, newest first
    - `run_id` string, uuid, required: Sync run ID
    - `kind` string, required: 'full' or 'incremental'
    - `status` string, required: running | completed | failed
    - `phase` string, required: Current (or final) sync phase
    - `phase_index` integer, required: 1-based index of the phase among enabled phases
    - `phase_count` integer, required: Number of enabled phases for this run
    - `percent` number, nullable: Intra-phase percent estimate where computable (case_details / phone_enrich); null for open-ended paged phases
    - `counters` object: Per-phase counters
    - `chunks_executed` integer, required: Chunks completed so far
    - `started_at` string, date-time, required: Run start time
    - `heartbeat_at` string, date-time, required: Last chunk heartbeat (updated_at)
    - `finished_at` string, date-time, nullable: Run completion/failure time
    - `errors` string[]: Capped error list
    - `duration_seconds` number, nullable: Elapsed run duration
    - `is_stale` boolean: Running run whose heartbeat is stale — will be auto-resumed by the reaper, or immediately by re-triggering the sync

## Other responses

- `422`: Validation Error

---

[API](https://skmtc.dev/openintake/apis/openintake-api.md) - [All operations](https://skmtc.dev/openintake/apis/openintake-api/llms.txt) - [OpenAPI document](https://skmtc.dev/openintake/apis/openintake-api/revisions/de90a8dcbc07?raw)
