Network API
| Endpoint | Method | Description |
|---|---|---|
| network:list | websocket | Get networks |
| network:listOrdered | websocket | Get networks ordered |
| network:searchNetworks | websocket | Search networks |
| network:searchTexhibitionNetworks | websocket | Search texhibition networks |
| network:getNetworkInfoForUser | websocket | Get network info for user |
| network:subscribe | websocket | Subscribe to network |
| network:switch | websocket | Switch network |
| network:searchUserNetworks | websocket | Search user networks |
| network:getNetworksForCountries | websocket | Get networks for countries |
| network:subscriptionCreated | websocketEvent | Network subscription created event |
| network:subscriptionUpdated | websocketEvent | Network subscription updated event |
| network:subscriptionRemoved | websocketEvent | Network subscription removed event |
Get networks
Method: websocket
Endpoint: network:list
Description: API returns list of networks that are available to user.
Request:
{
"data": {
"type": string
"offset": int
"size": int
}
"event": { "id": string, "date": timestamp }
}
Response:
{
"data": {
"networks": [{
"network": { network 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
}
"subscribed": bool
"subscriptionOptions": [{
"type": string // free/one_time_payment/subscription_week/subscription_month/subscription_year
"token": float // subscription cost in tokens
}]
}]
}
"error": { "status": bool, "code": int, "message": string }
}
Get networks ordered
Method: websocket
Endpoint: network:listOrdered
Description: Function returns networks in next order:
default network
current user network
subscribed networks
non subscribed networks
Request:
{
"data": {
"exclude": [ string ]
"offset": int
"size": int
}
"event": { "id": string, "date": timestamp }
}
Response:
{
"data": {
"networks": [{
"network": { network 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
}
"subscribed": bool
"subscriptionOptions": [{
"type": string // free/one_time_payment/subscription_week/subscription_month/subscription_year
"token": float // subscription cost in tokens
}]
}]
}
"error": { "status": bool, "code": int, "message": string }
}
Search networks
Method: websocket
Endpoint: network:searchNetworks
Description: API returns list of networks (according to search query) that are available to user.
Request:
{
"data": {
"query": string
"offset": int
"size": int
}
"event": { "id": string, "date": timestamp }
}
Response:
{
"data": {
"networks": [{
"network": { network 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
}
"subscribed": bool
"subscriptionOptions": [{
"type": string // free/one_time_payment/subscription_week/subscription_month/subscription_year
"token": float // subscription cost in tokens
}]
}]
}
"error": { "status": bool, "code": int, "message": string }
}
Search texhibition networks
Method: websocket
Endpoint: network:searchTexhibitionNetworks
Description: API returns list of texhibition networks (hasExpo == true) that are available to user.
Request:
{
"data": {
"query": string
"offset": int
"size": int
}
"event": { "id": string, "date": timestamp }
}
Response:
{
"data": {
"networks": [{
"network": { network 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
}
"subscribed": bool
"subscriptionOptions": [{
"type": string // free/one_time_payment/subscription_week/subscription_month/subscription_year
"token": float // subscription cost in tokens
}]
}]
}
"error": { "status": bool, "code": int, "message": string }
}
Get network info for user
Method: websocket
Endpoint: network:getNetworkInfoForUser
Description: API returns network info for user.
Request:
{
"data": {
"networkId": string
}
"event": { "id": string, "date": timestamp }
}
Response:
{
"data": {
"network": { network 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
}
"subscribed": bool
"subscriptionOptions": [{
"type": string // free/one_time_payment/subscription_week/subscription_month/subscription_year
"token": float // subscription cost in tokens
}]
}
"error": { "status": bool, "code": int, "message": string }
}
Subscribe to network
Method: websocket
Endpoint: network:subscribe
Description: API subscribes user to the network.
Request:
{
"data": {
"networkId": string
}
"event": { "id": string, "date": timestamp }
}
Response:
{
"error": { "status": bool, "code": int, "message": string }
}
Switch network
Method: websocket
Endpoint: network:switch
Description: API switches user context to another network. All following requests will be handled in context of new network.
If requestNewSessionId parameter provided - client will receive new session. Old session id could be used to operate in another browser tab in old network.
Request:
{
"data": {
"networkId": string
"requestNewSessionId": bool
}
"event": { "id": string, "date": timestamp }
}
Response:
{
"data": {
"networkId": string
"sessionId": string // sessionId is not empty only when requestNewSessionId is true
}
"error": { "status": bool, "code": int, "message": string }
}
Search user networks
Method: websocket
Endpoint: network:searchUserNetworks
Description: API searches networks user is subscribed to.
Request:
{
"data": {
"query": string
"offset": int
"size": int
}
"event": { "id": string, "date": timestamp }
}
Response:
{
"data": {
"networks": [{ network structure }]
}
"error": { "status": bool, "code": int, "message": string }
}
Get networks for countries
Method: websocket
Endpoint: network:getNetworksForCountries
Description: API returns list of networks with non-empty settings.general.countryId. (Humanity API)
Request:
{ empty }
Response:
{
"data": {
"networks": [{
"network": { network structure }
"country": {
"countryId": int // numeric country code as defined in ISO3166-1
"countryName": string
}
}]
}
"error": { "status": bool, "code": int, "message": string }
}
Network subscription created event
Event: network:subscriptionCreated
Data:
{
"data": { network structure }
"error": { "status": bool, "code": int, "message": string }
}
Network subscription updated event
Event: network:subscriptionUpdated
Data:
{
"data": { network structure }
"error": { "status": bool, "code": int, "message": string }
}
Network subscription removed event
Event: network:subscriptionRemoved
Data:
{
"data": { network structure }
"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
}