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 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 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/...)
  • 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

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

Progress

  • put /progress/updateActivityProgress/{activityId}
    Update progress data (start, finish date) for activity: activityId

    Request

    Parameters
    Name 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 body
    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. 2019-12-31Z) query
        replaceTo string deletion ends at this date (inclusive) (e.g. 2019-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 OpActivityForApiUnmarshall 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 OpActivityForApiUnmarshall 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. 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
      • 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. 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/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. 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/listMyWorkRecords
        List resouce work records for resources linked to me

        Request

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

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

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

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

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

        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
      PermissionLevel
      • permissionLevel: integer
      • permissions: integer
      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
      • 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
      OpTodoList
      OpResourceForApiUnmarshall
      • 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
      CustomAttributes
      ProjectChildApiElement
      • type: string
      • id: string
      OpProjectPlanList
      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
      OpRelease
      • product: string
      • name: string
      • description: string
      • releaseDate: string
      • activeProject: string
      • created: string
      • modified: 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
      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
      • 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
      OpRecordsImportResult
      OpProjectStatusList
      AccessLevel
      • accessLevel: integer
      • access: integer
      • adminable: boolean
      OpResourceWorkRecordList
      OpGroup
      • name: string
      • description: string
      • source: integer
      • created: string
      • modified: string
      • displayName: 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
      OpActivityCategoryList
      OpServiceWarning
      • code: string
      • message: string
      • isWarning: boolean
      • argument: object
      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
      • 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
      OpActivityList
      OpResourceList
      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
      CustomValueApiElement
      • name: string
      • type: string
      • value: object
      InputStream
      OpCostsVariance
      • profit: double
      • costs: double
      OpActivityForApiUnmarshall
      • 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
      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
      • profit: double
      • costs: double
      OpActivity
      • 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
      VersionInfo
      • id: Id
      • name: string
      • comment: string
      • version: integer
      • realVersionNumber: integer
      • checkInTime: string
      • scenario: PortfolioScenario
      • baselineVersion: boolean
      • workingVersion: 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
      PortfolioScenario
      OpProjectNode
      • 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
      OpProjectClassificationList
      OpCost
      • name: string
      • value: double
      ResourceParentApiElement
      • isLink: boolean
      • id: string
      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