Spika 3 messenger API (1.0.0)
Download OpenAPI specification:Download
This is the api specification for Spika 3
The first step of sign-up process
The first step of sign-up process
Request Body schema: application/json
telephoneNumber | string |
deviceId | string |
Responses
Request samples
- Payload
{- "telephoneNumber": "string",
- "deviceId": "string"
}
Response samples
- 200
{- "status": "success",
- "data": {
- "isNewUser": true,
- "user": {
- "id": 0,
- "displayName": "string",
- "avatarFileId": 0,
- "telephoneNumber": "string",
- "telephoneNumberHashed": "string",
- "emailAddress": "string",
- "createdAt": 0,
- "modifiedAt": 0,
- "verified": true,
- "deleted": true,
- "isBot": true
}, - "device": {
- "id": 0,
- "userId": 0,
- "token": "string",
- "tokenExpiredAt": 0,
- "osName": "string",
- "osVersion": 0,
- "appVersion": 0,
- "pushToken": "string"
}, - "browserDeviceId": 0
}
}
Verfiy SMS code
Verfiy SMS code
Request Body schema: application/json
code | string |
deviceId | string |
Responses
Request samples
- Payload
{- "code": "string",
- "deviceId": "string"
}
Response samples
- 200
{- "status": "success",
- "data": {
- "user": {
- "id": 0,
- "displayName": "string",
- "avatarFileId": 0,
- "telephoneNumber": "string",
- "telephoneNumberHashed": "string",
- "emailAddress": "string",
- "createdAt": 0,
- "modifiedAt": 0,
- "verified": true,
- "deleted": true,
- "isBot": true
}, - "device": {
- "id": 0,
- "userId": 0,
- "token": "string",
- "tokenExpiredAt": 0,
- "osName": "string",
- "osVersion": 0,
- "appVersion": 0,
- "pushToken": "string"
}
}
}
Update user contact.
Client sends hashed phone number list to the server.
Request Body schema: application/json
contacts | Array of strings[ items [ 1 .. 500 ] items ] Hashed phone numbers list |
Responses
Request samples
- Payload
{- "contacts": [
- "string"
]
}
Response samples
- 200
{- "status": "string",
- "data": {
- "list": [
- {
- "id": 0,
- "displayName": "string",
- "avatarFileId": 0,
- "telephoneNumber": "string",
- "telephoneNumberHashed": "string",
- "emailAddress": "string",
- "createdAt": 0,
- "modifiedAt": 0,
- "verified": true,
- "deleted": true,
- "isBot": true
}
], - "limit": 0,
- "count": 0
}
}
Response samples
- 200
{- "status": "success",
- "data": {
- "list": [
- {
- "id": 0,
- "displayName": "string",
- "avatarFileId": 0,
- "telephoneNumber": "string",
- "telephoneNumberHashed": "string",
- "emailAddress": "string",
- "createdAt": 0,
- "modifiedAt": 0,
- "verified": true,
- "deleted": true,
- "isBot": true
}
], - "count": 0,
- "limit": 0
}
}
Upload file chunk
Upload file by chunks
Request Body schema: application/json
chunk | string Base64 encoded text of the chunk |
offset | number The position of the chunk in the entire file |
clientId | string The random string to identify upload. |
Responses
Request samples
- Payload
{- "chunk": "string",
- "offset": 0,
- "clientId": "string"
}
Response samples
- 200
{- "status": "string",
- "data": {
- "uploadedChunks": [
- 1
]
}
}
Verify file
Creates file if all chunks are uploaded and fileHash matches
Request Body schema: application/json
total | number Total number of chunks |
size | number File size in bytes |
mimeType | string mimeType |
fileName | string File name |
clientId | string The random string to identify upload. |
fileHash | string sha256 hash of the file |
type | string The name of the another model which the file refers ex) avatar, message, group avatar |
relationId | number The id of model the file refers to. |
metaData | any File metadata |
Responses
Request samples
- Payload
{- "total": 0,
- "size": 0,
- "mimeType": "string",
- "fileName": "string",
- "clientId": "string",
- "fileHash": "string",
- "type": "string",
- "relationId": 0,
- "metaData": null
}
Response samples
- 200
{- "status": "string",
- "data": {
- "file": {
- "id": 0,
- "fileName": "string",
- "size": 0,
- "mimeType": "string",
- "type": "string",
- "metaData": "string",
- "relationId": 0,
- "clientId": 0,
- "createdAt": 0
}
}
}
Response samples
- 200
{- "status": "success",
- "data": {
- "list": [
- {
- "id": 0,
- "name": "string",
- "users": [
- {
- "userId": 0,
- "roomId": 0,
- "isAdmin": true,
- "user": {
- "id": 0,
- "displayName": "string",
- "avatarFileId": 0,
- "telephoneNumber": "string",
- "telephoneNumberHashed": "string",
- "emailAddress": "string",
- "createdAt": 0,
- "modifiedAt": 0,
- "verified": true,
- "deleted": true,
- "isBot": true
}
}
], - "avatarFileId": 0,
- "muted": true,
- "pinned": true,
- "deleted": true,
- "type": "string",
- "unreadCount": 0,
- "createdAt": 0,
- "modifiedAt": 0
}
], - "count": 0,
- "limit": 0
}
}
Add new room
Add new room
Request Body schema: application/json
name | string |
avatarFileId | integer |
userIds | Array of integers |
adminUserIds | Array of integers |
type | string |
Responses
Request samples
- Payload
{- "name": "string",
- "avatarFileId": 0,
- "userIds": [
- 0
], - "adminUserIds": [
- 0
], - "type": "string"
}
Response samples
- 200
{- "status": "success",
- "data": {
- "room": {
- "id": 0,
- "name": "string",
- "users": [
- {
- "userId": 0,
- "roomId": 0,
- "isAdmin": true,
- "user": {
- "id": 0,
- "displayName": "string",
- "avatarFileId": 0,
- "telephoneNumber": "string",
- "telephoneNumberHashed": "string",
- "emailAddress": "string",
- "createdAt": 0,
- "modifiedAt": 0,
- "verified": true,
- "deleted": true,
- "isBot": true
}
}
], - "avatarFileId": 0,
- "muted": true,
- "pinned": true,
- "deleted": true,
- "type": "string",
- "unreadCount": 0,
- "createdAt": 0,
- "modifiedAt": 0
}
}
}
Get private room
Use this API to check if there is private room with user
path Parameters
userId required | number |
Responses
Response samples
- 200
{- "status": "success",
- "data": {
- "room": {
- "id": 0,
- "name": "string",
- "users": [
- {
- "userId": 0,
- "roomId": 0,
- "isAdmin": true,
- "user": {
- "id": 0,
- "displayName": "string",
- "avatarFileId": 0,
- "telephoneNumber": "string",
- "telephoneNumberHashed": "string",
- "emailAddress": "string",
- "createdAt": 0,
- "modifiedAt": 0,
- "verified": true,
- "deleted": true,
- "isBot": true
}
}
], - "avatarFileId": 0,
- "muted": true,
- "pinned": true,
- "deleted": true,
- "type": "string",
- "unreadCount": 0,
- "createdAt": 0,
- "modifiedAt": 0
}
}
}
Response samples
- 200
{- "id": 0,
- "name": "string",
- "users": [
- {
- "userId": 0,
- "roomId": 0,
- "isAdmin": true,
- "user": {
- "id": 0,
- "displayName": "string",
- "avatarFileId": 0,
- "telephoneNumber": "string",
- "telephoneNumberHashed": "string",
- "emailAddress": "string",
- "createdAt": 0,
- "modifiedAt": 0,
- "verified": true,
- "deleted": true,
- "isBot": true
}
}
], - "avatarFileId": 0,
- "muted": true,
- "pinned": true,
- "deleted": true,
- "type": "string",
- "unreadCount": 0,
- "createdAt": 0,
- "modifiedAt": 0
}
update a room
update a room
path Parameters
id required | number room id |
Request Body schema: application/json
action | string Enum: "addGroupUsers" "removeGroupUsers" "addGroupAdmins" "removeGroupAdmins" "changeGroupName" "changeGroupAvatar" |
name | string |
avatarFileId | integer |
userIds | Array of integers |
Responses
Request samples
- Payload
{- "action": "addGroupUsers",
- "name": "string",
- "avatarFileId": 0,
- "userIds": [
- 0
]
}
Response samples
- 200
{- "status": "success",
- "data": {
- "room": {
- "id": 0,
- "name": "string",
- "users": [
- {
- "userId": 0,
- "roomId": 0,
- "isAdmin": true,
- "user": {
- "id": 0,
- "displayName": "string",
- "avatarFileId": 0,
- "telephoneNumber": "string",
- "telephoneNumberHashed": "string",
- "emailAddress": "string",
- "createdAt": 0,
- "modifiedAt": 0,
- "verified": true,
- "deleted": true,
- "isBot": true
}
}
], - "avatarFileId": 0,
- "muted": true,
- "pinned": true,
- "deleted": true,
- "type": "string",
- "unreadCount": 0,
- "createdAt": 0,
- "modifiedAt": 0
}
}
}
Response samples
- 200
{- "status": "success",
- "data": {
- "room": {
- "id": 0,
- "name": "string",
- "users": [
- {
- "userId": 0,
- "roomId": 0,
- "isAdmin": true,
- "user": {
- "id": 0,
- "displayName": "string",
- "avatarFileId": 0,
- "telephoneNumber": "string",
- "telephoneNumberHashed": "string",
- "emailAddress": "string",
- "createdAt": 0,
- "modifiedAt": 0,
- "verified": true,
- "deleted": true,
- "isBot": true
}
}
], - "avatarFileId": 0,
- "muted": true,
- "pinned": true,
- "deleted": true,
- "type": "string",
- "unreadCount": 0,
- "createdAt": 0,
- "modifiedAt": 0
}
}
}
Leave room
Leave room
path Parameters
id required | number |
Request Body schema: application/json
adminUserIds | Array of integers[ items non-empty ] if user is last admin he must spec adminUserIds to create new admins |
Responses
Request samples
- Payload
{- "adminUserIds": [
- 0
]
}
Response samples
- 200
{- "status": "success",
- "data": {
- "room": {
- "id": 0,
- "name": "string",
- "users": [
- {
- "userId": 0,
- "roomId": 0,
- "isAdmin": true,
- "user": {
- "id": 0,
- "displayName": "string",
- "avatarFileId": 0,
- "telephoneNumber": "string",
- "telephoneNumberHashed": "string",
- "emailAddress": "string",
- "createdAt": 0,
- "modifiedAt": 0,
- "verified": true,
- "deleted": true,
- "isBot": true
}
}
], - "avatarFileId": 0,
- "muted": true,
- "pinned": true,
- "deleted": true,
- "type": "string",
- "unreadCount": 0,
- "createdAt": 0,
- "modifiedAt": 0
}
}
}
Response samples
- 200
{- "status": "success",
- "data": {
- "room": {
- "id": 0,
- "name": "string",
- "users": [
- {
- "userId": 0,
- "roomId": 0,
- "isAdmin": true,
- "user": {
- "id": 0,
- "displayName": "string",
- "avatarFileId": 0,
- "telephoneNumber": "string",
- "telephoneNumberHashed": "string",
- "emailAddress": "string",
- "createdAt": 0,
- "modifiedAt": 0,
- "verified": true,
- "deleted": true,
- "isBot": true
}
}
], - "avatarFileId": 0,
- "muted": true,
- "pinned": true,
- "deleted": true,
- "type": "string",
- "unreadCount": 0,
- "createdAt": 0,
- "modifiedAt": 0
}
}
}
Response samples
- 200
{- "status": "success",
- "data": {
- "room": {
- "id": 0,
- "name": "string",
- "users": [
- {
- "userId": 0,
- "roomId": 0,
- "isAdmin": true,
- "user": {
- "id": 0,
- "displayName": "string",
- "avatarFileId": 0,
- "telephoneNumber": "string",
- "telephoneNumberHashed": "string",
- "emailAddress": "string",
- "createdAt": 0,
- "modifiedAt": 0,
- "verified": true,
- "deleted": true,
- "isBot": true
}
}
], - "avatarFileId": 0,
- "muted": true,
- "pinned": true,
- "deleted": true,
- "type": "string",
- "unreadCount": 0,
- "createdAt": 0,
- "modifiedAt": 0
}
}
}
Response samples
- 200
{- "status": "success",
- "data": {
- "room": {
- "id": 0,
- "name": "string",
- "users": [
- {
- "userId": 0,
- "roomId": 0,
- "isAdmin": true,
- "user": {
- "id": 0,
- "displayName": "string",
- "avatarFileId": 0,
- "telephoneNumber": "string",
- "telephoneNumberHashed": "string",
- "emailAddress": "string",
- "createdAt": 0,
- "modifiedAt": 0,
- "verified": true,
- "deleted": true,
- "isBot": true
}
}
], - "avatarFileId": 0,
- "muted": true,
- "pinned": true,
- "deleted": true,
- "type": "string",
- "unreadCount": 0,
- "createdAt": 0,
- "modifiedAt": 0
}
}
}
Response samples
- 200
{- "status": "success",
- "data": {
- "room": {
- "id": 0,
- "name": "string",
- "users": [
- {
- "userId": 0,
- "roomId": 0,
- "isAdmin": true,
- "user": {
- "id": 0,
- "displayName": "string",
- "avatarFileId": 0,
- "telephoneNumber": "string",
- "telephoneNumberHashed": "string",
- "emailAddress": "string",
- "createdAt": 0,
- "modifiedAt": 0,
- "verified": true,
- "deleted": true,
- "isBot": true
}
}
], - "avatarFileId": 0,
- "muted": true,
- "pinned": true,
- "deleted": true,
- "type": "string",
- "unreadCount": 0,
- "createdAt": 0,
- "modifiedAt": 0
}
}
}
Get modified rooms after the timestamp
path Parameters
lastUpdate required | number |
query Parameters
page | number >= 1 |
Responses
Response samples
- 200
{- "status": "success",
- "data": {
- "list": [
- {
- "id": 0,
- "name": "string",
- "users": [
- {
- "userId": 0,
- "roomId": 0,
- "isAdmin": true,
- "user": {
- "id": 0,
- "displayName": "string",
- "avatarFileId": 0,
- "telephoneNumber": "string",
- "telephoneNumberHashed": "string",
- "emailAddress": "string",
- "createdAt": 0,
- "modifiedAt": 0,
- "verified": true,
- "deleted": true,
- "isBot": true
}
}
], - "avatarFileId": 0,
- "muted": true,
- "pinned": true,
- "deleted": true,
- "type": "string",
- "unreadCount": 0,
- "createdAt": 0,
- "modifiedAt": 0
}
], - "limit": 0,
- "count": 0,
- "hasNext": true
}
}
Get group message rooms
Get group message rooms
query Parameters
keyword required | string |
cursor required | number |
Responses
Response samples
- 200
{- "groupMessageRoomList": [
- {
- "id": 0,
- "name": "string",
- "users": [
- {
- "userId": 0,
- "roomId": 0,
- "isAdmin": true,
- "user": {
- "id": 0,
- "displayName": "string",
- "avatarFileId": 0,
- "telephoneNumber": "string",
- "telephoneNumberHashed": "string",
- "emailAddress": "string",
- "createdAt": 0,
- "modifiedAt": 0,
- "verified": true,
- "deleted": true,
- "isBot": true
}
}
], - "avatarFileId": 0,
- "muted": true,
- "pinned": true,
- "deleted": true,
- "type": "string",
- "unreadCount": 0,
- "createdAt": 0,
- "modifiedAt": 0
}
], - "count": 0,
- "limit": 0,
- "nextCursor": 0
}
Response samples
- 200
{- "recentUserChats": [
- {
- "id": 0,
- "name": "string",
- "users": [
- {
- "userId": 0,
- "roomId": 0,
- "isAdmin": true,
- "user": {
- "id": 0,
- "displayName": "string",
- "avatarFileId": 0,
- "telephoneNumber": "string",
- "telephoneNumberHashed": "string",
- "emailAddress": "string",
- "createdAt": 0,
- "modifiedAt": 0,
- "verified": true,
- "deleted": true,
- "isBot": true
}
}
], - "avatarFileId": 0,
- "muted": true,
- "pinned": true,
- "deleted": true,
- "type": "string",
- "unreadCount": 0,
- "createdAt": 0,
- "modifiedAt": 0
}
], - "recentGroupChats": [
- {
- "id": 0,
- "name": "string",
- "users": [
- {
- "userId": 0,
- "roomId": 0,
- "isAdmin": true,
- "user": {
- "id": 0,
- "displayName": "string",
- "avatarFileId": 0,
- "telephoneNumber": "string",
- "telephoneNumberHashed": "string",
- "emailAddress": "string",
- "createdAt": 0,
- "modifiedAt": 0,
- "verified": true,
- "deleted": true,
- "isBot": true
}
}
], - "avatarFileId": 0,
- "muted": true,
- "pinned": true,
- "deleted": true,
- "type": "string",
- "unreadCount": 0,
- "createdAt": 0,
- "modifiedAt": 0
}
]
}
Send message
Send messsage
Request Body schema: application/json
roomId | integer |
type | string Enum: "text" "video" "audio" "file" "image" |
object | |
localId | string |
replyId | number |
Responses
Request samples
- Payload
{- "roomId": 0,
- "type": "text",
- "body": {
- "text": "string",
- "fileId": 0,
- "thumbId": 0
}, - "localId": "string",
- "replyId": 0
}
Response samples
- 200
{- "status": "success",
- "data": {
- "message": {
- "id": 0,
- "roomId": 0,
- "fromUserId": 0,
- "totalUserCount": 0,
- "deliveredCount": 0,
- "seenCount": 0,
- "type": "string",
- "body": { },
- "createdAt": 0,
- "modifiedAt": 0,
- "localId": "string",
- "replyId": 0,
- "deleted": true,
- "isForwarded": true
}
}
}
Update message
Update message, only available if message type is text
path Parameters
id required | number |
Request Body schema: application/json
text | string |
Responses
Request samples
- Payload
{- "text": "string"
}
Response samples
- 200
{- "status": "success",
- "data": {
- "message": {
- "id": 0,
- "roomId": 0,
- "fromUserId": 0,
- "totalUserCount": 0,
- "deliveredCount": 0,
- "seenCount": 0,
- "type": "string",
- "body": { },
- "createdAt": 0,
- "modifiedAt": 0,
- "localId": "string",
- "replyId": 0,
- "deleted": true,
- "isForwarded": true
}
}
}
Get room messages
Get messages from specific room
path Parameters
roomId required | string |
query Parameters
page | number >= 1 |
Responses
Response samples
- 200
{- "status": "success",
- "data": {
- "list": [
- {
- "id": 0,
- "roomId": 0,
- "fromUserId": 0,
- "totalUserCount": 0,
- "deliveredCount": 0,
- "seenCount": 0,
- "type": "string",
- "body": { },
- "createdAt": 0,
- "modifiedAt": 0,
- "localId": "string",
- "replyId": 0,
- "deleted": true,
- "isForwarded": true
}
], - "count": 0,
- "limit": 0
}
}
Get all messages received after the timestamp
Get all messages received after the timestamp
path Parameters
lastUpdate required | number |
query Parameters
page | number >= 1 |
Responses
Response samples
- 200
{- "status": "success",
- "data": {
- "list": [
- {
- "id": 0,
- "roomId": 0,
- "fromUserId": 0,
- "totalUserCount": 0,
- "deliveredCount": 0,
- "seenCount": 0,
- "type": "string",
- "body": { },
- "createdAt": 0,
- "modifiedAt": 0,
- "localId": "string",
- "replyId": 0,
- "deleted": true,
- "isForwarded": true
}
], - "limit": 0,
- "count": 0,
- "hasNext": true
}
}
Get all messages modified after the timestamp
Get all messages modified after the timestamp
path Parameters
lastUpdate required | number |
query Parameters
page | number >= 1 |
Responses
Response samples
- 200
{- "status": "success",
- "data": {
- "list": [
- {
- "id": 0,
- "roomId": 0,
- "fromUserId": 0,
- "totalUserCount": 0,
- "deliveredCount": 0,
- "seenCount": 0,
- "type": "string",
- "body": { },
- "createdAt": 0,
- "modifiedAt": 0,
- "localId": "string",
- "replyId": 0,
- "deleted": true,
- "isForwarded": true
}
], - "limit": 0,
- "count": 0,
- "hasNext": true
}
}
Get all message records for specific message
Get all message records for specific message
path Parameters
messageId required | string |
Responses
Response samples
- 200
{- "status": "success",
- "data": {
- "messageRecords": [
- {
- "id": 0,
- "messageId": 0,
- "userId": 0,
- "roomId": 0,
- "type": "string",
- "reaction": "string",
- "createdAt": 0,
- "modifiedAt": 0,
- "isDeleted": true
}
]
}
}
Flag messages as delivered
Notify backend messages are saved in client side.
Request Body schema: application/json
messageIds | Array of numbers[ items non-empty ] |
Responses
Request samples
- Payload
{- "messageIds": [
- 0
]
}
Response samples
- 200
{- "status": "success",
- "data": {
- "messageRecords": [
- {
- "id": 0,
- "messageId": 0,
- "userId": 0,
- "roomId": 0,
- "type": "string",
- "reaction": "string",
- "createdAt": 0,
- "modifiedAt": 0,
- "isDeleted": true
}
]
}
}
Flag all room messages as seen
Notify backend when message are shown in the client side first time.
path Parameters
roomId required | number |
Responses
Response samples
- 200
{- "status": "success",
- "data": {
- "messageRecords": [
- {
- "id": 0,
- "messageId": 0,
- "userId": 0,
- "roomId": 0,
- "type": "string",
- "reaction": "string",
- "createdAt": 0,
- "modifiedAt": 0,
- "isDeleted": true
}
]
}
}
Forward messages
Forward messages
Request Body schema: application/json
roomIds | Array of numbers[ items non-empty ] |
messageIds | Array of numbers[ items non-empty ] |
userIds | Array of numbers[ items non-empty ] |
Responses
Request samples
- Payload
{- "roomIds": [
- 0
], - "messageIds": [
- 0
], - "userIds": [
- 0
]
}
Response samples
- 200
{- "status": "success",
- "data": {
- "messages": [
- {
- "id": 0,
- "roomId": 0,
- "fromUserId": 0,
- "totalUserCount": 0,
- "deliveredCount": 0,
- "seenCount": 0,
- "type": "string",
- "body": { },
- "createdAt": 0,
- "modifiedAt": 0,
- "localId": "string",
- "replyId": 0,
- "deleted": true,
- "isForwarded": true
}
], - "newRooms": [
- {
- "id": 0,
- "name": "string",
- "users": [
- {
- "userId": 0,
- "roomId": 0,
- "isAdmin": true,
- "user": {
- "id": 0,
- "displayName": "string",
- "avatarFileId": 0,
- "telephoneNumber": "string",
- "telephoneNumberHashed": "string",
- "emailAddress": "string",
- "createdAt": 0,
- "modifiedAt": 0,
- "verified": true,
- "deleted": true,
- "isBot": true
}
}
], - "avatarFileId": 0,
- "muted": true,
- "pinned": true,
- "deleted": true,
- "type": "string",
- "unreadCount": 0,
- "createdAt": 0,
- "modifiedAt": 0
}
]
}
}
Get message batch by target message
Get message batch by target message
path Parameters
roomId required | number |
query Parameters
targetMessageId required | number |
cursorUp | number |
cursorDown | number |
Responses
Response samples
- 200
{- "list": [
- {
- "id": 0,
- "roomId": 0,
- "fromUserId": 0,
- "totalUserCount": 0,
- "deliveredCount": 0,
- "seenCount": 0,
- "type": "string",
- "body": { },
- "createdAt": 0,
- "modifiedAt": 0,
- "localId": "string",
- "replyId": 0,
- "deleted": true,
- "isForwarded": true
}
], - "nextCursorUp": 0,
- "nextCursorDown": 0,
- "hasMoreOlderMessages": true,
- "hasMoreNewerMessages": true
}
Get searched messages
Get searched messages
query Parameters
roomId required | number |
keyword required | string |
itemsPerBatch required | number |
cursor | number |
Responses
Response samples
- 200
{- "list": [
- {
- "id": 0,
- "messageId": 0,
- "type": "string",
- "body": { },
- "userId": 0,
- "username": "string",
- "date": "2019-08-24"
}
], - "count": 0
}
Get modified rooms after the timestamp
path Parameters
lastUpdate required | number |
query Parameters
page | number >= 1 |
Responses
Response samples
- 200
{- "status": "success",
- "data": {
- "list": [
- {
- "id": 0,
- "name": "string",
- "users": [
- {
- "userId": 0,
- "roomId": 0,
- "isAdmin": true,
- "user": {
- "id": 0,
- "displayName": "string",
- "avatarFileId": 0,
- "telephoneNumber": "string",
- "telephoneNumberHashed": "string",
- "emailAddress": "string",
- "createdAt": 0,
- "modifiedAt": 0,
- "verified": true,
- "deleted": true,
- "isBot": true
}
}
], - "avatarFileId": 0,
- "muted": true,
- "pinned": true,
- "deleted": true,
- "type": "string",
- "unreadCount": 0,
- "createdAt": 0,
- "modifiedAt": 0
}
], - "limit": 0,
- "count": 0,
- "hasNext": true
}
}
Get all messages received after the timestamp
Get all messages received after the timestamp
path Parameters
lastUpdate required | number |
query Parameters
page | number >= 1 |
Responses
Response samples
- 200
{- "status": "success",
- "data": {
- "list": [
- {
- "id": 0,
- "roomId": 0,
- "fromUserId": 0,
- "totalUserCount": 0,
- "deliveredCount": 0,
- "seenCount": 0,
- "type": "string",
- "body": { },
- "createdAt": 0,
- "modifiedAt": 0,
- "localId": "string",
- "replyId": 0,
- "deleted": true,
- "isForwarded": true
}
], - "limit": 0,
- "count": 0,
- "hasNext": true
}
}
Get all messages modified after the timestamp
Get all messages modified after the timestamp
path Parameters
lastUpdate required | number |
query Parameters
page | number >= 1 |
Responses
Response samples
- 200
{- "status": "success",
- "data": {
- "list": [
- {
- "id": 0,
- "roomId": 0,
- "fromUserId": 0,
- "totalUserCount": 0,
- "deliveredCount": 0,
- "seenCount": 0,
- "type": "string",
- "body": { },
- "createdAt": 0,
- "modifiedAt": 0,
- "localId": "string",
- "replyId": 0,
- "deleted": true,
- "isForwarded": true
}
], - "limit": 0,
- "count": 0,
- "hasNext": true
}
}
Get all message records updated since last update
Get all message records updated since last update
path Parameters
lastUpdate required | number |
query Parameters
page | number >= 1 |
Responses
Response samples
- 200
{- "status": "success",
- "data": {
- "list": [
- {
- "id": 0,
- "messageId": 0,
- "userId": 0,
- "roomId": 0,
- "type": "string",
- "reaction": "string",
- "createdAt": 0,
- "modifiedAt": 0,
- "isDeleted": true
}
], - "limit": 0,
- "count": 0,
- "hasNext": true
}
}
Get updated users from specified time
Returns users models
path Parameters
timestamp required | number |
query Parameters
page | number >= 1 |
Responses
Response samples
- 200
{- "status": "success",
- "data": {
- "list": [
- {
- "id": 0,
- "displayName": "string",
- "avatarFileId": 0,
- "telephoneNumber": "string",
- "telephoneNumberHashed": "string",
- "emailAddress": "string",
- "createdAt": 0,
- "modifiedAt": 0,
- "verified": true,
- "deleted": true,
- "isBot": true
}
], - "limit": 0,
- "count": 0,
- "hasNext": true
}
}
Get all message records for specific message
Get all message records for specific message
path Parameters
messageId required | string |
Responses
Response samples
- 200
{- "status": "success",
- "data": {
- "messageRecords": [
- {
- "id": 0,
- "messageId": 0,
- "userId": 0,
- "roomId": 0,
- "type": "string",
- "reaction": "string",
- "createdAt": 0,
- "modifiedAt": 0,
- "isDeleted": true
}
]
}
}
Add reaction message record
Add reaction message record
Request Body schema: application/json
messageId | number |
reaction | string Required if type is reaction |
Responses
Request samples
- Payload
{- "messageId": 0,
- "reaction": "string"
}
Response samples
- 200
{- "status": "success",
- "data": {
- "messageRecord": {
- "id": 0,
- "messageId": 0,
- "userId": 0,
- "roomId": 0,
- "type": "string",
- "reaction": "string",
- "createdAt": 0,
- "modifiedAt": 0,
- "isDeleted": true
}
}
}
Get all message records updated since last update
Get all message records updated since last update
path Parameters
lastUpdate required | number |
query Parameters
page | number >= 1 |
Responses
Response samples
- 200
{- "status": "success",
- "data": {
- "list": [
- {
- "id": 0,
- "messageId": 0,
- "userId": 0,
- "roomId": 0,
- "type": "string",
- "reaction": "string",
- "createdAt": 0,
- "modifiedAt": 0,
- "isDeleted": true
}
], - "limit": 0,
- "count": 0,
- "hasNext": true
}
}
Response samples
- 200
{- "status": "success",
- "data": {
- "user": {
- "id": 0,
- "displayName": "string",
- "avatarFileId": 0,
- "telephoneNumber": "string",
- "telephoneNumberHashed": "string",
- "emailAddress": "string",
- "createdAt": 0,
- "modifiedAt": 0,
- "verified": true,
- "deleted": true,
- "isBot": true
}
}
}
Update authenticated user
Updates and returns user model
Request Body schema: application/json
telephoneNumber | string |
emailAddress | string |
displayName | string |
avatarFileId | integer |
Responses
Request samples
- Payload
{- "telephoneNumber": "string",
- "emailAddress": "string",
- "displayName": "string",
- "avatarFileId": 0
}
Response samples
- 200
{- "status": "success",
- "data": {
- "user": {
- "id": 0,
- "displayName": "string",
- "avatarFileId": 0,
- "telephoneNumber": "string",
- "telephoneNumberHashed": "string",
- "emailAddress": "string",
- "createdAt": 0,
- "modifiedAt": 0,
- "verified": true,
- "deleted": true,
- "isBot": true
}
}
}
Response samples
- 200
{- "status": "success",
- "data": {
- "user": {
- "id": 0,
- "displayName": "string",
- "avatarFileId": 0,
- "telephoneNumber": "string",
- "telephoneNumberHashed": "string",
- "emailAddress": "string",
- "createdAt": 0,
- "modifiedAt": 0,
- "verified": true,
- "deleted": true,
- "isBot": true
}
}
}
Get updated users from specified time
Returns users models
path Parameters
timestamp required | number |
query Parameters
page | number >= 1 |
Responses
Response samples
- 200
{- "status": "success",
- "data": {
- "list": [
- {
- "id": 0,
- "displayName": "string",
- "avatarFileId": 0,
- "telephoneNumber": "string",
- "telephoneNumberHashed": "string",
- "emailAddress": "string",
- "createdAt": 0,
- "modifiedAt": 0,
- "verified": true,
- "deleted": true,
- "isBot": true
}
], - "limit": 0,
- "count": 0,
- "hasNext": true
}
}
Get last updated rooms
Returns last updated rooms
query Parameters
page | number >= 1 |
keyword | string |
Responses
Response samples
- 200
{- "status": "success",
- "data": {
- "list": [
- {
- "id": 0,
- "name": "string",
- "users": [
- {
- "userId": 0,
- "roomId": 0,
- "isAdmin": true,
- "user": {
- "id": 0,
- "displayName": "string",
- "avatarFileId": 0,
- "telephoneNumber": "string",
- "telephoneNumberHashed": "string",
- "emailAddress": "string",
- "createdAt": 0,
- "modifiedAt": 0,
- "verified": true,
- "deleted": true,
- "isBot": true
}
}
], - "avatarFileId": 0,
- "muted": true,
- "pinned": true,
- "deleted": true,
- "type": "string",
- "unreadCount": 0,
- "createdAt": 0,
- "modifiedAt": 0,
- "lastMessage": {
- "id": 0,
- "roomId": 0,
- "fromUserId": 0,
- "totalUserCount": 0,
- "deliveredCount": 0,
- "seenCount": 0,
- "type": "string",
- "body": { },
- "createdAt": 0,
- "modifiedAt": 0,
- "localId": "string",
- "replyId": 0,
- "deleted": true,
- "isForwarded": true
}
}
], - "count": 0,
- "limit": 0
}
}
Update push token
Returns device tied to current access token
Request Body schema: application/json
pushToken | string |
Responses
Request samples
- Payload
{- "pushToken": "string"
}
Response samples
- 200
{- "status": "success",
- "data": {
- "device": {
- "id": 0,
- "userId": 0,
- "token": "string",
- "tokenExpiredAt": 0,
- "osName": "string",
- "osVersion": 0,
- "appVersion": 0,
- "pushToken": "string"
}
}
}
Create webhook for specific room
Create webhook for specific room
path Parameters
roomId required | number |
Request Body schema: application/json
url | string |
Responses
Request samples
- Payload
{- "url": "string"
}
Response samples
- 200
{- "status": "success",
- "data": {
- "webhook": {
- "id": 0,
- "roomId": 0,
- "url": "string",
- "verifySignature": "string",
- "createdAt": 0,
- "modifiedAt": 0
}
}
}
Update webhook
Update webhook by id
path Parameters
id required | number |
Request Body schema: application/json
url | string |
Responses
Request samples
- Payload
{- "url": "string"
}
Response samples
- 200
{- "status": "success",
- "data": {
- "webhook": {
- "id": 0,
- "roomId": 0,
- "url": "string",
- "verifySignature": "string",
- "createdAt": 0,
- "modifiedAt": 0
}
}
}
Response samples
- 200
{- "status": "success",
- "data": {
- "apiKeys": [
- {
- "id": 0,
- "userId": 0,
- "displayName": "string",
- "avatarFileId": 0,
- "roomId": 0,
- "token": "string",
- "createdAt": 0,
- "modifiedAt": 0
}
]
}
}
Create api key for specific room
Create api key for specific room
path Parameters
roomId required | number |
Request Body schema: application/json
displayName | string |
Responses
Request samples
- Payload
{- "displayName": "string"
}
Response samples
- 200
{- "status": "success",
- "data": {
- "apiKey": {
- "id": 0,
- "userId": 0,
- "displayName": "string",
- "avatarFileId": 0,
- "roomId": 0,
- "token": "string",
- "createdAt": 0,
- "modifiedAt": 0
}
}
}
Update api key
Update api key by id
path Parameters
id required | number |
Request Body schema: application/json
displayName | string |
Responses
Request samples
- Payload
{- "displayName": "string"
}
Response samples
- 200
{- "status": "success",
- "data": {
- "apiKey": {
- "id": 0,
- "userId": 0,
- "displayName": "string",
- "avatarFileId": 0,
- "roomId": 0,
- "token": "string",
- "createdAt": 0,
- "modifiedAt": 0
}
}
}
Create note
Create note
path Parameters
roomId required | number |
Request Body schema: application/json
title | string [ 1 .. 135 ] characters |
content | string |
Responses
Request samples
- Payload
{- "title": "string",
- "content": "string"
}
Response samples
- 200
{- "status": "success",
- "data": {
- "note": {
- "id": 0,
- "title": "string",
- "content": "string",
- "roomId": 0,
- "createdAt": 0,
- "modifiedAt": 0
}
}
}
Update note
Update note by id
path Parameters
id required | number |
Request Body schema: application/json
title | string [ 1 .. 135 ] characters |
content | string |
Responses
Request samples
- Payload
{- "title": "string",
- "content": "string"
}
Response samples
- 200
{- "status": "success",
- "data": {
- "note": {
- "id": 0,
- "title": "string",
- "content": "string",
- "roomId": 0,
- "createdAt": 0,
- "modifiedAt": 0
}
}
}
Get media
Get all images and videos of room
query Parameters
roomId required | number |
cursor required | number |
take | number |
fetchNewer | boolean |
fetchOlder | boolean |
Responses
Response samples
- 200
{- "list": {
- "messageId": 0,
- "type": "string",
- "body": { },
- "userId": 0,
- "username": "string",
- "date": "2019-08-24"
}, - "hasMoreOlderImages": true,
- "hasMoreNewerImages": true
}