---
title: "Get user sync statistics"
method: GET
path: "/v1/users/{user_id}/sync-stats"
tags: ["Users"]
---

# Get user sync statistics

`GET /v1/users/{user_id}/sync-stats`

## Request

- Base URL: `http://0.0.0.0:3000`
- URL: `http://0.0.0.0:3000/v1/users/{user_id}/sync-stats`
- Auth: none declared

Returns sync statistics for a user including data counts and date ranges.

**Response fields**:
- `overall_status`: Overall sync status (syncing, complete, partial, error, pending)
- `last_sync_at`: Timestamp of most recent sync across all integrations
- `totals`: Aggregate counts for messages, meetings, and events
- `integrations`: Per-integration breakdown with counts and sync status

**Use cases**:
- Display sync progress to end users
- Show data availability before querying
- Monitor integration health

## Path parameters

- `user_id` string, uuid, required

## Response `200`

Default Response

- object
  - `success` true, required
  - `data` object, required
    - `user_id` string, required
    - `overall_status` 'syncing' | 'complete' | 'partial' | 'error' | 'pending', required
    - `last_sync_at` string, nullable
    - `totals` object
      - `messages` object
        - `count` integer
        - `first_at` string, nullable
        - `last_at` string, nullable
      - `meetings` object
        - `count` integer
        - `first_at` string, nullable
        - `last_at` string, nullable
      - `events` object
        - `count` integer
        - `first_at` string, nullable
        - `last_at` string, nullable
    - `integrations` object[]
      - `id` string
      - `provider` string
      - `category` string
      - `name` string
      - `sync_status` string
      - `last_synced_at` string, nullable
      - `auth_status` string
      - `data` object
        - `messages` object
          - `count` integer
          - `first_at` string, nullable
          - `last_at` string, nullable
        - `meetings` object
          - `count` integer
          - `first_at` string, nullable
          - `last_at` string, nullable
        - `events` object
          - `count` integer
          - `first_at` string, nullable
          - `last_at` string, nullable

## Other responses

- `400`: Default Response
- `403`: Default Response
- `500`: Default Response

---

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