Skip to content
On this page

Websocket API

EndpointMethodDescription
testVersionNotSupportedwebsocketTest version not supported
invalidConnectionwebsocketEventInvalid connection event
user_infowebsocketEventUser info event

Test version not supported

Method: websocket

Endpoint: testVersionNotSupported

Request:

{ empty }

Response:

{
    "error": { "status": bool, "code": int, "message": string }
}

Invalid connection event

Event: invalidConnection

Description: Event is automatically emitted when second socket connection is initiated for user session or network is reset

Data:

{
    "error": { "status": bool, "code": int, "message": string }
}

User info event

Event: user_info

Description: Event is automatically emitted for authorized socket connection

Data:

{
    "data": {
        "user": {
            "id": string
            "created": timestamp
            "updated": timestamp
            "companyName": string  // name of company that user represents
            "companyTitle": string  // user title in the company
            "firstName": string
            "lastName": string
            "birthday": string
            "hometown": string
            "education": string
            "zipCode": string
            "description": string
            "linkUrl": string
            "privacyMode": int  // 0 - Default, 1 - Incognito
            "avatar": string  // url or resource id
            "avatar3D": {  // asset of user 3D avatar
                "assetId": string
                "assetSkins": map[string]string  // map of selected skins per variants
                "avatarUrl": string  // url to gbl file (Ready Player Me)
                "avatarUserId": string  // user id for session recovery (Ready Player Me)
            }
            "params": map[string]{ custom structure }  // custom user parameters, for example link to Zoom conference
            "identityType": int  // 0 - Not Assigned, 1 - SSID, 2 - VSSID
            "identityName": string  // Verus identity name
            "zAddress": string  // z-address of user, generated by client application using Verus scoped root key
            "publicRoomCount": int
            "contactCount": int
            "pendingContactCount": int
            "newInvitationsCount": int
            "pendingRequestCount": int
            "newNotificationsCount": int
            "idealMatchCount": int
            "email": string
            "emailVerified": bool
            "phoneNumber": string
            "permissions": {
                "admin": bool
                "developer": bool
            }
            "userRoles": [{
                "id": string
                "roleName": string
                "targetType": string  // optional, type of object role could be linked to, like network/room/prop
                "isBuildIn": bool  // true for system build in roles (cannot be deleted)
                "permissions": [ string ]
                "targetId": string  // optional, id of object role is linked to
            }]
        }
        "network": { network structure }
        "networkState": {
            "defaultSubNetworkId": string
            "data": map[string]{ custom structure }
        }
        "networkDefaults": {
            "metaverseCurrency": string  // in case when network has its own currency
            "provisionCurrency": string  // currency that is used for Verus provisioning
            "enablePayments": bool  // if true - client could purchase products; else - all products are free
            "enableTokenomics": bool  // if true - user will mint or spend tokens for his actions (like placing content in room)
            "disableBalance": bool  // DEPRECATED
            "roomId": string  // default room in network (e.g. Agora in humanity)
            "storylineVideoSound": bool  // enables video sound in storyline by default
            "hasQuestionnaire": bool  // enables matchmaking questionnaire
            "hasSearchCard": bool  // enables matchmaking search by search card
            "hasGamingBalance": bool  // enables gaming balance
            "hasAnalytics": bool  // enables analytics
            "allUsersAreConnected": bool  // if true, all users in network are friends by default
            "disableOwnerBadge": bool  // if true, disables room owner badge (crown) near avatar
            "disableFavoriteRooms": bool  // if true, disables favorite room appearance on client
            "disableShareRoom": bool  // if true, disables room sharing
            "disableRoomCreation": bool  // if true, disables room creation on client
            "orderByFirstComments": bool  // show first resource comments first
            "hideTextchat": bool  // if true, client shouldn't show textchat UI
            "hideVideochat": bool  // if true, client shouldn't show videochat UI
            "hideSocialSessions": bool  // if true, client shouldn't show social sessions UI
            "allowHostSetup": bool  // if true, allows user to setup personalised custom params for props in room
            "socialCircleAsset": string  // id of default asset for dynamic social circle
            "socialCircleLimit": int  // sets social circle limit, 0 = no limit
            "allowAnonymous": bool  // if true, users can access network without authorization
            "onlyVerifiedAccounts": bool  // if true, server would require to verify email before creating new user session
            "singleScreenAuth": bool  // if true, show registration and authorization on the same scene
            "requireZipCode": bool  // if true, zip code should be required field during registration
            "paymentProviders": [ string ]  // restricts use of payment providers (stripe/braintree/apple) in network; if empty, all providers are available
            "aiEndpoint": string  // address for AI server
            "loadBalancerUrl": string  // url of load balancer for playgrounds
            "gamificationParticlesIndex": int  // 0 - default, 1 - epam
            "colorizationSchemeType": int  // 0 - Default, 1 - Fabuwood
            "defaultNavigationMode": int  // 0 - classic, 1 - advanced, 2 - pro
            "defaultButtonAppearance": int  // 0 - default, 1 - show, 2 - hide
            "hasCascadeTextchatSkin": bool  // textchat cascade appearance in application
            "animatedBackButton": bool  // animate back button icon in application
            "hasExpo": bool  // informs clients that the network has expo
            "expoStartDate": timestamp  // timestamp when conference starts
            "expoEndDate": timestamp  // timestamp when conference ends
            "hasAttendees": bool  // enables additional room privacy settings
        }
        "presentationDomain": string  // default domain for presentation (without redactor)
        "studioDomain": string  // default domain for studio (with redactor)
        "shareDomain": string  // default domain for sharing
        "loadBalancerUrl": string  // default url for load balancer
        "userSettings": {
            "email": {
                "ignoreNewTextchatMessage": bool
            }
            "navigation": {
                "navigationMode": int
                "verticalSensitivity": float
                "horizontalSensitivity": float
                "joystickSettings": int
                "helperButtonAppearance": int
            }
            "objectCollision": int
        }
        "isNew": bool
    }
    "error": { "status": bool, "code": int, "message": string }
}

Models


Network

{
    "id": string
    "created": timestamp
    "updated": timestamp
    "fullName": string
    "type": string  // Public/Matchmaking/BusinessSocial/NetworkConference/Humanity
    "thumbnail": string  // resourceId
    "parentNetworkId": string  // if not empty, current network is a sub network
}