Skip to main content

Try the live demo!

Search

Mark Conversation As Unread

Marks the conversation as unread for the caller by moving their read position to just before the latest message. Returns 400 when the conversation has no messages. Requires the `conversations:read` permission.

PUT /api/v1/conversations/{uuid}/mark-unread

Marks the conversation as unread for the caller by moving their read position to just before the latest message. Returns 400 when the conversation has no messages. Requires the conversations:read permission.

Authentication

Use an agent API key and secret.

Parameters

All parameters are path parameters. All parameters are required.

Name Type Description
uuid string Conversation UUID

Responses

200

Conversation marked as unread

Content type: application/json.

All fields are optional.

Field Type Description
status string example: "success"
data object
data.conversation_uuid string
data.last_seen_at string (date-time) Read position of the caller, moved to just before the latest message
data.read_version integer (int64) Increases on every read state change. Use it to discard out-of-order updates.
data.is_unread boolean example: true

400

Invalid request

Content type: application/json.

All fields are optional.

Field Type Description
status string example: "error"
message string Error message example: "Invalid request"
data unspecified Additional error data nullable: true
error_type string (enum) enum: ["GeneralException", "PermissionException", "InputException", "DataException", "NetworkException", "NotFoundException", "ConflictException", "UnauthorizedException", "RateLimitException"]

401

Unauthorized

Content type: application/json.

Response fields match the 400 response.

403

Forbidden

Content type: application/json.

Response fields match the 400 response.

404

Not found

Content type: application/json.

Response fields match the 400 response.

500

Internal server error

Content type: application/json.

Response fields match the 400 response.

Specification

Download the complete OpenAPI specification.

OpenAPI definition for this endpoint
openapi: 3.0.0
info:
  title: libredesk API
  description: >-
    REST API documentation for libredesk helpdesk system.


    ## Authentication


    The libredesk API supports two authentication methods:


    ### 1. Basic Authentication

    Use your API key and secret with Basic authentication:

    ```

    Authorization: Basic <base64_encoded_api_key:api_secret>

    ```


    ### 2. Token Authentication  

    Use your API key and secret with token authentication:

    ```

    Authorization: token api_key:api_secret

    ```


    To obtain API credentials, generate them from your agent profile in the
    libredesk dashboard.
  version: 1.0.0
servers:
  - url: http://localhost:8080
    description: Local development server
security:
  - basicAuth: []
  - tokenAuth: []
paths:
  /api/v1/conversations/{uuid}/mark-unread:
    put:
      tags:
        - Conversations
      summary: Mark Conversation As Unread
      description: >-
        Marks the conversation as unread for the caller by moving their read
        position to just before the latest message. Returns 400 when the
        conversation has no messages. Requires the `conversations:read`
        permission.
      operationId: handleMarkConversationAsUnread
      parameters:
        - name: uuid
          in: path
          required: true
          schema:
            type: string
          description: Conversation UUID
      responses:
        '200':
          description: Conversation marked as unread
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ConversationUnreadStateResponse'
        '400':
          description: Invalid request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '404':
          description: Not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '500':
          description: Internal server error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
      security:
        - basicAuth: []
        - tokenAuth: []
components:
  schemas:
    ConversationUnreadStateResponse:
      type: object
      properties:
        status:
          type: string
          example: success
        data:
          $ref: '#/components/schemas/ConversationUnreadState'
    ErrorResponse:
      type: object
      description: Error response format
      properties:
        status:
          type: string
          example: error
        message:
          type: string
          description: Error message
          example: Invalid request
        data:
          nullable: true
          description: Additional error data
        error_type:
          type: string
          enum:
            - GeneralException
            - PermissionException
            - InputException
            - DataException
            - NetworkException
            - NotFoundException
            - ConflictException
            - UnauthorizedException
            - RateLimitException
    ConversationUnreadState:
      type: object
      properties:
        conversation_uuid:
          type: string
        last_seen_at:
          type: string
          format: date-time
          description: Read position of the caller, moved to just before the latest message
        read_version:
          type: integer
          format: int64
          description: >-
            Increases on every read state change. Use it to discard out-of-order
            updates.
        is_unread:
          type: boolean
          example: true
  securitySchemes:
    basicAuth:
      type: http
      scheme: basic
      description: >-
        Basic authentication using base64 encoded API key and secret. Format:
        `Authorization: Basic <base64(api_key:api_secret)>`
    tokenAuth:
      type: apiKey
      name: Authorization
      in: header
      description: >-
        Token authentication using API key and secret. Format: `Authorization:
        token api_key:api_secret`

Was this article helpful?