OpenProject EmojiReactions API

The EmojiReactions API from OpenProject — 2 operation(s) for emojireactions.

Operations 3

GET /api/v3/activities/{id}/emoji_reactions List emoji reactions by activity #
PATCH /api/v3/activities/{id}/emoji_reactions Toggle emoji reaction for an activity #
GET /api/v3/work_packages/{id}/activities_emoji_reactions List emoji reactions by work package activities #

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-emojireactions-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-emojireactions-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) Emoji Reactions 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:
- name: EmojiReactions
paths:
  /api/v3/activities/{id}/emoji_reactions:
    get:
      summary: List emoji reactions by activity
      operationId: list_activity_emoji_reactions
      tags:
      - EmojiReactions
      description: List all emoji reactions of a single activity.
      parameters:
      - name: id
        description: ID of the activity whose emoji reactions will be listed
        in: path
        required: true
        schema:
          type: integer
        example: '1'
      responses:
        '200':
          description: OK
          content:
            application/hal+json:
              schema:
                $ref: '#/components/schemas/EmojiReactions_Model'
        '404':
          content:
            application/hal+json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              examples:
                response:
                  value:
                    _type: Error
                    errorIdentifier: urn:openproject-org:api:v3:errors:NotFound
                    message: The requested resource could not be found.
          description: 'Returned if the activity does not exist or the client does not have sufficient permissions

            to see it.


            **Required permission:**

            - `view_work_packages`

            - for internal comments: `view_internal_comments`


            *Note: A client without sufficient permissions shall not be able to test for the existence of an activity.

            That''s why a 404 is returned here, even if a 403 might be more appropriate.*'
    patch:
      summary: Toggle emoji reaction for an activity
      operationId: toggle_activity_emoji_reaction
      tags:
      - EmojiReactions
      description: 'Toggle an emoji reaction for a given activity. If the user has already reacted with the given emoji,

        the reaction will be removed. Otherwise, a new reaction will be created.


        **Note:** The response contains the complete collection of all emoji reactions for this activity.


        **Required permission:**

        - `add_work_package_comments`

        - for internal comments: `add_internal_comments`'
      parameters:
      - name: id
        description: ID of the activity to toggle emoji reaction for
        in: path
        required: true
        schema:
          type: integer
        example: '1'
      requestBody:
        required: true
        content:
          application/hal+json:
            schema:
              type: object
              required:
              - reaction
              properties:
                reaction:
                  type: string
                  description: The emoji reaction identifier
                  example: thumbs_up
                  enum:
                  - thumbs_up
                  - thumbs_down
                  - grinning_face_with_smiling_eyes
                  - confused_face
                  - heart
                  - party_popper
                  - rocket
                  - eyes
      responses:
        '200':
          description: OK
          content:
            application/hal+json:
              schema:
                $ref: '#/components/schemas/EmojiReactionModel'
        '400':
          content:
            application/hal+json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              examples:
                response:
                  value:
                    _type: Error
                    errorIdentifier: urn:openproject-org:api:v3:errors:BadRequest
                    message: 'Bad request: reaction does not have a valid value'
          description: Returned if the request is invalid. For example, if the reaction is not valid.
        '403':
          content:
            application/hal+json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              examples:
                response:
                  value:
                    _type: Error
                    errorIdentifier: urn:openproject-org:api:v3:errors:MissingPermission
                    message: You are not authorized to access this resource.
          description: Returned if the client does not have sufficient permissions to toggle the emoji reaction for the activity.
        '404':
          content:
            application/hal+json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              examples:
                response:
                  value:
                    _type: Error
                    errorIdentifier: urn:openproject-org:api:v3:errors:NotFound
                    message: The requested resource could not be found.
          description: 'Returned if the activity does not exist or the client does not have sufficient permissions

            to see it.'
  /api/v3/work_packages/{id}/activities_emoji_reactions:
    get:
      summary: List emoji reactions by work package activities
      operationId: list_work_package_activities_emoji_reactions
      tags:
      - EmojiReactions
      description: List all emoji reactions of all activities of a single work package.
      parameters:
      - name: id
        description: ID of the work package whose activities' emoji reactions will be listed
        in: path
        required: true
        schema:
          type: integer
        example: 1
      responses:
        '200':
          description: OK
          content:
            application/hal+json:
              schema:
                $ref: '#/components/schemas/EmojiReactions_Model'
        '404':
          content:
            application/hal+json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              examples:
                response:
                  value:
                    _type: Error
                    errorIdentifier: urn:openproject-org:api:v3:errors:NotFound
                    message: The requested resource could not be found.
          description: 'Returned if the work package does not exist or the client does not have sufficient permissions

            to see it.


            **Required permission:**

            - `view_work_packages`

            - for internal comments: `view_internal_comments`


            *Note: A client without sufficient permissions shall not be able to test for the existence of a work package.

            That''s why a 404 is returned here, even if a 403 might be more appropriate.*'
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
    EmojiReactionModel:
      type: object
      properties:
        _type:
          type: string
          enum:
          - EmojiReaction
        id:
          type: string
          description: 'Emoji reaction id (format: reactable_id-reaction)'
          example: 1-thumbs_up
        reaction:
          type: string
          description: The reaction identifier
          example: thumbs_up
        emoji:
          type: string
          description: The emoji character
          example: 👍
        reactionsCount:
          type: integer
          description: Number of users who reacted with this emoji
          minimum: 1
          example: 3
        firstReactionAt:
          type: string
          format: date-time
          description: Time of the first reaction
        _links:
          type: object
          properties:
            self:
              allOf:
              - $ref: '#/components/schemas/Link'
              - description: This emoji reaction
            reactable:
              allOf:
              - $ref: '#/components/schemas/Link'
              - description: The activity this emoji reaction belongs to
            reactingUsers:
              type: array
              items:
                allOf:
                - $ref: '#/components/schemas/Link'
                - description: The users who reacted with this emoji
      example:
        _type: EmojiReaction
        id: 1-thumbs_up
        reaction: thumbs_up
        emoji: 👍
        reactionsCount: 3
        firstReactionAt: '2024-04-08T15:37:19.275Z'
        _links:
          self:
            href: /api/v3/emoji_reactions/1-thumbs_up
          reactable:
            href: /api/v3/activities/1
          reactingUsers:
          - href: /api/v3/users/435
            title: John Doe
          - href: /api/v3/users/436
            title: Jane Smith
          - href: /api/v3/users/437
            title: Bob Johnson
    EmojiReactions_Model:
      type: object
      properties:
        _type:
          type: string
          enum:
          - Collection
        total:
          type: integer
          description: Total number of emoji reactions
          minimum: 0
        count:
          type: integer
          description: Number of emoji reactions in this response
          minimum: 0
        _embedded:
          type: object
          properties:
            elements:
              type: array
              items:
                $ref: '#/components/schemas/EmojiReactionModel'
        _links:
          type: object
          properties:
            self:
              allOf:
              - $ref: '#/components/schemas/Link'
              - description: This collection
      example:
        _type: Collection
        total: 2
        count: 2
        _embedded:
          elements:
          - _type: EmojiReaction
            id: 1-thumbs_up
            reaction: thumbs_up
            emoji: 👍
            reactionsCount: 3
            firstReactionAt: '2024-04-08T15:37:19.275Z'
            _links:
              self:
                href: /api/v3/emoji_reactions/1-thumbs_up
              reactable:
                href: /api/v3/activities/1
              reactingUsers:
              - href: /api/v3/users/435
                title: John Doe
              - href: /api/v3/users/436
                title: Jane Smith
              - href: /api/v3/users/437
                title: Bob Johnson
          - _type: EmojiReaction
            id: 1-heart
            reaction: heart
            emoji: ❤️
            reactionsCount: 1
            firstReactionAt: '2024-04-08T15:38:19.275Z'
            _links:
              self:
                href: /api/v3/emoji_reactions/1-heart
              reactable:
                href: /api/v3/activities/1
              reactingUsers:
              - href: /api/v3/users/435
                title: John Doe
        _links:
          self:
            href: /api/v3/activities/1/emoji_reactions
    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.
  securitySchemes:
    BasicAuth:
      type: http
      scheme: basic