---
title: "Download the project as MS Project XML (MSPDI)"
method: GET
path: "/reports/project/{id}/mspdi"
tags: ["reports"]
---

# Download the project as MS Project XML (MSPDI)

`GET /reports/project/{id}/mspdi`

## Request

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

Returns an MSPDI .xml file that opens natively in Microsoft Project, carrying the WBS hierarchy, task dependencies with type and lag, resources and assignments, percent complete and costs. Each task's Duration is its scheduled duration (the schedule engine's, in days of an 8-hour day), and its effort (estimated hours) is the assignee's Work. Available on every plan, with the same visibility rule as the Excel export: the caller must own the project, be a member of it, or hold org.project.view.all. Task constraints, deadlines and working calendars are NOT carried: the file holds fixed dates, so it opens correct and Microsoft Project applies its own default calendar if the schedule is recalculated there. Refuses a project over 20,000 non-summary tasks with 422 FILE_TOO_COMPLEX.

## Path parameters

- `id` string, required

## Query parameters

- `token` string, required

## Headers

- `X-Organization-Id` string, required

## Response `200`

MSPDI XML file

## Other responses

- `404`: Project not found, or not visible to the caller
- `422`: Too many tasks to convert in one request
- `503`: The conversion service is temporarily unavailable, retry

---

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