Skip to content

Private Messages v1

Reference for the Private Messages v1 endpoints on Roblox.

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

MethodPathName
GET/v1/announcementsgetAnnouncements
GET/v1/announcements/metadatagetAnnouncementsMetadata
GET/v1/messagesgetMessages
GET/v1/messages/:messageIdgetMessagesMessageid
POST/v1/messages/archivepostMessagesArchive
POST/v1/messages/mark-readpostMessagesMarkRead
POST/v1/messages/mark-unreadpostMessagesMarkUnread
POST/v1/messages/unarchivepostMessagesUnarchive
GET/v1/messages/unread/countgetMessagesUnreadCount

GET /v1/announcements

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

Usage
import { fetchApi } from 'rozod';
import { getAnnouncements } from 'rozod/lib/endpoints/privatemessagesv1';
const data = await fetchApi(getAnnouncements, undefined);
FieldTypeDescription
collectionobject[]See below
totalCollectionSizenumber

collection[] item fields:

FieldTypeDescription
idnumber
senderobjectSee below
subjectstring
bodystring
createdstring
updatedstring

sender fields:

FieldTypeDescription
hasVerifiedBadgeboolean
idnumber
namestring
displayNamestring
StatusDescription
4002: Message does not exist or the current user is not authorized to view it.
4010: Authorization has been denied for this request.

GET /v1/announcements/metadata

Usage
import { fetchApi } from 'rozod';
import { getAnnouncementsMetadata } from 'rozod/lib/endpoints/privatemessagesv1';
const data = await fetchApi(getAnnouncementsMetadata, undefined);
FieldTypeDescription
numOfAnnouncementsnumber
StatusDescription
4010: Authorization has been denied for this request.

GET /v1/messages

Gets a user’s messages.

Usage
import { fetchApi } from 'rozod';
import { getMessages } from 'rozod/lib/endpoints/privatemessagesv1';
const data = await fetchApi(getMessages, {
pageNumber: /* integer? */,
pageSize: /* integer? = 20 */,
messageTab: /* enum */
});
NameTypeRequiredDescription
pageNumberinteger?No
pageSizeinteger? = 20No
messageTabenumYes
FieldTypeDescription
collectionobject[]See below
totalCollectionSizenumber
totalPagesnumber
pageNumbernumber

collection[] item fields:

FieldTypeDescription
idnumber
senderobjectSee below
recipientobjectSee below
subjectstring
bodystring
createdstring
updatedstring
isReadboolean
isSystemMessageboolean
isReportAbuseDisplayedboolean

sender fields:

FieldTypeDescription
hasVerifiedBadgeboolean
idnumber
namestring
displayNamestring

recipient fields:

FieldTypeDescription
hasVerifiedBadgeboolean
idnumber
namestring
displayNamestring
StatusDescription
4010: 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/lib/endpoints/privatemessagesv1';
const data = await fetchApi(getMessagesMessageid, {
messageId: /* integer */
});
NameTypeRequiredDescription
messageIdintegerYes
FieldTypeDescription
idnumber
senderobjectSee below
recipientobjectSee below
subjectstring
bodystring
createdstring
updatedstring
isReadboolean
isSystemMessageboolean
isReportAbuseDisplayedboolean

sender fields:

FieldTypeDescription
hasVerifiedBadgeboolean
idnumber
namestring
displayNamestring

recipient fields:

FieldTypeDescription
hasVerifiedBadgeboolean
idnumber
namestring
displayNamestring
StatusDescription
4002: Message does not exist or the current user is not authorized to view it.
4010: 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/lib/endpoints/privatemessagesv1';
const data = await fetchApi(postMessagesArchive, {
body: { /* ... */ }
});
FieldTypeDescription
messageIdsnumber[]
FieldTypeDescription
failedMessagesobject[]See below

failedMessages[] item fields:

FieldTypeDescription
messageIdnumber
errorMessagestring
StatusDescription
4005: Too many ids in a batch request.
4010: Authorization has been denied for this request.
4030: Token Validation Failed

POST /v1/messages/mark-read

Marks a batch of messages as read.

Usage
import { fetchApi } from 'rozod';
import { postMessagesMarkRead } from 'rozod/lib/endpoints/privatemessagesv1';
const data = await fetchApi(postMessagesMarkRead, {
body: { /* ... */ }
});
FieldTypeDescription
messageIdsnumber[]
FieldTypeDescription
failedMessagesobject[]See below

failedMessages[] item fields:

FieldTypeDescription
messageIdnumber
errorMessagestring
StatusDescription
4005: Too many ids in a batch request.
4010: Authorization has been denied for this request.
4030: Token Validation Failed

POST /v1/messages/mark-unread

Marks a batch of messages as unread.

Usage
import { fetchApi } from 'rozod';
import { postMessagesMarkUnread } from 'rozod/lib/endpoints/privatemessagesv1';
const data = await fetchApi(postMessagesMarkUnread, {
body: { /* ... */ }
});
FieldTypeDescription
messageIdsnumber[]
FieldTypeDescription
failedMessagesobject[]See below

failedMessages[] item fields:

FieldTypeDescription
messageIdnumber
errorMessagestring
StatusDescription
4005: Too many ids in a batch request.
4010: Authorization has been denied for this request.
4030: Token Validation Failed

POST /v1/messages/unarchive

Unarchives a batch of messages.

Usage
import { fetchApi } from 'rozod';
import { postMessagesUnarchive } from 'rozod/lib/endpoints/privatemessagesv1';
const data = await fetchApi(postMessagesUnarchive, {
body: { /* ... */ }
});
FieldTypeDescription
messageIdsnumber[]
FieldTypeDescription
failedMessagesobject[]See below

failedMessages[] item fields:

FieldTypeDescription
messageIdnumber
errorMessagestring
StatusDescription
4005: Too many ids in a batch request.
4010: Authorization has been denied for this request.
4030: Token Validation Failed

GET /v1/messages/unread/count

Gets unread messages for the authenticated user.

Usage
import { fetchApi } from 'rozod';
import { getMessagesUnreadCount } from 'rozod/lib/endpoints/privatemessagesv1';
const data = await fetchApi(getMessagesUnreadCount, undefined);
FieldTypeDescription
countnumber
StatusDescription
4010: Authorization has been denied for this request.