> ## Documentation Index
> Fetch the complete documentation index at: https://openwearables.io/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# List Recent Sync Events

> Return the most recent stored sync events (newest first).

Events are kept in Redis for 24 h. Use this to seed the UI before
opening the SSE stream, or to inspect history without subscribing.



## OpenAPI

````yaml https://api.openwearables.io/openapi.json get /api/v1/users/{user_id}/sync/recent
openapi: 3.1.0
info:
  title: Open Wearables API
  version: 0.1.0
servers: []
security: []
paths:
  /api/v1/users/{user_id}/sync/recent:
    get:
      tags:
        - 'External: Sync Status'
      summary: List Recent Sync Events
      description: |-
        Return the most recent stored sync events (newest first).

        Events are kept in Redis for 24 h. Use this to seed the UI before
        opening the SSE stream, or to inspect history without subscribing.
      operationId: list_recent_sync_events_api_v1_users__user_id__sync_recent_get
      parameters:
        - name: user_id
          in: path
          required: true
          schema:
            type: string
            format: uuid
            title: User Id
        - name: limit
          in: query
          required: false
          schema:
            type: integer
            maximum: 200
            minimum: 1
            default: 50
            title: Limit
        - name: X-Open-Wearables-API-Key
          in: header
          required: false
          schema:
            anyOf:
              - type: string
              - type: 'null'
            title: X-Open-Wearables-Api-Key
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/SyncStatusEvent'
                title: >-
                  Response List Recent Sync Events Api V1 Users  User Id  Sync
                  Recent Get
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
      security:
        - OAuth2PasswordBearer: []
components:
  schemas:
    SyncStatusEvent:
      properties:
        event_id:
          type: string
          format: uuid
          title: Event Id
          description: Unique ID for this event.
        run_id:
          type: string
          title: Run Id
          description: Identifier shared by all events of the same sync run.
        user_id:
          type: string
          format: uuid
          title: User Id
        provider:
          type: string
          title: Provider
          description: Provider slug (e.g. 'garmin', 'apple', 'whoop').
        source:
          $ref: '#/components/schemas/SyncSource'
        stage:
          $ref: '#/components/schemas/SyncStage'
        status:
          $ref: '#/components/schemas/SyncStatus'
        message:
          anyOf:
            - type: string
            - type: 'null'
          title: Message
        progress:
          anyOf:
            - type: number
              maximum: 1
              minimum: 0
            - type: 'null'
          title: Progress
          description: Optional 0..1 progress.
        items_processed:
          anyOf:
            - type: integer
              minimum: 0
            - type: 'null'
          title: Items Processed
        items_total:
          anyOf:
            - type: integer
              minimum: 0
            - type: 'null'
          title: Items Total
        error:
          anyOf:
            - type: string
            - type: 'null'
          title: Error
        primary_user_id:
          anyOf:
            - type: string
              format: uuid
            - type: 'null'
          title: Primary User Id
          description: >-
            For LINKED_ACCOUNT events: the OW user whose sync run produced this
            data.
        metadata:
          additionalProperties: true
          type: object
          title: Metadata
        started_at:
          anyOf:
            - type: string
              format: date-time
            - type: 'null'
          title: Started At
        ended_at:
          anyOf:
            - type: string
              format: date-time
            - type: 'null'
          title: Ended At
        timestamp:
          type: string
          format: date-time
          title: Timestamp
      type: object
      required:
        - run_id
        - user_id
        - provider
        - source
        - stage
        - status
      title: SyncStatusEvent
      description: A single status update for a sync run.
    HTTPValidationError:
      properties:
        detail:
          items:
            $ref: '#/components/schemas/ValidationError'
          type: array
          title: Detail
      type: object
      title: HTTPValidationError
    SyncSource:
      type: string
      enum:
        - pull
        - webhook
        - sdk
        - backfill
        - xml_import
        - linked_account
      title: SyncSource
      description: How the sync was initiated / what transport delivers data.
    SyncStage:
      type: string
      enum:
        - queued
        - started
        - fetching
        - processing
        - saving
        - completed
        - failed
        - cancelled
      title: SyncStage
      description: Coarse-grained stage label for a sync run.
    SyncStatus:
      type: string
      enum:
        - in_progress
        - success
        - partial
        - failed
        - cancelled
        - skipped
      title: SyncStatus
      description: Overall outcome state for the run.
    ValidationError:
      properties:
        loc:
          items:
            anyOf:
              - type: string
              - type: integer
          type: array
          title: Location
        msg:
          type: string
          title: Message
        type:
          type: string
          title: Error Type
        input:
          title: Input
        ctx:
          type: object
          title: Context
      type: object
      required:
        - loc
        - msg
        - type
      title: ValidationError
  securitySchemes:
    OAuth2PasswordBearer:
      type: oauth2
      flows:
        password:
          scopes: {}
          tokenUrl: /api/v1/auth/login

````