---
title: "Get the project as an Onplana Schedule plan (JSON)"
method: GET
path: "/projects/{id}/schedule-model"
tags: ["projects"]
---

# Get the project as an Onplana Schedule plan (JSON)

`GET /projects/{id}/schedule-model`

## Request

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

Returns { project, tasks }. `project` is the plan in Onplana Schedule's ParsedProject shape: tasks in outline order with string uids, outline levels and summaries, start and finish, percent complete, milestones, constraints and dependency links (predecessorLinks). Dates are calendar days (YYYY-MM-DD). A task's estimatedHours is its DURATION in working hours, the one the server's scheduling engine uses (a started task: the working time its dates span), not its effort; the project's calendar rides along as minutesPerDay and calendar. `tasks` maps each plan uid to the Onplana task id it came from. Built from the same rows and conversion as the Project XML export, without the MS Project XML step. Readable by the project owner, its members, and anyone with org-wide project view; a project in another organization, or one the caller cannot read, answers 404. Task costs are left out for a caller who may not read the project's cost. A project of more than 20,000 tasks answers 422 FILE_TOO_COMPLEX.

## Path parameters

- `id` string, required

## Headers

- `X-Organization-Id` string, required

## Response `200`

The plan and the uid-to-task map: { project, tasks: [{ uid, taskId }] }

## Other responses

- `400`: Validation error
- `401`: Unauthorized - missing or invalid JWT
- `403`: Forbidden - insufficient role
- `404`: Project not found, in another organization, or not readable by the caller
- `422`: FILE_TOO_COMPLEX: more than 20,000 tasks

---

[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)
