Projects
This entity describes an Autotask Project. A project defines and organizes a group of related tasks, events, and documents. Each Project is specific to one Company and can include phases. Autotask users manage Projects through the Projects module.
NOTE You can refer to the Online Help to find root and child access URLs of the entity you wish to query. Refer to Finding resource and child access URLs of REST API entities for more information.
Entity details
Entity Name: | Projects |
Entity Path: |
/atservicesrest/v1.0/Projects |
Can Create: | |
Can Update: | |
Can Query: | |
Can Delete: | |
Can Have UDFs: |
IMPORTANT Requests to this entity require special handling. Refer to the Entity URLs and relationships section of this article for details.
- If this entity has a Parent relationship, you must perform all Create, Update, and Delete actions on the parent entity.
- If this entity is a child of a parent, you can leverage our Swagger instance to find the URLs you should use in your API calls. For more information, refer to Finding resource and child access URLs of REST API entities.
- To learn how to access Swagger, refer to Using Swagger UI to explore REST API requests.
Parent | None |
Children | ProjectAttachments, ProjectCharges, ProjectNotes, Tasks |
URLs | Projects/query (GET, POST) Projects/{id} (GET) Projects/query/count (GET, POST) Projects (PUT, POST, PATCH) Projects/entityInformation (GET) Projects/entityInformation/fields (GET) Projects/entityInformation/userDefinedFields (GET) |
Fields that cannot be queried
The following fields from this entity will return an error when queried.
- changeOrdersBudget
- extProjectType
Conditions and requirements
General
- If Autotask receives a create, update, or delete request for this entity and its corresponding module is unavailable, the API will return the error message, "The logged in Resource does not have the adequate permissions to update this entity type." For more information about installed modules, refer to our Modules article.
- The Project entity can have no more than 200 UDFs. Refer to UserDefinedFieldDefinitions.
- When a project is completed via the API, the API will complete all tasks associated with the project and update the "Remaining Hours" and "Projected Variance from Remaining Hours" totals at both the Task TimeEntry and Project level.
Special field attributes
Field | Conditions and Requirements |
---|---|
companyID | Project.companyID cannot be updated. |
companyOwnerResourceID | companyOwnerResourceID is Read-Only. |
endDateTime | endDateTime must be greater than or equal to the end date of the latest phase, task, or issue. |
LeadResourceID | Project.LeadResourceID is no longer required via the API. |
startDateTime | If no phases, tasks, or issues are associated with the project, the start date can be updated, but startDateTime cannot be greater than or equal to endDateTime. Project.startDate cannot be updated if any phases, tasks, or issues are associated with the Project. |
startDateTime, endDateTime | To maintain consistency with the Autotask UI, Project.startDateTime and Project.endDateTime do not have a time component and ignore any time component passed in. |
status |
Projects are inactivated by assigning the Inactive status; that is, Project.status = Inactive. |
type |
Projects of Type = Baseline are read-only and cannot be created, updated or deleted via the API. Autotask no longer supports projects of Type = Business Objective, Archived, or Inactive. Existing Projects of these types have been reassigned as follows:
|
Field definitions
The following table describes the standard Autotask fields for this entity. Refer to the following articles for more information about working with these fields:
- The entityInformation REST API call
- Making basic query calls to the REST API
- Advanced query features of the REST API
To learn how to query picklist endpoints, refer to Understanding picklists.
Notes
- For string datatypes, the number in parentheses ( ) indicates the maximum number of characters allowed.
- LT indicates Local Term.
- If this entity has child collections, they will appear in a Child collection access URLs or an Entity URLs and relationships drop-down in the Entity details section of this article.
- You can call the /query/count/ endpoint of a resource to determine how many records a collection holds.
Field Name | Datatype | Read-Only | Is Required | Reference Name | Picklist |
---|---|---|---|---|---|
actualBilledHours | decimal | ||||
actualHours | decimal | ||||
changeOrdersBudget | decimal | ||||
changeOrdersRevenue | decimal | ||||
companyID | integer | Companies | |||
companyOwnerResourceID | integer | Resources | |||
completedDateTime | datetime | ||||
completedPercentage | integer | ||||
contractID | integer | Contracts | |||
createDateTime | datetime | ||||
creatorResourceID | integer | Resources | |||
department | integer | ||||
description | string (2000) | ||||
duration | integer | ||||
endDateTime | datetime | ||||
estimatedSalesCost | decimal | ||||
estimatedTime | decimal | ||||
extProjectNumber | string (50) | ||||
extProjectType | integer | ||||
id | long | ||||
impersonatorCreatorResourceID | integer | Resources |
|
||
laborEstimatedCosts | decimal | ||||
laborEstimatedMarginPercentage | decimal | ||||
laborEstimatedRevenue | decimal | ||||
lastActivityDateTime | datetime | ||||
lastActivityPersonType | integer | ||||
lastActivityResourceID | integer | Resources | |||
opportunityID |
integer |
|
|
|
|
organizationalLevelAssociationID | integer | Projects | |||
originalEstimatedRevenue | decimal | ||||
projectCostEstimatedMarginPercentage | decimal | ||||
projectCostsBudget | decimal | ||||
projectCostsRevenue | decimal | ||||
projectLeadResourceID | integer | Resources | |||
projectName | string (100) | ||||
projectNumber | string (50) | ||||
projectType |
integer |
|
|
|
|
purchaseOrderNumber | string (50) | ||||
sGDA | decimal | ||||
startDateTime | datetime | ||||
status | integer | ||||
statusDateTime | datetime | ||||
statusDetail | string (2000) |