Returns the PSA project with the given identifier.
GET /psa/projects/{id}
Group: PSA › Projects · Operation ID: getPsaProject
Returns one PSA project with its budget, status, team, sales-arrangement links, and revenue to date. The item schema is identical to GET psa/projects.
Open in the interactive reference
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
Api-Version |
header | "v1" |
yes | The API version this request targets, named by its public identifier. Required on every request; omitting it, or naming a version this company does not have, is answered with 400. This document describes version v1. |
id |
path | string | yes | The unique identifier for the project to return. |
Response
200 Success
Under data (getPsaProjectOutput):
| Field | Type | Required | Description |
|---|---|---|---|
id |
string | yes | The unique identifier for the project. |
lastModifiedDate |
string (date-time) | yes | The date and time the project last changed, in UTC. Format YYYY-MM-DDTHH:mm:ss.sssZ. |
name |
string | yes | The display name of the project. |
code |
string | no | The project code, for example 'PSA-29767'. Absent when none has been set. |
category |
string | yes | The project category. Possible values: 'Billable', 'Internal', 'NonBillable'. |
status |
string | yes | The project status. Possible values: 'Tentative', 'Planning', 'PlanningDraft', 'NotStarted', 'InProgress', 'Paused', 'Completed', 'Cancelled'. |
currency |
string | yes | The project's default currency. Format ISO 4217, for example 'USD'. It applies to revenueRecordedTimeToDate, revenueAccomplishedMilestones, revenueFixedFeeToDate, revenueToDate, and budgetRemaining. |
invoiced |
boolean | yes | Whether the project is marked as invoiced. |
startDate |
string (date) | yes | The project start date. Format YYYY-MM-DD. |
endDate |
string (date) | yes | The project end date. Format YYYY-MM-DD. |
notes |
string | no | Free-form notes about the project. |
enforceActivityDateRange |
boolean | no | Whether time entries must fall within the project's startDate and endDate. |
budgetAmount |
string (decimal) | no | The project budget amount, in budgetCurrency. |
budgetCurrency |
string | no | The currency of budgetAmount. Format ISO 4217, for example 'USD'. |
departmentId |
number | no | The numeric identifier of the department the project is allocated to. GET departments/:id takes a UUID, so the number cannot be used to fetch the department. |
teamId |
number | yes | The numeric identifier of the team assigned to this project. GET people/teams/:id takes a UUID, so the number cannot be used to fetch the team. |
teamName |
string | no | The display name of the team. |
teamStartDate |
string (date) | no | The team's start date, which may differ from startDate. Format YYYY-MM-DD. |
teamEndDate |
string (date) | no | The team's end date, which may differ from endDate. Format YYYY-MM-DD. |
salesRepresentativeId |
number | no | The numeric identifier of the sales representative, an employee. There is no endpoint for it. |
salesRepresentativeName |
string | no | The display name of the sales representative. |
projectTypeId |
number | no | The numeric identifier of the project type. GET psa/project-types/:id takes a UUID, so the number cannot be used to fetch the project type. |
projectTypeName |
string | no | The display name of the project type. |
quoteId |
number | no | The numeric identifier of the CRM quote this project was created from. GET crm/quotes/:id takes a UUID, so the number cannot be used to fetch the quote. |
quoteNumber |
string | no | The quote number. |
opportunityId |
number | no | The numeric identifier of the CRM opportunity this project is linked to. GET crm/opportunities/:id takes a UUID, so the number cannot be used to fetch the opportunity. |
opportunityName |
string | no | The display name of the opportunity. |
opportunityCurrency |
string | no | The currency of the opportunity. Format ISO 4217, for example 'USD'. |
salesArrangementId |
number | no | The numeric identifier of the sales arrangement that links the project to billing terms. There is no endpoint for it. |
salesArrangementCurrency |
string | no | The functional currency of the sales arrangement. Format ISO 4217, for example 'USD'. |
salesArrangementCustomerId |
number | no | The numeric identifier of the customer on the sales arrangement. GET accounting/customers/:id takes a UUID, so the number cannot be used to fetch the customer. |
salesArrangementCustomerName |
string | no | The display name of the customer on the sales arrangement. |
salesArrangementEntityId |
number | no | The numeric identifier of the legal entity on the sales arrangement. There is no endpoint for it. |
salesArrangementEntityName |
string | no | The display name of the legal entity on the sales arrangement. |
revenueRecordedTimeToDate |
string (decimal) | no | The revenue from recorded time up to today, in the project currency. Absent when the project has no time entries. |
revenueAccomplishedMilestones |
string (decimal) | no | The revenue from accomplished and invoiced milestones, in the project currency. Absent when the project has no completed milestones. |
revenueFixedFeeToDate |
string (decimal) | no | The fixed-fee revenue to date, in the project currency. Absent when the project has no fixed fees. |
revenueToDate |
string (decimal) | no | The total revenue to date, in the project currency: revenueRecordedTimeToDate + revenueAccomplishedMilestones + revenueFixedFeeToDate. |
budgetRemaining |
string (decimal) | no | The budget remaining, in the project currency: budgetAmount - revenueToDate. |
Errors
| Code | Status |
|---|---|
NOT_FOUND |
400 |
Statuses
400— Invalid request or business failure. Codes: NOT_FOUND401— Missing or invalid access token403— Not authorized404— Not found429— Too many requests500— Internal server error