ONEPOINT REST XML/JSON API

The preferred way of integrating external systems with ONEPOINT Projects is the provided REST API, offering both XML and JSON endpoints.

The following short tutorial gives an overview of general setup, authentication and common pitfalls that might occur when working with the 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 function 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 objects
  • POST for creating new objects
  • PUT for modifying existing objects
  • DELETE 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/...)
  • 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

Planning

  • put /planning/checkIn/{projectId}
    Checks in the given project plan version

    Request

    Parameters
    Name 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 body
    Accepted encodings
    • application/xml
    • application/json
    Encodings
    • application/xml
    • application/json
  • put /planning/edit/{projectId}
    Checks out the given project

    Request

    Parameters
    Name Type Description In
    projectId string the op id of the project node to check out path

    Response

    Accepted 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

    Parameters
    Name 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 string
    Accepted encodings
    • */*
    Encodings
    • application/json
    • application/xml
  • get /planning/listAssignmentVersions/{activityVersionId}
    List assignment versions for activty version: activityVersionId

    Request

    Parameters
    Name 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.

    Parameters
    Name 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 OpActivity
    Accepted encodings
    • application/xml
    • application/json
    Encodings
    • application/xml
    • application/json
  • get /products/getProductById/{productId}
    Retrieve product: productId

    Request

    Parameters
    Name Type Description In
    productId string path

    Response

    Type OpProduct
    Accepted encodings
    • application/xml
    • application/json
    Encodings
    • application/xml
    • application/json
  • get /products/getReleaseById/{releaseId}
    Retrieve release: releaseId

    Request

    Parameters
    Name Type Description In
    releaseId string path

    Response

    Type OpRelease
    Accepted encodings
    • application/xml
    • application/json
    Encodings
    • application/xml
    • application/json
  • get /products/getRequirementById/{requirementId}
    Retrieve requirement: requirementId

    Request

    Parameters
    Name Type Description In
    requirementId string path

    Response

    Accepted 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

    Parameters
    Name 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 body
    Accepted 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 portfolio

    Parameters
    Name Type Description In
    body OpProjectNode the portfolio to create body
    superPortfolioId string path

    Response

    Accepted 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 project

    Parameters
    Name Type Description In
    body OpProjectNode the project to create body
    portfolioId string path

    Response

    Accepted encodings
    • application/xml
    • application/json
    Encodings
    • application/xml
    • application/json
  • get /projects/getPlanById/{projectPlanId}
    Get the project plan with id: projectPlanId

    Request

    Parameters
    Name Type Description In
    projectPlanId string path

    Response

    Accepted encodings
    • application/xml
    • application/json
    Encodings
    • application/xml
    • application/json
  • get /projects/getPlanForProject/{projectId}
    Get the project plan for project: projectId

    Request

    Parameters
    Name Type Description In
    projectId string path

    Response

    Accepted encodings
    • application/xml
    • application/json
    Encodings
    • application/xml
    • application/json
  • get /projects/getPlanForProjectName
    Get the project plan for project named: projectName

    Request

    Parameters
    Name Type Description In
    projectName string the project name query

    Response

    Accepted encodings
    • application/xml
    • application/json
    Encodings
    • application/xml
    • application/json
  • get /projects/getPlanForProjectNumber
    Get the project plan for project with number: projectNumber

    Request

    Parameters
    Name Type Description In
    projectNumber string the project number query

    Response

    Accepted encodings
    • application/xml
    • application/json
    Encodings
    • application/xml
    • application/json
  • get /projects/getPlansByIds
    Get the project plans with ids: projectPlanIds

    Request

    Parameters
    Name Type Description In
    projectPlanIds string[] the project plan ids query

    Response

    Accepted encodings
    • application/xml
    • application/json
    Encodings
    • application/xml
    • application/json
  • get /projects/getPortfolioById/{portfolioId}
    Get the portfolio with id: portfolioId

    Request

    Parameters
    Name Type Description In
    portfolioId string path

    Response

    Accepted encodings
    • application/xml
    • application/json
    Encodings
    • application/xml
    • application/json
  • get /projects/getPortfolioByName
    Get the portfolio named: portfolioName

    Request

    Parameters
    Name Type Description In
    portfolioName string the portfolio name query

    Response

    Accepted encodings
    • application/xml
    • application/json
    Encodings
    • application/xml
    • application/json
  • get /projects/getProjectById/{projectId}
    Get the project with id: projectId

    Request

    Parameters
    Name Type Description In
    projectId string path

    Response

    Accepted encodings
    • application/xml
    • application/json
    Encodings
    • application/xml
    • application/json
  • get /projects/getProjectByName
    Get the project named: projectName

    Request

    Parameters
    Name Type Description In
    projectName string the project name query

    Response

    Accepted encodings
    • application/xml
    • application/json
    Encodings
    • application/xml
    • application/json
  • get /projects/getProjectByNumber
    Get the project named: projectNumber

    Request

    Parameters
    Name Type Description In
    projectNumber string the project number query

    Response

    Accepted encodings
    • application/xml
    • application/json
    Encodings
    • application/xml
    • application/json
  • get /projects/getProjectClassificationById/{projectClassificationId}
    Get the project classification object with id: projectClassificationId

    Request

    Parameters
    Name 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

    Parameters
    Name Type Description In
    projectPlanId string path

    Response

    Accepted encodings
    • application/xml
    • application/json
    Encodings
    • application/xml
    • application/json
  • get /projects/getProjectStatusById/{projectStatusId}
    Get the project status object with status id: projectStatusId

    Request

    Parameters
    Name Type Description In
    projectStatusId string path

    Response

    Accepted encodings
    • application/xml
    • application/json
    Encodings
    • application/xml
    • application/json
  • get /projects/getProjectsByIds
    Get the projects and portfolios with ids: projectIds

    Request

    Parameters
    Name Type Description In
    projectIds string[] the project and portfolio ids query

    Response

    Accepted encodings
    • application/xml
    • application/json
    Encodings
    • application/xml
    • application/json
  • get /projects/getRootPortfolio
    Get the root portfolio

    Request

    Response

    Accepted encodings
    • application/xml
    • application/json
    Encodings
    • application/xml
    • application/json
  • post /projects/importProjects
    Import 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"

    Parameters
    Name Type Description In
    body InputStream body

    Response

    Accepted encodings
    • */*
    Encodings
    • application/json
    • application/xml
  • get /projects/listMyProjectPlans
    List my project plans

    Request

    Parameters
    Name 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

    Accepted encodings
    • application/xml
    • application/json
    Encodings
    • application/xml
    • application/json
  • get /projects/listMyProjects
    List my projects

    Request

    Parameters
    Name Type Description In
    minLevel integer the minimum permission level I have on the projects query
    includeArchived boolean also include archived projects query

    Response

    Accepted encodings
    • application/xml
    • application/json
    Encodings
    • application/xml
    • application/json
  • get /projects/listPortfolioCustomTypes
    List info about custom types and values for portfolios

    Request

    Response

    Accepted encodings
    • application/xml
    • application/json
    Encodings
    • application/xml
    • application/json
  • get /projects/listProjectClassifications
    List all possible project classifications

    Request

    Accepted encodings
    • application/xml
    • application/json
    Encodings
    • application/xml
    • application/json
  • get /projects/listProjectCustomTypes
    List info about custom types and values for projects

    Request

    Response

    Accepted encodings
    • application/xml
    • application/json
    Encodings
    • application/xml
    • application/json
  • get /projects/listProjectStatuses
    List all possible project statuses

    Request

    Response

    Accepted encodings
    • application/xml
    • application/json
    Encodings
    • application/xml
    • application/json
  • get /projects/listStreamsForProjects
    List 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

    Parameters
    Name Type Description In
    projectIds string[] the project ids query
    offset integer first element query
    numberRecords integer the desired number of elements query

    Response

    Accepted encodings
    • application/xml
    • application/json
    Encodings
    • application/xml
    • application/json
  • put /projects/updatePortfolio
    Update 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 ("").

    Parameters
    Name Type Description In
    body OpProjectNode the portfolio to update body

    Response

    Accepted encodings
    • application/xml
    • application/json
    Encodings
    • application/xml
    • application/json
  • put /projects/updateProject
    Update 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.

    Parameters
    Name Type Description In
    body OpProjectNode the project to update body

    Response

    Accepted 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

    Parameters
    Name 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

    Accepted encodings
    Encodings
    • application/octet-stream
  • get /reports/inputParameters/{reportIdOrName}
    Return the input parameters for report: reportIdOrName

    Request

    Parameters
    Name Type Description In
    reportIdOrName string the op id or name of the report to get the input parameters path

    Response

    Type object
    Accepted encodings
    Encodings
    • 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 resource

    Parameters
    Name Type Description In
    body OpResourceForApiUnmarshall the resource to create body
    poolOrCollectionResourceId string path

    Response

    Type OpResource
    Accepted encodings
    • application/xml
    • application/json
    Encodings
    • application/xml
    • application/json
  • delete /resources/deleteUnavailability/{unavailabilityId}
    Delete the unavailability: unavailabilityId

    Request

    Parameters
    Name Type Description In
    unavailabilityId string path

    Response

    Type No response body
    Accepted encodings
    • application/xml
    • application/json
    Encodings
    • application/xml
    • application/json
  • delete /resources/deleteUnavailabilityType/{unavailabilityTypeId}
    Delete the unavailability type: unavailabilityTypeId

    Request

    Parameters
    Name Type Description In
    unavailabilityTypeId string path

    Response

    Type No response body
    Accepted encodings
    • application/xml
    • application/json
    Encodings
    • application/xml
    • application/json
  • get /resources/getResourceById/{resourceId}
    Get the resource: resourceId

    Request

    Parameters
    Name Type Description In
    resourceId string the resource id path

    Response

    Type OpResource
    Accepted encodings
    • application/xml
    • application/json
    Encodings
    • application/xml
    • application/json
  • get /resources/getResourcesByIds
    Get the resources with ids: resourceIds

    Request

    Parameters
    Name Type Description In
    resourceIds string[] the resource ids query

    Response

    Accepted encodings
    • application/xml
    • application/json
    Encodings
    • application/xml
    • application/json
  • get /resources/getRootResourcePool
    Get the root resource pool

    Request

    Response

    Type OpResource
    Accepted encodings
    • application/xml
    • application/json
    Encodings
    • application/xml
    • application/json
  • get /resources/getUnavailabilityById/{unavailabilityId}
    Get the unavailability with id: unavailabilityId

    Request

    Parameters
    Name Type Description In
    unavailabilityId string path

    Response

    Type OpAbsence
    Accepted encodings
    • application/xml
    • application/json
    Encodings
    • application/xml
    • application/json
  • get /resources/getUnavailabilityTypeById/{unavailabilityTypeId}
    Get unavailability type with id: unavailabilityTypeId

    Request

    Parameters
    Name Type Description In
    unavailabilityTypeId string path

    Response

    Accepted encodings
    • application/xml
    • application/json
    Encodings
    • application/xml
    • application/json
  • post /resources/importUnavailabilities
    Import unavailabilities from a given Excel file (.xls) and possibly delete old unavailabilities

    Request

    WARNING: if replaceFrom or replaceTo is set, then ALL unavailabilities editable by the current user and within the replaceFrom and replaceTo range are deleted. Editable means: unavailabilities the user has at least management permissions for Please choose replaceFrom and replaceTo with care to avoid unintended deletion of unavailabilities.

    Parameters
    Name Type Description In
    replaceFrom string deletion starts at this date (inclusive) (e.g. 2017-12-31Z) query
    replaceTo string deletion ends at this date (inclusive) (e.g. 2017-12-31Z) query
    body InputStream body

    Response

    Accepted encodings
    • */*
    Encodings
    • application/json
    • application/xml
  • post /resources/insertUnavailability
    Insert a new unavailability

    Request

    Parameters
    Name Type Description In
    body OpAbsence the unavailability to create body

    Response

    Type OpAbsence
    Accepted encodings
    • application/xml
    • application/json
    Encodings
    • application/xml
    • application/json
  • post /resources/insertUnavailabilityType
    Insert a new unavailability type

    Request

    Parameters
    Name Type Description In
    body OpAbsenceReason the unavailability type to create body

    Response

    Accepted encodings
    • application/xml
    • application/json
    Encodings
    • application/xml
    • application/json
  • get /resources/listAssignablePools
    Get all parent resource pools for resources: resourceIds

    Request

    Parameters
    Name Type Description In
    resourceIds string[] the resource ids query
    Accepted encodings
    • application/xml
    • application/json
    Encodings
    • application/xml
    • application/json
  • get /resources/listLinkedResources/{userId}
    List resources linked to the user: userId

    Request

    Parameters
    Name Type Description In
    userId string path

    Response

    Accepted encodings
    • application/xml
    • application/json
    Encodings
    • application/xml
    • application/json
  • get /resources/listMyLinkedResources
    List resources linked to the current user

    Request

    Response

    Accepted encodings
    • application/xml
    • application/json
    Encodings
    • application/xml
    • application/json
  • get /resources/listMyUnavailabilities
    List all my unavailabilities

    Request

    Response

    Accepted encodings
    • application/xml
    • application/json
    Encodings
    • application/xml
    • application/json
  • get /resources/listPoolCustomTypes
    List info about custom types and values for resource pools

    Request

    Response

    Accepted encodings
    • application/xml
    • application/json
    Encodings
    • application/xml
    • application/json
  • get /resources/listResourceCustomTypes
    List info about custom types and values for resources

    Request

    Response

    Accepted encodings
    • application/xml
    • application/json
    Encodings
    • application/xml
    • application/json
  • get /resources/listUnavailabilities/{resourceId}
    List all unavailabilities of the resource: resourceId

    Request

    Parameters
    Name Type Description In
    resourceId string path

    Response

    Accepted encodings
    • application/xml
    • application/json
    Encodings
    • application/xml
    • application/json
  • get /resources/listUnavailabilityTypes
    List all unavailability types

    Request

    Response

    Accepted encodings
    • application/xml
    • application/json
    Encodings
    • application/xml
    • application/json
  • put /resources/updateResource
    Update 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.

    Parameters
    Name Type Description In
    body OpResourceForApiUnmarshall the resource to update body

    Response

    Type OpResource
    Accepted encodings
    • application/xml
    • application/json
    Encodings
    • application/xml
    • application/json
  • put /resources/updateUnavailability
    Update an existing unavailability

    Request

    Parameters
    Name Type Description In
    body OpAbsence the unavailability to create body

    Response

    Type OpAbsence
    Accepted encodings
    • application/xml
    • application/json
    Encodings
    • application/xml
    • application/json
  • put /resources/updateUnavailabilityType
    Update an existing unavailability type

    Request

    Parameters
    Name Type Description In
    body OpAbsenceReason the unavailability type to update body

    Response

    Accepted encodings
    • application/xml
    • application/json
    Encodings
    • application/xml
    • application/json

Tasks

  • post /tasks/createActivityComment/{activityId}
    Create a new activity comment for activity: activityId

    Request

    Parameters
    Name Type Description In
    activityId string path
    body OpActivityComment the comment to create body

    Response

    Accepted encodings
    • application/xml
    • application/json
    Encodings
    • application/xml
    • application/json
  • post /tasks/createAdHocActivity/{projectId}
    Create a new adhoc activity for project: projectId

    Request

    Parameters
    Name Type Description In
    projectId string path
    body OpActivity the adhoc to create body

    Response

    Type OpActivity
    Accepted encodings
    • application/xml
    • application/json
    Encodings
    • application/xml
    • application/json
  • delete /tasks/deleteActivityComment/{commentId}
    Delete the activity comment: commentId

    Request

    Parameters
    Name Type Description In
    commentId string path

    Response

    Type No response body
    Accepted encodings
    • application/xml
    • application/json
    Encodings
    • application/xml
    • application/json
  • delete /tasks/deleteAdHocActivity/{activityId}
    Delete the adhoc activity: activityId

    Request

    Parameters
    Name Type Description In
    activityId string query

    Response

    Type No response body
    Accepted encodings
    • application/xml
    • application/json
    Encodings
    • application/xml
    • application/json
  • get /tasks/getActivityCategoriesByIds
    Get activity categories with ids: activityCategoryIds

    Request

    (inactive categories are deleted but still referenced)

    Parameters
    Name Type Description In
    activityCategoryIds string[] query

    Response

    Accepted encodings
    • application/xml
    • application/json
    Encodings
    • application/xml
    • application/json
  • get /tasks/getAssignmentsByIds
    Get the assignments with ids: assignmentIds

    Request

    Parameters
    Name Type Description In
    assignmentIds string[] query

    Response

    Accepted encodings
    • application/xml
    • application/json
    Encodings
    • application/xml
    • application/json
  • get /tasks/getParentTask/{activityId}
    Get the parent activity of activity: activityId

    Request

    Parameters
    Name Type Description In
    activityId string path

    Response

    Type OpActivity
    Accepted encodings
    • application/xml
    • application/json
    Encodings
    • application/xml
    • application/json
  • get /tasks/getTaskById/{id}
    Get the activity: id

    Request

    Parameters
    Name Type Description In
    id string path

    Response

    Type OpActivity
    Accepted encodings
    • application/xml
    • application/json
    Encodings
    • application/xml
    • application/json
  • get /tasks/getTasksByIds
    Get the activities with ids: activityIds

    Request

    Parameters
    Name Type Description In
    activityIds string[] query

    Response

    Accepted encodings
    • application/xml
    • application/json
    Encodings
    • application/xml
    • application/json
  • get /tasks/listActivityCategories
    List all possible activity categories

    Request

    (inactive categories are deleted but still referenced)

    Parameters
    Name 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

    Parameters
    Name Type Description In
    parentId string path

    Response

    Accepted encodings
    • application/xml
    • application/json
    Encodings
    • application/xml
    • application/json
  • get /tasks/listCustomValueInfo
    List info about custom values for activities

    Request

    Response

    Accepted encodings
    • application/xml
    • application/json
    Encodings
    • application/xml
    • application/json
  • get /tasks/listModifiedTasks
    List activities containing assignments for: resourceId which were modified between: from and: until

    Request

    Parameters
    Name Type Description In
    resourceId string query
    from string query
    until string query

    Response

    Accepted encodings
    • application/xml
    • application/json
    Encodings
    • application/xml
    • application/json
  • get /tasks/listMyModifiedTasks
    List activities containing assignments for resources linked to the current user which were modified between: from and: until

    Request

    Parameters
    Name Type Description In
    from string query
    until string query

    Response

    Accepted encodings
    • application/xml
    • application/json
    Encodings
    • application/xml
    • application/json
  • get /tasks/listMyTasks
    List activities containing assignments linked to: resourceIds for projects: projectIds started before: until finished before: from also include completed tasks: completed

    Request

    Parameters
    Name 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

    Accepted encodings
    • application/xml
    • application/json
    Encodings
    • application/xml
    • application/json
  • get /tasks/listTasksOfProject/{projectId}
    List activities belonging to project: projectId

    Request

    Parameters
    Name Type Description In
    projectId string path

    Response

    Accepted encodings
    • application/xml
    • application/json
    Encodings
    • application/xml
    • application/json
  • put /tasks/updateActionStatus/{actionId}
    Set the status of action: actionId to: status

    Request

    Parameters
    Name Type Description In
    actionId string path
    status integer status values: 0: Not Started, 1: Started, 2: Done query

    Response

    Type OpAction
    Accepted encodings
    • application/xml
    • application/json
    Encodings
    • application/xml
    • application/json
  • put /tasks/updateActivityComment
    Update the activity comment

    Request

    Parameters
    Name Type Description In
    body OpActivityComment the comment to update body

    Response

    Accepted encodings
    • application/xml
    • application/json
    Encodings
    • application/xml
    • application/json
  • put /tasks/updateAdHocActivity
    Update the adhoc activity

    Request

    Parameters
    Name Type Description In
    body OpActivity the adhoc to update body

    Response

    Type OpActivity
    Accepted encodings
    • application/xml
    • application/json
    Encodings
    • application/xml
    • application/json

Todos

  • post /todos/createTodo
    Create a new todo

    Request

    Topics: if you specify more than one topic, then one is randomly chosen

    Parameters
    Name Type Description In
    body OpToDo the todo to create body

    Response

    Type OpToDo
    Accepted encodings
    • application/xml
    • application/json
    Encodings
    • application/xml
    • application/json
  • delete /todos/deleteTodo/{todoId}
    Delete the todo: todoId

    Request

    Parameters
    Name Type Description In
    todoId string path

    Response

    Type No response body
    Accepted encodings
    • application/xml
    • application/json
    Encodings
    • application/xml
    • application/json
  • get /todos/getTodosByIds
    Get the todos with ids: todoIds

    Request

    Parameters
    Name Type Description In
    todoIds string[] the todo ids query

    Response

    Type OpTodoList
    Accepted encodings
    • application/xml
    • application/json
    Encodings
    • application/xml
    • application/json
  • get /todos/listMyTodos
    List todos with responsibleResources linked to: resourceIds for projects: projectIds started before: until due before: from also include completed todos: completed

    Request

    Parameters
    Name 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 OpTodoList
    Accepted encodings
    • application/xml
    • application/json
    Encodings
    • application/xml
    • application/json
  • get /todos/listTodosOfProject/{projectId}
    List the todos belonging to project: projectId

    Request

    Parameters
    Name Type Description In
    projectId string the project id path

    Response

    Type OpTodoList
    Accepted encodings
    • application/xml
    • application/json
    Encodings
    • application/xml
    • application/json
  • get /todos/listTopics
    List all topics

    Request

    Response

    Accepted encodings
    • application/xml
    • application/json
    Encodings
    • application/xml
    • application/json
  • get /todos/listTopicsOfProject/{projectId}
    List the topics belonging to project: projectId

    Request

    Parameters
    Name Type Description In
    projectId string path

    Response

    Accepted encodings
    • application/xml
    • application/json
    Encodings
    • application/xml
    • application/json
  • put /todos/updateTodo
    Update the todo

    Request

    Topics: if you specify more than one topic, then one is randomly chosen

    Parameters
    Name Type Description In
    body OpToDo the todo to update body

    Response

    Type OpToDo
    Accepted encodings
    • application/xml
    • application/json
    Encodings
    • application/xml
    • application/json

Users

  • get /users/currentUser
    Get the current user

    Request

    Response

    Type OpUser
    Accepted encodings
    • application/xml
    • application/json
    Encodings
    • application/xml
    • application/json
  • get /users/getGroupTree
    Get the structure for all visible groups

    Request

    Response

    Accepted encodings
    • application/xml
    • application/json
    Encodings
    • application/xml
    • application/json
  • get /users/getHashAlgorithm
    Get the preferred password algorithm (for signOn) for user: login

    Request

    Parameters
    Name Type Description In
    login string query

    Response

    Accepted encodings
    • application/xml
    • application/json
    Encodings
    • application/xml
    • application/json
  • get /users/getSubjectTree
    Get the structure for all visible users and groups

    Request

    Response

    Accepted encodings
    • application/xml
    • application/json
    Encodings
    • application/xml
    • application/json
  • get /users/getUserById/{userId}

    Request

    Parameters
    Name Type Description In
    userId string path

    Response

    Type OpUser
    Accepted encodings
    • application/xml
    • application/json
    Encodings
    • application/xml
    • application/json
  • get /users/listAllGroups

    Request

    Response

    Accepted encodings
    • application/xml
    • application/json
    Encodings
    • application/xml
    • application/json
  • get /users/listAllUsers

    Request

    Response

    Type OpUserList
    Accepted encodings
    • application/xml
    • application/json
    Encodings
    • application/xml
    • application/json
  • get /users/listGroups/{parentGroupId}
    Get groups belonging to group: parentGroupId

    Request

    Parameters
    Name Type Description In
    parentGroupId string path

    Response

    Accepted encodings
    • application/xml
    • application/json
    Encodings
    • application/xml
    • application/json
  • get /users/listUsers/{groupId}
    Get users belonging to group: groupId

    Request

    Parameters
    Name Type Description In
    groupId string path

    Response

    Type OpUserList
    Accepted encodings
    • application/xml
    • application/json
    Encodings
    • application/xml
    • application/json
  • put /users/setPassword

    Request

    Parameters
    Name Type Description In
    oldPassword string query
    newPassword string query

    Response

    Type OpUser
    Accepted encodings
    • application/xml
    • application/json
    Encodings
    • application/xml
    • application/json
  • get /users/signOff

    Request

    Response

    Type No response body
    Accepted encodings
    • application/xml
    • application/json
    Encodings
    • application/xml
    • application/json
  • get /users/signOn

    Request

    Parameters
    Name 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 OpUser
    Accepted encodings
    • application/xml
    • application/json
    Encodings
    • application/xml
    • application/json

Worklogs

  • post /worklogs/createWorkRecord/{assignmentId}
    Create a new work record for assignment: assignmentId

    Request

    Parameters
    Name Type Description In
    assignmentId string the assignment id path
    bookingDate string when to book (e.g. 2017-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
  • delete /worklogs/deleteWorkRecord/{resourceWorkRecordId}
    Delete the resource work record: resourceWorkRecordId

    Request

    Parameters
    Name Type Description In
    resourceWorkRecordId string path

    Response

    Type No response body
    Accepted encodings
    • application/xml
    • application/json
    Encodings
    • application/xml
    • application/json
  • post /worklogs/importCostRecords
    Import 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.

    Parameters
    Name Type Description In
    replaceFrom string import and deletion starts at this date (inclusive) (e.g. 2017-12-31Z) query
    replaceTo string import and deletion ends at this date (inclusive), only allowed if "replaceFrom" is set(e.g. 2017-12-31Z) query
    body InputStream body

    Response

    Accepted encodings
    • */*
    Encodings
    • application/json
    • application/xml
  • post /worklogs/importTimeRecords
    Import 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.

    Parameters
    Name Type Description In
    replaceFrom string import and deletion starts at this date (inclusive) (e.g. 2017-12-31Z) query
    replaceTo string import and deletion ends at this date (inclusive), only allowed if "replaceFrom" is set(e.g. 2017-12-31Z) query
    body InputStream body

    Response

    Accepted encodings
    • */*
    Encodings
    • application/json
    • application/xml
  • get /worklogs/listMyWorkRecords
    List resouce work records for resources linked to me

    Request

    Parameters
    Name Type Description In
    from string (e.g. 2017-12-31Z) query
    until string (e.g. 2017-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

    Parameters
    Name 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/lockWorkRecords
    Locks all work records of all projects that match the given from and until dates

    Request

    Parameters
    Name Type Description In
    from string locking starts at this date (inclusive) (e.g. 2017-12-31Z) query
    until string locking ends at this date (inclusive) (e.g. 2017-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

    Parameters
    Name Type Description In
    projectId string the project id path
    from string locking starts at this date (inclusive) (e.g. 2017-12-31Z) query
    until string locking ends at this date (inclusive) (e.g. 2017-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

    Parameters
    Name Type Description In
    assignmentId string the assignment id path
    bookingDate string when to book (last booking date) (e.g. 2017-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/unlockWorkRecords
    Unlocks all work records of all projects that match the given from and until dates

    Request

    Parameters
    Name Type Description In
    from string unlocking starts at this date (inclusive) (e.g. 2017-12-31Z) query
    until string unlocking ends at this date (inclusive) (e.g. 2017-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

    Parameters
    Name Type Description In
    projectId string the project id path
    from string unlocking starts at this date (inclusive) (e.g. 2017-12-31Z) query
    until string unlocking ends at this date (inclusive) (e.g. 2017-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

    Parameters
    Name 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

    Accepted encodings
    • application/xml
    • application/json
    Encodings
    • application/xml
    • application/json

Type Reference

OpGroupList
ResourceChildApiElement
  • type: string
  • id: string
OpResourceWorkRecord
  • workRecord: OpWorkRecord
  • resource: string
  • actualEffort: double
  • comment: string
  • state: integer
  • created: string
  • modified: string
  • id: string
OpAssignablePoolsResult
StreamingOutput
OpRevisedCosts
OpWorkRecord
  • date: string
  • assignment: string
  • created: string
  • modified: string
  • openEffort: double
  • completed: boolean
  • id: string
OpResource
  • name: string
  • description: string
  • fullName: string
  • created: string
  • modified: string
  • available: double
  • archived: 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
OpTodoList
OpResourceForApiUnmarshall
  • name: string
  • description: string
  • fullName: string
  • created: string
  • modified: string
  • available: double
  • archived: 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
CustomAttributes
ProjectChildApiElement
  • type: string
  • id: string
OpProjectPlanList
OpRelease
  • product: string
  • name: string
  • description: string
  • releaseDate: string
  • activeProject: string
  • created: string
  • modified: string
  • id: string
OpProjectStatus
  • sequence: integer
  • name: string
  • description: string
  • color: integer
  • defaultStatus: boolean
  • lockWBSCodes: boolean
  • linkedLevel: double
  • active: boolean
  • created: string
  • modified: string
  • rgbColor: string
  • id: string
OpUnavailabilityList
OpSubtractedCostsOpCosts
OpUserList
OpSubtractedCostsObject
OpToDo
  • 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
JaxbRefTreeOpGroup
OpAbsence
  • resource: string
  • start: string
  • finish: string
  • reason: string
  • comment: string
  • active: boolean
  • created: string
  • modified: string
  • unavailabilityTypeId: string
  • id: string
RootOpGroup
OpRecordsImportResult
OpProjectPlan
  • 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
  • openCosts: OpRevisedCosts
  • remainingCosts: OpSubtractedCostsObject
  • effortVariances: double
  • effortVariancesPercent: double
  • costVariances: OpCosts
  • costVariancesPercent: OpCostsVariance
  • openEffort: double
  • expectedEffort: double
  • costsProgress: double
  • datesProgress: double
  • baseCostsTotal: double
  • baseCosts: OpCosts
  • actualCostsTotal: double
  • actualCosts: OpCosts
  • expectedCostsTotal: double
  • openCostsTotal: double
  • remainingCostsTotal: double
  • expectedCosts: OpExpectedCosts
  • id: string
OpProjectStatusList
OpResourceWorkRecordList
OpGroup
  • name: string
  • displayName: string
  • description: string
  • source: integer
  • created: string
  • modified: string
  • id: string
OpUnavailabilityTypeList
Id
  • id: integer
OpRequirement
  • baseEffort: double
  • openEffort: double
  • storyPoints: double
  • created: string
  • modified: string
  • externalLinkURL: string
  • id: string
OpProjectClassification
  • sequence: integer
  • name: string
  • description: string
  • created: string
  • modified: string
  • id: string
OpTodoComment
  • name: string
  • text: string
  • commentDate: string
  • creator: OpUser
  • created: string
  • modified: string
  • id: string
OpAssignmentList
OpActivityComment
  • name: string
  • text: string
  • commentDate: string
  • creator: OpUser
  • activity: string
  • created: string
  • modified: string
  • id: string
OpServiceWarning
  • code: string
  • message: string
  • isWarning: boolean
  • argument: object
OpActivityCategoryList
CustomAttribute
  • type: string
  • name: string
  • description: string
  • label: string
  • sequence: integer
  • possibleValues: string[]
OpProduct
  • name: string
  • description: string
  • activeProject: string
  • created: string
  • modified: string
  • id: string
OpCosts
ProjectParentApiElement
  • isLink: boolean
  • id: string
OpUser
  • name: string
  • displayName: string
  • description: string
  • source: integer
  • level: integer
  • active: boolean
  • external: boolean
  • contact: OpContact
  • primaryResource: string
  • resources: string[]
  • created: string
  • modified: string
  • id: string
OpContact
  • lastName: string
  • firstName: string
  • eMail: string
  • phone: string
  • mobile: string
  • fax: string
  • jobTitle: string
  • created: string
  • modified: string
  • salutation: string
  • id: string
OpResourceList
OpActivityList
NodeOpSubject
OpAssignmentVersion
  • created: string
  • modified: string
  • id: string
OpExpectedCosts
OpAbsenceReason
  • name: string
  • description: string
  • created: string
  • modified: string
  • id: string
CustomTypeInfoList
OpStringList
  • string: string[]
OpAction
  • name: string
  • description: string
  • deleted: boolean
  • status: integer
  • sequence: integer
  • created: string
  • modified: string
  • id: string
OpAssignablePoolsResultList
RootOpSubject
JaxbRefTreeOpSubject
OpProjectNodeList
CustomTypeInfo
  • id: integer
  • name: string
  • description: string
  • tabLabel: string
  • defaultType: boolean
  • customValueInfo: CustomAttribute[]
  • title: string
InputStream
CustomValueApiElement
  • name: string
  • type: string
  • value: object
OpCostsVariance
  • costs: double
  • profit: double
OpEventLogEntry
  • 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
OpActivityCategory
  • name: string
  • description: string
  • color: integer
  • defaultCategory: boolean
  • active: boolean
  • created: string
  • modified: string
  • rgbColor: string
  • id: string
OpStringHolder
  • value: string
OpCostsProgress
  • costs: double
  • profit: double
OpActivity
  • name: string
  • description: string
  • type: integer
  • subType: integer
  • attributes: integer
  • category: string
  • sequence: integer
  • outlineLevel: integer
  • start: string
  • finish: string
  • duration: double
  • leadTime: double
  • followUpTime: double
  • complete: double
  • priority: integer
  • baseEffort: double
  • unassignedEffort: double
  • actualEffort: double
  • remainingEffort: double
  • deleted: boolean
  • expanded: boolean
  • template: boolean
  • revisedRemainingEffort: double
  • revisedComplete: double
  • projectPlan: string
  • responsibleResource: string
  • assignments: string[]
  • comments: OpActivityComment[]
  • actions: OpAction[]
  • wbsCode: string
  • environment: string
  • contactPersons: string
  • authorized: string
  • authorizationComment: string
  • postProjectPhaseComment: string
  • requirement: string
  • created: string
  • modified: string
  • status: integer
  • payment: double
  • effortBillable: double
  • effortAbsoluteBillable: double
  • costsAbsoluteBillable: double
  • parentActivity: string
  • durationDays: double
  • normalizedSequence: integer
  • openCosts: OpRevisedCosts
  • remainingCosts: OpSubtractedCostsOpCosts
  • effortVariances: double
  • effortVariancesPercent: double
  • costVariances: OpCosts
  • costVariancesPercent: OpCostsProgress
  • predecessorActivities: ActivityDependency[]
  • successorActivities: ActivityDependency[]
  • openEffort: double
  • customValues: CustomValueApiElement[]
  • extendedName: string
  • id: string
VersionInfo
  • id: Id
  • name: string
  • comment: string
  • version: integer
  • realVersionNumber: integer
  • checkInTime: string
  • workingVersion: boolean
  • baselineVersion: boolean
  • idString: string
OpEventLogEntryList
OpAssignment
  • 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
OpProjectNode
  • number: string
  • name: string
  • description: string
  • start: string
  • finish: 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
  • 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[]
  • displayName: string
  • id: string
OpProjectClassificationList
ResourceParentApiElement
  • isLink: boolean
  • id: string
OpCost
  • name: string
  • value: double
OpAssignmentVersionList
ActivityDependency
  • type: integer
  • onCriticalPath: boolean
  • conflict: boolean
  • activity: string
NodeOpGroup

Ready for the next step?

ONEPOINT Projects is the first 100% web-based, fully-integrated project and portfolio management solution that does not force you to compromise between usability and deploying a "real" PPM solution. Interested?

Watch tutorial videos Get free trial