---
title: "Run the schedule health check on a project (a 0-100 score and its issues)"
method: GET
path: "/scheduling/projects/{id}/health-check"
tags: ["scheduling"]
---

# Run the schedule health check on a project (a 0-100 score and its issues)

`GET /scheduling/projects/{id}/health-check`

## Request

- Base URL: `https://api.onplana.com/api`
- URL: `https://api.onplana.com/api/scheduling/projects/{id}/health-check`
- Auth: one of:
  - HTTP bearer
  - API key in header `Authorization`

Read-only, every plan, no AI call. The same computation as the MCP tool schedule_health_check: `{ projectId, projectName, score, severity (info|warning|critical), taskCount, issues, freshness, generatedAt }`, where each issue is `{ severity, category, message, affectedTaskIds }` (ids capped at 50). This route adds, on each issue, `code` (end_overrun, overdue, unassigned, near_done, blocked or stale) and `count` (every task the signal matched), and `datedTaskCount` on the report (tasks with a start or a due date). Needs read access to the project; otherwise 404.

## Path parameters

- `id` string, required

## Headers

- `X-Organization-Id` string, required

## Response `200`

Schedule health report

---

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