OpenProject Project Phases API

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 |

Operations 1

GET /api/v3/project_phases/{id} Get a project phase #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/openproject:openproject-project-phases-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

openproject-project-phases-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  description: You're looking at the current **stable** documentation of the OpenProject APIv3.
  title: OpenProject API V3 (Stable) Project Phases API
  version: '3'
servers:
- url: https://qa.openproject-edge.com
  description: Edge QA instance
- url: https://qa.openproject-stage.com
  description: Staging instance
- url: https://community.openproject.org
  description: Community instance
security:
- BasicAuth: []
tags:
- 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.
  name: Project Phases
paths:
  /api/v3/project_phases/{id}:
    get:
      summary: Get a project phase
      operationId: get_project_phase
      tags:
      - Project Phases
      description: 'Gets a project phase resource. This resource contains an instance of a ProjectPhaseDefinition within a project which can

        then have project specific dates.'
      parameters:
      - name: id
        description: Project phase id
        in: path
        required: true
        schema:
          type: integer
        example: 1337
      responses:
        '200':
          description: OK
          content:
            application/hal+json:
              schema:
                $ref: '#/components/schemas/ProjectPhaseModel'
        '404':
          content:
            application/hal+json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              example:
                _type: Error
                errorIdentifier: urn:openproject-org:api:v3:errors:NotFound
                message: The requested resource could not be found.
          description: 'Returned if the project phase does not exist or the client does not have sufficient permissions to see it.


            **Required permission:** view project phase'
components:
  schemas:
    Link:
      type: object
      required:
      - href
      properties:
        href:
          type:
          - string
          - 'null'
          description: URL to the referenced resource (might be relative)
        title:
          type: string
          description: Representative label for the resource
        templated:
          type: boolean
          default: false
          description: If true the href contains parts that need to be replaced by the client
        method:
          type: string
          default: GET
          description: The HTTP verb to use when requesting the resource
        payload:
          type: object
          description: The payload to send in the request to achieve the desired result
        identifier:
          type: string
          description: An optional unique identifier to the link object
        type:
          type: string
          description: The MIME-Type of the returned resource.
      example:
        href: /api/v3/work_packages
        method: POST
    ErrorResponse:
      type: object
      required:
      - _type
      - errorIdentifier
      - message
      properties:
        _embedded:
          type: object
          properties:
            details:
              type: object
              properties:
                attribute:
                  type: string
                  example: project
        _type:
          type: string
          enum:
          - Error
        errorIdentifier:
          type: string
          example: urn:openproject-org:api:v3:errors:PropertyConstraintViolation
        message:
          type: string
          example: Project can't be blank.
    ProjectPhaseModel:
      type: object
      required:
      - _type
      - id
      - name
      - active
      - createdAt
      - updatedAt
      properties:
        _type:
          type: string
          enum:
          - ProjectPhase
        id:
          type: integer
          description: The project phase's id
          minimum: 1
        name:
          type: string
        active:
          type: boolean
        createdAt:
          type: string
          format: date-time
          description: Time of creation
        updatedAt:
          type: string
          format: date-time
          description: Time of the most recent change to the project phase
        _links:
          type: object
          required:
          - self
          - definition
          - project
          properties:
            self:
              allOf:
              - $ref: '#/components/schemas/Link'
              - description: 'This project phase.


                  **Resource**: ProjectPhase'
            definition:
              allOf:
              - $ref: '#/components/schemas/Link'
              - description: 'The definition this phase relies on.


                  **Resource**: ProjectPhaseDefinition'
            project:
              allOf:
              - $ref: '#/components/schemas/Link'
              - description: 'The project resource, that is the container of this phase.


                  **Resource**: Project'
      example:
        _type: ProjectPhase
        id: 1337
        name: Initiating
        active: true
        createdAt: '2023-01-20T14:30:00.368Z'
        updatedAt: '2023-05-23T11:57:48.618Z'
        _links:
          self:
            href: /api/v3/project_phases/23
          definition:
            title: Initiating
            href: /api/v3/project_definitions/11
          project:
            title: Death Star 3.0
            href: /api/v3/projects/11
  securitySchemes:
    BasicAuth:
      type: http
      scheme: basic