Derzeit ist die API-Einführung nur in englischer Sprache verfügbar.
The REST API has been deprecated and is no longer under active development! The preferred way of integrating ONEPOINT with external systems is our new GraphQL API.
ONEPOINT REST XML/JSON API
The following short tutorial gives an overview on general setup, authentication and common pitfalls that might occur when working with this API.
Introduction
The ONEPOINT API is a REST based API that lets you access data stored in a ONEPOINT Project repository via web service calls. Depending on the chosen endpoint, the API consumes and produces either XML or JSON, and can be accessed via both HTTP and HTTPS protocols.
This introduction uses curl
. If you want to follow along, make sure you have it installed and available on your commandline.
The only difference - apart from the data format - between the XML and JSON variants of the API is the base url you use to access it. For all demonstration purposes,
let's assume your ONEPOINT Projects instance is running on a local server on port 8080 over HTTP, the WAR package is called onepoint.war
and your ONEPOINT Projects instance is therefore accessible via http://localhost:8080/onepoint
. The two API endpoints are then:
http://localhost:8080/onepoint/api/rest/v2/
Cloud example:
https://europe.onepoint-projects.com/api/rest/v2/
http://localhost:8080/onepoint/api/json/v2/
Cloud example
https://europe.onepoint-projects.com/api/json/v2/
Authentication
Authentication is possible in several ways. The preferred way is using an API-token that can be created for each user that you wish to authenticate as inside the ONEPOINT Projects administration area.
Creating an access token
To create an API-token, head over to the Administration area (wrench icon in the top right corner) inside your ONEPOINT Projects installation, select Users on the left hand side, and open the properties of the user you wish to authenticate as, either by double-clicking the user in the list or selecting the user and clicking the Properties button in the menu bar. In the user properties dialog, head over to the Tokens tab and click on New Token to open the dialog for creating an API-token. In that dialog, select API as the external app, and optionally assign a name to the token.
Make sure to close the user properties dialog before trying out your token, to ensure that it gets saved to the database!
Using an access token
Once a token has been created, copy its value from the Tokens tab in the user properties dialog. You can now use this token as means of authorization by sending it along with every request that you dispatch. One way of doing this is using the HTTP header field Authorization
with a value of Bearer <your-token-here>
, as the following example shows.
GET request to retrieve the current user
curl -X GET --header 'Accept: application/xml' --header 'Authorization: Bearer <your-token-here>' 'http://localhost:8080/onepoint/api/rest/v2/users/currentUser'
Sample Response
<user id="465993818">
<name>Administrator</name>
...
</user>
GET request to retrieve the current user
curl -X GET --header 'Accept: application/json' --header 'Authorization: Bearer <your-token-here>' 'http://localhost:8080/onepoint/api/json/v2/users/currentUser'
Sample Response
{
"id": "465993818",
"name": "Administrator",
...
}
Session-based authentication
Alternatively. the API is can also be used in a session-oriented environment. If you choose this approach, in every session the first request that gets dispatched should be a login call, containing the username and password of the account you wish to identify with. If the authentication is successful, the user object is returned.
Sample login GET request
http://localhost:8080/onepoint/api/json/v2/users/signOn?login=Administrator&password=secret
Sample response
<user id="725204">
<name>Administrator</name>
...
</user>
Unknown credentials
<error code="user.error.UserOrPasswordUnknown">
<arguments/>
<message>The user name is unknown or the password you entered is not correct</message>
</error>
Sample login GET request
http://localhost:8080/onepoint/api/json/v2/users/signOn?login=Administrator&password=secret
Sample response
{
"id": "725204",
"name": "Administrator",
...
}
Unknown credentials
{
"error": {
"arguments": {},
"code": "user.error.UserOrPasswordUnknown",
"message": "The user name is unknown or the password you entered is not correct"
}
}
When using the session-based approach and you are done with your session, you should issue a logout call, to avoid running into any issues the next time you sign on.
Working with the API
Once you have obtained your API-Token (or have authenticated successfully for the session-based approach), almost any business objects can be fetched, modified and deleted. Depending on the type of operation, the correct HTTP method must be used.
GET
for fetching objectsPOST
for creating new objectsPUT
for modifying existing objectsDELETE
for deleting existing objects
Generally, every object that you will ever deal with while using the API is identified by its id
. Currently the following functionality is available through the API:
- Project Planning (
/planning/...
) - Product Administration (
/products/...
) - Project and Portfolio Administration (
/projects/...
) - Updating Progress Data (
/progress/...
) - Report Creation (
/reports/...
) - Resource and Unavailability Administration (
/resources/...
) - Activity Administration (
/tasks/...
) - To-Do Administration (
/todos/...
) - User Administration (no deletion) (
/users/...
) - Time And Cost Tracking (
/worklogs/...
)
The reference of available methods indicates which HTTP method is required for each call. Additionally, a reference list of types that are used throughout the API is available at the bottom of this page. To help starting out with the API, a curl
sample request is provided for each method. For reasons of brevity, authentication is omitted in these samples.
Fetching Data
To retrieve any existing business objects from your ONEPOINT Projects instance, issue a GET
request towards the desired endpoint. In this example, we retrieve a project by its id. If no objects are found for the given parameters, a status code of 204
(no content) is returned alongside an empty response body.
GET request to retrieve a project by its id
curl -X GET --header 'Accept: application/xml' 'http://localhost:8080/onepoint/api/rest/v2/projects/getProjectById/1310733'
Sample Response
<project id="1310733">
<name>PM Solution Rollout</name>
<description>Deployment through a PMO team for single and multi-project management</description>
<start>2019-02-18Z</start>
...
<methodology>0</methodology>
</project>
GET request to retrieve a project by its id
curl -X GET --header 'Accept: application/json' 'http://localhost:8080/onepoint/api/json/v2/projects/getProjectById/1310733'
Sample Response
{
"id": "1310733",
"name": "PM Solution Rollout",
"description": "Deployment through a PMO team for single and multi-project management",
"start": "2019-02-18Z",
...
"methodology": 0
}
Creating Business Objects
To create new objects in your ONEPOINT repository, you will usually issue a POST
request towards the endpoint. If successful, the method usually returns the newly created object or objects, or an empty body in some cases. Have a look at the reference afer this short tutorial for a comprehensive overview of all method response return types.
POST request to create a new project inside the provided portfolio
curl -X GET --header 'Content-Type: application/xml' --header 'Accept: application/xml' -d '
<project>
<name>API-Demo</name>
<number>42</number>
...
</project>
' 'http://localhost:8080/onepoint/api/rest/v2/projects/createProject/1310720'
POST request to create a new project inside the provided portfolio
curl -X GET --header 'Content-Type: application/json' --header 'Accept: application/json' -d '
{
"name": "API-Demo",
"number": "42",
...
}
' 'http://localhost:8080/onepoint/api/json/v2/projects/createProject/1310720'
Modifying Business Objects
Existing business objects are modified with PUT
requests. In this case, we archive a project by setting its archived
flag to true. Make sure to pass along the id
of the project in the request body, along with any attributes you wish to modify.
PUT request to archive an existing project
curl -X PUT --header 'Content-Type: application/xml' --header 'Accept: application/xml' -d '
<project id="2946353">
<archived>true</archived>
</project>
' 'http://localhost:8080/onepoint/api/rest/v2/projects/updateProject'
Sample Response
<project id="2946353">
<name>API-Demo</name>
...
<archived>true</archived>
...
</project>
PUT request to archive an existing project
curl -X PUT --header 'Content-Type: application/json' --header 'Accept: application/json' -d '
{
"id": 2916353,
"archived": true
}
' 'http://localhost:8080/onepoint/api/json/v2/projects/updateProject'
Sample Response
{
"id": 2916353,
...
"archived": true,
...
}
Deleting Business Objects
In case you want to delete objects from your ONEPOINT repository, contact the corresponding endpoint with a HTTP DELETE
method call. Make sure that your identifying parameters are correct, as unlike the web application, the API will not ask for confirmation before deleting. For this reason, only a limited set of objects can be deleted with the API. An empty response body indicates successful deletion. For demonstration purposes, we delete a to-do.
DELETE Request to delete the given to-do
curl -X DELETE --header 'Accept: application/xml' 'http://localhost:8080/onepoint/api/rest/v2/todos/deleteTodo/1414560'
DELETE Request to delete the given to-do
curl -X DELETE --header 'Accept: application/json' 'http://localhost:8080/onepoint/api/json/v2/todos/deleteTodo/1414560'
Error handling
In case of an error, the API will return an error message, along with a HTTP return code of 500
, indicating that something went wrong on the server side. The most common problem will be a malformed request, as illustrated in the example below, where unexpected characters were used in an id
.
Malformed GET request for a project
curl -X GET --header 'Accept: application/xml' 'http://localhost:8080/onepoint/api/rest/v2/projects/getProjectById/abc'
Error response
<error code="main.error.InvalidParameter">
<arguments>
<parameterName>projectId</parameterName>
<value>abc</value>
</arguments>
<message>Value: 'abc' of parameter projectId is invalid</message>
</error>
Malformed GET request for a project
curl -X GET --header 'Accept: application/json' 'http://localhost:8080/onepoint/api/json/v2/projects/getProjectById/abc'
Error response
{
"error": {
"arguments": {
"parameterName": "projectId",
"value": "abc"
},
"code": "main.error.InvalidParameter",
"message": "Value: 'abc' of parameter projectId is invalid"
}
}
Service Overview
- Tasks
/tasks/createActivityComment/{activityId}
/tasks/createAdHocActivity/{projectId}
/tasks/deleteActivityComment/{commentId}
/tasks/deleteAdHocActivity/{activityId}
/tasks/getActivityCategoriesByIds
/tasks/getAssignmentsByIds
/tasks/getParentTask/{activityId}
/tasks/getTaskById/{id}
/tasks/getTasksByIds
/tasks/listActivityCategories
/tasks/listChildTasks/{parentId}
/tasks/listCustomValueInfo
/tasks/listModifiedTasks
/tasks/listMyModifiedTasks
/tasks/listMyTasks
/tasks/listTasksOfProject/{projectId}
/tasks/updateActionStatus/{actionId}
/tasks/updateActivityComment
/tasks/updateAdHocActivity
- Planning
- Projects
/projects/addProjectAssignment/{projectId}
/projects/createPortfolio/{superPortfolioId}
/projects/createProject/{portfolioId}
/projects/getPlanById/{projectPlanId}
/projects/getPlanForProject/{projectId}
/projects/getPlanForProjectName
/projects/getPlanForProjectNumber
/projects/getPlansByIds
/projects/getPortfolioById/{portfolioId}
/projects/getPortfolioByName
/projects/getProjectById/{projectId}
/projects/getProjectByName
/projects/getProjectByNumber
/projects/getProjectClassificationById/{projectClassificationId}
/projects/getProjectForPlan/{projectPlanId}
/projects/getProjectStatusById/{projectStatusId}
/projects/getProjectsByIds
/projects/getRootPortfolio
/projects/importProjects
/projects/listMyProjectPlans
/projects/listMyProjects
/projects/listPortfolioCustomTypes
/projects/listProjectClassifications
/projects/listProjectCustomTypes
/projects/listProjectStatuses
/projects/listStreamsForProjects
/projects/updatePortfolio
/projects/updateProject
- Progress
- Resources
/resources/createResource/{poolOrCollectionResourceId}
/resources/deleteUnavailability/{unavailabilityId}
/resources/deleteUnavailabilityType/{unavailabilityTypeId}
/resources/getResourceById/{resourceId}
/resources/getResourcesByIds
/resources/getRootResourcePool
/resources/getUnavailabilityById/{unavailabilityId}
/resources/getUnavailabilityTypeById/{unavailabilityTypeId}
/resources/importUnavailabilities
/resources/insertUnavailability
/resources/insertUnavailabilityType
/resources/listAssignablePools
/resources/listLinkedResources/{userId}
/resources/listMyLinkedResources
/resources/listMyUnavailabilities
/resources/listPoolCustomTypes
/resources/listResourceCustomTypes
/resources/listUnavailabilities/{resourceId}
/resources/listUnavailabilityTypes
/resources/updateResource
/resources/updateUnavailability
/resources/updateUnavailabilityType
- Products
- Reports
- Worklogs
/worklogs/createWorkRecord/{assignmentId}
/worklogs/deleteWorkRecord/{resourceWorkRecordId}
/worklogs/importCostRecords
/worklogs/importTimeRecords
/worklogs/listMyWorkRecords
/worklogs/listWorkRecordsOfProject/{projectId}
/worklogs/lockWorkRecords
/worklogs/lockWorkRecords/{projectId}
/worklogs/quickTrack/{assignmentId}
/worklogs/unlockWorkRecords
/worklogs/unlockWorkRecords/{projectId}
/worklogs/updateWorkRecord/{resourceWorkRecordId}
- Todos
- Users
Planning
-
put /planning/checkIn/{projectId}Checks in the given project plan version
Request
ParametersName Type Description In projectId string the op id of the project node to check in path recalculateWBS boolean whether or not to recalculate WBS codes query name string the version name to be used for check in query comment string the version comment to be used for check in query Response
Type No response bodyAccepted encodings- application/xml
- application/json
Encodings- application/xml
- application/json
-
put /planning/edit/{projectId}Checks out the given project
Request
ParametersName Type Description In projectId string the op id of the project node to check out path Response
Type VersionInfoAccepted encodings- application/xml
- application/json
Encodings- application/xml
- application/json
-
put /planning/importProjectPlan/{projectId}Imports a project plan from a given an MS Project file (.mpx, .xml or .mpp) or a given Excel file (.xls)
Request
ParametersName Type Description In projectId string the op id of the project node to import the project plan path format string the format to import the project query appendToPlan boolean true appends the imported activities to the project, false replaces the already presen planned activities with the imported ones query mergeMode string merge-mode, if set, 'appendToPlan' will be ignored, should not be set for future compatibility query body InputStream body Response
Type stringAccepted encodings- */*
Encodings- application/json
- application/xml
-
get /planning/listAssignmentVersions/{activityVersionId}List assignment versions for activty version: activityVersionId
Request
ParametersName Type Description In activityVersionId string path Response
Accepted encodings- application/xml
- application/json
Encodings- application/xml
- application/json
Products
-
get /products/getActivityForJiraId/{jiraIssueId}Retrieve the activity linked to the specified Jira issue
Request
The parameter 'jiraInstance' is case sensitive! If 'jiraInstance' is not specified, then all linked (even disabled) Jira instances are searched. Jira instances are searched in alphabetical order (the same order as in the 'System'/'ADMINISTRATE'/'External Apps' 'Instance' dropdown), enabled instances before disabled ones, and the first matching activity is returned.
ParametersName Type Description In jiraIssueId string path jiraInstance string the Jira instance to search (same name as in the 'System'/'ADMINISTRATE'/'External Apps' 'Instance' dropdown), generally not needed query Response
Type OpActivityAccepted encodings- application/xml
- application/json
Encodings- application/xml
- application/json
-
get /products/getProductById/{productId}Retrieve product: productId
Request
ParametersName Type Description In productId string path Response
Type OpProductAccepted encodings- application/xml
- application/json
Encodings- application/xml
- application/json
-
get /products/getReleaseById/{releaseId}Retrieve release: releaseId
Request
ParametersName Type Description In releaseId string path Response
Type OpReleaseAccepted encodings- application/xml
- application/json
Encodings- application/xml
- application/json
-
get /products/getRequirementById/{requirementId}Retrieve requirement: requirementId
Request
ParametersName Type Description In requirementId string path Response
Type OpRequirementAccepted encodings- application/xml
- application/json
Encodings- application/xml
- application/json
Progress
-
put /progress/updateActivityProgress/{activityId}Update progress data (start, finish date) for activity: activityId
Request
ParametersName Type Description In activityId string the activity id path start string start date(e.g. 2019-12-31) query finish string finish date(e.g. 2019-12-31) query Response
Type No response bodyAccepted encodings- application/xml
- application/json
Encodings- application/xml
- application/json
Projects
-
post /projects/addProjectAssignment/{projectId}Add a project assignment to project: projectId for resource: resourceId
Request
ParametersName Type Description In projectId string path resourceId string the id of the resource to add query isManager boolean if the resource is the manager for this project (replaces previous manager) query Response
Type No response bodyAccepted encodings- application/xml
- application/json
Encodings- application/xml
- application/json
-
post /projects/createPortfolio/{superPortfolioId}Create a new portfolio with parent: superPortfolioId
Request
customValues: The "type" attribute of a custom value element is optional, however, if it is present it will be checked. Mandatory and unique custom attributes will be checked even if no customValues are specified.
Visibility checks for custom attributes are NOT performed, so even invisible (visible only for admin), possibly required, custom attributes can be set when creating this portfolioParametersName Type Description In body OpProjectNode the portfolio to create body superPortfolioId string path Response
Type OpProjectNodeAccepted encodings- application/xml
- application/json
Encodings- application/xml
- application/json
-
post /projects/createProject/{portfolioId}Create a new project with parent: superPortfolioId
Request
customValues: The "type" attribute of a custom value element is optional, however, if it is present it will be checked. Mandatory and unique custom attributes will be checked even if no customValues are specified.
Visibility checks for custom attributes are NOT performed, so even invisible (visible only for admin), possibly required, custom attributes can be set when creating this projectParametersName Type Description In body OpProjectNode the project to create body portfolioId string path Response
Type OpProjectNodeAccepted encodings- application/xml
- application/json
Encodings- application/xml
- application/json
-
get /projects/getPlanById/{projectPlanId}Get the project plan with id: projectPlanId
Request
ParametersName Type Description In projectPlanId string path Response
Type OpProjectPlanAccepted encodings- application/xml
- application/json
Encodings- application/xml
- application/json
-
get /projects/getPlanForProject/{projectId}Get the project plan for project: projectId
Request
ParametersName Type Description In projectId string path Response
Type OpProjectPlanAccepted encodings- application/xml
- application/json
Encodings- application/xml
- application/json
-
get /projects/getPlanForProjectNameGet the project plan for project named: projectName
Request
ParametersName Type Description In projectName string the project name query Response
Type OpProjectPlanAccepted encodings- application/xml
- application/json
Encodings- application/xml
- application/json
-
get /projects/getPlanForProjectNumberGet the project plan for project with number: projectNumber
Request
ParametersName Type Description In projectNumber string the project number query Response
Type OpProjectPlanAccepted encodings- application/xml
- application/json
Encodings- application/xml
- application/json
-
get /projects/getPlansByIdsGet the project plans with ids: projectPlanIds
Request
ParametersName Type Description In projectPlanIds string[] the project plan ids query Response
Type OpProjectPlanListAccepted encodings- application/xml
- application/json
Encodings- application/xml
- application/json
-
get /projects/getPortfolioById/{portfolioId}Get the portfolio with id: portfolioId
Request
ParametersName Type Description In portfolioId string path Response
Type OpProjectNodeAccepted encodings- application/xml
- application/json
Encodings- application/xml
- application/json
-
get /projects/getPortfolioByNameGet the portfolio named: portfolioName
Request
ParametersName Type Description In portfolioName string the portfolio name query Response
Type OpProjectNodeAccepted encodings- application/xml
- application/json
Encodings- application/xml
- application/json
-
get /projects/getProjectById/{projectId}Get the project with id: projectId
Request
ParametersName Type Description In projectId string path Response
Type OpProjectNodeAccepted encodings- application/xml
- application/json
Encodings- application/xml
- application/json
-
get /projects/getProjectByNameGet the project named: projectName
Request
ParametersName Type Description In projectName string the project name query Response
Type OpProjectNodeAccepted encodings- application/xml
- application/json
Encodings- application/xml
- application/json
-
get /projects/getProjectByNumberGet the project named: projectNumber
Request
ParametersName Type Description In projectNumber string the project number query Response
Type OpProjectNodeAccepted encodings- application/xml
- application/json
Encodings- application/xml
- application/json
-
get /projects/getProjectClassificationById/{projectClassificationId}Get the project classification object with id: projectClassificationId
Request
ParametersName Type Description In projectClassificationId string path Response
Accepted encodings- application/xml
- application/json
Encodings- application/xml
- application/json
-
get /projects/getProjectForPlan/{projectPlanId}Get the project for project plan: projectPlanId
Request
ParametersName Type Description In projectPlanId string path Response
Type OpProjectNodeAccepted encodings- application/xml
- application/json
Encodings- application/xml
- application/json
-
get /projects/getProjectStatusById/{projectStatusId}Get the project status object with status id: projectStatusId
Request
ParametersName Type Description In projectStatusId string path Response
Type OpProjectStatusAccepted encodings- application/xml
- application/json
Encodings- application/xml
- application/json
-
get /projects/getProjectsByIdsGet the projects and portfolios with ids: projectIds
Request
ParametersName Type Description In projectIds string[] the project and portfolio ids query Response
Type OpProjectNodeListAccepted encodings- application/xml
- application/json
Encodings- application/xml
- application/json
-
get /projects/getRootPortfolioGet the root portfolio
Request
Response
Type OpProjectNodeAccepted encodings- application/xml
- application/json
Encodings- application/xml
- application/json
-
post /projects/importProjectsImport multiple projects from a given Excel file (.xls)
Request
The template for the import file can be created via the UI: Navigate to the "PROJECTS" tab, select a portfolio and navigate to its "Properties" tab. If you press the "ALT" key then the "Import Projects" button will change to "Download 'Import Projects' Template". If you click this button (while the "ALT" key is pressed) then the template gets downloaded. Tests will work best with 'curl' where the projects file should be specified as: --data-binary "@ProjectsFile.xls"
ParametersName Type Description In body InputStream body Response
Accepted encodings- */*
Encodings- application/json
- application/xml
-
get /projects/listMyProjectPlansList my project plans
Request
ParametersName Type Description In minLevel integer the minimum permission level I have on the project belonging to this plan query includeArchived boolean also include plans of archived projects query Response
Type OpProjectPlanListAccepted encodings- application/xml
- application/json
Encodings- application/xml
- application/json
-
get /projects/listMyProjectsList my projects
Request
ParametersName Type Description In minLevel integer the minimum permission level I have on the projects query includeArchived boolean also include archived projects query Response
Type OpProjectNodeListAccepted encodings- application/xml
- application/json
Encodings- application/xml
- application/json
-
get /projects/listPortfolioCustomTypesList info about custom types and values for portfolios
Request
Response
Type CustomTypeInfoListAccepted encodings- application/xml
- application/json
Encodings- application/xml
- application/json
-
get /projects/listProjectClassificationsList all possible project classifications
Request
Response
Accepted encodings- application/xml
- application/json
Encodings- application/xml
- application/json
-
get /projects/listProjectCustomTypesList info about custom types and values for projects
Request
Response
Type CustomTypeInfoListAccepted encodings- application/xml
- application/json
Encodings- application/xml
- application/json
-
get /projects/listProjectStatusesList all possible project statuses
Request
Response
Type OpProjectStatusListAccepted encodings- application/xml
- application/json
Encodings- application/xml
- application/json
-
get /projects/listStreamsForProjectsList the streams for the specified projects
Request
Returns #numberRecords stream entries starting at #offset for the specified projectIds. The entries are ordered by creation date (descending). Projects where you do not, at least, have observer permissions are filtered out. You will get less than "numberRecords" entries if there are no more stream records available
ParametersName Type Description In projectIds string[] the project ids query offset integer first element query numberRecords integer the desired number of elements query Response
Type OpEventLogEntryListAccepted encodings- application/xml
- application/json
Encodings- application/xml
- application/json
-
put /projects/updatePortfolioUpdate an existing portfolio
Request
Values not specified or set to null will be ignored and not updated. Exception: "customType" which will be removed if explicitly set to null (e.g. {"id":"1", "customType":null} ). Not specifying "customType" will neither updated nor remove it.
customValues: Setting "customValues" to null or an empty array or not specifying a custom value will not remove the value(s). The "type" attribute of a custom value element is optional, however, if it is present it will be checked. Mandatory and unique custom attributes will be checked even if no customValues are specified. Invisible or unknown custom attribute names will throw an error.
To reset the name or description of the root portfolio set it to an empty string ("").
ParametersName Type Description In body OpProjectNode the portfolio to update body Response
Type OpProjectNodeAccepted encodings- application/xml
- application/json
Encodings- application/xml
- application/json
-
put /projects/updateProjectUpdate an existing project
Request
Values not specified or set to null will be ignored and not updated. Exception: "projectStatus", "projectClassification", "customType", "sponsor", "projectManager" and "issueCoordinator" which will be removed if explicitly set to null (e.g. {"id":"1", "projectClassification":null} ). Not specifying these values will neither updated nor remove them.
customValues: Setting "customValues" to null or an empty array or not specifying a custom value will not remove the value(s). The "type" attribute of a custom value element is optional, however, if it is present it will be checked. Mandatory and unique custom attributes will be checked even if no customValues are specified. Invisible or unknown custom attribute names will throw an error.
ParametersName Type Description In body OpProjectNode the project to update body Response
Type OpProjectNodeAccepted encodings- application/xml
- application/json
Encodings- application/xml
- application/json
Reports
-
post /reports/export/{reportIdOrName}Run the report: reportIdOrName and export it in the desired format
Request
ParametersName Type Description In reportIdOrName string the op id or name of the report to export path body object the input parameters for the report to export. Syntax: {key1:value1, key2:value2}, use the API call "inputParameters" to get the list of required parameters for this report body format string the format to export the report query Response
Type StreamingOutputAccepted encodingsEncodings- application/octet-stream
-
get /reports/inputParameters/{reportIdOrName}Return the input parameters for report: reportIdOrName
Request
ParametersName Type Description In reportIdOrName string the op id or name of the report to get the input parameters path Response
Type objectAccepted encodingsEncodings- application/json
- application/xml
Resources
-
post /resources/createResource/{poolOrCollectionResourceId}Create a new resource with parent: poolOrCollectionResourceId
Request
customValues: The "type" attribute of a custom value element is optional, however, if it is present it will be checked. Mandatory and unique custom attributes will be checked even if no customValues are specified.
Visibility checks for custom attributes are NOT performed, so even invisible (visible only for admin), possibly required, custom attributes can be set when creating this resourceParametersName Type Description In body OpResourceForApiUnmarshall the resource to create body poolOrCollectionResourceId string path Response
Type OpResourceAccepted encodings- application/xml
- application/json
Encodings- application/xml
- application/json
-
get /resources/getResourceById/{resourceId}Get the resource: resourceId
Request
ParametersName Type Description In resourceId string the resource id path Response
Type OpResourceAccepted encodings- application/xml
- application/json
Encodings- application/xml
- application/json
-
get /resources/getResourcesByIdsGet the resources with ids: resourceIds
Request
ParametersName Type Description In resourceIds string[] the resource ids query Response
Type OpResourceListAccepted encodings- application/xml
- application/json
Encodings- application/xml
- application/json
-
get /resources/getRootResourcePoolGet the root resource pool
Request
Response
Type OpResourceAccepted encodings- application/xml
- application/json
Encodings- application/xml
- application/json
-
get /resources/listAssignablePoolsGet all parent resource pools for resources: resourceIds
Request
ParametersName Type Description In resourceIds string[] the resource ids query Response
Accepted encodings- application/xml
- application/json
Encodings- application/xml
- application/json
-
get /resources/listLinkedResources/{userId}List resources linked to the user: userId
Request
ParametersName Type Description In userId string path Response
Type OpResourceListAccepted encodings- application/xml
- application/json
Encodings- application/xml
- application/json
-
get /resources/listMyLinkedResourcesList resources linked to the current user
Request
Response
Type OpResourceListAccepted encodings- application/xml
- application/json
Encodings- application/xml
- application/json
-
get /resources/listPoolCustomTypesList info about custom types and values for resource pools
Request
Response
Type CustomTypeInfoListAccepted encodings- application/xml
- application/json
Encodings- application/xml
- application/json
-
get /resources/listResourceCustomTypesList info about custom types and values for resources
Request
Response
Type CustomTypeInfoListAccepted encodings- application/xml
- application/json
Encodings- application/xml
- application/json
-
put /resources/updateResourceUpdate an existing resource
Request
Values not specified or set to null will be ignored and not updated. Exception: "user" and "customType" which will be removed if explicitly set to null (e.g. {"id":"1", "customType":null} ). Not specifying these values will neither updated nor remove them.
customValues: Setting "customValues" to null or an empty array or not specifying a custom value will not remove the value(s). The "type" attribute of a custom value element is optional, however, if it is present it will be checked. Mandatory and unique custom attributes will be checked even if no customValues are specified. Invisible or unknown custom attribute names will throw an error.
ParametersName Type Description In body OpResourceForApiUnmarshall the resource to update body Response
Type OpResourceAccepted encodings- application/xml
- application/json
Encodings- application/xml
- application/json
Tasks
-
post /tasks/createActivityComment/{activityId}Create a new activity comment for activity: activityId
Request
ParametersName Type Description In activityId string path body OpActivityComment the comment to create body Response
Type OpActivityCommentAccepted encodings- application/xml
- application/json
Encodings- application/xml
- application/json
-
post /tasks/createAdHocActivity/{projectId}Create a new adhoc activity for project: projectId
Request
ParametersName Type Description In projectId string path body OpActivityForApiUnmarshall the adhoc to create body Response
Type OpActivityAccepted encodings- application/xml
- application/json
Encodings- application/xml
- application/json
-
delete /tasks/deleteActivityComment/{commentId}Delete the activity comment: commentId
Request
ParametersName Type Description In commentId string path Response
Type No response bodyAccepted encodings- application/xml
- application/json
Encodings- application/xml
- application/json
-
delete /tasks/deleteAdHocActivity/{activityId}Delete the adhoc activity: activityId
Request
ParametersName Type Description In activityId string query Response
Type No response bodyAccepted encodings- application/xml
- application/json
Encodings- application/xml
- application/json
-
get /tasks/getActivityCategoriesByIdsGet activity categories with ids: activityCategoryIds
Request
(inactive categories are deleted but still referenced)
ParametersName Type Description In activityCategoryIds string[] query Response
Accepted encodings- application/xml
- application/json
Encodings- application/xml
- application/json
-
get /tasks/getAssignmentsByIdsGet the assignments with ids: assignmentIds
Request
ParametersName Type Description In assignmentIds string[] query Response
Type OpAssignmentListAccepted encodings- application/xml
- application/json
Encodings- application/xml
- application/json
-
get /tasks/getParentTask/{activityId}Get the parent activity of activity: activityId
Request
ParametersName Type Description In activityId string path Response
Type OpActivityAccepted encodings- application/xml
- application/json
Encodings- application/xml
- application/json
-
get /tasks/getTaskById/{id}Get the activity: id
Request
ParametersName Type Description In id string path Response
Type OpActivityAccepted encodings- application/xml
- application/json
Encodings- application/xml
- application/json
-
get /tasks/getTasksByIdsGet the activities with ids: activityIds
Request
ParametersName Type Description In activityIds string[] query Response
Type OpActivityListAccepted encodings- application/xml
- application/json
Encodings- application/xml
- application/json
-
get /tasks/listActivityCategoriesList all possible activity categories
Request
(inactive categories are deleted but still referenced)
ParametersName Type Description In activeOnly boolean show only active (not deleted) categories (default = false) query Response
Accepted encodings- application/xml
- application/json
Encodings- application/xml
- application/json
-
get /tasks/listChildTasks/{parentId}Get the child activities of activity: parentId
Request
ParametersName Type Description In parentId string path Response
Type OpActivityListAccepted encodings- application/xml
- application/json
Encodings- application/xml
- application/json
-
get /tasks/listCustomValueInfoList info about custom values for activities
Request
Response
Type CustomAttributesAccepted encodings- application/xml
- application/json
Encodings- application/xml
- application/json
-
get /tasks/listModifiedTasksList activities containing assignments for: resourceId which were modified between: from and: until
Request
ParametersName Type Description In resourceId string query from string query until string query Response
Type OpActivityListAccepted encodings- application/xml
- application/json
Encodings- application/xml
- application/json
-
get /tasks/listMyModifiedTasksList activities containing assignments for resources linked to the current user which were modified between: from and: until
Request
ParametersName Type Description In from string query until string query Response
Type OpActivityListAccepted encodings- application/xml
- application/json
Encodings- application/xml
- application/json
-
get /tasks/listMyTasksList activities containing assignments linked to: resourceIds for projects: projectIds started before: until finished before: from also include completed tasks: completed
Request
ParametersName Type Description In from string query until string query projectIds string[] the project filter. values empty for all projects or a valid project id query resourceIds string[] the resource filter. values: -1: ALL, -2: resources managed by the current user, -3: resources linked to the current user, -4: also add project contributors, or a valid resource id query completed boolean query Response
Type OpActivityListAccepted encodings- application/xml
- application/json
Encodings- application/xml
- application/json
-
get /tasks/listTasksOfProject/{projectId}List activities belonging to project: projectId
Request
ParametersName Type Description In projectId string path Response
Type OpActivityListAccepted encodings- application/xml
- application/json
Encodings- application/xml
- application/json
-
put /tasks/updateActionStatus/{actionId}Set the status of action: actionId to: status
Request
ParametersName Type Description In actionId string path status integer status values: 0: Not Started, 1: Started, 2: Done query Response
Type OpActionAccepted encodings- application/xml
- application/json
Encodings- application/xml
- application/json
-
put /tasks/updateActivityCommentUpdate the activity comment
Response
Type OpActivityCommentAccepted encodings- application/xml
- application/json
Encodings- application/xml
- application/json
-
put /tasks/updateAdHocActivityUpdate the adhoc activity
Request
ParametersName Type Description In body OpActivityForApiUnmarshall the adhoc to update body Response
Type OpActivityAccepted encodings- application/xml
- application/json
Encodings- application/xml
- application/json
Todos
-
post /todos/createTodoCreate a new todo
Request
Topics: if you specify more than one topic, then one is randomly chosen
ParametersName Type Description In body OpToDo the todo to create body Response
Type OpToDoAccepted encodings- application/xml
- application/json
Encodings- application/xml
- application/json
-
delete /todos/deleteTodo/{todoId}Delete the todo: todoId
Request
ParametersName Type Description In todoId string path Response
Type No response bodyAccepted encodings- application/xml
- application/json
Encodings- application/xml
- application/json
-
get /todos/getTodosByIdsGet the todos with ids: todoIds
Request
ParametersName Type Description In todoIds string[] the todo ids query Response
Type OpTodoListAccepted encodings- application/xml
- application/json
Encodings- application/xml
- application/json
-
get /todos/listMyTodosList todos with responsibleResources linked to: resourceIds for projects: projectIds started before: until due before: from also include completed todos: completed
Request
ParametersName Type Description In from string query until string query projectIds string[] the project filter. values empty for all projects or a valid project id query resourceIds string[] the resource filter. values: -1: ALL, -2: resources managed by the current user, -3: resources linked to the current user, -4: also add project contributors, or a valid resource id query completed boolean query Response
Type OpTodoListAccepted encodings- application/xml
- application/json
Encodings- application/xml
- application/json
-
get /todos/listTodosOfProject/{projectId}List the todos belonging to project: projectId
Request
ParametersName Type Description In projectId string the project id path Response
Type OpTodoListAccepted encodings- application/xml
- application/json
Encodings- application/xml
- application/json
-
get /todos/listTopicsList all topics
Request
Response
Type OpStringListAccepted encodings- application/xml
- application/json
Encodings- application/xml
- application/json
-
get /todos/listTopicsOfProject/{projectId}List the topics belonging to project: projectId
Request
ParametersName Type Description In projectId string path Response
Type OpStringListAccepted encodings- application/xml
- application/json
Encodings- application/xml
- application/json
-
put /todos/updateTodoUpdate the todo
Request
Topics: if you specify more than one topic, then one is randomly chosen
ParametersName Type Description In body OpToDo the todo to update body Response
Type OpToDoAccepted encodings- application/xml
- application/json
Encodings- application/xml
- application/json
Users
-
get /users/currentUserGet the current user
Request
Response
Type OpUserAccepted encodings- application/xml
- application/json
Encodings- application/xml
- application/json
-
get /users/getGroupTreeGet the structure for all visible groups
Request
Response
Type JaxbRefTreeOpGroupAccepted encodings- application/xml
- application/json
Encodings- application/xml
- application/json
-
get /users/getHashAlgorithmGet the preferred password algorithm (for signOn) for user: login
Request
ParametersName Type Description In login string query Response
Type OpStringHolderAccepted encodings- application/xml
- application/json
Encodings- application/xml
- application/json
-
get /users/getSubjectTreeGet the structure for all visible users and groups
Request
Response
Type JaxbRefTreeOpSubjectAccepted encodings- application/xml
- application/json
Encodings- application/xml
- application/json
-
get /users/getUserById/{userId}
Request
ParametersName Type Description In userId string path Response
Type OpUserAccepted encodings- application/xml
- application/json
Encodings- application/xml
- application/json
-
get /users/listAllGroups
Request
Response
Type OpGroupListAccepted encodings- application/xml
- application/json
Encodings- application/xml
- application/json
-
get /users/listAllUsers
Request
Response
Type OpUserListAccepted encodings- application/xml
- application/json
Encodings- application/xml
- application/json
-
get /users/listGroups/{parentGroupId}Get groups belonging to group: parentGroupId
Request
ParametersName Type Description In parentGroupId string path Response
Type OpGroupListAccepted encodings- application/xml
- application/json
Encodings- application/xml
- application/json
-
get /users/listUsers/{groupId}Get users belonging to group: groupId
Request
ParametersName Type Description In groupId string path Response
Type OpUserListAccepted encodings- application/xml
- application/json
Encodings- application/xml
- application/json
-
put /users/setPassword
Request
ParametersName Type Description In oldPassword string query newPassword string query Response
Type OpUserAccepted encodings- application/xml
- application/json
Encodings- application/xml
- application/json
-
get /users/signOff
Request
Response
Type No response bodyAccepted encodings- application/xml
- application/json
Encodings- application/xml
- application/json
-
get /users/signOn
Request
ParametersName Type Description In login string The users Login name query password string The users password, preferrably encrypted by the hash algorithm retrieved by getHashAlgorithm query language string The users ui language, defauls to the specified language of the user that is to be signed on query Response
Type OpUserAccepted encodings- application/xml
- application/json
Encodings- application/xml
- application/json
Worklogs
-
post /worklogs/createWorkRecord/{assignmentId}Create a new work record for assignment: assignmentId
Request
ParametersName Type Description In assignmentId string the assignment id path bookingDate string when to book (e.g. 2019-12--31Z) query bookingResourceId string who books query actualEffort double time spent in hours query open double remaining open time in hours query comment string comment query completed boolean if the task is completed (default = false) query Response
Type OpResourceWorkRecordAccepted encodings- application/xml
- application/json
Encodings- application/xml
- application/json
-
delete /worklogs/deleteWorkRecord/{resourceWorkRecordId}Delete the resource work record: resourceWorkRecordId
Request
ParametersName Type Description In resourceWorkRecordId string path Response
Type No response bodyAccepted encodings- application/xml
- application/json
Encodings- application/xml
- application/json
-
post /worklogs/importCostRecordsImport cost records from a given Excel file (.xls) and possibly delete old cost records
Request
WARNING: if replaceFrom is set, then ALL cost records editable by the current user are deleted. Editable means: - records belonging to a resource linked to the user - records belonging to a resource managed by the user (even on projects where the manager has no observer permissions) - records in projects managed by the user (if the manager may book for resources) Archived projects are not touched. Please choose replaceFrom and replaceTo with care to avoid unintended deletion of records.
ParametersName Type Description In replaceFrom string import and deletion starts at this date (inclusive) (e.g. 2019-12--31Z) query replaceTo string import and deletion ends at this date (inclusive), only allowed if "replaceFrom" is set(e.g. 2019-12--31Z) query body InputStream body Response
Accepted encodings- */*
Encodings- application/json
- application/xml
-
post /worklogs/importTimeRecordsImport time records from a given Excel file (.xls) and possibly delete old time records
Request
WARNING: if replaceFrom is set, then ALL time records editable by the current user are deleted. Editable means: - records belonging to a resource linked to the user - records belonging to a resource managed by the user (even on projects where the manager has no observer permissions) - records in projects managed by the user (if the manager may book for resources) Archived projects are not touched. Please choose replaceFrom and replaceTo with care to avoid unintended deletion of records.
ParametersName Type Description In replaceFrom string import and deletion starts at this date (inclusive) (e.g. 2019-12--31Z) query replaceTo string import and deletion ends at this date (inclusive), only allowed if "replaceFrom" is set(e.g. 2019-12--31Z) query body InputStream body Response
Accepted encodings- */*
Encodings- application/json
- application/xml
-
get /worklogs/listMyWorkRecordsList resouce work records for resources linked to me
Request
ParametersName Type Description In from string (e.g. 2019-12--31Z) query until string (e.g. 2019-12--31Z) query Response
Accepted encodings- application/xml
- application/json
Encodings- application/xml
- application/json
-
get /worklogs/listWorkRecordsOfProject/{projectId}List the work records belonging to project: projectId
Request
ParametersName Type Description In projectId string the project id path resourceIds string[] the resource filter. values: empty or -1: ALL, -2: resources managed by the current user, -3: resources linked to the current user, or a valid resource id query from string query until string query Response
Accepted encodings- application/xml
- application/json
Encodings- application/xml
- application/json
-
get /worklogs/lockWorkRecordsLocks all work records of all projects that match the given from and until dates
Request
ParametersName Type Description In from string locking starts at this date (inclusive) (e.g. 2019-12--31Z) query until string locking ends at this date (inclusive) (e.g. 2019-12--31Z) query Response
Accepted encodings- application/xml
- application/json
Encodings- application/xml
- application/json
-
get /worklogs/lockWorkRecords/{projectId}Locks all work records belonging to project: projectId and matching the given from and until dates
Request
ParametersName Type Description In projectId string the project id path from string locking starts at this date (inclusive) (e.g. 2019-12--31Z) query until string locking ends at this date (inclusive) (e.g. 2019-12--31Z) query Response
Accepted encodings- application/xml
- application/json
Encodings- application/xml
- application/json
-
post /worklogs/quickTrack/{assignmentId}Create one or more resource records for assignment: assignmentId.
Request
WARNING: if "closed" = true, then resource work records from the bookingDay back to the last booking date of "bookingResourceId" will be created (if the resource did not book before, then back to the start of the activity!) and the "actualEffort" will be split between these records
ParametersName Type Description In assignmentId string the assignment id path bookingDate string when to book (last booking date) (e.g. 2019-12--31Z) query bookingResourceId string who books query actualEffort double time spent in hours query open double remaining open time in hours query comment string comment query completed boolean if the task is completed (default = false) query Response
Accepted encodings- application/xml
- application/json
Encodings- application/xml
- application/json
-
get /worklogs/unlockWorkRecordsUnlocks all work records of all projects that match the given from and until dates
Request
ParametersName Type Description In from string unlocking starts at this date (inclusive) (e.g. 2019-12--31Z) query until string unlocking ends at this date (inclusive) (e.g. 2019-12--31Z) query Response
Accepted encodings- application/xml
- application/json
Encodings- application/xml
- application/json
-
get /worklogs/unlockWorkRecords/{projectId}Unlocks all work records belonging to project: projectId and matching the given from and until dates
Request
ParametersName Type Description In projectId string the project id path from string unlocking starts at this date (inclusive) (e.g. 2019-12--31Z) query until string unlocking ends at this date (inclusive) (e.g. 2019-12--31Z) query Response
Accepted encodings- application/xml
- application/json
Encodings- application/xml
- application/json
-
put /worklogs/updateWorkRecord/{resourceWorkRecordId}Update the resource work record: resourceWorkRecordId
Request
ParametersName Type Description In resourceWorkRecordId string path actualEffort double time spent in hours query open double remaining open time in hours query comment string comment query completed boolean if the task is completed (default = false) query Response
Type OpResourceWorkRecordAccepted encodings- application/xml
- application/json
Encodings- application/xml
- application/json
Type Reference
- group: OpGroup[]
- type: string
- id: string
- workRecord: OpWorkRecord
- resource: string
- actualEffort: double
- comment: string
- state: integer
- created: string
- modified: string
- id: string
- assignee: string
- assignablePool: OpResource[]
- permissionLevel: integer
- permissions: integer
- cost: OpCost[]
- date: string
- assignment: string
- created: string
- modified: string
- openEffort: double
- completed: boolean
- id: string
- name: string
- description: string
- fullName: string
- created: string
- modified: string
- available: double
- archived: boolean
- includedInUtilization: boolean
- user: string
- customType: string
- type: integer
- customValues: CustomValueApiElement[]
- overridePoolRate: boolean
- hourlyRate: double
- externalRate: double
- accessLevel: integer
- permissionLevel: integer
- parents: ResourceParentApiElement[]
- children: ResourceChildApiElement[]
- id: string
- todo: OpToDo[]
- name: string
- description: string
- fullName: string
- created: string
- modified: string
- available: double
- archived: boolean
- includedInUtilization: boolean
- user: string
- customType: string
- type: integer
- overridePoolRate: boolean
- hourlyRate: double
- externalRate: double
- customValues: CustomValueApiElement[]
- parents: ResourceParentApiElement[]
- children: ResourceChildApiElement[]
- accessLevel: integer
- permissionLevel: integer
- id: string
- customValueInfo: CustomAttribute[]
- type: string
- id: string
- projectPlan: OpProjectPlan[]
- sequence: integer
- name: string
- description: string
- color: integer
- defaultStatus: boolean
- lockWBSCodes: boolean
- linkedLevel: double
- active: boolean
- created: string
- modified: string
- rgbColor: string
- id: string
- product: string
- name: string
- description: string
- releaseDate: string
- activeProject: string
- created: string
- modified: string
- id: string
- cost: OpCost[]
- user: OpUser[]
- cost: OpCost[]
- sequence: integer
- name: string
- description: string
- source: string
- type: integer
- priority: integer
- status: integer
- start: string
- due: string
- projectNode: string
- responsibleResource: string
- deleted: boolean
- comments: OpTodoComment[]
- created: string
- modified: string
- activities: string[]
- topics: string[]
- id: string
- root: RootOpGroup
- resource: string
- start: string
- finish: string
- reason: string
- comment: string
- active: boolean
- created: string
- modified: string
- unavailabilityTypeId: string
- id: string
- id: string
- child: NodeOpGroup[]
- virtual: boolean
- start: string
- finish: string
- duration: double
- baseEffort: double
- actualEffort: double
- remainingEffort: double
- revisedRemainingEffort: double
- created: string
- modified: string
- projectNode: string
- complete: double
- status: integer
- progressTracked: boolean
- trackedComplete: double
- baseCosts: OpCosts
- openCosts: OpRevisedCosts
- remainingCosts: OpSubtractedCostsObject
- effortVariances: double
- effortVariancesPercent: double
- costVariances: OpCosts
- costVariancesPercent: OpCostsVariance
- baseCostsTotal: double
- actualCostsTotal: double
- actualCosts: OpCosts
- expectedCostsTotal: double
- openCostsTotal: double
- remainingCostsTotal: double
- expectedCosts: OpExpectedCosts
- costsProgress: double
- datesProgress: double
- openEffort: double
- expectedEffort: double
- id: string
- numberImported: integer
- warning: OpServiceWarning[]
- projectStatus: OpProjectStatus[]
- accessLevel: integer
- access: integer
- adminable: boolean
- resourceWorkRecord: OpResourceWorkRecord[]
- name: string
- description: string
- source: integer
- created: string
- modified: string
- displayName: string
- id: string
- id: integer
- baseEffort: double
- openEffort: double
- storyPoints: double
- created: string
- modified: string
- externalLinkURL: string
- id: string
- sequence: integer
- name: string
- description: string
- created: string
- modified: string
- id: string
- name: string
- text: string
- commentDate: string
- creator: OpUser
- created: string
- modified: string
- id: string
- assignment: OpAssignment[]
- name: string
- text: string
- commentDate: string
- creator: OpUser
- activity: string
- created: string
- modified: string
- id: string
- activityCategory: OpActivityCategory[]
- code: string
- message: string
- isWarning: boolean
- argument: object
- type: string
- name: string
- description: string
- label: string
- sequence: integer
- possibleValues: string[]
- name: string
- description: string
- activeProject: string
- created: string
- modified: string
- id: string
- cost: OpCost[]
- isLink: boolean
- id: string
- name: string
- description: string
- source: integer
- level: integer
- active: boolean
- external: boolean
- contact: OpContact
- primaryResource: string
- resources: string[]
- created: string
- modified: string
- id: string
- lastName: string
- firstName: string
- eMail: string
- phone: string
- mobile: string
- fax: string
- jobTitle: string
- created: string
- modified: string
- salutation: string
- id: string
- activity: OpActivity[]
- resource: OpResource[]
- id: string
- child: NodeOpSubject[]
- created: string
- modified: string
- id: string
- cost: OpCost[]
- name: string
- description: string
- created: string
- modified: string
- id: string
- customType: CustomTypeInfo[]
- string: string[]
- name: string
- description: string
- deleted: boolean
- status: integer
- sequence: integer
- created: string
- modified: string
- id: string
- assignablePoolsResult: OpAssignablePoolsResult[]
- id: string
- child: NodeOpSubject[]
- virtual: boolean
- root: RootOpSubject
- projectNode: OpProjectNode[]
- id: integer
- name: string
- description: string
- tabLabel: string
- defaultType: boolean
- customValueInfo: CustomAttribute[]
- title: string
- name: string
- type: string
- value: object
- profit: double
- costs: double
- name: string
- description: string
- results: string
- attributes: integer
- category: string
- sequence: integer
- outlineLevel: integer
- start: string
- duration: double
- leadTime: double
- followUpTime: double
- complete: double
- baseEffort: double
- unassignedEffort: double
- actualEffort: double
- remainingEffort: double
- deleted: boolean
- expanded: boolean
- template: boolean
- revisedRemainingEffort: double
- revisedComplete: double
- projectPlan: string
- assignments: string[]
- comments: OpActivityComment[]
- wbsCode: string
- environment: string
- contactPersons: string
- authorized: string
- authorizationComment: string
- postProjectPhaseComment: string
- requirement: string
- created: string
- modified: string
- type: integer
- subType: integer
- finish: string
- priority: integer
- status: integer
- payment: double
- effortBillable: double
- effortAbsoluteBillable: double
- costsAbsoluteBillable: double
- parentActivity: string
- responsibleResource: string
- originalEstimate: double
- customValues: CustomValueApiElement[]
- durationDays: double
- normalizedSequence: integer
- plannedCosts: OpCosts
- openCosts: OpRevisedCosts
- remainingCosts: OpSubtractedCostsOpCosts
- effortVariances: double
- effortVariancesPercent: double
- costVariances: OpCosts
- costVariancesPercent: OpCostsProgress
- toDos: string[]
- predecessorActivities: ActivityDependency[]
- successorActivities: ActivityDependency[]
- openEffort: double
- extendedName: string
- id: string
- messageCode: integer
- userName: string
- role: string
- project: string
- projectName: string
- planVersionNumber: string
- activityName: string
- toDoName: string
- resourceName: string
- activityCommentText: string
- projectStatusName: string
- createdAt: string
- created: string
- modified: string
- id: string
- name: string
- description: string
- color: integer
- defaultCategory: boolean
- active: boolean
- created: string
- modified: string
- rgbColor: string
- id: string
- value: string
- profit: double
- costs: double
- name: string
- description: string
- results: string
- attributes: integer
- category: string
- sequence: integer
- outlineLevel: integer
- start: string
- duration: double
- leadTime: double
- followUpTime: double
- complete: double
- baseEffort: double
- unassignedEffort: double
- actualEffort: double
- remainingEffort: double
- deleted: boolean
- expanded: boolean
- template: boolean
- revisedRemainingEffort: double
- revisedComplete: double
- projectPlan: string
- assignments: string[]
- comments: OpActivityComment[]
- wbsCode: string
- environment: string
- contactPersons: string
- authorized: string
- authorizationComment: string
- postProjectPhaseComment: string
- requirement: string
- created: string
- modified: string
- type: integer
- subType: integer
- finish: string
- priority: integer
- status: integer
- payment: double
- effortBillable: double
- effortAbsoluteBillable: double
- costsAbsoluteBillable: double
- parentActivity: string
- responsibleResource: string
- originalEstimate: double
- customValues: CustomValueApiElement[]
- durationDays: double
- normalizedSequence: integer
- plannedCosts: OpCosts
- openCosts: OpRevisedCosts
- remainingCosts: OpSubtractedCostsOpCosts
- effortVariances: double
- effortVariancesPercent: double
- costVariances: OpCosts
- costVariancesPercent: OpCostsProgress
- toDos: string[]
- predecessorActivities: ActivityDependency[]
- successorActivities: ActivityDependency[]
- openEffort: double
- extendedName: string
- id: string
- id: Id
- name: string
- comment: string
- version: integer
- realVersionNumber: integer
- checkInTime: string
- scenario: PortfolioScenario
- baselineVersion: boolean
- workingVersion: boolean
- idString: string
- eventLogEntry: OpEventLogEntry[]
- assigned: double
- complete: double
- baseEffort: double
- actualEffort: double
- remainingEffort: double
- revisedRemainingEffort: double
- revisedComplete: double
- resource: string
- activity: string
- active: boolean
- created: string
- modified: string
- status: integer
- effortVariances: double
- effortVariancesPercent: double
- openEffort: double
- id: string
- id: Id
- permission: PermissionLevel
- access: AccessLevel
- name: string
- description: string
- idString: string
- number: string
- name: string
- description: string
- start: string
- finish: string
- startEvent: string
- endEvent: string
- probability: integer
- archived: boolean
- priority: integer
- situation: string
- rationale: string
- miscellaneous: string
- decision: string
- decisionComment: string
- completed: string
- organization: string
- created: string
- modified: string
- type: integer
- customType: string
- budget: double
- savingsPotential: double
- trafficLight: integer
- projectStatus: string
- projectClassification: string
- riskClassification: integer
- accessLevel: integer
- sponsor: string
- projectManager: string
- issueCoordinator: string
- managerTrafficLight: integer
- customerTrafficLight: integer
- qualityTrafficLight: integer
- datesTrafficLight: integer
- resourcesTrafficLight: integer
- costsTrafficLight: integer
- permissionLevel: integer
- assignedResources: string[]
- jiraExecuted: boolean
- jiraAggregated: boolean
- workTrackable: boolean
- projectPlan: string
- customValues: CustomValueApiElement[]
- parents: ProjectParentApiElement[]
- children: ProjectChildApiElement[]
- methodology: integer
- displayName: string
- id: string
- projectClassifications: OpProjectClassification[]
- name: string
- value: double
- isLink: boolean
- id: string
- assignmentVersion: OpAssignmentVersion[]
- type: integer
- onCriticalPath: boolean
- conflict: boolean
- activity: string
- id: string
- child: NodeOpGroup[]