Skip to content

Private Messages v1

Reference for the Private Messages v1 endpoints on Roblox.

Base URL: https://privatemessages.roblox.com

Method Path Name
GET /v1/announcements getAnnouncements
GET /v1/announcements/metadata getAnnouncementsMetadata
GET /v1/messages getMessages
GET /v1/messages/:messageId getMessagesMessageid
POST /v1/messages/archive postMessagesArchive
POST /v1/messages/mark-read postMessagesMarkRead
POST /v1/messages/mark-unread postMessagesMarkUnread
POST /v1/messages/unarchive postMessagesUnarchive
GET /v1/messages/unread/count getMessagesUnreadCount

GET /v1/announcements

Migrate from RobloxWebsite project, return news notification for Private Message page

Usage
import { fetchApi } from 'rozod';
import { getAnnouncements } from 'rozod/endpoints/privatemessagesv1';
const data = await fetchApi(getAnnouncements, undefined);
Field Type Description
collection object[] See below
totalCollectionSize number

collection[] item fields:

Field Type Description
id number
sender object See below
subject string
body string
created string
updated string

sender fields:

Field Type Description
hasVerifiedBadge boolean
id number
name string
displayName string
Status Description
400 2: Message does not exist or the current user is not authorized to view it.
401 0: Authorization has been denied for this request.

GET /v1/announcements/metadata

Usage
import { fetchApi } from 'rozod';
import { getAnnouncementsMetadata } from 'rozod/endpoints/privatemessagesv1';
const data = await fetchApi(getAnnouncementsMetadata, undefined);
Field Type Description
numOfAnnouncements number
Status Description
401 0: Authorization has been denied for this request.

GET /v1/messages

Gets a user’s messages.

Usage
import { fetchApi } from 'rozod';
import { getMessages } from 'rozod/endpoints/privatemessagesv1';
const data = await fetchApi(getMessages, {
pageNumber: /* integer? */,
pageSize: /* integer? = 20 */,
messageTab: /* enum */
});
Name Type Required Description
pageNumber integer? No
pageSize integer? = 20 No
messageTab enum Yes
Field Type Description
collection object[] See below
totalCollectionSize number
totalPages number
pageNumber number

collection[] item fields:

Field Type Description
id number
sender object See below
recipient object See below
subject string
body string
created string
updated string
isRead boolean
isSystemMessage boolean
isReportAbuseDisplayed boolean

sender fields:

Field Type Description
hasVerifiedBadge boolean
id number
name string
displayName string

recipient fields:

Field Type Description
hasVerifiedBadge boolean
id number
name string
displayName string
Status Description
401 0: Authorization has been denied for this request.

GET /v1/messages/:messageId

Gets a message’s details.

Usage
import { fetchApi } from 'rozod';
import { getMessagesMessageid } from 'rozod/endpoints/privatemessagesv1';
const data = await fetchApi(getMessagesMessageid, {
messageId: /* integer */
});
Name Type Required Description
messageId integer Yes
Field Type Description
id number
sender object See below
recipient object See below
subject string
body string
created string
updated string
isRead boolean
isSystemMessage boolean
isReportAbuseDisplayed boolean

sender fields:

Field Type Description
hasVerifiedBadge boolean
id number
name string
displayName string

recipient fields:

Field Type Description
hasVerifiedBadge boolean
id number
name string
displayName string
Status Description
400 2: Message does not exist or the current user is not authorized to view it.
401 0: Authorization has been denied for this request.

POST /v1/messages/archive

Archives a batch of messages.

Usage
import { fetchApi } from 'rozod';
import { postMessagesArchive } from 'rozod/endpoints/privatemessagesv1';
const data = await fetchApi(postMessagesArchive, {
body: { /* ... */ }
});
Field Type Description
messageIds number[]
Field Type Description
failedMessages object[] See below

failedMessages[] item fields:

Field Type Description
messageId number
errorMessage string
Status Description
400 5: Too many ids in a batch request.
401 0: Authorization has been denied for this request.
403 0: Token Validation Failed

POST /v1/messages/mark-read

Marks a batch of messages as read.

Usage
import { fetchApi } from 'rozod';
import { postMessagesMarkRead } from 'rozod/endpoints/privatemessagesv1';
const data = await fetchApi(postMessagesMarkRead, {
body: { /* ... */ }
});
Field Type Description
messageIds number[]
Field Type Description
failedMessages object[] See below

failedMessages[] item fields:

Field Type Description
messageId number
errorMessage string
Status Description
400 5: Too many ids in a batch request.
401 0: Authorization has been denied for this request.
403 0: Token Validation Failed

POST /v1/messages/mark-unread

Marks a batch of messages as unread.

Usage
import { fetchApi } from 'rozod';
import { postMessagesMarkUnread } from 'rozod/endpoints/privatemessagesv1';
const data = await fetchApi(postMessagesMarkUnread, {
body: { /* ... */ }
});
Field Type Description
messageIds number[]
Field Type Description
failedMessages object[] See below

failedMessages[] item fields:

Field Type Description
messageId number
errorMessage string
Status Description
400 5: Too many ids in a batch request.
401 0: Authorization has been denied for this request.
403 0: Token Validation Failed

POST /v1/messages/unarchive

Unarchives a batch of messages.

Usage
import { fetchApi } from 'rozod';
import { postMessagesUnarchive } from 'rozod/endpoints/privatemessagesv1';
const data = await fetchApi(postMessagesUnarchive, {
body: { /* ... */ }
});
Field Type Description
messageIds number[]
Field Type Description
failedMessages object[] See below

failedMessages[] item fields:

Field Type Description
messageId number
errorMessage string
Status Description
400 5: Too many ids in a batch request.
401 0: Authorization has been denied for this request.
403 0: Token Validation Failed

GET /v1/messages/unread/count

Gets unread messages for the authenticated user.

Usage
import { fetchApi } from 'rozod';
import { getMessagesUnreadCount } from 'rozod/endpoints/privatemessagesv1';
const data = await fetchApi(getMessagesUnreadCount, undefined);
Field Type Description
count number
Status Description
401 0: Authorization has been denied for this request.