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`
