Aedifion Project API

Creating, modifying, and accessing projects and related resources.

Operations 83

DELETE /v2/project/{project_id} Delete project #
GET /v2/project/{project_id} Get project's details #
PUT /v2/project/{project_id} Update project's details #
POST /v2/project/{project_id}/ai/consent Grant or revoke the consent for AI Assistant #
GET /v2/project/{project_id}/alerts Get all alerts in a project #
DELETE /v2/project/{project_id}/avatar Deletes the current avatar image of the project #
POST /v2/project/{project_id}/avatar Uploads and stores an image for the project #
GET /v2/project/{project_id}/comments Get all comments of a project #
POST /v2/project/{project_id}/comments Create a new project comment #
DELETE /v2/project/{project_id}/comments/{comment_id} Delete a project comment #
GET /v2/project/{project_id}/comments/{comment_id} Get a project comment #
PUT /v2/project/{project_id}/comments/{comment_id} Edit a project comment #
POST /v2/project/{project_id}/componentInProject Add a new component in project #
DELETE /v2/project/{project_id}/componentInProject/attribute Delete an attribute for a component in a project #
POST /v2/project/{project_id}/componentInProject/attribute Add a new attribute to component in project #
PUT /v2/project/{project_id}/componentInProject/attribute Edit an attribute for a component in a project #
PATCH /v2/project/{project_id}/componentInProject/attributes Change attributes of a component in project #
DELETE /v2/project/{project_id}/componentInProject/pin/datapoint Delete a datapoint on component pin for the project #
POST /v2/project/{project_id}/componentInProject/pin/datapoint Connects a datapoint to a component's pin #
PUT /v2/project/{project_id}/componentInProject/pin/datapoint Edits a datapoint on a component pin in the specified project #
GET /v2/project/{project_id}/componentInProject/pin/recommendations Get recommendations for datapoints of an instantiated component within a project #
POST /v2/project/{project_id}/componentInProject/relationship Create a relationship between componentinprojects #
DELETE /v2/project/{project_id}/componentInProject/relationship/{relationship_id} Delete an existing componentinproject relationship #
DELETE /v2/project/{project_id}/componentInProject/{componentinproject_id} Delete a component in the specified project #
GET /v2/project/{project_id}/componentInProject/{componentinproject_id} Get a component for the specified project #
PUT /v2/project/{project_id}/componentInProject/{componentinproject_id} Edit a component in the specified project #
GET /v2/project/{project_id}/componentinproject/{componentinproject_id}/holidays Get holidays of a component for the given time range #
GET /v2/project/{project_id}/componentinproject/{componentinproject_id}/schedules Get component schedules for the given time range #
GET /v2/project/{project_id}/componentsInProject Get all components in a project #
POST /v2/project/{project_id}/custom_page Create a custom page for a project #
DELETE /v2/project/{project_id}/custom_page/{custom_page_id} Delete a custom page #
PUT /v2/project/{project_id}/custom_page/{custom_page_id} Update a custom page #
DELETE /v2/project/{project_id}/datapoints Delete datapoints in the project #
GET /v2/project/{project_id}/datapoints/byPage Get list of filtered data points in this project #
GET /v2/project/{project_id}/datapoints/byTag Get all data points in this project with a given tag #
GET /v2/project/{project_id}/datapoints/favorites Get a list of favorited data points in this project #
GET /v2/project/{project_id}/device/{device_id} Get a device for the project #
GET /v2/project/{project_id}/devices Get a list of devices for the project #
DELETE /v2/project/{project_id}/file Delete a file on the project's document database #
GET /v2/project/{project_id}/file Download a file from the project's document database #
POST /v2/project/{project_id}/file Upload a file in the project's document database #
PUT /v2/project/{project_id}/file Replace a file on the project's document database #
GET /v2/project/{project_id}/files Get a list of files from the project's document database #
DELETE /v2/project/{project_id}/folder Delete a folder on the project's document database #
POST /v2/project/{project_id}/folder Create a folder on the project's document database #
DELETE /v2/project/{project_id}/hidden_native_page Unhide a native page for a project #
POST /v2/project/{project_id}/hidden_native_page Hide a native page for a project #
POST /v2/project/{project_id}/import-digital-twins Start a digital twin import #
POST /v2/project/{project_id}/importTimeseries Imports timeseries data from a file #
GET /v2/project/{project_id}/jobs Get all jobs in a project #
GET /v2/project/{project_id}/jobs/{job_id}/logs Get logs of a job in the project #
POST /v2/project/{project_id}/mqttuser Create an MQTT user account #
PUT /v2/project/{project_id}/mqttuser/{mqttuser_id} Updates an MQTT user account #
POST /v2/project/{project_id}/object-report Trigger object report generation #
GET /v2/project/{project_id}/object-report/status Get status of the object report generations for a project #
POST /v2/project/{project_id}/plot-view Create a plot view #
DELETE /v2/project/{project_id}/plot-view/{plot_view_id} Delete a plot view #
GET /v2/project/{project_id}/plot-view/{plot_view_id} Get a plot view #
PUT /v2/project/{project_id}/plot-view/{plot_view_id} Update a plot view #
GET /v2/project/{project_id}/project_journey Get project journey #
GET /v2/project/{project_id}/quota Get quota for various services enabled for the project #
POST /v2/project/{project_id}/role Create a new role for this project #
DELETE /v2/project/{project_id}/role/{role_id} Delete an existing role for this project #
PUT /v2/project/{project_id}/role/{role_id} Updates an existing role for this project #
DELETE /v2/project/{project_id}/role/{role_id}/user/{user_id} Removes a role from a user #
POST /v2/project/{project_id}/role/{role_id}/user/{user_id} Assign a role to a user #
GET /v2/project/{project_id}/roles Get all roles defined in the project #
GET /v2/project/{project_id}/setpoints Get a list of setpoints defined for the project #
POST /v2/project/{project_id}/tag Create a new tag #
DELETE /v2/project/{project_id}/tag/{tag_id} Delete a tag #
PUT /v2/project/{project_id}/tag/{tag_id} Update an existing tag #
GET /v2/project/{project_id}/tags Get all data point tags in this project #
GET /v2/project/{project_id}/tasks Get all tasks in a project #
GET /v2/project/{project_id}/timeseries Get the time series data of a list of data points #
POST /v2/project/{project_id}/timeseries Add timeseries data for datapoints #
GET /v2/project/{project_id}/users Get all users of the project #
DELETE /v2/project/{project_id}/virtual_datapoint Delete a virtual datapoint in the project #
GET /v2/project/{project_id}/virtual_datapoint Get a virtual datapoint in the project #
POST /v2/project/{project_id}/virtual_datapoint Create a virtual datapoint in the project #
PUT /v2/project/{project_id}/virtual_datapoint Edit a virtual datapoint in the project #
POST /v2/project/{project_id}/virtual_datapoint/run Request to run or stop a virtual datapoint in the project #
GET /v2/project/{project_id}/virtual_datapoints Get a list of virtual datapoints in the project #

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/aedifion-project-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

aedifion-project-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  description: 'Welcome to the interactive user interface (UI) for the aedifion REST API.


    This UI allows you to


    - browse documentation of all endpoints

    - explore schemas and examples of request parameters and responses

    - call endpoints and view responses


    Further documentation as well as extensive guides and tutorials are available in the official documentation.'
  title: Docs Project API
  version: ''
servers:
- url: ''
tags:
- description: Creating, modifying, and accessing projects and related resources.
  name: Project
paths:
  /v2/project/{project_id}:
    delete:
      description: 'Deletes the specified project and all its associated resources.

        Requires confirmation by the given project name.'
      operationId: delete_project
      parameters:
      - description: The id of the project that should be deleted.
        in: path
        name: project_id
        required: true
        schema:
          format: int64
          type: integer
      - description: The exact name of the project. Must match the project name exactly for deletion to proceed.
        in: query
        name: project_name
        required: true
        schema:
          type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Success'
          description: 'Successful operation.

            The deleted project is returned within the ''resource'' field and ''operation'' will indicate a ''delete'' operation.

            '
        '400':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
          description: Bad request. Details are returned in the 'error' field of the response.
        '401':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
          description: 'Unauthorized request.

            Details on the error are returned in the ''error'' field of the response and ''operation'' is set to ''delete''.

            '
          headers:
            WWW_Authenticate:
              schema:
                type: string
        '404':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
          description: Project not found.
      security:
      - basicAuth: []
      - openIDConnect: []
      summary: Delete project
      tags:
      - Project
      x-openapi-router-controller: app.controllers.project_controller
    get:
      description: Returns the details of the queried project.
      operationId: get_project
      parameters:
      - description: The id of the project that should be retrieved.
        in: path
        name: project_id
        required: true
        schema:
          format: int64
          type: integer
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProjectWithContext'
          description: 'Successful operation.

            Returns the project, the company that owns this project, and a list of data point keys associated with this project.

            '
        '401':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
          description: 'Unauthorized request.

            Details on the error are returned in the ''error'' field of the response and ''operation'' is set to get.

            '
          headers:
            WWW_Authenticate:
              schema:
                type: string
      security:
      - basicAuth: []
      - openIDConnect: []
      summary: Get project's details
      tags:
      - Project
      x-openapi-router-controller: app.controllers.project_controller
    put:
      description: Updates the details of the specified project.
      operationId: put_project
      parameters:
      - description: The id of the project that should be updated.
        in: path
        name: project_id
        required: true
        schema:
          format: int64
          type: integer
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UpdateProject'
        description: 'The details of the update to an existing project:

          - **name** is optional, a new name for the referenced project

          - **description** is optional, a new description for the referenced project

          - **latitude** is optional, a new latitude for the referenced project

          - **longitude** is optional, a new longitude for the referenced project

          - **units_system** is optional, a new preferred system of units for the referenced project

          - **currency_system** is optional, a new preferred currency system for the referenced project

          - **asset_manager_id** is id of the user that is the asset manager of the project. Assign `null` to remove the asset manager."

          - **account_manager_id** is id of the user that is the account manager of the project. Assign `null` to remove the account manager."

          - **project_engineer_id** is id of the user that is the project engineer. Assign `null` to remove the project engineer."

          '
        required: true
        x-body-name: project
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Success'
          description: 'Successful operation.

            The updated project is returned within the ''resource'' field and ''operation'' will indicate a ''update'' operation.

            '
        '401':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
          description: 'Unauthorized request.

            Details on the error are returned in the ''error'' field of the response and ''operation'' is set to ''update''.

            '
          headers:
            WWW_Authenticate:
              schema:
                type: string
      security:
      - basicAuth: []
      - openIDConnect: []
      summary: Update project's details
      tags:
      - Project
      x-openapi-router-controller: app.controllers.project_controller
  /v2/project/{project_id}/ai/consent:
    post:
      description: 'Grant or revoke the consent for AI assistant for the specified project.

        Giving consent grants the AI assistant to process project''s data.'
      operationId: post_ai_assistant_consent
      parameters:
      - description: The id of the project
        in: path
        name: project_id
        required: true
        schema:
          format: int64
          type: integer
      - description: Consent status. Set to true to give consent, false to revoke.
        in: query
        name: consent
        required: true
        schema:
          type: boolean
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Success'
          description: AI assistant consent status updated successfully
        '401':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
          description: Unauthorized request
      security:
      - basicAuth: []
      - openIDConnect: []
      summary: Grant or revoke the consent for AI Assistant
      tags:
      - Project
      x-openapi-router-controller: app.controllers.project_controller
  /v2/project/{project_id}/alerts:
    get:
      description: Returns the details of all alerts in a project.
      operationId: get_alerts
      parameters:
      - description: The numeric id of the project for which alerts should be queried.
        in: path
        name: project_id
        required: true
        schema:
          format: int64
          type: integer
      - description: Page number.
        in: query
        name: page
        required: false
        schema:
          format: int64
          type: integer
      - description: Items per page. Defaults to 20, maximum limit is 100.
        in: query
        name: per_page
        required: false
        schema:
          format: int64
          type: integer
      - description: Optional parameter, filter on alert names.
        in: query
        name: search
        required: false
        schema:
          type: string
      - description: 'Results can be filtered by keys: alert_type, dataPointID, status.

          Format must be in the form of key=value.

          Multiple filters can be applied, separated by a '';'' like: key=value; key2=value

          Filters with same key will be processed as ''Or'' and ''And'' across different keys.

          The status filter accepts the values ''enabled'' and ''disabled'' (case-insensitive).

          '
        in: query
        name: filter
        required: false
        schema:
          type: string
      - description: Optional parameter, sort order, ascending by default
        in: query
        name: sort_order
        required: false
        schema:
          default: asc
          enum:
          - asc
          - desc
          type: string
      - description: Optional parameter, sort by, sorted by id by default
        in: query
        name: sort_by
        required: false
        schema:
          default: id
          enum:
          - id
          - name
          - alert_type
          - created
          - updated
          - status
          type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ListOfAlerts'
          description: Successful operation. A list of all alerts for the specified project is returned.
        '401':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
          description: 'Unauthorized request.

            Details on the error are returned in the ''error'' field of the response and ''operation'' is set to ''get''.

            '
          headers:
            WWW_Authenticate:
              schema:
                type: string
      security:
      - basicAuth: []
      - openIDConnect: []
      summary: Get all alerts in a project
      tags:
      - Project
      x-openapi-router-controller: app.controllers.project_controller
  /v2/project/{project_id}/avatar:
    delete:
      operationId: delete_project_avatar
      parameters:
      - description: id of the project
        in: path
        name: project_id
        required: true
        schema:
          type: integer
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Success'
          description: Successful operation.
        '500':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
          description: Out of service.
      security:
      - basicAuth: []
      - openIDConnect: []
      summary: Deletes the current avatar image of the project
      tags:
      - Project
      x-openapi-router-controller: app.controllers.project_controller
    post:
      operationId: post_project_avatar
      parameters:
      - description: id of the project
        in: path
        name: project_id
        required: true
        schema:
          type: integer
      requestBody:
        content:
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/UploadAvatarRequest'
        required: true
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Success'
          description: Successful operation.
        '400':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
          description: File is not an image file.
        '500':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
          description: Out of service.
      security:
      - basicAuth: []
      - openIDConnect: []
      summary: Uploads and stores an image for the project
      tags:
      - Project
      x-openapi-router-controller: app.controllers.project_controller
  /v2/project/{project_id}/comments:
    get:
      description: Returns a paginated list of project comments.
      operationId: get_project_comments
      parameters:
      - description: The id of the project.
        in: path
        name: project_id
        required: true
        schema:
          type: integer
      - description: The page number.
        in: query
        name: page
        required: false
        schema:
          format: int64
          type: integer
      - description: Items per page. Defaults to 20, maximum limit is 100.
        in: query
        name: per_page
        required: false
        schema:
          format: int64
          type: integer
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProjectCommentList'
          description: A paginated list of project comments.
        '401':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
          description: 'Unauthorized request. Details on the error are returned in the ''error'' field of the response.

            '
          headers:
            WWW_Authenticate:
              schema:
                type: string
      security:
      - basicAuth: []
      - openIDConnect: []
      summary: Get all comments of a project
      tags:
      - Project
      x-openapi-router-controller: app.controllers.project_controller
    post:
      description: Create a new comment for a project given with `project_id`.
      operationId: post_project_comment
      parameters:
      - description: The id of the project the comment will be created for.
        in: path
        name: project_id
        required: true
        schema:
          type: integer
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/NewProjectComment'
        description: The details of the comment.
        required: true
        x-body-name: new_comment
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProjectComment'
          description: Success. The project comment has been created. The created comment is returned in the response.
        '401':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
          description: Unauthorized request. Details of the error are returned in the 'error' field of the response.
          headers:
            WWW_Authenticate:
              schema:
                type: string
      security:
      - basicAuth: []
      - openIDConnect: []
      summary: Create a new project comment
      tags:
      - Project
      x-openapi-router-controller: app.controllers.project_controller
  /v2/project/{project_id}/comments/{comment_id}:
    delete:
      description: Delete a comment belonging to a project.
      operationId: delete_project_comment
      parameters:
      - in: path
        name: project_id
        required: true
        schema:
          type: integer
      - description: The id of the comment.
        in: path
        name: comment_id
        required: true
        schema:
          format: uuid
          type: string
      responses:
        '204':
          content: {}
          description: Success. The project comment has been deleted.
        '401':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
          description: Unauthorized request. Details on the error are returned in the 'error' field of the response.
          headers:
            WWW_Authenticate:
              schema:
                type: string
      security:
      - basicAuth: []
      - openIDConnect: []
      summary: Delete a project comment
      tags:
      - Project
      x-openapi-router-controller: app.controllers.project_controller
    get:
      description: Get the details of a project comment.
      operationId: get_project_comment
      parameters:
      - description: The id of the comment.
        in: path
        name: comment_id
        required: true
        schema:
          format: uuid
          type: string
      - in: path
        name: project_id
        required: true
        schema:
          type: integer
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProjectComment'
          description: Success. The queried project comment is returned in the response.
        '401':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
          description: Unauthorized request. Details on the error are returned in the 'error' field of the response.
          headers:
            WWW_Authenticate:
              schema:
                type: string
      security:
      - basicAuth: []
      - openIDConnect: []
      summary: Get a project comment
      tags:
      - Project
      x-openapi-router-controller: app.controllers.project_controller
    put:
      description: Update the message of a project comment.
      operationId: put_project_comment
      parameters:
      - description: The id of the comment.
        in: path
        name: comment_id
        required: true
        schema:
          format: uuid
          type: string
      - in: path
        name: project_id
        required: true
        schema:
          type: integer
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UpdateProjectComment'
        description: The changes to the comment.
        required: true
        x-body-name: comment
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProjectComment'
          description: Success. The project comment has been updated. The updated comment is returned in the response.
        '401':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
          description: Unauthorized request. Details on the error are returned in the 'error' field of the response.
          headers:
            WWW_Authenticate:
              schema:
                type: string
      security:
      - basicAuth: []
      - openIDConnect: []
      summary: Edit a project comment
      tags:
      - Project
      x-openapi-router-controller: app.controllers.project_controller
  /v2/project/{project_id}/componentInProject:
    post:
      description: Adds a new component to the specified project.
      operationId: post_project_component
      parameters:
      - description: The numeric id of the project for which to add the new component.
        in: path
        name: project_id
        required: true
        schema:
          format: int64
          type: integer
      - description: The numeric id of the component to add.
        in: query
        name: component_id
        required: true
        schema:
          format: int64
          type: integer
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/NewComponentInProject'
        description: 'The details of the component to add to the project.

          **Note:** At least one of ''name'', ''nameEN'', or ''nameDE'' must be provided.

          - **name** [optional], the component''s name. If not given, deprecated parameters ''nameEN'' and ''nameDE'' are going to be taken into account.

          - (deprecated) **nameEN** [optional], the component''s english name

          - (deprecated) **nameDE** [optional], the component''s german name

          - **abbreviation** [optional], the component''s abbreviated name

          '
        required: false
        x-body-name: component_details
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Success'
          description: 'Successful operation.

            The newly added component is returned in the ''resource'' field and the ''operation'' is set to ''create''.

            '
        '401':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
          description: 'Unauthorized request.

            Details on the error are returned in the ''error'' field of the response and ''operation'' is set to ''create''.

            '
          headers:
            WWW_Authenticate:
              schema:
                type: string
      security:
      - basicAuth: []
      - openIDConnect: []
      summary: Add a new component in project
      tags:
      - Project
      x-openapi-router-controller: app.controllers.project_controller
  /v2/project/{project_id}/componentInProject/attribute:
    delete:
      description: Deletes an attribute for a component in a project.
      operationId: delete_project_component_attribute
      parameters:
      - description: The numeric id of the project.
        in: path
        name: project_id
        required: true
        schema:
          format: int64
          type: integer
      - description: The numeric id of the component in project.
        in: query
        name: componentinproject_id
        required: true
        schema:
          format: int64
          type: integer
      - description: The attribute key that should be deleted.
        in: query
        name: key
        required: true
        schema:
          type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Success'
          description: 'Successful operation. The details of the deleted component attribute are returned in the ''resource'' field and ''operation'' will indicate a ''delete'' operation.

            '
        '401':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
          description: 'Unauthorized request.

            Details on the error are returned in the ''error'' field of the response and ''operation'' is set to ''delete''.

            '
          headers:
            WWW_Authenticate:
              schema:
                type: string
      security:
      - basicAuth: []
      - openIDConnect: []
      summary: Delete an attribute for a component in a project
      tags:
      - Project
      x-openapi-router-controller: app.controllers.project_controller
    post:
      description: Adds a new attribute to the specified component in project.
      operationId: post_project_component_attribute
      parameters:
      - description: The numeric id of the project.
        in: path
        name: project_id
        required: true
        schema:
          format: int64
          type: integer
      - description: The numeric id of the componentInProject.
        in: query
        name: componentinproject_id
        required: true
        schema:
          format: int64
          type: integer
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PostProjectComponentAttributeRequest'
        description: 'The details of the componentInproject attribute to add to the project:

          - **key** [mandatory], the key of the attribute

          - **value** [mandatory], the value of the attribute

          - **unit** [optional], the unit of the attribute

          '
        required: true
        x-body-name: attribute_details
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Success'
          description: 'Successful operation.

            The newly added component is returned in the ''resource'' field and the ''operation'' is set to ''create''.

            '
        '401':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
          description: 'Unauthorized request.

            Details on the error are returned in the ''error'' field of the response and ''operation'' is set to ''create''.

            '
          headers:
            WWW_Authenticate:
              schema:
                type: string
      security:
      - basicAuth: []
      - openIDConnect: []
      summary: Add a new attribute to component in project
      tags:
      - Project
      x-openapi-router-controller: app.controllers.project_controller
    put:
      description: Edits an attribute for a component in a project.
      operationId: put_project_component_attribute
      parameters:
      - description: The numeric id of the project.
        in: path
        name: project_id
        required: true
        schema:
          format: int64
          type: integer
      - description: The numeric id of the component in project.
        in: query
        name: componentinproject_id
        required: true
        schema:
          format: int64
          type: integer
      - description: The attribute key.
        in: query
        name: key
        required: true
        schema:
          type: string
      - description: The new value of the attribute.
        in: query
        name: value
        required: true
        schema:
          type: string
      - description: The new unit of the attribute.
        in: query
        name: unit
        required: false
        schema:
          type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Success'
          description: 'Successful operation.

            The edited component attribute is returned in the ''resource'' field and the ''operation'' is set to ''update''.

            '
        '401':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
          description: 'Unauthorized request.

            Details on the error are returned in the ''error'' field of the response and ''operation'' is set to ''update''.

            '
          headers:
            WWW_Authenticate:
              schema:
                type: string
      security:
      - basicAuth: []
      - openIDConnect: []
      summary: Edit an attribute for a component in a project
      tags:
      - Project
      x-openapi-router-controller: app.controllers.project_controller
  /v2/project/{project_id}/componentInProject/attributes:
    patch:
      description: Adds, updates and removes the attributes of a specified component in project as described in the request.
      operationId: patch_project_component_attributes
      parameters:
      - description: The numeric id of the project.
        in: path
        name: project_id
        required: true
        schema:
          format: int64
          type: integer
      - description: The numeric id of the componentInProject.
        in: query
        name: componentinproject_id
        required: true
        schema:
          format: int64
          type: integer
      - description: Option to force update controls apps that use the patched attributes.
        in: query
        name: force
        schema:
          default: false
          type: boolean
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PatchProjectComponentAttributesRequest'
        description: 'The details of the componentInproject attributes to update as a list of objects containing:

          - **key** [mandatory], the key of the attribute

          - **value** [optional], the value of the attribute

          - **unit** [optional], the unit of the attribute


          Providing key without a value results in deletion of the attribute.

          '
        required: true
        x-body-name: attribute_details_batch
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PatchAttributesSuccess'
          description: 'Successful operation.

            The newly added component is returned in the ''resource'' field and the ''operation'' is set to ''create''.

            '
        '400':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
          description: Bad request. Details on the error are returned in the 'details' field of the response.
        '401':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
          description: Unauthorized request. Details on the error are returned in the 'error' field of the response.
          headers:
            WWW_Authenticate:
              schema:
                type: string
      security:
      - basicAuth: []
      - openIDConnect: []
      summary: Change attributes of a component in project
      tags:
      - Project
      x-openapi-router-controller: app.controllers.project_controller
  /v2/project/{project_id}/componentInProject/pin/datapoint:
    delete:
      description: Deletes a datapoint on component pin defined in project.
      operationId: delete_project_component_pin_datapoint
      parameters:
      - description: The id of the project from where to delete the component.
        in: path
        name: project_id
        required: true
        schema:
          format: int64
          type: integer
      - description: The id of the component.
        in: query
        name: componentinproject_id
        required: true
        schema:
          format: int64
          type: integer
      - description: The id of the pin.
        in: query
        name: pin_id
        required: true
        schema:
          format: int64
          type: integer
      - $ref: '#/components/parameters/LanguageQueryParam'
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Success'
          description: 'Successful operation. The details of the deleted datapoint on component are returned in the ''resource'' field and ''operation'' will indicate a ''delete'' operation.

            '
        '401':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
          description: 'Unauthorized request.

            Details on the error are returned in the ''error'' field of the response and ''operation'' is set to ''delete''.

            '
          headers:
            WWW_Authenticate:
              schema:
                type: string
      security:
      - basicAuth: []
      - openIDConnect: []
      summary: Delete a datapoint on component pin for the project
      tags:
      - Project
      x-openapi-router-controller: app.controllers.project_controller
    post:
      description: Connects a datapoint to a component's pin within the specified project.
      operationId: post_project_component_pin_datapoint
      parameters:
      - description: The id of the project to add datapoint to its component pin.
        in: path
        name: project_id
        required: true
        schema:
          format: int64
          type: integer
      - description: '**componentinproject_id** [mandatory], the numeric id of the component in the project'
        in: query
        name: componentinproject_id
        required: true
        schema:
          format: int64
          type: integer
      - description: '**pin_id** [mandatory], the id of the pin.'
        in: query
        name: pin_id
        required: true
        schema:
 

# --- truncated at 32 KB (208 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/aedifion/refs/heads/main/openapi/aedifion-project-api-openapi.yml