aid: openproject name: OpenProject description: >- OpenProject is an open source project management platform offering work package tracking, Gantt charts, agile boards, time tracking, BIM, and enterprise project portfolio management. The OpenProject APIv3 is a hypermedia (HAL+JSON) REST API that exposes work packages, projects, users, attachments, custom fields, and many other resources. type: Index accessModel: pricing: freemium onboarding: self-serve trial: false try_now: true public: false label: Freemium · Self-serve signup confidence: high source: - plans - authentication generated: '2026-07-22' method: derived position: Consumer access: 3rd-Party image: https://kinlane-images.s3.amazonaws.com/shared/apis-json/icons/openproject.png tags: - Agile - Gantt - Open Source - Project Management - Time Tracking - Work Packages created: '2025-01-08' modified: '2026-05-19' url: https://raw.githubusercontent.com/api-evangelist/openproject/refs/heads/main/apis.yml specificationVersion: '0.19' apis: - aid: openproject:openproject-actions-capabilities-api name: OpenProject Actions & Capabilities API description: >- An action is a change one can trigger within the OpenProject instance. This could be creating a work package, exporting work packages or updating a user. An action can also be something where the user is able to be involved so where the user is in the passive role e.g. when being assigned a work package. A capability combines an action with a context and a principal. It thus communicates, which principal can carry out (or be passively involved) which action within a certain context. E.g. a user might have the capability of creating work packages within a project. In other words, an action is independent of a principal and context while a capability is a relation between an action, the context and the principal. The actions are most of the time derived from permissions which can be configured via the administrative UI where an administrator selects from a set of permissions to be granted per role. But there are other cases, e.g. in order to become assignee or responsible of a work package, a user has to have a role which allows having work packages assigned which is not a permission. Even though user might have a capability, it might still not be possible to carry out the action because some other requirement is not met. E.g. a user might have the capability to update work packages, but if a particular work package is in a readonly state, that work package cannot be updated. *Only a small set of actions that actually already exist in the system are currently exposed via the api. They will be added over time.* ## Action An action describes what can be carried out within the application. Until an action becomes assigned, which turns it into a capability, it remains in the state of "could be". ### Linked Properties | Link | Description | Type | Constraints | Supported operations | |:-------------------:|----------------------------------------- | ------------- | -------------------------------------------------------------- | -------------------- | | self | The action | Action | not null | READ | ### Local Properties | Property | Description | Type | Constraints | Supported operations | | :---------: | --------------------------------------------- | ----------- | ----------- | -------------------- | | id | Identifier for the action | String | Not null | READ | | name | A human readable name for the action *Not yet implemented* | String | Not null | READ | | description | Describes what can be done by principals having that action *Not yet implemented* | String | Not null | READ | | modules | Clusters the actions into groups into which they belong logically *Not yet implemented* | []String | Not null | READ | ## Capabilities Actions can be assigned to a principal by assigning roles to that principal. E.g. a user might receive the 'work_packages/show' action by having a role called reader assigned within a project. Whenever a principal is assigned an action within a context, the principal has additional capabilities. Exactly which actions can be gained by having a role assigned depends on the configuration of that role. The configuration is adaptable by admins within the administration of the OpenProject instance. ### Linked Properties | Link | Description | Type | Constraints | Supported operations | |-------------------- |----------------------------------------- | ------------- | --------------- | -------------------- | | self | The capability | | | | | action | The action the principal is granted | Action | not null | READ | | context | The context the principal has this the action in. This is typically a workspace or the global context. | Workspace or null | | READ | | principal | The principal being allowed the action. | Action | not null | READ | ### Local Properties | Property | Description | Type | Constraints | Supported operations | | :---------: | --------------------------------------------- | ----------- | ----------- | -------------------- | | id | Identifier for the action | String | Not null | READ | | name | A human readable name for the action | String | Not null | READ | humanURL: https://www.openproject.org/docs/api/ baseURL: https://community.openproject.org/api/v3 tags: - Actions & Capabilities properties: - type: OpenAPI url: openapi/openproject-actions-capabilities-api-openapi.yml - type: Documentation url: https://www.openproject.org/docs/api/ - type: Introduction url: https://www.openproject.org/docs/api/introduction/ - type: Endpoints url: https://www.openproject.org/docs/api/endpoints/ - type: GitHub url: https://github.com/opf/openproject - aid: openproject:openproject-activities-api name: OpenProject Activities API description: >- ## Local Properties | Property | Description | Type | Constraints | Supported operations | | :---------: | ------------- | ---- | ----------- | -------------------- | | id | Activity id | Integer | x > 0 | READ | | version | Activity version | Integer | x > 0 | READ | | comment | | Formattable | | READ / WRITE | | details | | Array of Formattable | | READ | | createdAt | Time of creation | DateTime | | READ | | updatedAt | Time of update | DateTime | | READ | Activity can be either _type `Activity` or _type `Activity::Comment`. humanURL: https://www.openproject.org/docs/api/ baseURL: https://community.openproject.org/api/v3 tags: - Activities properties: - type: OpenAPI url: openapi/openproject-activities-api-openapi.yml - type: Documentation url: https://www.openproject.org/docs/api/ - type: Introduction url: https://www.openproject.org/docs/api/introduction/ - type: Endpoints url: https://www.openproject.org/docs/api/endpoints/ - type: GitHub url: https://github.com/opf/openproject - aid: openproject:openproject-attachments-api name: OpenProject Attachments API description: >- Attachments are files that were uploaded to OpenProject. Each attachment belongs to a single container (e.g. a work package or a board message). ## Actions | Link | Description | Condition | |:-------------------:|----------------------------------------------------------------------| -------------------------------------------- | | delete | Deletes this attachment | **Permission**: edit on attachment container or being the author for attachments without container | ## Linked Properties | Link | Description | Type | Constraints | Supported operations | |:----------------:| --------------------------------------------------- | ------------- | ----------- | -------------------- | | self | This attachment | Attachment | not null | READ | | container | The object (e.g. WorkPackage) housing the attachment| Anything | not null | READ | | author | The user who uploaded the attachment | User | not null | READ | | downloadLocation | Direct download link to the attachment | - | not null | READ | ## Local Properties | Property | Description | Type | Constraints | Supported operations | |:------------:| ----------------------------------------------- | ----------- | ----------- | -------------------- | | id | Attachment's id | Integer | x > 0 | READ | | title | The name of the file | String | not null | READ | | fileName | The name of the uploaded file | String | not null | READ | | fileSize | The size of the uploaded file in Bytes | Integer | x >= 0 | READ | | description | A user provided description of the file | Formattable | not null | READ | | contentType | The files MIME-Type as determined by the server | String | not null | READ | | digest | A checksum for the files content | Digest | not null | READ | | createdAt | Time of creation | DateTime | not null | READ | humanURL: https://www.openproject.org/docs/api/ baseURL: https://community.openproject.org/api/v3 tags: - Attachments properties: - type: OpenAPI url: openapi/openproject-attachments-api-openapi.yml - type: Documentation url: https://www.openproject.org/docs/api/ - type: Introduction url: https://www.openproject.org/docs/api/introduction/ - type: Endpoints url: https://www.openproject.org/docs/api/endpoints/ - type: GitHub url: https://github.com/opf/openproject - aid: openproject:openproject-budgets-api name: OpenProject Budgets API description: >- *Note: Budgets are currently only implemented as a stub. Further properties of budgets might be added at a future date, however they will require the view budget permission to be displayed.* ## Linked Properties: | Link | Description | Type | Constraints | Supported operations | |:---------:|-------------------------------------------- | ------------- | --------------------- | -------------------- | | self | This budget | Budget | not null | READ | ## Properties | Property | Description | Type | Constraints | Supported operations | Condition | | :---------: | ------------------------------------------- | ----------- | ----------- | -------------------- | --------------------------- | | id | Budget id | Integer | x > 0 | READ | | | subject | Budget name | String | not empty | READ | | humanURL: https://www.openproject.org/docs/api/ baseURL: https://community.openproject.org/api/v3 tags: - Budgets properties: - type: OpenAPI url: openapi/openproject-budgets-api-openapi.yml - type: Documentation url: https://www.openproject.org/docs/api/ - type: Introduction url: https://www.openproject.org/docs/api/introduction/ - type: Endpoints url: https://www.openproject.org/docs/api/endpoints/ - type: GitHub url: https://github.com/opf/openproject - aid: openproject:openproject-categories-api name: OpenProject Categories API description: >- The categories endpoints return collections or single entities of type `Category`. The following tables list the different properties of `Category` entities. ## Linked Properties | Link | Description | Type | Constraints | Supported operations | |:---------------:| --------------------------------------------------- | ------------- | ----------- | -------------------- | | self | This category | Category | not null | READ | | project | The project of this category | Project | not null | READ | | defaultAssignee | Default assignee for work packages of this category | User | | READ | ## Local Properties | Property | Description | Type | Constraints | Supported operations | | :--------: | ------------- | ------- | ----------- | -------------------- | | id | Category id | Integer | x > 0 | READ | | name | Category name | String | | READ | humanURL: https://www.openproject.org/docs/api/ baseURL: https://community.openproject.org/api/v3 tags: - Categories properties: - type: OpenAPI url: openapi/openproject-categories-api-openapi.yml - type: Documentation url: https://www.openproject.org/docs/api/ - type: Introduction url: https://www.openproject.org/docs/api/introduction/ - type: Endpoints url: https://www.openproject.org/docs/api/endpoints/ - type: GitHub url: https://github.com/opf/openproject - aid: openproject:openproject-collections-api name: OpenProject Collections API description: >- Whenever a client calls a resource that can return more than one element, it will receive a collection of elements. However as collections can become quite large, the API will **not** simply return a JSON array, but a special collection object that will contain the actual elements in its embedded property `elements`. Collections *may* be paginated, this means that a single response from the server will not contain all elements of the collection, but only a subset. In this case the client can issue further requests to retrieve the remaining elements. There are two ways to access the result pages of a paginated collection: * offset based pagination * cursor based pagination The available ways of pagination depend on the collection queried. Some collections feature no pagination at all, meaning they will always return all elements. Others might only offer one of the two pagination methods or both of them. A collection also carries meta information like the total count of elements in the collection or - in case of a paginated collection - the amount of elements returned in this response and action links to retrieve the remaining elements. ## Local Properties | Property | Description | Type | Availability | |:--------:| --------------------------------------------------------------- | ------- | --------------------------- | | total | The total amount of elements available in the collection | Integer | always | | pageSize | Amount of elements that a response will hold | Integer | when paginated | | count | Actual amount of elements in this response | Integer | always | | offset | The page number that is requested from paginated collection | Integer | when offset based available | | groups | Summarized information about aggregation groups | Object | when grouping | | totalSums| Aggregations of supported values for elements of the collection | Object | when showing sums | ## Links | Link | Description | Availability | |:----------------:| ------------------------------------------------------------------------ | --------------------------- | | self | Link to the current page in the collection | always | | changeSize | Templated link to change the page size, might change relative position | when paginated | | jumpTo | Templated link to jump to a specified offset | when offset based available | | nextByOffset | Link to retrieve the following page of elements (offset based) | when offset based available | | previousByOffset | Link to retrieve the preceding page of elements (offset based) | when offset based available | | nextByCursor | Link to retrieve the elements following the current page (cursor based) | when cursor based available | | previousByCursor | Link to retrieve the elements preceding the current page (cursor based) | when cursor based available | humanURL: https://www.openproject.org/docs/api/ baseURL: https://community.openproject.org/api/v3 tags: - Collections properties: - type: OpenAPI url: openapi/openproject-collections-api-openapi.yml - type: Documentation url: https://www.openproject.org/docs/api/ - type: Introduction url: https://www.openproject.org/docs/api/introduction/ - type: Endpoints url: https://www.openproject.org/docs/api/endpoints/ - type: GitHub url: https://github.com/opf/openproject - aid: openproject:openproject-configuration-api name: OpenProject Configuration API description: >- The configuration endpoint allows to read certain configuration parameters of the OpenProject instance. Note that there is no 1:1 relationship between this endpoint and the settings an administrator has at hand to modify the behaviour of the application via configuration.yml or ENV variables. For now this endpoint will only allow access to settings deemed useful for a client to know in general. As clients might rely on the combination of both, the system settings as well as the current user's preferences, the resource embeds the current user's preferences so client can fetch both with one request. | Link | Description | Type | Nullable | Supported operations | |:-------------------:| ------------------------------------------------ | ------------- | -------- | -------------------- | | self | The configuration | Configuration | | READ | | userPreferences | The preferences of the current user | UserPreferences | | READ | ## Local Properties | Property | Description | Type | Condition | Supported operations | | :-----------------------: | -------------------------------------------------------------------------- | ---------- | ----------------- | -------------------- | | maximumAttachmentFileSize | The maximum allowed size of an attachment in Bytes | Integer | | READ | | perPageOptions | Page size steps to be offered in paginated list UI | Integer[] | | READ | | hostName | The host name configured for the system | String | | READ | | durationFormat | The format used to display Work, Remaining Work, and Spent time durations. | String | | READ | | activeFeatureFlags | The list of all feature flags that are active | String[] | | READ | humanURL: https://www.openproject.org/docs/api/ baseURL: https://community.openproject.org/api/v3 tags: - Configuration properties: - type: OpenAPI url: openapi/openproject-configuration-api-openapi.yml - type: Documentation url: https://www.openproject.org/docs/api/ - type: Introduction url: https://www.openproject.org/docs/api/introduction/ - type: Endpoints url: https://www.openproject.org/docs/api/endpoints/ - type: GitHub url: https://github.com/opf/openproject - aid: openproject:openproject-custom-actions-api name: OpenProject Custom actions API description: >- Custom actions are a preconfigured set of changes that are applied to a work package. Currently, this resource is a stub. The conditions and changes defined for the custom action are not yet present in the resource. ## Actions | Link | Description | Condition | |:-------------------:|----------------------------------------------------------------------| --------------------------------------- | | executeImmediately | Apply the action to a work package | ## Linked Properties | Property | Description | Type | Constraints | Supported operations | | :--------------: | ------------------------------------------------------ | ----------- | -------------------------------- | -------------------- | | self | This custom action | CustomAction | not null | READ | ## Local Properties | Property | Description | Type | Constraints | Supported operations | | :--------------: | ------------------------------------------------------ | ----------- | ------------ | -------------------- | | id | Custom action id | Integer | x > 0 | READ | | name | The user selected name of the custom action | String | | READ | | description | A text describing the custom action | String | | READ | humanURL: https://www.openproject.org/docs/api/ baseURL: https://community.openproject.org/api/v3 tags: - Custom actions properties: - type: OpenAPI url: openapi/openproject-custom-actions-api-openapi.yml - type: Documentation url: https://www.openproject.org/docs/api/ - type: Introduction url: https://www.openproject.org/docs/api/introduction/ - type: Endpoints url: https://www.openproject.org/docs/api/endpoints/ - type: GitHub url: https://github.com/opf/openproject - aid: openproject:openproject-custom-field-items-api name: OpenProject Custom Field Items API description: The Custom Field Items API from OpenProject — 2 operation(s) for custom field items. humanURL: https://www.openproject.org/docs/api/ baseURL: https://community.openproject.org/api/v3 tags: - Custom Field Items properties: - type: OpenAPI url: openapi/openproject-custom-field-items-api-openapi.yml - type: Documentation url: https://www.openproject.org/docs/api/ - type: Introduction url: https://www.openproject.org/docs/api/introduction/ - type: Endpoints url: https://www.openproject.org/docs/api/endpoints/ - type: GitHub url: https://github.com/opf/openproject - aid: openproject:openproject-custom-fields-api name: OpenProject Custom Fields API description: The Custom Fields API from OpenProject — 1 operation(s) for custom fields. humanURL: https://www.openproject.org/docs/api/ baseURL: https://community.openproject.org/api/v3 tags: - Custom Fields properties: - type: OpenAPI url: openapi/openproject-custom-fields-api-openapi.yml - type: Documentation url: https://www.openproject.org/docs/api/ - type: Introduction url: https://www.openproject.org/docs/api/introduction/ - type: Endpoints url: https://www.openproject.org/docs/api/endpoints/ - type: GitHub url: https://github.com/opf/openproject - aid: openproject:openproject-custom-options-api name: OpenProject Custom Options API description: >- The custom options endpoints return collections or single entities of type `CustomOption`. The following tables list the different properties of `CustomOption` entities. ## Linked Properties | Link | Description | Type | Constraints | Supported operations | |:-------------:|-------------------------- | ------------- | ----------- | -------------------- | | self | This custom option | CustomOption | not null | READ | ## Local Properties | Property | Description | Type | Constraints | Supported operations | |:----------------:| ---------------------------------------------- | -------- | ----------- | -------------------- | | id | The identifier | Integer | | READ | | value | The value defined for this custom option | String | | READ | custom options are options of list custom fields. humanURL: https://www.openproject.org/docs/api/ baseURL: https://community.openproject.org/api/v3 tags: - Custom Options properties: - type: OpenAPI url: openapi/openproject-custom-options-api-openapi.yml - type: Documentation url: https://www.openproject.org/docs/api/ - type: Introduction url: https://www.openproject.org/docs/api/introduction/ - type: Endpoints url: https://www.openproject.org/docs/api/endpoints/ - type: GitHub url: https://github.com/opf/openproject - aid: openproject:openproject-documents-api name: OpenProject Documents API description: >- A document is a file containing a list of attachments. *Please note, that the endpoint is only a stub for now.* ## Actions None yet ## Linked Properties | Link | Description | Type | Constraints | Supported operations | Condition | | :-----------: | ------------------------------------- | ------------- | --------------------- | -------------------- | ----------------------------------------- | | self | This document | Document | not null | READ | | | project | The project the document is in | Project | not null | READ / WRITE | | | attachments | The attachments belonging to the document | []Attachment | not null | READ / WRITE | | ## Local Properties | Property | Description | Type | Constraints | Supported operations | Condition | | :----------: | --------------------------------------------------------- | -------- | ---------------------------------------------------- | -------------------- | ----------------------------------------------------------- | | id | Document's id | Integer | x > 0 | READ | | | title | The title chosen for the collection of documents | String | max 60 characters | READ | | | description | A text describing the documents | String | | READ | | | createdAt | The time the document was created at | DateTime | | READ |   | humanURL: https://www.openproject.org/docs/api/ baseURL: https://community.openproject.org/api/v3 tags: - Documents properties: - type: OpenAPI url: openapi/openproject-documents-api-openapi.yml - type: Documentation url: https://www.openproject.org/docs/api/ - type: Introduction url: https://www.openproject.org/docs/api/introduction/ - type: Endpoints url: https://www.openproject.org/docs/api/endpoints/ - type: GitHub url: https://github.com/opf/openproject - aid: openproject:openproject-emojireactions-api name: OpenProject EmojiReactions API description: The EmojiReactions API from OpenProject — 2 operation(s) for emojireactions. humanURL: https://www.openproject.org/docs/api/ baseURL: https://community.openproject.org/api/v3 tags: - EmojiReactions properties: - type: OpenAPI url: openapi/openproject-emojireactions-api-openapi.yml - type: Documentation url: https://www.openproject.org/docs/api/ - type: Introduction url: https://www.openproject.org/docs/api/introduction/ - type: Endpoints url: https://www.openproject.org/docs/api/endpoints/ - type: GitHub url: https://github.com/opf/openproject - aid: openproject:openproject-favorites-api name: OpenProject Favorites API description: The Favorites API from OpenProject — 2 operation(s) for favorites. humanURL: https://www.openproject.org/docs/api/ baseURL: https://community.openproject.org/api/v3 tags: - Favorites properties: - type: OpenAPI url: openapi/openproject-favorites-api-openapi.yml - type: Documentation url: https://www.openproject.org/docs/api/ - type: Introduction url: https://www.openproject.org/docs/api/introduction/ - type: Endpoints url: https://www.openproject.org/docs/api/endpoints/ - type: GitHub url: https://github.com/opf/openproject - aid: openproject:openproject-file-links-api name: OpenProject File Links API description: The File Links API from OpenProject — 14 operation(s) for file links. humanURL: https://www.openproject.org/docs/api/ baseURL: https://community.openproject.org/api/v3 tags: - File Links properties: - type: OpenAPI url: openapi/openproject-file-links-api-openapi.yml - type: Documentation url: https://www.openproject.org/docs/api/ - type: Introduction url: https://www.openproject.org/docs/api/introduction/ - type: Endpoints url: https://www.openproject.org/docs/api/endpoints/ - type: GitHub url: https://github.com/opf/openproject - aid: openproject:openproject-forms-api name: OpenProject Forms API description: >- This API provides forms as a concept to aid in editing or creating resources. The goal of forms is to: * make writable properties of a resource discoverable * show to which values a property can be set * validate changes to a resource and indicate validation errors These benefits aside, a client can freely choose to immediately edit a resource without prior validation by a form. In the case of an invalid request the edit will fail and return appropriate errors nevertheless. A form is associated to a single resource and aids in performing changes on that resource. When posting to a form endpoint with an empty request body or an empty JSON object, you will receive an initial form for the associated resource. Subsequent calls to the form should contain a single JSON object as described by the form. ## Actions | Link | Description | Condition | |:-------------------:| --------------------------------------------------------------------- | -------------------------------- | | validate | Validate changes, show errors and allowed values for changed resource | | | commit | Actually perform changes to the resource | form content is valid | | previewMarkup | Post markup (e.g. markdown) here to receive an HTML-rendered response | | ## Linked Properties | Link | Description | Type | Nullable | Supported operations | |:-------------------:| ------------------------------------------------ | ------------- | -------- | -------------------- | | self | This form | Form | | READ | ## Embedded Properties: Apart from the linked properties, forms contain always three other embedded properties: * `payload` * `schema` * `validationErrors` Their purpose is explained below. ### Payload The payload contains an edited version of the resource that will be modified when committing the form. This representation contains all writable properties of the resource and reflects all changes that the latest call to **validate** included, thereby acting as a preview for the changes. In case the client tries to set the value to something invalid, the invalid change is also reflected here. However a validation error (see below) indicates that a commit of this payload would fail. It might happen that setting one property affects the allowed values for another property. Thus by changing a property A the current value of another property B might become invalid. If the client did not yet touch the value of B, the payload will contain a default value for that property. Nevertheless the client will also receive an appropriate validation error for value B. The content of this element *can* be used as a template for the request body of a call to **validate** or **commit**. A call to **validate** and **commit** does not need to include all properties that were defined in the `payload` section. It is only necessary to include the properties that you want to change, as well as the `lockVersion` if one is present. However you *may* include all the properties sent in the `payload` section. ### Schema The schema embedded in a form is a normal [schema describing the underlying resource](https://www.openproject.org/docs/api/endpoints/schemas/). However, the embedded schema can change with each revalidation of the form. For example it might be possible, that changing the type of a work package affects its available properties, as well as possible values for certain properties. As this makes the embedded schema very dynamic, it is not included as a static link. ### Validation Errors Like a schema the validation errors build a dictionary where the key is a property name. Each value is an error object that indicates the error that occurred validating the corresponding property. There are only key value pairs for properties that failed validation, the element is empty if all validations succeeded. However note that even in the case of validation errors, the response you receive from the form endpoint will be an HTTP 200. That is because the main purpose of a form is helping the client to sort out validation errors. ### Meta object Form resources may have an additional `_meta` object that contains parameters to be sent together with the resource, but that do not belong to the resource itself. For example, parameters on if and how to send notifications for the action performed with the API request can be sent. Each individual endpoint will describe their meta properties, if available. humanURL: https://www.openproject.org/docs/api/ baseURL: https://community.openproject.org/api/v3 tags: - Forms properties: - type: OpenAPI url: openapi/openproject-forms-api-openapi.yml - type: Documentation url: https://www.openproject.org/docs/api/ - type: Introduction url: https://www.openproject.org/docs/api/introduction/ - type: Endpoints url: https://www.openproject.org/docs/api/endpoints/ - type: GitHub url: https://github.com/opf/openproject - aid: openproject:openproject-grids-api name: OpenProject Grids API description: >- A grid is a layout for a page or a part of the page of the OpenProject application. It defines the structure (number of rows and number of columns) as well as the contents of the page. The contents is defined by `GridWidget`s. While a `GridWidget` is its own type, it is not a resource in its own right as it is an intrinsic part of a `Grid`. Depending on what page a grid is defined for, different widgets may be eligible to be placed on the grid. The page might also define the permissions needed for accessing, creating or modifying the grid. Currently, the following pages employ grids: + /my/page: The My page every user has. Only a user can access or modify their "My page". *The delete action is not yet supported* ## Actions | Link | Description | Condition | |:-------------------:| -------------------------------------------------------------------- | ---------------------------------------------------------------- | | updateImmediately | Directly perform edits on this grid | **Permission**: depends on the page the grid is defined for | | update | Validate edits on the grid via a form resource before committing | **Permission**: depends on the page the grid is defined for | ## Linked Properties | Link | Description | Type | Constraints | Supported operations | Condition | | :-----------: | -------------------------------------------------------------- | ------------- | --------------------- | -------------------- | ----------------------------------------- | | self | This grid | Grid | not null | READ | | | page | The url of the page the grid is defined for | url | not null | READ / WRITE | The page cannot be changed after the creation | ## Local Properties | Property | Description | Type | Constraints | Supported operations | Condition | | :----------: | --------------------------------------------------------- | -------- | ---------------------------------------------------- | -------------------- | -------------- | | id | Grid's id | Integer | x > 0 | READ | | | rowCount | The number of rows the grid has | Integer | x > 0 | READ/WRITE | | | columnCount | The number of columns the grid has | Integer | x > 0 | READ/WRITE | | | widgets | The set of `GridWidget`s selected for the grid | []GridWidget | | READ/WRITE | The widgets cannot overlap | | createdAt | The time the grid was created | DateTime | | READ |   | | updatedAt | The time the grid was last updated | DateTime | | READ |   | ## GridWidget Properties | Property | Description | Type | Constraints | Supported operations | Condition | | :----------: | --------------------------------------------------------- | -------- | ---------------------------------------------------- | -------------------- | -------------- | | identifier | The kind of widget | String | not null | READ/WRITE | | | startRow | The row the widget starts at (1 based) | Integer | x > 0, x < rowCount of the grid, x < endRow | READ/WRITE | | | endRow | The row the widget ends. The widget's area does not include the row itself. | Integer | x > 0, x <= rowCount of the grid, x > startRow | READ/WRITE | | | startColumn | The column the widget starts at (1 based) | Integer | x > 0, x < columnCount of the grid, x < endColumn | READ/WRITE | | | endColumn | The column the widget ends. The widget's area does not include the column itself. | Integer | x > 0, x <= columnCount of the grid, x > startColumn | READ/WRITE | | | options | An options hash of values customizable by the widget | JSON | | READ/WRITE | | humanURL: https://www.openproject.org/docs/api/ baseURL: https://community.openproject.org/api/v3 tags: - Grids properties: - type: OpenAPI url: openapi/openproject-grids-api-openapi.yml - type: Documentation url: https://www.openproject.org/docs/api/ - type: Introduction url: https://www.openproject.org/docs/api/introduction/ - type: Endpoints url: https://www.openproject.org/docs/api/endpoints/ - type: GitHub url: https://github.com/opf/openproject - aid: openproject:openproject-groups-api name: OpenProject Groups API description: >- Groups are collections of users. They support assigning/unassigning multiple users to/from a project in one operation. This resource does not yet have the form and schema endpoints. But as all properties are static, clients should still be able to work with this resource. ## Actions ## Actions | Link | Description | Condition | |:-------------------:| -------------------------------------------------------------------- | ---------------------------------------------------------------- | | delete | Deletes the group. | **Permission**: Administrator | | updateImmediately | Updates the group's attributes. | **Permission**: Administrator | ## Linked Properties | Link | Description | Type | Constraints | Supported operations | Condition | |:-----------: |-------------------------------------------------------------- | ------------- | --------------------- | -------------------- | ----------------------------------------- | | self | This group | Group | not null | READ | | | memberships | Link to collection of all the group's memberships. The list will only include the memberships in projects in which the requesting user has the necessary permissions. | MemberCollection | | READ | **Permission**: view members or manage members in any project | | members | The list all all the users that are members of the group | UserCollection | | READ/WRITE | **Permission**: manage members in any project to read & admin to write | Depending on custom fields defined for versions, additional linked properties might exist. ## Local Properties | Property | Description | Type | Constraints | Supported operations | Condition | | :----------: | --------------------------------------------------------- | -------- | ---------------------------------------------------- | -------------------- | ----------------------------------------------------------- | | id | Group's id | Integer | x > 0 | READ | | | name | Group's full name, formatting depends on instance settings | String | | READ/WRITE | Admin to write | | createdAt | Time of creation | DateTime | | READ | Only visible by admins | | updatedAt | Time of the most recent change to the user | DateTime | | READ | Only visible by admins | Depending on custom fields defined for versions, additional properties might exist. humanURL: https://www.openproject.org/docs/api/ baseURL: https://community.openproject.org/api/v3 tags: - Groups properties: - type: OpenAPI url: openapi/openproject-groups-api-openapi.yml - type: Documentation url: https://www.openproject.org/docs/api/ - type: Introduction url: https://www.openproject.org/docs/api/introduction/ - type: Endpoints url: https://www.openproject.org/docs/api/endpoints/ - type: GitHub url: https://github.com/opf/openproject - aid: openproject:openproject-help-texts-api name: OpenProject Help texts API description: >- The help texts endpoints return collections or single entities of type `HelpText`. The following tables list the different properties of `HelpText` entities. ## Linked Properties | Link | Description | Type | Constraints | Supported operations | |:-------------:|-------------------------- | ------------- | ----------- | -------------------- | | self | This help text | HelpText | not null | READ | | editText | Edit the help text entry | text/htm | Admin | READ | ## Local Properties | Property | Description | Type | Constraints | Supported operations | | :---------: | --------------------------- | -------------------- | ----------- | -------------------- | | id | Help text id | Integer | x > 0 | READ | | attribute | Attribute name | String | | READ | | attributeCaption | Attribute caption | String | | READ | | helpText | Help text content | Formattable | | READ | humanURL: https://www.openproject.org/docs/api/ baseURL: https://community.openproject.org/api/v3 tags: - Help texts properties: - type: OpenAPI url: openapi/openproject-help-texts-api-openapi.yml - type: Documentation url: https://www.openproject.org/docs/api/ - type: Introduction url: https://www.openproject.org/docs/api/introduction/ - type: Endpoints url: https://www.openproject.org/docs/api/endpoints/ - type: GitHub url: https://github.com/opf/openproject - aid: openproject:openproject-meetings-api name: OpenProject Meetings API description: The Meetings API from OpenProject — 2 operation(s) for meetings. humanURL: https://www.openproject.org/docs/api/ baseURL: https://community.openproject.org/api/v3 tags: - Meetings properties: - type: OpenAPI url: openapi/openproject-meetings-api-openapi.yml - type: Documentation url: https://www.openproject.org/docs/api/ - type: Introduction url: https://www.openproject.org/docs/api/introduction/ - type: Endpoints url: https://www.openproject.org/docs/api/endpoints/ - type: GitHub url: https://github.com/opf/openproject - aid: openproject:openproject-memberships-api name: OpenProject Memberships API description: >- Users and groups can become members of a project. Such a membership will also have one or more roles assigned to it. By that, memberships control the permissions a user has within a project. There are also memberships that do not govern the permissions within a certain project but rather govern global permissions. Among the permissions that can be granted like this are the permissions to "Create project" and "Manage users". Those memberships do not have a project associated. When creating and updating memberships, a custom message can be sent to users of new and updated memberships. This message can be provided within the `_meta` group. ## Linked Properties | Link | Description | Type | Constraints | Supported operations | |:-------------------:|----------------------------------------- | ------------- | -------------------------------------------------------------- | -------------------- | | self | This membership | Membership | not null | READ | | project | The project for which the membership is granted | Project | | READ | | roles | The list of roles the user or group is granted in the project | RoleCollection | not null | READ | | principal | The user or group that was granted membership | User or Group | not null | READ | ## Local Properties | Property | Description | Type | Constraints | Supported operations | | :---------: | --------------------------------------------- | ----------- | ----------- | -------------------- | | id | Membership id | Integer | x > 0 | READ | | createdAt | Time of creation | DateTime | not null | READ | | updatedAt | Time of latest update | DateTime | not null | READ | ## Meta parameters | Meta property | Description | Type | Constraints | Supported operations |Condition | | :------------------------: | --------------------------------------------------- | ---- | ----------- | -------------------- |----------| | notificationMessage | The message included in the email(s) send to the users of new or updated memberships | Formattable | | READ/WRITE | | humanURL: https://www.openproject.org/docs/api/ baseURL: https://community.openproject.org/api/v3 tags: - Memberships properties: - type: OpenAPI url: openapi/openproject-memberships-api-openapi.yml - type: Documentation url: https://www.openproject.org/docs/api/ - type: Introduction url: https://www.openproject.org/docs/api/introduction/ - type: Endpoints url: https://www.openproject.org/docs/api/endpoints/ - type: GitHub url: https://github.com/opf/openproject - aid: openproject:openproject-news-api name: OpenProject News API description: >- News are articles written by users in order to inform other users of important information. ## Actions | Link | Description | Condition | |:-------------------:|--------------------------------------------------------------------------| ---------------------------------------| | delete | Delete the new | **Permission**: manage news | | updateImmediately | Directly perform edits on the news | **Permission**: manage news | ## Linked Properties | Link | Description | Type | Constraints | Supported operations | Condition | | :-----------: | -------------------------------------| ------------- | --------------------- | -------------------- | ----------------------------------------- | | self | This news | News | not null | READ | | | project | The project the news is situated in | Project | not null | READ / WRITE | | | author | The user having created the news | User | not null | READ | | ## Local Properties | Property | Description | Type | Constraints | Supported operations | Condition | | :----------: | --------------------------------------------------------- | -------- | ---------------------------------------------------- | -------------------- | ----------------------------------------------------------- | | id | News' id | Integer | x > 0 | READ | | | title | The headline of the news | String | max 60 characters | READ | | | summary | A short summary | String | max 255 characters | READ |   | | description | The main body of the news with all the details | String | | READ | | | createdAt | The time the news was created at | DateTime | | READ |   | humanURL: https://www.openproject.org/docs/api/ baseURL: https://community.openproject.org/api/v3 tags: - News properties: - type: OpenAPI url: openapi/openproject-news-api-openapi.yml - type: Documentation url: https://www.openproject.org/docs/api/ - type: Introduction url: https://www.openproject.org/docs/api/introduction/ - type: Endpoints url: https://www.openproject.org/docs/api/endpoints/ - type: GitHub url: https://github.com/opf/openproject - aid: openproject:openproject-notifications-api name: OpenProject Notifications API description: >- Notifications are created through notifiable actions in OpenProject. Notifications are triggered by actions carried out in the system by users, e.g. editing a work package, but can also be send out because of time passing e.g. when a user is notified of a work package that is overdue. This endpoint only returns in-app notifications. ## Actions | Link | Description | Condition | |:-------------------:| -------------------------------------------------------------------- | --------------------------- | | read_ian | Marks the notification as read | notification is unread | | unread_ian | Marks the notification as unread | notification is read | ## Linked Properties | Link | Description | Type | Constraints | Supported operations | Condition | | :-----------: | ---------------------------------------- | -------------- | --------------------- | -------------------- | ----------------------------------------- | | self | This notification | Notification | not null | READ | | | project | The project containing the resource | Project | not null | READ | | | actor | The user that caused the notification | User | | READ | optional | | resource | The resource the notification belongs to | Polymorphic | not null | READ | | | activity | The journal the notification belongs to | Polymorphic | | READ | optional | | details | A list of objects including detailed information | Polymorphic | | READ | optional | ## Local Properties | Property | Description | Type | Constraints | Supported operations | Condition | | :----------: | --------------------------------------------------------- | -------- | ---------------------------------------------------- | -------------------- | ----------------------------------------------------------- | | id | Primary key | Integer | | READ | | | subject | The subject of the notification | String | | READ | | | reason | The reason causing the notification | String | | READ | | | readIAN | Whether the notification is read | Boolean | | READ | | humanURL: https://www.openproject.org/docs/api/ baseURL: https://community.openproject.org/api/v3 tags: - Notifications properties: - type: OpenAPI url: openapi/openproject-notifications-api-openapi.yml - type: Documentation url: https://www.openproject.org/docs/api/ - type: Introduction url: https://www.openproject.org/docs/api/introduction/ - type: Endpoints url: https://www.openproject.org/docs/api/endpoints/ - type: GitHub url: https://github.com/opf/openproject - aid: openproject:openproject-oauth-2-api name: OpenProject OAuth 2 API description: TBD humanURL: https://www.openproject.org/docs/api/ baseURL: https://community.openproject.org/api/v3 tags: - OAuth 2 properties: - type: OpenAPI url: openapi/openproject-oauth-2-api-openapi.yml - type: Documentation url: https://www.openproject.org/docs/api/ - type: Introduction url: https://www.openproject.org/docs/api/introduction/ - type: Endpoints url: https://www.openproject.org/docs/api/endpoints/ - type: GitHub url: https://github.com/opf/openproject - aid: openproject:openproject-portfolios-api name: OpenProject Portfolios API description: "Portfolios are one of the types of [workspaces](https://www.openproject.org/docs/api/endpoints/workspaces)\ \ in OpenProject structuring the information (e.g. work packages, wikis) into smaller sets. They are\ \ typically used to group, structure and manage sub-portfolios, programs and projects that\ntarget\ \ similar strategic goals of the organization. \n\nAs containers, they also control behaviour of the\ \ elements within them. One of the most important aspects of this is that portfolios limit permissions\ \ by having members with a certain permission set (roles) assigned to them.\n\n## Actions\n\n| Link\ \ | Description |\ \ Condition |\n\ |:--------------------------: |----------------------------------------------------------------------|\ \ --------------------------------- |\n\ | update | Form endpoint that aids in updating this portfolio \ \ | **Permission**: edit workspace \ \ |\n| updateImmediately | Directly update this portfolio \ \ | **Permission**: edit workspace \ \ |\n| delete | Delete this portfolio \ \ | **Permission**: admin \ \ |\n| favor | Mark this portfolio as favorited by\ \ the current user | **Permission**: none but login is required, only present if the\ \ portfolio is not yet favorited |\n| disfavor | Mark this portfolio as no longer\ \ favorited by the current user | **Permission**: none but login is required, only present if\ \ the portfolio is favorited |\n| createWorkPackage | Form endpoint that aids in\ \ preparing and creating a work package | **Permission**: add work packages \ \ |\n| createWorkPackageImmediately | Directly creates\ \ a work package in the portfolio | **Permission**: add work packages \ \ |\n\n## Linked Properties\n\n| Link \ \ | Description \ \ | Type | Constraints | Supported operations |Condition \ \ |\n| :----------:\ \ | ------------- \ \ | ---- | ----------- | -------------------- |-----------------------------------------\ \ |\n| self | This portfolio \ \ |\ \ Portfolio | not null | READ | \ \ |\n| ancestors | Array of all ancestors\ \ of the portfolio, down from the root node (first element) to the parent (last element). | Collection\ \ | not null | READ | **Permission** view portfolio on the ancestor portfolio.\ \ Non visible portfolios will be omitted |\n| categories | Categories available in this portfolio\ \ | Collection |\ \ not null | READ | \ \ |\n| types | Types available in this portfolio \ \ | Collection |\ \ not null | READ | **Permission**: view work packages or manage types \ \ |\n| versions | Versions available in this portfolio \ \ | Collection |\ \ not null | READ | **Permission**: view work packages or manage versions \ \ |\n| memberships | Memberships in the portfolio \ \ | Collection |\ \ not null | READ | **Permission**: view members \ \ |\n| workPackages | Work Packages of this portfolio \ \ | Collection |\ \ not null | READ | \ \ |\n| parent | Parent portfolio of the portfolio \ \ | Portfolio |\ \ | READ/WRITE | **Permission** edit workspace \ \ |\n| status | Denotes the status of the portfolio, so\ \ whether the portfolio is on track, at risk or is having trouble. | PortfolioStatus |\ \ | READ/WRITE | **Permission** edit workspace \ \ |\n\nDepending on custom fields defined for portfolios, additional\ \ links might exist.\n\nNote, that the parent and ancestor links may contain the \"undisclosed uri\"\ \ `urn:openportfolio-org:api:v3:undisclosed` in case an\nancestor portfolio is defined but the client\ \ lacks permission to see it. See the\n[general introduction into links' properties](https://www.openportfolio.org/docs/api/basic-objects/#local-properties)\ \ for more information.\n\n## Local Properties\n\n| Property | Description \ \ | Type \ \ | Constraints | Supported operations |\n| :---------------------:|\ \ ------------- \ \ | ---- | ----------- | -------------------- |\n| id\ \ | Portfolios' id \ \ | Integer | x > 0 | READ/WRITE\ \ |\n| identifier | \ \ | String | \ \ | READ/WRITE |\n| name | \ \ | String | \ \ | READ/WRITE |\n| active | Indicates whether\ \ the portfolio is currently active or already archived | Boolean \ \ | | READ/WRITE |\n| favorited \ \ | Indicates whether the portfolio is favorited by the current user \ \ | Boolean | | READ |\n\ | statusExplanation | A text detailing and explaining why the portfolio has the reported status\ \ | Formattable | | READ/WRITE\ \ |\n| public | Indicates whether the portfolio is accessible for everybody\ \ | Boolean | \ \ | READ/WRITE |\n| description | \ \ | Formattable | \ \ | READ/WRITE |\n| createdAt | Time of creation\ \ | DateTime\ \ | | READ |\n| updatedAt \ \ | Time of the most recent change to the portfolio \ \ | DateTime | | READ |\n\ \nDepending on custom fields defined for portfolios, additional properties might exist." humanURL: https://www.openproject.org/docs/api/ baseURL: https://community.openproject.org/api/v3 tags: - Portfolios properties: - type: OpenAPI url: openapi/openproject-portfolios-api-openapi.yml - type: Documentation url: https://www.openproject.org/docs/api/ - type: Introduction url: https://www.openproject.org/docs/api/introduction/ - type: Endpoints url: https://www.openproject.org/docs/api/endpoints/ - type: GitHub url: https://github.com/opf/openproject - aid: openproject:openproject-posts-api name: OpenProject Posts API description: >- Represents a post in a board. Posts are also referred to as messages in the application. *This resource is currently a stub* ## Actions | Link | Description | Condition | |:-------------------:|--------------------------------| --------------------------------------- | | addAttachment | Attach a file to the post | **Permission**: edit messages | ## Linked Properties | Property | Description | Type | Constraints | Supported operations | | :--------------: | ------------------------------------------------------ | ----------- | -------------- | -------------------- | | self | This post | Post | not null | READ | | attachments | The files attached to this post | Collection | | READ | | project | The project the post belongs to | Project | not null | READ | ## Local Properties | Property | Description | Type | Constraints | Supported operations | | :--------------: | ------------------------------------------- | ----------- | ------------------------------------ | -------------------- | | id | Identifier of this post | Integer | x > 0 | READ | | subject | The post's subject | String | not null | READ | humanURL: https://www.openproject.org/docs/api/ baseURL: https://community.openproject.org/api/v3 tags: - Posts properties: - type: OpenAPI url: openapi/openproject-posts-api-openapi.yml - type: Documentation url: https://www.openproject.org/docs/api/ - type: Introduction url: https://www.openproject.org/docs/api/introduction/ - type: Endpoints url: https://www.openproject.org/docs/api/endpoints/ - type: GitHub url: https://github.com/opf/openproject - aid: openproject:openproject-previewing-api name: OpenProject Previewing API description: >- Throughout OpenProject user input for many properties can be formatted using *Markdown*. Using the appropriate rendering endpoint it is possible to render custom formatted inputs into HTML and thus receive a preview of the rendered text. The request to a rendering endpoint must always have a MIME-Type of `text/plain`. The request body is the actual string that shall be rendered as HTML string. humanURL: https://www.openproject.org/docs/api/ baseURL: https://community.openproject.org/api/v3 tags: - Previewing properties: - type: OpenAPI url: openapi/openproject-previewing-api-openapi.yml - type: Documentation url: https://www.openproject.org/docs/api/ - type: Introduction url: https://www.openproject.org/docs/api/introduction/ - type: Endpoints url: https://www.openproject.org/docs/api/endpoints/ - type: GitHub url: https://github.com/opf/openproject - aid: openproject:openproject-principals-api name: OpenProject Principals API description: >- Principals are the superclass of users, groups and placeholder users. This endpoint returns all principals within a joined collection but can be filtered to e.g. only return groups or users. humanURL: https://www.openproject.org/docs/api/ baseURL: https://community.openproject.org/api/v3 tags: - Principals properties: - type: OpenAPI url: openapi/openproject-principals-api-openapi.yml - type: Documentation url: https://www.openproject.org/docs/api/ - type: Introduction url: https://www.openproject.org/docs/api/introduction/ - type: Endpoints url: https://www.openproject.org/docs/api/endpoints/ - type: GitHub url: https://github.com/opf/openproject - aid: openproject:openproject-priorities-api name: OpenProject Priorities API description: >- The priorities endpoints return collections or single entities of type `Priority`. The following tables list the different properties of `Priority` entities. ## Linked Properties | Link | Description | Type | Constraints | Supported operations | |:---------:|-------------------------------------------- | ------------- | --------------------- | -------------------- | | self | This priority | Priority | not null | READ | ## Local Properties | Property | Description | Type | Constraints | Supported operations | | :---------: | ------------------------------------------- | ---------- | ----------- | -------------------- | | id | Priority id | Integer | x > 0 | READ | | name | Priority name | String | not empty | READ | | position | Sort index of the priority | Integer | x > 0 | READ | | isDefault | Indicates whether this is the default value | Boolean | | READ | | isActive | Indicates whether the priority is available | Boolean | | READ | humanURL: https://www.openproject.org/docs/api/ baseURL: https://community.openproject.org/api/v3 tags: - Priorities properties: - type: OpenAPI url: openapi/openproject-priorities-api-openapi.yml - type: Documentation url: https://www.openproject.org/docs/api/ - type: Introduction url: https://www.openproject.org/docs/api/introduction/ - type: Endpoints url: https://www.openproject.org/docs/api/endpoints/ - type: GitHub url: https://github.com/opf/openproject - aid: openproject:openproject-programs-api name: OpenProject Programs API description: "Programs are one of the types of [workspaces](https://www.openproject.org/docs/api/endpoints/workspaces)\ \ in OpenProject structuring the information \n(e.g. work packages, wikis) into smaller sets. They\ \ are typically used to group, structure and manage projects that \ntarget similar strategic goals\ \ of the organization and belong to a portfolio. \n\nAs containers, they also control behaviour of\ \ the elements within them. One of the most important aspects of this is that programs limit permissions\ \ by having members with a certain permission set (roles) assigned to them.\n\n## Actions\n\n| Link\ \ | Description |\ \ Condition |\n\ |:--------------------------: |----------------------------------------------------------------------|\ \ --------------------------------- |\n\ | update | Form endpoint that aids in updating this program \ \ | **Permission**: edit workspace \ \ |\n| updateImmediately | Directly update this program \ \ | **Permission**: edit workspace \ \ |\n| delete | Delete this program \ \ | **Permission**: admin \ \ |\n| favor | Mark this program as favorited by the current\ \ user | **Permission**: none but login is required, only present if the program\ \ is not yet favorited |\n| disfavor | Mark this program as no longer favorited\ \ by the current user | **Permission**: none but login is required, only present if the program\ \ is favorited |\n| createWorkPackage | Form endpoint that aids in preparing and\ \ creating a work package | **Permission**: add work packages \ \ |\n| createWorkPackageImmediately | Directly creates a work package in\ \ the program | **Permission**: add work packages \ \ |\n\n## Linked Properties\n\n| Link | Description \ \ |\ \ Type | Constraints | Supported operations |Condition \ \ |\n| :----------: | ------------- \ \ | ----\ \ | ----------- | -------------------- |----------------------------------------- \ \ |\n| self | This program \ \ | Program \ \ | not null | READ | \ \ |\n| ancestors | Array of all ancestors of the program,\ \ down from the root node (first element) to the parent (last element). | Collection | not null\ \ | READ | **Permission** view program on the ancestor program. Non visible programs\ \ will be omitted |\n| categories | Categories available in this program \ \ | Collection | not null | READ \ \ | \ \ |\n| types | Types available in this program \ \ | Collection | not null | READ \ \ | **Permission**: view work packages or manage types \ \ |\n| versions | Versions available in this program \ \ | Collection | not null | READ |\ \ **Permission**: view work packages or manage versions \ \ |\n| memberships | Memberships in the program \ \ | Collection | not null | READ | **Permission**:\ \ view members |\n| workPackages\ \ | Work Packages of this program \ \ | Collection | not null | READ | \ \ |\n| parent | Parent\ \ program of the program \ \ | Program | | READ/WRITE | **Permission** edit workspace \ \ |\n| status | Denotes the\ \ status of the program, so whether the program is on track, at risk or is having trouble. \ \ | ProgramStatus | | READ/WRITE | **Permission** edit workspace \ \ |\n\nDepending on custom fields defined\ \ for programs, additional links might exist.\n\nNote, that the parent and ancestor links may contain\ \ the \"undisclosed uri\" `urn:openprogram-org:api:v3:undisclosed` in case an\nancestor program is\ \ defined but the client lacks permission to see it. See the\n[general introduction into links' properties](https://www.openproject.org/docs/api/basic-objects/#local-properties)\ \ for more information.\n\n## Local Properties\n\n| Property | Description \ \ | Type \ \ | Constraints | Supported operations |\n| :---------------------:| -------------\ \ | ---- \ \ | ----------- | -------------------- |\n| id \ \ | Programs' id \ \ | Integer | x > 0 | READ/WRITE |\n\ | identifier | \ \ | String | | READ/WRITE\ \ |\n| name | \ \ | String | \ \ | READ/WRITE |\n| active | Indicates whether the program is currently\ \ active or already archived | Boolean | \ \ | READ/WRITE |\n| favorited | Indicates whether the program\ \ is favorited by the current user | Boolean | \ \ | READ |\n| statusExplanation | A text detailing\ \ and explaining why the program has the reported status | Formattable\ \ | | READ/WRITE |\n| public \ \ | Indicates whether the program is accessible for everybody \ \ | Boolean | | READ/WRITE |\n| description\ \ | \ \ | Formattable | | READ/WRITE \ \ |\n| createdAt | Time of creation \ \ | DateTime | \ \ | READ |\n| updatedAt | Time of the most recent change to the program\ \ | DateTime | \ \ | READ |\n\nDepending on custom fields defined for programs, additional\ \ properties might exist." humanURL: https://www.openproject.org/docs/api/ baseURL: https://community.openproject.org/api/v3 tags: - Programs properties: - type: OpenAPI url: openapi/openproject-programs-api-openapi.yml - type: Documentation url: https://www.openproject.org/docs/api/ - type: Introduction url: https://www.openproject.org/docs/api/introduction/ - type: Endpoints url: https://www.openproject.org/docs/api/endpoints/ - type: GitHub url: https://github.com/opf/openproject - aid: openproject:openproject-project-phase-definitions-api name: OpenProject Project Phase Definitions API description: >- Project phases separate the whole of the project's duration into smaller, distinct parts. Such a phase will then have different focus on certain aspects of project management. E.g. while the first phase might be about gathering requirements, the second phase might be about implementing the requirements and the third phase might be about testing the implementation. The phases within the projects rely on an abstract definition of the project life cycle valid in a number of projects within the OpenProject instance. That definition is a set of ProjectPhaseDefinitions. ## Actions * None currently ## Linked Properties | Link | Description | Type | Constraints | Supported operations |Condition | | :----------: | ------------- | ---- | ----------- | -------------------- |----------------------------------------- | | self | This project phase definition | ProjectPhaseDefinition | not null | READ | | ## Local Properties | Property | Description | Type | Constraints | Supported operations | |--------------- |-------------------------------------------------------------|-----------|-------------|----------------------| | id | Project phase definition's id | Integer | x > 0 | READ | | name | | String | | READ | | startGate | Indicates whether the project phase has a gate at the start | Boolean | | READ | | startGateName | The name of the gate at the start of the phase | String | | READ | | finishGate | Indicates whether the project phase has a gate at the end | Boolean | | READ | | finishGateName | The name of the gate at the end of the phase | String | | READ | | createdAt | Time of creation | DateTime | | READ | | updatedAt | Time of the most recent change to the project phase | DateTime | | READ | humanURL: https://www.openproject.org/docs/api/ baseURL: https://community.openproject.org/api/v3 tags: - Project Phase Definitions properties: - type: OpenAPI url: openapi/openproject-project-phase-definitions-api-openapi.yml - type: Documentation url: https://www.openproject.org/docs/api/ - type: Introduction url: https://www.openproject.org/docs/api/introduction/ - type: Endpoints url: https://www.openproject.org/docs/api/endpoints/ - type: GitHub url: https://github.com/opf/openproject - aid: openproject:openproject-project-phases-api name: OpenProject Project Phases API description: >- Project phases separate the whole of the project's duration into smaller, distinct parts where each phase has its own start and end date. Such a phase will then have different focus on certain aspects of project management. E.g. while the first phase might be about gathering requirements, the second phase might be about implementing the requirements and the third phase might be about testing the implementation. Phases within a project are concrete instances of a phase definition. That way, one or a number of project life cycles can be defined throughout the OpenProject instance and then be reused in different projects. Projects can enable or disable the use of a phase definition in a project and assign dates to the phase instances. ## Actions * None currently ## Linked Properties | Link | Description | Type | Constraints | Supported operations |Condition | | :----------: | ------------- | ---- | ----------- | -------------------- |----------------------------------------- | | self | This project phase | ProjectPhase | not null | READ | | | definition | This definition this phase relies on | ProjectPhaseDefinition | not null | READ | | | project | This project this phase is instantiated in | Project | not null | READ | | ## Local Properties | Property | Description | Type | Constraints | Supported operations | | :---------------------:| ------------- | ---- | ----------- | -------------------- | | id | Project phase's id | Integer | x > 0 | READ | | name | | String | | READ | | active | Indicates whether the project phase is currently active within the project | Boolean | | READ | | createdAt | Time of creation | DateTime | | READ | | updatedAt | Time of the most recent change to the project phase | DateTime | | READ | humanURL: https://www.openproject.org/docs/api/ baseURL: https://community.openproject.org/api/v3 tags: - Project Phases properties: - type: OpenAPI url: openapi/openproject-project-phases-api-openapi.yml - type: Documentation url: https://www.openproject.org/docs/api/ - type: Introduction url: https://www.openproject.org/docs/api/introduction/ - type: Endpoints url: https://www.openproject.org/docs/api/endpoints/ - type: GitHub url: https://github.com/opf/openproject - aid: openproject:openproject-projects-api name: OpenProject Projects API description: >- Projects are one of the types of [workspaces](https://www.openproject.org/docs/api/endpoints/workspaces) in OpenProject structuring the information (e.g. work packages, wikis) into smaller sets. They can be used in a classic project management approach but also when structuring work by departments. As containers, they also control behaviour of the elements within them. One of the most important aspects of this is that projects limit permissions by having members with a certain permission set (roles) assigned to them. Prior to OpenProject 17.0, only projects existed and the concept of workspaces wasn't implemented in the API. With 17.0 the other workspace types (program and portfolio) exist and might be returned in places where before, only projects were. ## Actions | Link | Description | Condition | |:--------------------------: |----------------------------------------------------------------------| --------------------------------- | | update | Form endpoint that aids in updating this project | **Permission**: edit workspace | | updateImmediately | Directly update this project | **Permission**: edit workspace | | delete | Delete this project | **Permission**: admin | | favor | Mark this project as favorited by the current user | **Permission**: none but login is required, only present if the project is not yet favorited | | disfavor | Mark this project as no longer favorited by the current user | **Permission**: none but login is required, only present if the project is favorited | | createWorkPackage | Form endpoint that aids in preparing and creating a work package | **Permission**: add work packages | | createWorkPackageImmediately | Directly creates a work package in the project | **Permission**: add work packages | ## Linked Properties | Link | Description | Type | Constraints | Supported operations |Condition | | :----------: | ------------- | ---- | ----------- | -------------------- |----------------------------------------- | | self | This project | Project | not null | READ | | | ancestors | Array of all ancestors of the project, down from the root node (first element) to the parent (last element). | Collection | not null | READ | **Permission** any permission on the ancestor project. Non visible projects will be omitted | | categories | Categories available in this project | Collection | not null | READ | | | types | Types available in this project | Collection | not null | READ | **Permission**: view work packages or manage types | | versions | Versions available in this project | Collection | not null | READ | **Permission**: view work packages or manage versions | | memberships | Memberships in the project | Collection | not null | READ | **Permission**: view members | | workPackages | Work Packages of this project | Collection | not null | READ | | | parent | Parent project of the project | Project | | READ/WRITE | **Permission** edit workspace | | status | Denotes the status of the project, so whether the project is on track, at risk or is having trouble. | ProjectStatus | | READ/WRITE | **Permission** edit workspace | Depending on custom fields defined for projects, additional links might exist. Note, that the parent and ancestor links may contain the "undisclosed uri" `urn:openproject-org:api:v3:undisclosed` in case an ancestor project is defined but the client lacks permission to see it. See the [general introduction into links' properties](https://www.openproject.org/docs/api/basic-objects/#local-properties) for more information. ## Local Properties | Property | Description | Type | Constraints | Supported operations | | :---------------------:| ------------- | ---- | ----------- | -------------------- | | id | Projects' id | Integer | x > 0 | READ/WRITE | | identifier | | String | | READ/WRITE | | name | | String | | READ/WRITE | | active | Indicates whether the project is currently active or already archived | Boolean | | READ/WRITE | | favorited | Indicates whether the project is favorited by the current user | Boolean | | READ | | statusExplanation | A text detailing and explaining why the project has the reported status | Formattable | | READ/WRITE | | public | Indicates whether the project is accessible for everybody | Boolean | | READ/WRITE | | description | | Formattable | | READ/WRITE | | createdAt | Time of creation | DateTime | | READ | | updatedAt | Time of the most recent change to the project | DateTime | | READ | Depending on custom fields defined for projects, additional properties might exist. humanURL: https://www.openproject.org/docs/api/ baseURL: https://community.openproject.org/api/v3 tags: - Projects properties: - type: OpenAPI url: openapi/openproject-projects-api-openapi.yml - type: Documentation url: https://www.openproject.org/docs/api/ - type: Introduction url: https://www.openproject.org/docs/api/introduction/ - type: Endpoints url: https://www.openproject.org/docs/api/endpoints/ - type: GitHub url: https://github.com/opf/openproject - aid: openproject:openproject-queries-api name: OpenProject Queries API description: >- A query defines how work packages can be filtered and displayed. Clients can define a query once, store it, and use it later on to load the same set of filters and display options. ## Actions | Link | Description | Condition | |:-------------------:|----------------------------------------------------------------------| --------------------------------------- | | star | Elevates the query to the status of 'starred' | **Permission**: save queries for own queries, manage public queries for public queries; Only present if query is not yet starred | | unstar | Removes the 'starred' status | **Permission**: save queries for own queries, manage public queries for public queries; Only present if query is starred | | update | Use the Form based process to verify the query before persisting | **Permission**: view work packages | | updateImmediately | Persist the query without using a Form based process for guidance | **Permission**: save queries for own queries, manage public queries for public queries; | ## Linked Properties | Property | Description | Type | Constraints | Supported operations | | :--------------------: | ------------------------------------------------------ | --------------------- | ------------------------------------------- | -------------------- | | self | This query | Query | not null | READ | | user | The user that owns this query | User | not null | READ | | project | The project on which this query operates | Project | | READ | | columns | Ordered list of QueryColumns. The columns, when mapped to WorkPackage properties determine which WorkPackage properties to display | []QueryColumn | | READ | | highlightedAttributes | **Only with valid Enterprise Token available:** List of QueryColumns that should get highlighted when `highlightingMode` is set to `inline`. | []QueryColumn | | READ | | sortBy | Ordered list of QuerySortBys. Indicates the WorkPackage property the results will be ordered by as well as the direction | []QuerySortBy | | READ | | groupBy | The WorkPackage property results of this query are grouped by | String | | READ | | results | The list of work packages returned by applying the filters, sorting and grouping defined in the query | WorkPackageCollection | | READ | | schema | This query's schema | Schema | | READ | Please note, that all the properties listed above will also be embedded when individual queries are returned but will not be embedded when a list of queries is returned. Whether the properties are embedded or not may be subject to change in the future. The `columns` and `highlightedAttributes` properties will be moved into `Views::WorkPackagesTable` so it is deprecated to have it listed within the Query directly. ## Local Properties | Property | Description | Type | Constraints | Supported operations | | :--------------: | -------------------------------------------------------------------------------------------------------- | --------------------- | ----------------------------------------------------------------------------------- | -------------------- | | id | Query id | Integer | x > 0 | READ | | name | Query name | String | | READ/WRITE | | filters | A set of QueryFilters which will be applied to the work packages to determine the resulting work packages| []QueryFilterInstance | | READ/WRITE | | sums | Should sums (of supported properties) be shown? | Boolean | | READ/WRITE | | timelineVisible | Should the timeline mode be shown? | Boolean | | READ/WRITE | | timelineLabels | Which labels are shown in the timeline, empty when default | QueryTimelineLabels | | READ/WRITE | | timelineZoomLevel| Which zoom level should the timeline be rendered in? | String | days, weeks, months, quarters, years | READ/WRITE | | timestamps | The timestamps to filter by when showing changed attributes on work packages.| []Timestamp | | **Values older than 1 day are accepted only with valid Enterprise Token available.**| READ/WRITE | | highlightingMode | Which highlighting mode should the table have? | String | none, inline, status, priority, type | READ/WRITE | | showHierarchies | Should the hierarchy mode be enabled? | Boolean | | READ/WRITE | | hidden | Should the query be hidden from the query list? | Boolean | | READ/WRITE | | public | Can users besides the owner see the query? | Boolean | | READ/WRITE | | starred | Should the query be highlighted to the user? | Boolean | | READ | | createdAt | Time of creation | DateTime | not null | READ | | updatedAt | Time of the most recent change to the query | DateTime | not null | READ | A query that is not assigned to a project (`"project": null`) is called a global query. Global queries filter work packages regardless of the project they are assigned to. As such, a different set of filters exists for those queries. The `hidden` property is deprecated as it is replaced by the `Views` concept. A query that isn't hidden will have a `View` while a query that is hidden won't. The `timelineVisible`, `timelineLabels`, `timelineZoomLevel`, `highlightingMode` and `showHierarchies` properties will be moved into the more appropriate Views (probably `Views::WorkPackagesTable`) so it is deprecated to have them within the Query directly. ## Query Filter Instance A QueryFilterInstance defines a filtering applied to the list of work packages. As such it contains: * the filter type (`QueryFilter`) used * the operator (`QueryOperator`) used * the list of values The list of values can either consist of a list of links or of a list of strings. If the values are primitive (e.g. Integer, Boolean, Date) they will be displayed as strings and the QueryFilterInstance will have a `values` property. ```json { "_type": "DueDateQueryFilter", "name": "Finish date", "values": [ "1" ], "_links": { "filter": { "href": "/api/v3/queries/filters/dueDate", "title": "Finish date" }, "operator": { "href": "/api/v3/queries/operators/- A QueryColumn can be referenced by a Query to denote the work package properties the client should display for the work packages returned as query results. The columns maps to the WorkPackage by the id property. QueryColumns exist in three types: `QueryColumn::Property`, `QueryColumn::RelationToType` and `QueryColumn::RelationOfType`. ## Actions As of now, no actions are defined. ## Linked Properties | Property | Description | Type | Constraints | Supported operations | | :--------------: | ------------------------------------------------------ | ----------- | -------------------------------- | -------------------- | | self | This query column | QueryColumn::Property, QueryColumn::RelationToType or QueryColumn::RelationOfType | not null | READ | |  type | The type relations point to | Type | not null, exists only on QueryColumn::Relation | READ | ## Local Properties | Property | Description | Type | Constraints | Supported operations | | :--------------: | ------------------------------------------------------ | ----------- | -------------------------------- | -------------------- | | id | Query column id | String | not null | READ | | name | Query column name | String | not null | READ | humanURL: https://www.openproject.org/docs/api/ baseURL: https://community.openproject.org/api/v3 tags: - Query Columns properties: - type: OpenAPI url: openapi/openproject-query-columns-api-openapi.yml - type: Documentation url: https://www.openproject.org/docs/api/ - type: Introduction url: https://www.openproject.org/docs/api/introduction/ - type: Endpoints url: https://www.openproject.org/docs/api/endpoints/ - type: GitHub url: https://github.com/opf/openproject - aid: openproject:openproject-query-filter-instance-schema-api name: OpenProject Query Filter Instance Schema API description: >- A QueryFilterInstanceSchema is a Schema specifically for describing QueryFilterInstances. Because the behaviour of FilterInstances, with regards to the `values` property, differs from one another depending on the chosen Filter, the QueryFilterInstanceSchema explicitly lists the dependencies in its `_dependencies` property. As the property causing the difference is the selected Filter, that property is linked. Apart from that, a QueryFilterInstanceSchema has the same structure a Schema does. ## Linked Properties | Link | Description | Type | Constraints | Supported operations | | :-------------------: | ---------------------------------------- | ------------- | -------- | -------------------- | | self | This QueryFilterInstanceSchema (same as for schema) | QueryFilterInstanceSchema | not null | READ | | filter | The filter for which this schema is specific | Filter | not null | READ | ## Local Properties | Property | Description | Type | Constraints | Supported operations | | :--------------: | ------------------------------------------------------ | ------------ | -------------------------------- | -------------------- | | name | Describes the name attribute | Field schema | not null | READ | | filter | QuerySortBy name | Field schema | not null | READ | humanURL: https://www.openproject.org/docs/api/ baseURL: https://community.openproject.org/api/v3 tags: - Query Filter Instance Schema properties: - type: OpenAPI url: openapi/openproject-query-filter-instance-schema-api-openapi.yml - type: Documentation url: https://www.openproject.org/docs/api/ - type: Introduction url: https://www.openproject.org/docs/api/introduction/ - type: Endpoints url: https://www.openproject.org/docs/api/endpoints/ - type: GitHub url: https://github.com/opf/openproject - aid: openproject:openproject-query-filters-api name: OpenProject Query Filters API description: >- A QueryFilter can be referenced by a filter instance defined for a Query to denote the filtering applied to the query's work package results. This resource is not an instance of an applicable filter but rather the type an applicable filter can have. ## Actions As of now, no actions are defined. ## Linked Properties | Property | Description | Type | Constraints | Supported operations | | :--------------: | ------------------------------------------------------ | ----------- | -------------------------------- | -------------------- | | self | This query filter | QueryFilter | not null | READ | ## Local Properties | Property | Description | Type | Constraints | Supported operations | | :--------------: | ------------------------------------------------------ | ----------- | -------------------------------- | -------------------- | | id | QueryFilter id | String | not null | READ | humanURL: https://www.openproject.org/docs/api/ baseURL: https://community.openproject.org/api/v3 tags: - Query Filters properties: - type: OpenAPI url: openapi/openproject-query-filters-api-openapi.yml - type: Documentation url: https://www.openproject.org/docs/api/ - type: Introduction url: https://www.openproject.org/docs/api/introduction/ - type: Endpoints url: https://www.openproject.org/docs/api/endpoints/ - type: GitHub url: https://github.com/opf/openproject - aid: openproject:openproject-query-operators-api name: OpenProject Query Operators API description: >- A QueryOperator can be referenced by a QueryFilter to denote the operator to be applied to the filter relation. ## Actions As of now, no actions are defined. ## Linked Properties | Property | Description | Type | Constraints | Supported operations | | :--------------: | ------------------------------------------------------ | ----------- | -------------------------------- | -------------------- | | self | This query operator | QueryOperator | not null | READ | ## Local Properties | Property | Description | Type | Constraints | Supported operations | | :--------------: | ------------------------------------------------------ | ----------- | -------------------------------- | -------------------- | | id | Query operator id | String | not null | READ | | name | Query operator name | String | not null | READ | humanURL: https://www.openproject.org/docs/api/ baseURL: https://community.openproject.org/api/v3 tags: - Query Operators properties: - type: OpenAPI url: openapi/openproject-query-operators-api-openapi.yml - type: Documentation url: https://www.openproject.org/docs/api/ - type: Introduction url: https://www.openproject.org/docs/api/introduction/ - type: Endpoints url: https://www.openproject.org/docs/api/endpoints/ - type: GitHub url: https://github.com/opf/openproject - aid: openproject:openproject-query-sort-bys-api name: OpenProject Query Sort Bys API description: >- A QuerySortBy can be referenced by a Query to denote the sorting applied to the query's work package results. It consists of the columns to sort by as well as the direction (ascending/descending) ## Actions As of now, no actions are defined. ## Linked Properties | Property | Description | Type | Constraints | Supported operations | | :--------------: | ------------------------------------------------------ | ----------- | -------------------------------- | -------------------- | | self | This query sort by | QuerySortBy | not null | READ | | column | The QueryColumn to sort on. | QueryColumn | not null | READ | | direction | The direction the QueryColumn is to be sorted in. This property is identified by a URI (`urn:openproject-org:api:v3:queries:directions:asc` or `urn:openproject-org:api:v3:queries:directions:desc`) instead of by a URL. | | not null | READ | ## Local Properties | Property | Description | Type | Constraints | Supported operations | | :--------------: | ------------------------------------------------------ | ----------- | -------------------------------- | -------------------- | | id | QuerySortBy id | String | not null | READ | | name | QuerySortBy name | String | not null | READ | humanURL: https://www.openproject.org/docs/api/ baseURL: https://community.openproject.org/api/v3 tags: - Query Sort Bys properties: - type: OpenAPI url: openapi/openproject-query-sort-bys-api-openapi.yml - type: Documentation url: https://www.openproject.org/docs/api/ - type: Introduction url: https://www.openproject.org/docs/api/introduction/ - type: Endpoints url: https://www.openproject.org/docs/api/endpoints/ - type: GitHub url: https://github.com/opf/openproject - aid: openproject:openproject-relations-api name: OpenProject Relations API description: >- Work packages may be related to each other in different ways. ``` +--------------+ +--------------+ | | 1 1 | | | Work package +-------------+--------------+ Work package | | | from | to | | +--------------+ | +--------------+ +------+-------+ | Relation | +--------------+ | type | | reverseType | | description | | lag | +--------------+ ``` ## Actions | Link | Description | Condition | |:-------------------:| -------------------------------------------------------------------- | --------------------------------------------- | | update | Updates the relation between two work packages via a form | **Permission**: manage work package relations | | updateImmediately | Updates the relation between two work packages | **Permission**: manage work package relations | | delete | Destroys the relation between the two work packages | **Permission**: manage work package relations | ## Linked Properties | Link | Description | Type | Constraints | Supported operations | Condition | |:-------------:|-------------------------------------- | ------------- | ----------- | -------------------- | --------------------------------------------- | | self | This relation | Relation | not null | READ | **Permission**: view work packages | | schema | The schema of this relation | Schema | not null | READ | | | from | The emanating work package | WorkPackage | not null | READ | **Permission**: view work packages | | to | The work package the relation ends in | WorkPackage | not null | READ | **Permission**: view work packages | ## Local Properties | Property | Description | Type | Constraints | Supported operations | | :---------------:| ------------------------------------------------------------- | ------- | ------------------------------------------------------------------------------------------------------------- | -------------------- | | id | Relation ID | Integer | x > 0 | READ | | name | The internationalized name of this kind of relation | String | | READ | type | Which kind of relation (blocks, precedes, etc.) | String | in: relates, duplicates, duplicated, blocks, blocked, precedes, follows, includes, partof, requires, required | READ / WRITE | | reverseType | The kind of relation from the other WP's perspective | String | in: relates, duplicates, duplicated, blocks, blocked, precedes, follows, includes, partof, requires, required | READ | | description | Short text further describing the relation | String | | READ / WRITE | | lag* | The number of days between closing of `from` and start of `to`| Integer | x >= 0 | READ / WRITE | \* Only applicable for some relation types such as "follows". You can check using the relation by schema endpoint at `/api/v3/relations/schema/{type}`. humanURL: https://www.openproject.org/docs/api/ baseURL: https://community.openproject.org/api/v3 tags: - Relations properties: - type: OpenAPI url: openapi/openproject-relations-api-openapi.yml - type: Documentation url: https://www.openproject.org/docs/api/ - type: Introduction url: https://www.openproject.org/docs/api/introduction/ - type: Endpoints url: https://www.openproject.org/docs/api/endpoints/ - type: GitHub url: https://github.com/opf/openproject - aid: openproject:openproject-reminders-api name: OpenProject Reminders API description: The Reminders API from OpenProject — 3 operation(s) for reminders. humanURL: https://www.openproject.org/docs/api/ baseURL: https://community.openproject.org/api/v3 tags: - Reminders properties: - type: OpenAPI url: openapi/openproject-reminders-api-openapi.yml - type: Documentation url: https://www.openproject.org/docs/api/ - type: Introduction url: https://www.openproject.org/docs/api/introduction/ - type: Endpoints url: https://www.openproject.org/docs/api/endpoints/ - type: GitHub url: https://github.com/opf/openproject - aid: openproject:openproject-revisions-api name: OpenProject Revisions API description: >- Revisions are sets of updates to files in the context of repositories linked in OpenProject. ## Linked Properties | Link | Description | Type | Constraints | Supported operations | |:----------------:| --------------------------------------------------------------------------------------------------| ------------- | ----------- | -------------------- | | self | This revision | Revision | not null | READ | | project | The project to which the revision belongs | Project | not null | READ | | author | The user that added this revision, if the authorName was mapped to a user in OpenProject | User | | READ | | showRevision | A URL to the repository view (outside APIv3) showing this revision | - | not null | READ | ## Local Properties | Property | Description | Type | Constraints | Supported operations | |:-----------------------:| ------------------------------------------------------------------------------------------------------------------------------------------------------------| ----------- | ----------- | -------------------- | | id | Revision's id, assigned by OpenProject | Integer | x > 0 | READ | | identifier | The raw SCM identifier of the revision (e.g. full SHA hash) | String | not null | READ | | formattedIdentifier | The SCM identifier of the revision, formatted (e.g. shortened unambiguous SHA hash). May be identical to identifier in many cases | String | not null | READ | | authorName | The name of the author that committed this revision. Note that this name is retrieved from the repository and does not identify a user in OpenProject. | String | not null | READ | | message | The commit message of the revision | Formattable | not null | READ | | createdAt | The time this revision was committed to the repository | DateTime | not null | READ | humanURL: https://www.openproject.org/docs/api/ baseURL: https://community.openproject.org/api/v3 tags: - Revisions properties: - type: OpenAPI url: openapi/openproject-revisions-api-openapi.yml - type: Documentation url: https://www.openproject.org/docs/api/ - type: Introduction url: https://www.openproject.org/docs/api/introduction/ - type: Endpoints url: https://www.openproject.org/docs/api/endpoints/ - type: GitHub url: https://github.com/opf/openproject - aid: openproject:openproject-roles-api name: OpenProject Roles API description: >- When principals (groups or users) are assigned to a project, they are receive roles in that project. Roles regulate access to specific resources by having permissions configured for them. Currently, this is only a stub. ## Linked Properties | Link | Description | Type | Constraints | Supported operations | | :-------------------: | ----------------------------------------- | ------------- | -------------------------------| -------------------- | | self | This role | Role | not null | READ | ## Local Properties | Property | Description | Type | Constraints | Supported operations | | :---------: | --------------------------------------------- | ----------- | ----------- | -------------------- | | id | Role id | Integer | x > 0 | READ | | name | Role name | String | not null | READ | humanURL: https://www.openproject.org/docs/api/ baseURL: https://community.openproject.org/api/v3 tags: - Roles properties: - type: OpenAPI url: openapi/openproject-roles-api-openapi.yml - type: Documentation url: https://www.openproject.org/docs/api/ - type: Introduction url: https://www.openproject.org/docs/api/introduction/ - type: Endpoints url: https://www.openproject.org/docs/api/endpoints/ - type: GitHub url: https://github.com/opf/openproject - aid: openproject:openproject-root-api name: OpenProject Root API description: >- The root resource contains links to available resources in the API. By following these links a client should be able to discover further resources in the API. *Note: Currently there is no list action for projects available.* *A client will therefore have to know links to projects and can't (yet) discover them.* | Link | Description | Type | Nullable | Supported operations | Condition | | :-------------------: | ------------------------------------------------ | --------------- | -------- | -------------------- | --------- | | configuration | The configuration of this OpenProject instance | Configuration | | READ | | | user | The user currently logged-in | User | | READ | logged in | | userPreferences | The preferences of the logged-in user | UserPreference | | READ | logged in | | priorities | List of available priorities | Collection | | READ | **Permission** View work packages in any project | | statuses | List of available work package statuses | Collection | | READ | **Permission** View work packages in any project | | types | List of available work package types | Collection | | READ | **Permission** View work packages in any project | | workPackages | List of all work packages | Collection | | READ | **Permission** View work packages in any project | | users | List of all users | Collection | | READ | **Permission** Administrator | ## Local Properties | Property | Description | Type | Condition | Supported operations | | :-----------------------: | ---------------------------------------------------- | ---------- | --------------------------------- | -------------------- | | instanceName | The name of the OpenProject instance | String | | READ | | coreVersion | The OpenProject core version number for the instance | String | **Permission** requires admin privileges | READ | humanURL: https://www.openproject.org/docs/api/ baseURL: https://community.openproject.org/api/v3 tags: - Root properties: - type: OpenAPI url: openapi/openproject-root-api-openapi.yml - type: Documentation url: https://www.openproject.org/docs/api/ - type: Introduction url: https://www.openproject.org/docs/api/introduction/ - type: Endpoints url: https://www.openproject.org/docs/api/endpoints/ - type: GitHub url: https://github.com/opf/openproject - aid: openproject:openproject-schemas-api name: OpenProject Schemas API description: >- The schema provides detailed information about the properties of a resource. The schema is represented by a dictionary where keys are names of resource properties and values are objects describing the corresponding property. These objects are called **field schema** and form the core of the schema representation. Each of them can contain its own `_links` and `_embedded` section. ## Linked Properties | Link | Description | Type | Nullable | Supported operations | |:-------------------:| ---------------------------------------- | ------------- | -------- | -------------------- | | self | This schema | Schema | | READ | ## Local Properties | Property | Description | Type | | :-----------------: | ---------------------------------------------------------------------------------- | ---------------- | | _dependencies | A list of dependencies between one property's value and another property | SchemaDependency | The `_dependencies` property contains the list of dependencies that exist between the value selected for one of the properties of the described resource and the resource's structure. Depending on the value, additional properties might exist or properties might have other values allowed to be assigned. See [SchemaDependency](https://www.openproject.org/docs/api/endpoints/schemas/#schema-dependencies) for more information. ## Field schema ### Linked Properties | Property | Description | Conditions | | :--------------: | -------------------------------------------------------------- | --------------------------------------------- | | allowedValues | List of resources that are assignable by the current user. | Will not exist if `allowedValuesSchemas` is present. | | allowedValuesSchemas | Link to schemas further describing the property. | Will not exist if `allowedValues` is present. | The `allowedValues` can either contain a list of canonical links or just a single link to a collection resource. This is an optimization to allow efficient handling of both small resource lists (that can be enumerated inline) and large resource lists (requiring one or more separate requests). The `allowedValuesSchemas` will on rare occasions (e.g. for a [Query](https://www.openproject.org/docs/api/endpoints/queries/)) replace `allowedValues`. This is done when there is no fixed set of allowed values. Instead, the allowed values will have to follow a schema, or one of a list of schemas, in its own right. Only one of the links (`allowedValues`, `allowedValuesSchemas`) will exist for any given property. ### Local Properties | Property | Description | Type | Default | |:-----------------:| ---------------------------------------------------------------------------------- | ------------ | ------- | | type | The data type of the property | MetaType | | | name | Human readable name of the property as it could be displayed in a UI | String | | | required | If true this property is not nullable | Boolean | true | | hasDefault | If true this property will have a default value if none is provided | Boolean | false | | writable | If false it is not allowed to **change** the property value | Boolean | true | | minLength | The value of the property must at least contain the specified amount of characters | Integer | 0 | | maxLength | The value of the property must at most contain the specified amount of characters | Integer | ∞ | | regularExpression | The value of the property must match the given regular expression (if not null) | String | null | | formula | If present, contains a formula that is used to calculate the value of the property | String | null | | location | If present, contains a reference to the location of the property in the JSON | String | null | | description | If present, contains a formattable, human readable description | Formattable | null | | deprecated | If present, the client should consider the existence of the property deprecated | Boolean | false | | placeholder | If present, contains the text to display as a placeholder, so if no value is set | String | null | All of the above properties that do not have a default value *must* be present in the schema. For properties that have a default value, the client can assume the default value, if the property is missing. Note that regular expressions used in the API follow the rules of [Ruby Regular Expressions](https://ruby-doc.org/core-2.2.6/Regexp.html). ### Location property The location property gives a hint as to where to find the resource property: * when not set, it is in the resource top level attributes; * when set to `_links`, it is under the path `_links.propertyName`; * when set to `_meta`, it is under the path `_meta.propertyName`. For example, for a work package schema, the field schema of the `user` property has a location property set to `_links`. This means that the `user` property will be found under the path `_links.user` of the json payload of the work package resource. ## Schema Dependencies A `SchemaDependency` describes the dependencies between a value chosen for a resource's property and the resource's structure. By that, additional properties or changes in a property are described. A `SchemaDependency` will never describe a property to disappear, only to appear. As such it always provides additional information. For a property that is depending on another property's value, this can result in not being listed in the resource's schema itself at all. This will be the case if the existence of the property as a whole will be dependent. If only one of the aspects (e.g. *writable*) of the property changes with the selected value, the property itself will already be listed in the schema, but it will lack the dependent aspect. Given that SchemaDependencies will only add information, and the content type of JSON, a client should be able to join the two objects, the schema and the dependency, into one object easily. SchemaDependencies are always embedded inside a Schema's `_dependencies` attribute. As such, they are not independently existing resources. Consequently, they do not have a `self` reference. ### Linked Properties A SchemaDependency does not have any links. ### Local Properties | Property | Description | Type | | :-----------------: | ---------------------------------------------------------------------------------- | ---------------- | | on | The name of the property on which the dependency exists | string | | dependencies | The additions to a schema grouped by the value of the depending property | object | The following excerpt exemplifies the objects that can be found as a value of the `dependencies` property: ```json { "_type": "SchemaDependency", "on": "someProperty", "dependencies": { "1": { "loremIpsum": { "type": "User", "name": "Lorem ipsum", "required": true, "hasDefault": false, "writable": true, "location": "_links", "placeholder": "Lorem ipsum placeholder", "description": { "format": "markdown", "raw": "A description for field Lorem ipsum. This may contain [links](https://example.com).", "html": "

A description for field Lorem ipsum. This may contain links.

" }; "_links": { "allowedValues": { "href": "/api/v3/some/path/to/users" } } } }, "2": { "loremIpsum": { "type": "User", "name": "Lorem ipsum", "required": true, "hasDefault": false, "writable": true, "location": "_links", "_links": { "allowedValues": { "href": "/api/v3/a/totally/different/path/to/other/users" } } } }, "3": { "loremIpsum": { "type": "User", "name": "Lorem ipsum", "required": true, "hasDefault": false, "writable": false, "location": "_links", } }, "4": {} } } ``` Given the example above: * If the depending property is `1`, `2` or `3`: * The client must set the property `loremIpsum`, because of `"required": true` for all three field schemas * When the depending property is `1` or `2`, the values allowed to be set for `loremIpsum` property differ * When the depending property is `3`, the `loremIpsum` property will not be writable * If the depending property is `4`, the `loremIpsum` property does not exist Because of the limitation of JSON objects, all keys will be strings, even when the depending value is actually something different (e.g. Integer, Date). This is also true for resources where the resource url is used as the key. humanURL: https://www.openproject.org/docs/api/ baseURL: https://community.openproject.org/api/v3 tags: - Schemas properties: - type: OpenAPI url: openapi/openproject-schemas-api-openapi.yml - type: Documentation url: https://www.openproject.org/docs/api/ - type: Introduction url: https://www.openproject.org/docs/api/introduction/ - type: Endpoints url: https://www.openproject.org/docs/api/endpoints/ - type: GitHub url: https://github.com/opf/openproject - aid: openproject:openproject-sprints-api name: OpenProject Sprints API description: >- Work packages can be assigned to a sprint. This is employed in agile contexts such as Scrum or Kanban to group the work packages to be worked on within a defined time frame towards a defined goal. ## Linked Properties | Link | Description | Type | Constraints | Supported operations | |:-------------------:|----------------------------------------- | ------------- | -------------------------------------------------------------- | -------------------- | | self | This sprint | Sprint | not null | READ | | definingWorkspace | The workspace in which the sprint is defined | Workspace | | READ | | status | The status the sprint is in | URN | | READ | The status is represented as a URN and can have the following values: - **urn:openproject-org:api:v3:sprints:status:in_planning**: The sprint hasn't started yet, it is planned. - **urn:openproject-org:api:v3:sprints:status:active**: The sprint is currently active. - **urn:openproject-org:api:v3:sprints:status:completed**: The sprint has finished. ## Local Properties | Property | Description | Type | Constraints | Supported operations | | :---------: | --------------------------------------------- | ----------- | ----------- | -------------------- | | id | Sprint id | Integer | x > 0 | READ | | name | Sprint name | String | not null | READ | | description | | Formattable | | READ | | startDate | | Date | | READ | | finishDate | | Date | | READ | | createdAt | Time of creation | DateTime | not null | READ | | updatedAt | Time of the most recent change to the sprint | DateTime | not null | READ | humanURL: https://www.openproject.org/docs/api/ baseURL: https://community.openproject.org/api/v3 tags: - Sprints properties: - type: OpenAPI url: openapi/openproject-sprints-api-openapi.yml - type: Documentation url: https://www.openproject.org/docs/api/ - type: Introduction url: https://www.openproject.org/docs/api/introduction/ - type: Endpoints url: https://www.openproject.org/docs/api/endpoints/ - type: GitHub url: https://github.com/opf/openproject - aid: openproject:openproject-statuses-api name: OpenProject Statuses API description: >- The statuses endpoints return collections or single entities of type `Status`. The following tables list the different properties of `Status` entities. ## Linked Properties | Link | Description | Type | Constraints | Supported operations | |:----:|-------------|--------|-------------|----------------------| | self | This status | Status | not null | READ | ## Local Properties | Property | Description | Type | Constraints | Supported operations | |:------------------:|--------------------------------------------------------------------------------------------------------------------------------------------|---------|---------------|----------------------| | id | Status id | Integer | x > 0 | READ | | name | Status name | String | | READ | | isClosed | Indicates, whether work package of this status are considered closed | Boolean | | READ | | color | A Hex-coded value of the color assigned to the status. | String | | READ | | isDefault | True, if this status is the default status for new work packages | Boolean | | READ | | isReadonly | Indicates, whether work package of this status are readonly | Boolean | | READ | | excludedFromTotals | Indicates, whether work package of this status are excluded from totals of
`Work`, `Remaining work`, and `% Complete` in a hierarchy. | Boolean | | READ | | defaultDoneRatio | The percentageDone being applied when changing to this status | Integer | 0 <= x <= 100 | READ | | position | Sort index of the status | Integer | | READ | humanURL: https://www.openproject.org/docs/api/ baseURL: https://community.openproject.org/api/v3 tags: - Statuses properties: - type: OpenAPI url: openapi/openproject-statuses-api-openapi.yml - type: Documentation url: https://www.openproject.org/docs/api/ - type: Introduction url: https://www.openproject.org/docs/api/introduction/ - type: Endpoints url: https://www.openproject.org/docs/api/endpoints/ - type: GitHub url: https://github.com/opf/openproject - aid: openproject:openproject-time-entries-api name: OpenProject Time Entries API description: The Time Entries API from OpenProject — 6 operation(s) for time entries. humanURL: https://www.openproject.org/docs/api/ baseURL: https://community.openproject.org/api/v3 tags: - Time Entries properties: - type: OpenAPI url: openapi/openproject-time-entries-api-openapi.yml - type: Documentation url: https://www.openproject.org/docs/api/ - type: Introduction url: https://www.openproject.org/docs/api/introduction/ - type: Endpoints url: https://www.openproject.org/docs/api/endpoints/ - type: GitHub url: https://github.com/opf/openproject - aid: openproject:openproject-time-entry-activities-api name: OpenProject Time entry activities API description: >- Time entries are classified by an activity which is one item of a set of user defined activities (e.g. Design, Specification, Development). ## Actions None ## Linked Properties | Link | Description | Type | Constraints | Supported operations | Condition | | :-----------: | -------------------------------------------------------------- | ------------- | --------------------- | -------------------- | ----------------------------------------- | | self | This time entry activity | TimeEntriesActivity | not null | READ | | | projects | List of projects the time entry is active in | []Project | not null | READ / WRITE | | ## Local Properties | Property | Description | Type | Constraints | Supported operations | Condition | | :----------: | --------------------------------------------------------- | -------- | ---------------------------------------------------- | -------------------- | ----------------------------------------------------------- | | id | Time entries' id | Integer | x > 0 | READ | | | name | The human readable name chosen for this activity | String | max 30 characters | READ | | | position | The rank the activity has in a list of activities | Date | | READ |   | | default | Flag to signal whether this activity is the default activity | Boolean | | READ |   | humanURL: https://www.openproject.org/docs/api/ baseURL: https://community.openproject.org/api/v3 tags: - Time entry activities properties: - type: OpenAPI url: openapi/openproject-time-entry-activities-api-openapi.yml - type: Documentation url: https://www.openproject.org/docs/api/ - type: Introduction url: https://www.openproject.org/docs/api/introduction/ - type: Endpoints url: https://www.openproject.org/docs/api/endpoints/ - type: GitHub url: https://github.com/opf/openproject - aid: openproject:openproject-types-api name: OpenProject Types API description: >- Work package types represented in the system. Types exist globally and are then activated for projects. ## Linked Properties | Link | Description | Type | Constraints | Supported operations | |:-------------:|-------------------------- | ------------- | ----------- | -------------------- | | self | This type | Type | not null | READ | ## Local Properties | Property | Description | Type | Constraints | Supported operations | |:----------------:| ---------------------------------------------------- | -------- | ----------- | -------------------- | | id | Type id | Integer | x > 0 | READ | | name | Type name | String | | READ | | color | The color used to represent this type | Color | | READ | | position | Sort index of the type | Integer | | READ | | isDefault | Is this type active by default in new projects? | Boolean | | READ | | isMilestone | Do work packages of this type represent a milestone? | Boolean | | READ | | createdAt | Time of creation | DateTime | | READ | | updatedAt | Time of the most recent change to the user | DateTime | | READ | humanURL: https://www.openproject.org/docs/api/ baseURL: https://community.openproject.org/api/v3 tags: - Types properties: - type: OpenAPI url: openapi/openproject-types-api-openapi.yml - type: Documentation url: https://www.openproject.org/docs/api/ - type: Introduction url: https://www.openproject.org/docs/api/introduction/ - type: Endpoints url: https://www.openproject.org/docs/api/endpoints/ - type: GitHub url: https://github.com/opf/openproject - aid: openproject:openproject-user-working-times-api name: OpenProject User Working Times API description: >- User working times allow configuring per-user working hours and personal non-working days, in addition to the system-wide work schedule. A `UserWorkingHours` record defines how many hours a user works on each day of the week, along with an availability factor, effective from a given date (`validFrom`). Multiple records can exist for a user, each representing a period of their working time configuration. Only the most recently effective record (i.e., the one with the latest `validFrom` that is not in the future) is used for capacity calculations. A `UserNonWorkingTime` marks a date range as non-working for a user (e.g., a personal day off or a local holiday not covered by the system-wide non-working days). If a personal non-working time overlaps with system-wide non-working days, those days are not counted twice. ## UserWorkingHours Actions | Link | Description | Condition | | :----: | ----------------------------------- | --------------------------------------------------------------------------------------------- | | update | Update this working hours record | Record has not yet taken effect (`validFrom` is in the future); **Permission**: see below | | delete | Delete this working hours record | **Permission**: see below | ## UserWorkingHours Linked Properties | Link | Description | Type | Constraints | Supported operations | | :--: | -------------------------------------------------------- | ----------------- | ----------- | -------------------- | | self | This working hours record | UserWorkingHours | not null | READ | | user | The user this working hours record belongs to | User | not null | READ | ## UserWorkingHours Local Properties | Property | Description | Type | Constraints | Supported operations | | :---------------: | ----------------------------------------------------------------------------------------- | ------- | -------------------- | -------------------- | | id | The unique identifier of the record | Integer | x > 0 | READ | | validFrom | The date from which this working hours configuration takes effect (ISO 8601 format) | Date | not null | READ / WRITE | | mondayHours | Hours worked on Monday | Float | x >= 0 | READ / WRITE | | tuesdayHours | Hours worked on Tuesday | Float | x >= 0 | READ / WRITE | | wednesdayHours | Hours worked on Wednesday | Float | x >= 0 | READ / WRITE | | thursdayHours | Hours worked on Thursday | Float | x >= 0 | READ / WRITE | | fridayHours | Hours worked on Friday | Float | x >= 0 | READ / WRITE | | saturdayHours | Hours worked on Saturday | Float | x >= 0 | READ / WRITE | | sundayHours | Hours worked on Sunday | Float | x >= 0 | READ / WRITE | | availabilityFactor| Percentage of working hours the user is available (0–100) | Integer | 0 <= x <= 100 | READ / WRITE | ## UserWorkingHours Permissions - **Administrators** can read and manage working hours for any user. - Users with the global **`manage_own_working_times`** permission can read and manage their own working hours. - Users with the global **`manage_working_times`** permission can read and manage working hours for any user. - All users can read their own working hours records even without a special permission. - Records that have already taken effect (i.e., `validFrom` is today or in the past) cannot be updated. ## UserNonWorkingTime Actions | Link | Description | Condition | | :----: | -------------------------------- | ------------------------ | | delete | Delete this non-working day | **Permission**: see below | ## UserNonWorkingTime Linked Properties | Link | Description | Type | Constraints | Supported operations | | :--: | ---------------------------------------------------- | ------------------ | ----------- | -------------------- | | self | This non-working day | UserNonWorkingTime | not null | READ | | user | The user this non-working day belongs to | User | not null | READ | ## UserNonWorkingTime Local Properties | Property | Description | Type | Constraints | Supported operations | | :-------: | ------------------------------------------------------------------------------- | ------- | -------------------- | -------------------- | | id | The unique identifier of the record | Integer | x > 0 | READ | | startDate | The first date of the non-working time range (ISO 8601 format) | Date | not null | READ / WRITE | | endDate | The last date of the non-working time range (ISO 8601 format) | Date | not null, >= startDate | READ / WRITE | ## UserNonWorkingTime Permissions - **Administrators** can read and manage personal non-working days for any user. - Users with the global **`manage_own_working_times`** permission can read and manage their own non-working days. - Users with the global **`manage_working_times`** permission can read and manage non-working days for any user. - A personal non-working time must not overlap with another non-working time record for the same user. humanURL: https://www.openproject.org/docs/api/ baseURL: https://community.openproject.org/api/v3 tags: - User Working Times properties: - type: OpenAPI url: openapi/openproject-user-working-times-api-openapi.yml - type: Documentation url: https://www.openproject.org/docs/api/ - type: Introduction url: https://www.openproject.org/docs/api/introduction/ - type: Endpoints url: https://www.openproject.org/docs/api/endpoints/ - type: GitHub url: https://github.com/opf/openproject - aid: openproject:openproject-userpreferences-api name: OpenProject UserPreferences API description: >- The user preferences endpoints return collections or single entities of type `UserPreferences`. The following tables list the different properties of `UserPreferences` entities. ## Linked Properties | Link | Description | Type | Constraints | Supported operations | |:---------:|----------------------------------------------------------| -------------- | --------------------- | -------------------- | | self | This UserPreferences | UserPreferences| not null | READ | | user | The user that this preference belongs to | User | not null | READ | ## Local Properties | Property | Description | Type | Constraints | Supported operations | |:----------------------:| ----------------------------------------------------------- | ---------- | ----------- | -------------------- | | autoHidePopups | Whether to hide popups (e.g. success messages) after 5 seconds | Boolean | | READ / WRITE | | notifications | The settings for the notifications to be received by the user | NotificationSetting | | READ / WRITE | | timeZone | Current selected time zone | String | | READ / WRITE | | commentSortDescending | Sort comments in descending order | Boolean | | READ / WRITE | | warnOnLeavingUnsaved | Issue warning when leaving a page with unsaved text | Boolean | | READ / WRITE | humanURL: https://www.openproject.org/docs/api/ baseURL: https://community.openproject.org/api/v3 tags: - UserPreferences properties: - type: OpenAPI url: openapi/openproject-userpreferences-api-openapi.yml - type: Documentation url: https://www.openproject.org/docs/api/ - type: Introduction url: https://www.openproject.org/docs/api/introduction/ - type: Endpoints url: https://www.openproject.org/docs/api/endpoints/ - type: GitHub url: https://github.com/opf/openproject - aid: openproject:openproject-users-api name: OpenProject Users API description: >- The users endpoints return collections or single entities of type `User`. The following tables list the different properties of `User` entities. ## Actions | Link | Description | Condition | |:-------------------:| -------------------------------------------------------------------- | ---------------------------------------------------------------- | | lock | Restrict the user from logging in and performing any actions | not locked; **Permission**: Administrator | | show | Link to the OpenProject user page (HTML) | | | unlock | Allow a locked user to login and act again | locked; **Permission**: Administrator | | updateImmediately | Updates the user's attributes. | **Permission**: Administrator, manage_user global permission | | delete | Permanently remove a user from the instance | **Permission**: Administrator, self-delete | ## Linked Properties | Link | Description | Type | Constraints | Supported operations | Condition | |:-----------:|--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------- | --------------------- | -------------------- | ----------------------------------------- | | self | This user | User | not null | READ | | | auth_source | Link to the user's auth source (endpoint not yet implemented) | LdapAuthSource | | READ / WRITE | **Permission**: Administrator | | members | Link to collection of all the user's memberships. The list will only include the memberships in projects in which the requesting user has the necessary permissions. | MemberCollection | | READ | **Permission**: view members or manage members in any project | Depending on custom fields defined for users, additional links might exist. ## Local Properties | Property | Description | Type | Constraints | Supported operations | Condition | | :----------: | --------------------------------------------------------- | -------- | ---------------------------------------------------- | -------------------- | ----------------------------------------------------------- | | id | User's id | Integer | x > 0 | READ | | | login | User's login name | String | unique, 256 max length | READ / WRITE | **Permission**: Administrator, manage_user global permission | | firstName | User's first name | String | 30 max length | READ / WRITE | **Permission**: Administrator, manage_user global permission | | lastName | User's last name | String | 30 max length | READ / WRITE | **Permission**: Administrator, manage_user global permission | | name | User's full name, formatting depends on instance settings | String | | READ | | | email | User's email address | String | unique, 60 max length | READ / WRITE | E-Mail address not hidden, **Permission**: Administrator, manage_user global permission | | admin | Flag indicating whether or not the user is an admin | Boolean | in: [true, false] | READ / WRITE | **Permission**: Administrator | | avatar | URL to user's avatar | Url | | READ | | | status | The current activation status of the user (see below) | String | in: ["active", "registered", "locked", "invited"] | READ | | | language | User's language | String | ISO 639-1 | READ / WRITE | **Permission**: Administrator, manage_user global permission | | password | User's password for the default password authentication | String | | WRITE | **Permission**: Administrator | | identity_url | User's identity_url for OmniAuth authentication | String | | READ / WRITE | **Permission**: Administrator | | createdAt | Time of creation | DateTime | | READ | | | updatedAt | Time of the most recent change to the user | DateTime | | READ | | Depending on custom fields defined for users, additional properties might exist. The `status` of a user can be one of: * `active` - the user can log in with the account right away * `invited` - the user is invited and is pending registration If the user's `status` is set to `active` during creation a means of authentication has to be provided which is one of the following: * `password` - The password with which the user logs in. * `auth_source` - Link to an LDAP auth source. * `identity_url` - The identity URL of an OmniAuth authentication provider. If all of these are missing the creation will fail with an "missing password" error. The `language` is limited to those activated in the system. Due to data privacy, the user's properties are limited to reveal as little about the user as possible. Thus `login`, `firstName`, `lastName`, `language`, `createdAt` and `updatedAt` are hidden for all users except for admins or the user themselves. Please note that custom fields are not yet supported by the api although the backend supports them. humanURL: https://www.openproject.org/docs/api/ baseURL: https://community.openproject.org/api/v3 tags: - Users properties: - type: OpenAPI url: openapi/openproject-users-api-openapi.yml - type: Documentation url: https://www.openproject.org/docs/api/ - type: Introduction url: https://www.openproject.org/docs/api/introduction/ - type: Endpoints url: https://www.openproject.org/docs/api/endpoints/ - type: GitHub url: https://github.com/opf/openproject - aid: openproject:openproject-values-property-api name: OpenProject Values::Property API description: >- `Values::Property` represents a single key - value pair. That pair typically is an excerpt of the properties of a resource. `Values::Property` itself is not an independent resource. It will always be nested and as such will only exist as part of another resource. It is currently used e.g. in the Notification resource. ## Linked Properties | Property | Description | Type | Constraints | Supported operations | Condition | | :--------------: | ----------------------------| ----------- | --------------------- | -------------------- | ------------------------- | | self | This value | Values::Property | not null | READ | | | schema | This value's schema | Schema | not null | READ | | ## Local Properties | Property | Description | Type | Constraints | Supported operations | Condition | | :--------------: | ------------------------------------------------------ | ----------- | -------------- | -------------------- | ---------------------------- | | property | The pairs' key name | String | not null | READ | | | value | The pairs' value | Polymorphic | | READ | | humanURL: https://www.openproject.org/docs/api/ baseURL: https://community.openproject.org/api/v3 tags: - Values::Property properties: - type: OpenAPI url: openapi/openproject-values-property-api-openapi.yml - type: Documentation url: https://www.openproject.org/docs/api/ - type: Introduction url: https://www.openproject.org/docs/api/introduction/ - type: Endpoints url: https://www.openproject.org/docs/api/endpoints/ - type: GitHub url: https://github.com/opf/openproject - aid: openproject:openproject-versions-api name: OpenProject Versions API description: >- Work Packages can be assigned to a version. As such, versions serve to group Work Packages into logical units where each group comprises all the work packages that needs to be finished in order for the version to be finished. ## Actions | Link | Description | Condition | |:-------------------:|--------------------------------------------------------------------------| ---------------------------------------| | update | Form endpoint that aids in preparing and performing edits on the version | **Permission**: manage versions | | updateImmediately | Directly perform edits on the version | **Permission**: manage versions | ## Linked Properties | Link | Description | Type | Constraints | Supported operations | |:-------------------:|----------------------------------------- | ------------- | -------------------------------------------------------------- | -------------------- | | self | This version | Version | not null | READ | | definingProject | The workspace to which the version belongs | Workspace | only present if the workspace is visible for the current user | READ | | availableInProjects | Workspaces where this version can be used | Workspaces | not null | READ | Depending on custom fields defined for versions, additional linked properties might exist. ## Local Properties | Property | Description | Type | Constraints | Supported operations | | :---------: | --------------------------------------------- | ----------- | ----------- | -------------------- | | id | Version id | Integer | x > 0 | READ | | name | Version name | String | not null, may not exceed 60 characters | READ / WRITE | | description | | Formattable | | READ / WRITE | | startDate | | Date | | READ / WRITE | | endDate | | Date | | READ / WRITE | | status | The current status of the version | String | not null, only 'open', 'finished', 'closed' | READ / WRITE | | sharing | The current status of the version | String | not null, limited to fixed set as defined by form | READ / WRITE | | createdAt | Time of creation | DateTime | not null | READ | | updatedAt | Time of the most recent change to the version | DateTime | not null | READ | Depending on custom fields defined for versions, additional properties might exist. humanURL: https://www.openproject.org/docs/api/ baseURL: https://community.openproject.org/api/v3 tags: - Versions properties: - type: OpenAPI url: openapi/openproject-versions-api-openapi.yml - type: Documentation url: https://www.openproject.org/docs/api/ - type: Introduction url: https://www.openproject.org/docs/api/introduction/ - type: Endpoints url: https://www.openproject.org/docs/api/endpoints/ - type: GitHub url: https://github.com/opf/openproject - aid: openproject:openproject-views-api name: OpenProject Views API description: "A View is a representation of some information. That information might be a query (currently\ \ it always is).\nThe view will store the configuration on how to display the information but not\ \ the information itself.\n\nA View might then be a graph, a table, a gantt chart or something completely\ \ different.\nThe client will have to choose how to represenent in the view. \n\nA View instance will\ \ always be of a subtype of `Views`, e.g. `Views::WorkPackageslist`. The properties between each `Views`\ \ type might differ a lot.\n\n**The View is a new concept so it is prone to change.**\n\nCurrently\ \ a lot of restrictions still apply:\n * There will always be a query associated to the view when\ \ in the complete concept, this limitation should not be necessary.\n * A query can only have one\ \ view associated.\n * There is neither an update nor a delete endpoint and the schema and form endpoints\ \ are also missing. \n To delete a view, simply delete the query.\n * Most of the properties are\ \ deduced from the associated query and can thus only be updated via updating the query.\n * The\ \ properties are not different between `Views` subtypes.\n\n## Linked Properties\n\n| Link \ \ | Description \ \ | Type | Constraints | Supported\ \ operations |\n| :-------------------: | ---------------------------------------- \ \ | ------------- |\ \ -------- | -------------------- |\n| self | This view \ \ \ \ | View (a subtype of it) | not null | READ |\n| query \ \ | This query from which to fetch the data \ \ | Query | not null | READ/WRITE\ \ |\n| project | This project the view is defined in (deduces from the query).\ \ If no project is specified, the View is considered global. | Project | Deduced\ \ from the query | READ |\n\n## Local Properties\n\n| Property | Description\ \ | Type | Constraints \ \ | Supported operations|\n| :--------------: | ------------------------------------------------------|\ \ ----------- | ------------------------------------ | --------------------|\n| _type\ \ | The subtype chosen | String | \ \ | READ |\n| id | View id \ \ | Integer | x > 0 \ \ | READ |\n| name | View name \ \ | String | Deduced from the query | READ \ \ |\n| public | Can users besides the owner see the view? | Boolean\ \ | Deduced from the query | READ |\n| starred \ \ | Should the view be highlighted to the user? | Boolean | Deduced\ \ from the query | READ |\n| createdAt | Time of creation\ \ | DateTime | not null \ \ | READ |\n| updatedAt | Time of the most recent change to the view\ \ | DateTime | not null | READ \ \ |" humanURL: https://www.openproject.org/docs/api/ baseURL: https://community.openproject.org/api/v3 tags: - Views properties: - type: OpenAPI url: openapi/openproject-views-api-openapi.yml - type: Documentation url: https://www.openproject.org/docs/api/ - type: Introduction url: https://www.openproject.org/docs/api/introduction/ - type: Endpoints url: https://www.openproject.org/docs/api/endpoints/ - type: GitHub url: https://github.com/opf/openproject - aid: openproject:openproject-wiki-pages-api name: OpenProject Wiki Pages API description: >- Represents an individual page in a project's wiki. *This resource is currently a stub* ## Actions | Link | Description | Condition | |:-------------------:|----------------------------------------------------------------------| --------------------------------------- | | addAttachment | Attach a file to the wiki page | **Permission**: edit wiki page | ## Linked Properties | Property | Description | Type | Constraints | Supported operations | | :--------------: | ------------------------------------------------------ | ----------- | -------------- | -------------------- | | self | This wiki page | WikiPage | not null | READ | | attachments | The files attached to this wiki page | Collection | | READ | | project | The project the wiki page belongs to | Project | not null | READ | ## Local Properties | Property | Description | Type | Constraints | Supported operations | | :--------------: | ------------------------------------------- | ----------- | ------------------------------------ | -------------------- | | id | Identifier of this wiki page | Integer | x > 0 | READ | | title | The wiki page's title | String | not null | READ | humanURL: https://www.openproject.org/docs/api/ baseURL: https://community.openproject.org/api/v3 tags: - Wiki Pages properties: - type: OpenAPI url: openapi/openproject-wiki-pages-api-openapi.yml - type: Documentation url: https://www.openproject.org/docs/api/ - type: Introduction url: https://www.openproject.org/docs/api/introduction/ - type: Endpoints url: https://www.openproject.org/docs/api/endpoints/ - type: GitHub url: https://github.com/opf/openproject - aid: openproject:openproject-work-packages-api name: OpenProject Work Packages API description: >- The work packages endpoints return collections or single entities of type `WorkPackage`. The following tables list the different properties of `WorkPackage` entities. ## Actions | Link | Description | Condition | |:-------------------:|--------------------------------------------------------------------------| ---------------------------------------| | addAttachment | Attach a file to the WP | **Permission**: edit work package | | addComment | Post comment to WP | **Permission**: add work package notes | | addRelation | Adds a relation to this work package. | **Permission**: manage wp relations | | addWatcher | Add any user to WP watchers | **Permission**: add watcher | | customActions | Collection of predefined changes that can be applied to the work package | | | logTime | Log time on the work package | **Permission**: Log time, Log own time | | previewMarkup | Post markup (in markdown) here to receive an HTML-rendered response | | | removeWatcher | Remove any user from WP watchers | **Permission**: delete watcher | | unwatch | Remove current user from WP watchers | logged in; watching | | update | Form endpoint that aids in preparing and performing edits on a WP | **Permission**: edit work package | | updateImmediately | Directly perform edits on a work package | **Permission**: edit work package | | watch | Add current user to WP watchers | logged in; not watching | | delete | Delete this work package | **Permission**: delete work package | ## Linked Properties | Link | Description | Type | Constraints | Supported operations | Condition | | :--------------------: | ----------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------- | ----------------------------------------- | --------------------- | ----------------------------------------- | | self | This work package | WorkPackage | not null | READ | | | schema | The schema of this work package | Schema | not null | READ | | | ancestors | Array of all visible ancestors of the work package, with the root node being the first element | Collection | not null | READ | **Permission** view work packages | | attachments | The files attached to this work package | Collection | not null | READ / WRITE | | | author | The person that created the work package | User | not null | READ | | | assignee | The person that is intended to work on the work package | User | | READ / WRITE | | | availableWatchers | All users that can be added to the work package as watchers. | User | | READ | **Permission** add work package watchers | | budget | The budget this work package is associated to | Budget | | READ / WRITE | **Permission** view cost objects | | category | The category of the work package | Category | | READ / WRITE | | | children | Array of all visible children of the work package | Collection | not null | READ | **Permission** view work packages | | parent | Parent work package | WorkPackage | Needs to be visible (to the current user) | READ / WRITE | | | priority | The priority of the work package | Priority | not null | READ / WRITE | | | project | The project to which the work package belongs | Project | not null | READ / WRITE | | | projectPhase | The project phase this work package is assigned to | ProjectPhase | | READ / WRITE | **Permission** view project phases. There has to be a project phase active in the project. | | projectPhaseDefinition | The project phase definition for the project phase of this work package. | ProjectPhaseDefinition | | READ | **Permission** view project phases. The associated project phase has to be active. | | responsible | The person that is responsible for the overall outcome | User | | READ / WRITE | | | relations | Relations this work package is involved in | Relation | | READ | **Permission** view work packages | | revisions | Revisions that are referencing the work package | Revision | | READ | **Permission** view changesets | | status | The current status of the work package | Status | not null | READ / WRITE | | | sprint | The sprint the work package is planned in | Sprint | | READ / WRITE | **Permission** view sprints | | subject | The subject of the work package | String | not null; 1 <= length <= 255 | READ / WRITE | | | timeEntries | All time entries logged on the work package. Please note that this is a link to an HTML resource for now and as such, the link is subject to change. | N/A | | READ | **Permission** view time entries | | type | The type of the work package | Type | not null | READ / WRITE | | | version | The version associated to the work package | Version | | READ / WRITE | | | watchers | All users that are currently watching this work package | Collection | | READ | **Permission** view work package watchers | ## Local Properties | Property | Description | Type | Constraints | Supported operations | Condition | | :--------------: | ------------------------------------------------------ | ----------- | ------------------------------------------------------------------------------------------------------ | -------------------- | -------------------------------- | | id | Work package id | Integer | x > 0 | READ | | | lockVersion | The version of the item as used for optimistic locking | Integer | | READ | | | subject | Work package subject | String | not null; 1 <= length <= 255 | READ / WRITE | Is write protected if the type has automatic subject generation configured. | | status | Name of the work package's status | String | not null | READ | | | type | Name of the work package's type | String | not null | READ | | | description | The work package description | Formattable | | READ / WRITE | | | scheduleManually | Uses manual scheduling mode when true (default). Uses automatic scheduling mode when false. Can be automatic only when predecessors or children are present. | Boolean | | READ / WRITE | | | startDate | Scheduled beginning of a work package | Date | Cannot be set for parent work packages unless it is scheduled manually; must be equal or greater than the earliest possible start date; Exists only on work packages of a non milestone type | READ / WRITE | | | dueDate | Scheduled end of a work package | Date | Cannot be set for parent work packages unless it is scheduled manually; must be greater than or equal to the start date; Exists only on work packages of a non milestone type | READ / WRITE | | | date | Date on which a milestone is achieved | Date | Exists only on work packages of a milestone type | READ / WRITE | | | derivedStartDate | Similar to start date but is not set by a client but rather deduced by the work packages' descendants. If manual scheduleManually is active, the two dates can deviate. | Date | | READ | | | derivedDueDate | Similar to due date but is not set by a client but rather deduced by the work packages' descendants. If manual scheduleManually is active, the two dates can deviate. | Date | | READ | | | duration | The amount of time in hours the work package needs to be completed. | Duration | Not available for milestone type of work packages. | READ / WRITE | | | estimatedTime | Corresponds to work. Time a work package likely needs to be completed. | Duration | | READ / WRITE | | | derivedEstimatedTime | Corresponds to total work. Time a work package likely needs to be completed including itself and its descendants. | Duration | | READ | | | remainingTime | Corresponds to remaining work. Remaining time a work package likely needs to be completed. | Duration | | READ / WRITE | | | derivedRemainingTime | Corresponds to total remaining work. Remaining time a work package likely needs to be completed including itself and its descendants. | Duration | | READ | | | ignoreNonWorkingDays | When scheduling, whether or not to ignore the non working days being defined. A work package with the flag set to true will be allowed to be scheduled to a non working day. | Boolean | Cannot be set for parent work packages unless it is scheduled manually | READ | | | position | The rank this work package has in a sprint or product backlog | Integer | | READ | The Backlogs module needs to be active in the project and the work package's type configured to be used with backlogs. | | spentTime | The time booked for this work package by users working on it | Duration | | READ | **Permission** view time entries | | storyPoints | The story points the work package is estimated to take to complete | Integer | | READ / WRITE | The Backlogs module needs to be active in the project and the work package's type configured to be used with backlogs. | | percentageDone | Corresponds to % complete. Amount of total completion for a work package. | Integer | 0 <= x <= 100; can be null | READ | | | derivedPercentageDone | Corresponds to total % complete. Amount of total completion for a work package and its descendants. | Integer | 0 <= x <= 100; can be null | READ | | | readonly | If true, the work package is in a readonly status so with the exception of the status, no other property can be altered. | Boolean | | READ | Enterprise edition only | | createdAt | Time of creation | DateTime | | READ | | | updatedAt | Time of the most recent change to the work package | DateTime | | READ | | Note that the properties listed here only cover the built-in properties of the OpenProject Core. Using plug-ins and custom fields a work package might contain various additional properties. A client can consult the schema information to which the work package links. The schema will contain information about all properties of the linking work package, including properties added by plug-ins and custom fields. Custom fields are identified by a key in the form of `customFieldN`, where `N` is an integer. Depending on their type, they can occur as properties or as linked properties. A client has to consult the schema to resolve the human readable name of custom fields. Properties that cannot be set directly on parent work packages are inferred from their children instead: * `startDate` is the earliest start date from its children if automatic scheduling is activated. * `dueDate` is the latest finish date from its children if automatic scheduling is activated. * `derivedEstimatedTime` is the sum of estimated times from its children and the work package's own estimated time. * `derivedRemainingTime` is the sum of remaining times from its children and the work package's own remaining time * `derivedPercentageDone` is computed by the work package's derivedEstimatedTime and derivedRemainingTime. `startDate` can also not be earlier than a finish date of any predecessor. While attachments are returned as a link whose content is to be fetched separately, clients can choose to replace the work package's attachments by providing an array of already uploaded [Attachment resources](https://www.openproject.org/docs/api/endpoints/attachments/) on [create](https://www.openproject.org/docs/api/endpoints/work-packages/#create-work-package) and [update](https://www.openproject.org/docs/api/endpoints/work-packages/#update-a-work-package). The attachments the work package has had prior to the request will be removed. humanURL: https://www.openproject.org/docs/api/ baseURL: https://community.openproject.org/api/v3 tags: - Work Packages properties: - type: OpenAPI url: openapi/openproject-work-packages-api-openapi.yml - type: Documentation url: https://www.openproject.org/docs/api/ - type: Introduction url: https://www.openproject.org/docs/api/introduction/ - type: Endpoints url: https://www.openproject.org/docs/api/endpoints/ - type: GitHub url: https://github.com/opf/openproject - aid: openproject:openproject-work-schedule-api name: OpenProject Work Schedule API description: >- The work schedule defines if days are working days or non-working days. A day can be a non-working day if any of these two conditions are met: - the day is a recurring non-working week day: a weekend day. For instance Sunday is not worked in most countries; - the day has been defined as a non-working day: national bank holidays or other days deemed special. For instance the 1st of January is New Year's day and is a bank holiday in most countries. Endpoints can define which week days are working/non-working days, and which dates are non-working days. To represent the work schedule, `Day`, `WeekDay`, and `NonWorkingDay` models are used. ## Day Actions None ## Day Linked Properties | Link | Description | Type | Constraints | Supported operations | | :---------------: | ---------------------------------------------------------------- | ------------------------- | ----------- | -------------------- | | self | This day | Day | not null | READ | | nonWorkingReasons | A list of resources describing why this day is a non-working day | (WeekDay/NonWorkingDay)[] | | READ | | weekDay | The week day for this day | WeekDay | not null | READ | ## Day Local Properties | Property | Description | Type | Constraints | Supported operations | | :--------: | ------------------------------------------- | ------- | -------------- | -------------------- | | date | The date in ISO8601 format (YYYY-MM-DD) | Date | not null | READ | | name | The name of the day | String | not null | READ | | working | `true` for a working day, `false` otherwise | Boolean | not null | READ | ## WeekDay Actions | Link | Description | Condition | | :----: | -------------------- | ---------------------------------- | | update | Update this week day | **Permission**: edit work schedule | ## WeekDay Linked Properties | Link | Description | Type | Constraints | Supported operations | | :--: | ------------- | ------- | ----------- | -------------------- | | self | This week day | WeekDay | not null | READ | ## WeekDay Local Properties | Property | Description | Type | Constraints | Supported operations | | :------: | --------------------------------------------------- | ------- | -------------- | -------------------- | | day | The week day from 1 to 7. 1 is Monday. 7 is Sunday. | Integer | x >= 1, x <= 7 | READ | | name | The name of the week day | String | not null | READ | | working | `true` for a working week day, `false` otherwise | Boolean | not null | READ/WRITE | ## NonWorkingDay Actions | Link | Description | Condition | | :----: | --------------------------- | ---------------------------------- | | update | Update this non-working day | **Permission**: edit work schedule | ## NonWorkingDay Linked Properties | Link | Description | Type | Constraints | Supported operations | | :--: | -------------------- | ------------- | ----------- | -------------------- | | self | This non-working day | NonWorkingDay | not null | READ | ## NonWorkingDay Local Properties | Property | Description | Type | Constraints | Supported operations | | :------: | --------------------------------------- | ------ | ----------- | -------------------- | | date | The date in ISO8601 format (YYYY-MM-DD) | Date | not null | READ | | name | The name of the non-working day day | String | not null | READ/WRITE | humanURL: https://www.openproject.org/docs/api/ baseURL: https://community.openproject.org/api/v3 tags: - Work Schedule properties: - type: OpenAPI url: openapi/openproject-work-schedule-api-openapi.yml - type: Documentation url: https://www.openproject.org/docs/api/ - type: Introduction url: https://www.openproject.org/docs/api/introduction/ - type: Endpoints url: https://www.openproject.org/docs/api/endpoints/ - type: GitHub url: https://github.com/opf/openproject - aid: openproject:openproject-workpackages-api name: OpenProject WorkPackages API description: The WorkPackages API from OpenProject — 1 operation(s) for workpackages. humanURL: https://www.openproject.org/docs/api/ baseURL: https://community.openproject.org/api/v3 tags: - WorkPackages properties: - type: OpenAPI url: openapi/openproject-workpackages-api-openapi.yml - type: Documentation url: https://www.openproject.org/docs/api/ - type: Introduction url: https://www.openproject.org/docs/api/introduction/ - type: Endpoints url: https://www.openproject.org/docs/api/endpoints/ - type: GitHub url: https://github.com/opf/openproject - aid: openproject:openproject-workspace-api name: OpenProject Workspace API description: The Workspace API from OpenProject — 1 operation(s) for workspace. humanURL: https://www.openproject.org/docs/api/ baseURL: https://community.openproject.org/api/v3 tags: - Workspace properties: - type: OpenAPI url: openapi/openproject-workspace-api-openapi.yml - type: Documentation url: https://www.openproject.org/docs/api/ - type: Introduction url: https://www.openproject.org/docs/api/introduction/ - type: Endpoints url: https://www.openproject.org/docs/api/endpoints/ - type: GitHub url: https://github.com/opf/openproject - aid: openproject:openproject-workspaces-api name: OpenProject Workspaces API description: "Workspaces are containers for resources to be worked on and people with sets of permissions\ \ that work on the former. There is no actual workspace resource\nin OpenProject. Rather, it is the\ \ generic term describing:\n* [Portfolio](https://www.openproject.org/docs/api/endpoints/portfolios)\n\ * [Program](https://www.openproject.org/docs/api/endpoints/programs)\n* [Project](https://www.openproject.org/docs/api/endpoints/projects)\n\ \nA lot of resources reference the workspaces they are valid in, e.g. [Work package](https://www.openproject.org/docs/api/endpoints/work-packages/#linked-properties)\ \ and\n[Memberships](https://www.openproject.org/docs/api/endpoints/memberships/#linked-properties).\n\ \nBefore OP 17.0 only projects existed. At that point, the API v3 was already established. That is\ \ the reason why quite a number of\nresource have links called \"project\" or similar when they are\ \ in fact contained in a different type of workspace. To not break the API, the name of the link was\ \ kept. \nBut those links can contain the other types of workspaces as well. It can thus be possible\ \ for a work package to have the following:\n\n```\n {\n \"_links\": {\n \"project\": {\n\ \ \"href\": \"/api/v3/portfolios/48\",\n \"title: \"A portfolio\"\n },\n \ \ ...\n },\n ...\n }\n```\n\nAccordingly, to set the workspace a resource is in, sending\ \ any workspace link to the link property will be accepted by the API.\n\nThe concept of workspaces\ \ is planned to be extended to include further types." humanURL: https://www.openproject.org/docs/api/ baseURL: https://community.openproject.org/api/v3 tags: - Workspaces properties: - type: OpenAPI url: openapi/openproject-workspaces-api-openapi.yml - type: Documentation url: https://www.openproject.org/docs/api/ - type: Introduction url: https://www.openproject.org/docs/api/introduction/ - type: Endpoints url: https://www.openproject.org/docs/api/endpoints/ - type: GitHub url: https://github.com/opf/openproject common: - type: AgenticAccess url: agentic-access/openproject-agentic-access.yml - type: VulnerabilityDisclosure url: security/openproject-vulnerability-disclosure.yml - type: DomainSecurity url: security/openproject-domain-security.yml - type: Authentication url: authentication/openproject-authentication.yml - type: LinkedIn url: https://www.linkedin.com/company/openproject-gmbh - type: Website url: https://www.openproject.org - type: Documentation url: https://www.openproject.org/docs/ - type: API url: https://www.openproject.org/docs/api/ - type: GitHub url: https://github.com/opf/openproject - type: Pricing url: https://www.openproject.org/pricing/ - type: SelfHosting url: https://www.openproject.org/docs/installation-and-operations/ - type: Login url: https://community.openproject.org/login - type: Support url: https://www.openproject.org/docs/support/ - type: Integrations url: https://www.openproject.org/integrations/ - url: https://www.openproject.org/feed.xml type: Blog integrations: - name: Nextcloud - name: OneDrive/SharePoint - name: GitHub - name: GitLab maintainers: - FN: Kin Lane email: kin@apievangelist.com