---
title: "List project repository sync health for an administrator"
method: GET
path: "/projects/{id}/github-sync-health"
tags: ["Projects", "GitHub"]
---

# List project repository sync health for an administrator

`GET /projects/{id}/github-sync-health`

## Request

- Base URL: `https://api.apphandoff.com/api`
- URL: `https://api.apphandoff.com/api/projects/{id}/github-sync-health`
- Auth: HTTP bearer

Returns safe, durable repository observations. An unavailable read fails explicitly; it never reports healthy or an empty list in place of a failed read. The unresolved identity count includes historical sync work whose repository identity is unknown, even if no repository health rows exist. No sync principal, credential, or private provider payload is returned.

## Response `200`

Repository health observations

- object
  - `health` RepositoryHealth[], required
    - `id` string, uuid, required
    - `projectId` string, uuid, required
    - `repository` string, required: GitHub repository in owner/repo format.
    - `state` 'healthy' | 'paused' | 'degraded', required
    - `errorClass` 'none' | 'repository_access_denied' | 'installation_missing' | 'rate_limit' | 'transient' | 'object_not_found' | 'unknown', required
    - `firstObservedAt` string, date-time, required
    - `lastObservedAt` string, date-time, required
    - `repairUrl` string, uri, required: GitHub installation or repository settings page for administrator repair.
    - `blockedSyncCount` integer, required: Complete count of access-blocked sync work for this repository under original identities.
  - `unresolvedIdentityCount` integer, required: Historical sync work without a known repository identity; not included in health.

## Other responses

- `401`: Not authenticated
- `403`: Forbidden
- `404`: Not found
- `503`: GitHub sync health unavailable

---

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