top of page

Accessing Office 365 Project Web App Objects using REST API

Updated: Mar 29, 2019

This article describes accessing the objects present on the Office 365 project web app site collection using REST API.

PWA abbreviated as Project Web App, is available on Office 365, and it used for easily and efficiently planning projects, track status, and collaborate with other virtually. It is an application built on top of SharePoint, which has collaborating features. Any PWA site collection will have the project web app settings feature enabled on the site collection. To know more about PWA, refer to the official documentation available on the MSDN site.

Let us see the high level REST API (service end points), which can be used for accessing objects available on Office 365 PWA site collections.

Note: Replace the Office 365 PWA url with your respective URL.

To access the project server and list of available objects,

The REST APIs used for accessing objects available on the project servers are explained below.

Custom Fields:

The enterprise custom fields are created on the project plans for managing additional project attributes. The custom field can be at project or task level. The following API is used to access all the enterprise custom fields.

One specific field can be accessed using the field GUID:'xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx')

The lookup tables associated to the custom fields can be accessed using the following REST API.'xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx')/LookupTable

The lookup table entries associated to the custom fields can be accessed by the following REST API.'xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx')/LookupEntries

Lookup Tables:

These enterprise custom lookup tables are associated with the enterprise custom fields on project web apps. Any field can have lookup tables for easily accessing the data. The lookup tables are accessed using the REST API,

The specific lookup table can be accessed by using its GUID.'xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx')

The lookup table associated to a custom field can be accessed by any of the following APIs.'xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx')'xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx')/LookupTable

The lookup table entries can be accessed by'xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx')/entries

Project Types:

To get the enterprise project types.

The specific project type is accessed with the help of GUID.'xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx')

The project detail pages within the project types are access by,'xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx')/ProjectDetailPages


To get the enterprise resources.

The specific resource is accessed with the help of GUID.'xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx')

Under any specific resource, the objects like assignments, basecalendars, customfields, engagements, userpermissions, etc present. All these objects have relative REST API, which are listed in the above URL.

Entity Types:

To get the project server entity types. There are four entity types, and they are assignment, project, resource and task.

The four entity types are accessed by,

  • Assignment Entity: /_api/ProjectServer/EntityTypes/AssignmentEntity

  • Project Entity: /_api/ProjectServer/EntityTypes/ProjectEntity

  • Resource Entity: /_api/ProjectServer/EntityTypes/ResourceEntity

  • Task Entity: /_api/ProjectServer/EntityTypes/TaskEntity


The projects available on the PWA can be accessed by,

Any project and project information can be accessed with GUID.'xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx')

The other major properties of the project are accessed using REST APIs.

  • /_api/ProjectServer/Projects('xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx')/CheckedOutBy

  • /_api/ProjectServer/Projects('xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx')/CustomFields

  • /_api/ProjectServer/Projects('xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx')/Engagements

  • /_api/ProjectServer/Projects('xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx')/EnterpriseProjectType

  • /_api/ProjectServer/Projects('xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx')/UserPermissions

  • /_api/ProjectServer/Projects('xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx')/Phase

  • /_api/ProjectServer/Projects('xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx')/ProjectSummaryTask

  • /_api/ProjectServer/Projects('xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx')/QueueJobs

  • /_api/ProjectServer/Projects('xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx')/Stage

  • /_api/ProjectServer/Projects('xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx')/Assignments

  • /_api/ProjectServer/Projects('xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx')/Calendar

  • /_api/ProjectServer/Projects('xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx')/Draft

  • /_api/ProjectServer/Projects('xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx')/EntityLinks

  • /_api/ProjectServer/Projects('xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx')/IncludeCustomFields

  • /_api/ProjectServer/Projects('xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx')/TaskLinks

  • /_api/ProjectServer/Projects('xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx')/Tasks

Project Detail Pages: 

These pages are used to create, edit, and view the projects available on PWA. To get the project detail pages:


To get the list of calendars available on the PWA:

The specific calendar can be accessed with the help of its GUID.'xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx')



bottom of page