MongooseIM GraphQL API Reference
A static documentation of the MongooseIM GraphQL Admin API
API Endpoints
http://localhost:5551/api/graphqlQueries
              account
            
            Description
Account management
Response
 Returns an AccountAdminQuery
                  
Example
Query
query account {
  account {
    listUsers
    countUsers
    checkPassword {
      ...CheckPasswordPayloadFragment
    }
    checkPasswordHash {
      ...CheckPasswordPayloadFragment
    }
    checkUser {
      ...CheckUserPayloadFragment
    }
  }
}
Response
{
  "data": {
    "account": {
      "listUsers": ["xyz789"],
      "countUsers": 987,
      "checkPassword": CheckPasswordPayload,
      "checkPasswordHash": CheckPasswordPayload,
      "checkUser": CheckUserPayload
    }
  }
}
              cets
            
            Description
CETS internal database management
Response
 Returns a CETSAdminQuery
                  
Example
Query
query cets {
  cets {
    tableInfo {
      ...CETSTableInfoFragment
    }
    systemInfo {
      ...CETSSystemInfoFragment
    }
  }
}
Response
{
  "data": {
    "cets": {
      "tableInfo": [CETSTableInfo],
      "systemInfo": CETSSystemInfo
    }
  }
}
              checkAuth
            
            Description
Check authorization status
Response
 Returns an AdminAuthInfo
                  
Example
Query
query checkAuth {
  checkAuth {
    domain
    authStatus
    authType
  }
}
Response
{
  "data": {
    "checkAuth": {
      "domain": "localhost",
      "authStatus": "AUTHORIZED",
      "authType": "DOMAIN_ADMIN"
    }
  }
}
              domain
            
            Description
Dynamic domain management
Response
 Returns a DomainAdminQuery
                  
Example
Query
query domain {
  domain {
    domainsByHostType
    domainDetails {
      ...DomainFragment
    }
  }
}
Response
{
  "data": {
    "domain": {
      "domainsByHostType": ["localhost"],
      "domainDetails": Domain
    }
  }
}
              gdpr
            
            Description
Personal data management according to GDPR
Response
 Returns a GdprAdminQuery
                  
Example
Query
query gdpr {
  gdpr {
    retrievePersonalData
  }
}
Response
{
  "data": {
    "gdpr": {
      "retrievePersonalData": "abc123"
    }
  }
}
              last
            
            Description
Last activity management
Response
 Returns a LastAdminQuery
                  
Example
Query
query last {
  last {
    getLast {
      ...LastActivityFragment
    }
    countActiveUsers
    listOldUsers {
      ...OldUserFragment
    }
  }
}
Response
{
  "data": {
    "last": {
      "getLast": LastActivity,
      "countActiveUsers": 123,
      "listOldUsers": [OldUser]
    }
  }
}
              metric
            
            Description
Browse metrics
Response
 Returns a MetricAdminQuery
                  
Example
Query
query metric {
  metric {
    getMetrics {
      ... on HistogramMetric {
        ...HistogramMetricFragment
      }
      ... on CounterMetric {
        ...CounterMetricFragment
      }
      ... on SpiralMetric {
        ...SpiralMetricFragment
      }
      ... on GaugeMetric {
        ...GaugeMetricFragment
      }
    }
    getMetricsAsDicts {
      ...MetricDictResultFragment
    }
    getClusterMetricsAsDicts {
      ...MetricNodeResultFragment
    }
  }
}
Response
{
  "data": {
    "metric": {
      "getMetrics": [HistogramMetric],
      "getMetricsAsDicts": [MetricDictResult],
      "getClusterMetricsAsDicts": [MetricNodeResult]
    }
  }
}
              mnesia
            
            Description
Mnesia internal database management
Response
 Returns a MnesiaAdminQuery
                  
Example
Query
query mnesia {
  mnesia {
    systemInfo {
      ... on MnesiaStringResponse {
        ...MnesiaStringResponseFragment
      }
      ... on MnesiaListResponse {
        ...MnesiaListResponseFragment
      }
      ... on MnesiaIntResponse {
        ...MnesiaIntResponseFragment
      }
    }
  }
}
Response
{
  "data": {
    "mnesia": {"systemInfo": [MnesiaStringResponse]}
  }
}
              muc
            
            Description
MUC room management
Response
 Returns a MUCAdminQuery
                  
Example
Query
query muc {
  muc {
    listRooms {
      ...MUCRoomsPayloadFragment
    }
    getRoomConfig {
      ...MUCRoomConfigFragment
    }
    listRoomUsers {
      ...MUCRoomUserFragment
    }
    listRoomAffiliations {
      ...MUCRoomAffiliationFragment
    }
    getRoomMessages {
      ...StanzasPayloadFragment
    }
  }
}
Response
{
  "data": {
    "muc": {
      "listRooms": MUCRoomsPayload,
      "getRoomConfig": MUCRoomConfig,
      "listRoomUsers": [MUCRoomUser],
      "listRoomAffiliations": [MUCRoomAffiliation],
      "getRoomMessages": StanzasPayload
    }
  }
}
              muc_light
            
            Description
MUC Light room management
Response
 Returns a MUCLightAdminQuery
                  
Example
Query
query muc_light {
  muc_light {
    getRoomMessages {
      ...StanzasPayloadFragment
    }
    getRoomConfig {
      ...RoomFragment
    }
    listRoomUsers {
      ...RoomUserFragment
    }
    listUserRooms
    getBlockingList {
      ...BlockingItemFragment
    }
  }
}
Response
{
  "data": {
    "muc_light": {
      "getRoomMessages": StanzasPayload,
      "getRoomConfig": Room,
      "listRoomUsers": [RoomUser],
      "listUserRooms": ["alice@localhost"],
      "getBlockingList": [BlockingItem]
    }
  }
}
              private
            
            Description
User private storage management
Response
 Returns a PrivateAdminQuery
                  
Example
Query
query private {
  private {
    getPrivate
  }
}
Response
{
  "data": {
    "private": {
      "getPrivate": "<message to='bob@localhost' type='chat' from='alice@localhost'><body>Hi!</body></message>"
    }
  }
}
              roster
            
            Description
User roster/contacts management
Response
 Returns a RosterAdminQuery
                  
Example
Query
query roster {
  roster {
    listContacts {
      ...ContactFragment
    }
    getContact {
      ...ContactFragment
    }
  }
}
Response
{
  "data": {
    "roster": {
      "listContacts": [Contact],
      "getContact": Contact
    }
  }
}
              server
            
            Description
Server info and management
Response
 Returns a ServerAdminQuery
                  
Example
Query
query server {
  server {
    status {
      ...StatusFragment
    }
    getLoglevel
    getCookie
  }
}
Response
{
  "data": {
    "server": {
      "status": Status,
      "getLoglevel": "NONE",
      "getCookie": "xyz789"
    }
  }
}
              session
            
            Description
User session management
Response
 Returns a SessionAdminQuery
                  
Example
Query
query session {
  session {
    listSessions {
      ...SessionFragment
    }
    countSessions
    listUserSessions {
      ...SessionFragment
    }
    countUserResources
    getUserResource
    listUsersWithStatus {
      ...UserStatusFragment
    }
    countUsersWithStatus
  }
}
Response
{
  "data": {
    "session": {
      "listSessions": [Session],
      "countSessions": 123,
      "listUserSessions": [Session],
      "countUserResources": 123,
      "getUserResource": "res1",
      "listUsersWithStatus": [UserStatus],
      "countUsersWithStatus": 987
    }
  }
}
              stanza
            
            Description
Sending stanzas and querying MAM
Response
 Returns a StanzaAdminQuery
                  
Example
Query
query stanza {
  stanza {
    getLastMessages {
      ...StanzasPayloadFragment
    }
  }
}
Response
{"data": {"stanza": {"getLastMessages": StanzasPayload}}}
              stat
            
            Description
Server statistics
Response
 Returns a StatsAdminQuery
                  
Example
Query
query stat {
  stat {
    globalStats {
      ...GlobalStatsFragment
    }
    domainStats {
      ...DomainStatsFragment
    }
  }
}
Response
{
  "data": {
    "stat": {
      "globalStats": GlobalStats,
      "domainStats": DomainStats
    }
  }
}
              vcard
            
            Description
vCard management
Response
 Returns a VcardAdminQuery
                  
Example
Query
query vcard {
  vcard {
    getVcard {
      ...VcardFragment
    }
  }
}
Response
{"data": {"vcard": {"getVcard": Vcard}}}
Mutations
              account
            
            Description
Account management
Response
 Returns an AccountAdminMutation
                  
Example
Query
mutation account {
  account {
    registerUser {
      ...UserPayloadFragment
    }
    removeUser {
      ...UserPayloadFragment
    }
    banUser {
      ...UserPayloadFragment
    }
    changeUserPassword {
      ...UserPayloadFragment
    }
    importUsers {
      ...ImportPayloadFragment
    }
  }
}
Response
{
  "data": {
    "account": {
      "registerUser": UserPayload,
      "removeUser": UserPayload,
      "banUser": UserPayload,
      "changeUserPassword": UserPayload,
      "importUsers": ImportPayload
    }
  }
}
              domain
            
            Description
Dynamic domain management
Response
 Returns a DomainAdminMutation
                  
Example
Query
mutation domain {
  domain {
    addDomain {
      ...DomainFragment
    }
    removeDomain {
      ...DomainFragment
    }
    requestRemoveDomain {
      ...DomainFragment
    }
    enableDomain {
      ...DomainFragment
    }
    disableDomain {
      ...DomainFragment
    }
    setDomainPassword
    deleteDomainPassword
  }
}
Response
{
  "data": {
    "domain": {
      "addDomain": Domain,
      "removeDomain": Domain,
      "requestRemoveDomain": Domain,
      "enableDomain": Domain,
      "disableDomain": Domain,
      "setDomainPassword": "xyz789",
      "deleteDomainPassword": "xyz789"
    }
  }
}
              httpUpload
            
            Description
Generating upload/download URLs for the files
Response
 Returns a HttpUploadAdminMutation
                  
Example
Query
mutation httpUpload {
  httpUpload {
    getUrl {
      ...FileUrlsFragment
    }
  }
}
Response
{"data": {"httpUpload": {"getUrl": FileUrls}}}
              inbox
            
            Description
Inbox bin flushing
Response
 Returns an InboxAdminMutation
                  
Example
Query
mutation inbox {
  inbox {
    flushUserBin
    flushDomainBin
    flushGlobalBin
  }
}
Response
{
  "data": {
    "inbox": {"flushUserBin": 123, "flushDomainBin": 987, "flushGlobalBin": 987}
  }
}
              last
            
            Description
Last user activity management
Response
 Returns a LastAdminMutation
                  
Example
Query
mutation last {
  last {
    setLast {
      ...LastActivityFragment
    }
    removeOldUsers {
      ...OldUserFragment
    }
  }
}
Response
{
  "data": {
    "last": {
      "setLast": LastActivity,
      "removeOldUsers": [OldUser]
    }
  }
}
              mnesia
            
            Description
Mnesia internal database management
Response
 Returns a MnesiaAdminMutation
                  
Example
Query
mutation mnesia {
  mnesia {
    setMaster
    changeNodename
    backup
    restore
    dump
    dumpTable
    load
    installFallback
  }
}
Response
{
  "data": {
    "mnesia": {
      "setMaster": "abc123",
      "changeNodename": "abc123",
      "backup": "xyz789",
      "restore": "abc123",
      "dump": "xyz789",
      "dumpTable": "abc123",
      "load": "xyz789",
      "installFallback": "xyz789"
    }
  }
}
              muc
            
            Description
MUC room management
Response
 Returns a MUCAdminMutation
                  
Example
Query
mutation muc {
  muc {
    createInstantRoom {
      ...MUCRoomDescFragment
    }
    inviteUser
    kickUser
    sendMessageToRoom
    sendPrivateMessage
    deleteRoom
    changeRoomConfiguration {
      ...MUCRoomConfigFragment
    }
    setUserRole
    setUserAffiliation
    enterRoom
    exitRoom
  }
}
Response
{
  "data": {
    "muc": {
      "createInstantRoom": MUCRoomDesc,
      "inviteUser": "abc123",
      "kickUser": "xyz789",
      "sendMessageToRoom": "abc123",
      "sendPrivateMessage": "xyz789",
      "deleteRoom": "xyz789",
      "changeRoomConfiguration": MUCRoomConfig,
      "setUserRole": "abc123",
      "setUserAffiliation": "abc123",
      "enterRoom": "abc123",
      "exitRoom": "abc123"
    }
  }
}
              muc_light
            
            Description
MUC Light room management
Response
 Returns a MUCLightAdminMutation
                  
Example
Query
mutation muc_light {
  muc_light {
    createRoom {
      ...RoomFragment
    }
    changeRoomConfiguration {
      ...RoomFragment
    }
    inviteUser
    deleteRoom
    kickUser
    sendMessageToRoom
    setBlockingList
  }
}
Response
{
  "data": {
    "muc_light": {
      "createRoom": Room,
      "changeRoomConfiguration": Room,
      "inviteUser": "xyz789",
      "deleteRoom": "xyz789",
      "kickUser": "xyz789",
      "sendMessageToRoom": "abc123",
      "setBlockingList": "abc123"
    }
  }
}
              offline
            
            Description
Deleting old Offline messages
Response
 Returns an OfflineAdminMutation
                  
Example
Query
mutation offline {
  offline {
    deleteExpiredMessages
    deleteOldMessages
  }
}
Response
{
  "data": {
    "offline": {
      "deleteExpiredMessages": "abc123",
      "deleteOldMessages": "abc123"
    }
  }
}
              private
            
            Description
User private storage management
Response
 Returns a PrivateAdminMutation
                  
Example
Query
mutation private {
  private {
    setPrivate
  }
}
Response
{
  "data": {
    "private": {
      "setPrivate": "<message to='bob@localhost' type='chat' from='alice@localhost'><body>Hi!</body></message>"
    }
  }
}
              roster
            
            Description
User roster/contacts management
Response
 Returns a RosterAdminMutation
                  
Example
Query
mutation roster {
  roster {
    addContact
    addContacts
    subscription
    deleteContact
    deleteContacts
    setMutualSubscription
    subscribeToAll
    subscribeAllToAll
  }
}
Response
{
  "data": {
    "roster": {
      "addContact": "abc123",
      "addContacts": ["abc123"],
      "subscription": "abc123",
      "deleteContact": "abc123",
      "deleteContacts": ["abc123"],
      "setMutualSubscription": "abc123",
      "subscribeToAll": ["xyz789"],
      "subscribeAllToAll": ["xyz789"]
    }
  }
}
              server
            
            Description
Server info and management
Response
 Returns a ServerAdminMutation
                  
Example
Query
mutation server {
  server {
    joinCluster
    leaveCluster
    removeFromCluster
    restart
    stop
    removeNode
    setLoglevel
  }
}
Response
{
  "data": {
    "server": {
      "joinCluster": "abc123",
      "leaveCluster": "xyz789",
      "removeFromCluster": "xyz789",
      "restart": "xyz789",
      "stop": "abc123",
      "removeNode": "xyz789",
      "setLoglevel": "xyz789"
    }
  }
}
              session
            
            Description
User session management
Response
 Returns a SessionAdminMutation
                  
Example
Query
mutation session {
  session {
    kickUserSession {
      ...KickUserResultFragment
    }
    kickUser {
      ...KickUserResultFragment
    }
    setPresence {
      ...SessionPayloadFragment
    }
  }
}
Response
{
  "data": {
    "session": {
      "kickUserSession": KickUserResult,
      "kickUser": [KickUserResult],
      "setPresence": SessionPayload
    }
  }
}
              stanza
            
            Description
Sending stanzas and querying MAM
Response
 Returns a StanzaAdminMutation
                  
Example
Query
mutation stanza {
  stanza {
    sendMessage {
      ...SendStanzaPayloadFragment
    }
    sendMessageHeadLine {
      ...SendStanzaPayloadFragment
    }
    sendStanza {
      ...SendStanzaPayloadFragment
    }
  }
}
Response
{
  "data": {
    "stanza": {
      "sendMessage": SendStanzaPayload,
      "sendMessageHeadLine": SendStanzaPayload,
      "sendStanza": SendStanzaPayload
    }
  }
}
              token
            
            Description
OAUTH user token management
Response
 Returns a TokenAdminMutation
                  
Example
Query
mutation token {
  token {
    requestToken {
      ...TokenFragment
    }
    revokeToken
  }
}
Response
{
  "data": {
    "token": {
      "requestToken": Token,
      "revokeToken": "abc123"
    }
  }
}
              vcard
            
            Description
vCard management
Response
 Returns a VcardAdminMutation
                  
Example
Query
mutation vcard {
  vcard {
    setVcard {
      ...VcardFragment
    }
  }
}
Response
{"data": {"vcard": {"setVcard": Vcard}}}
Subscriptions
              stanza
            
            Response
 Returns a StanzaAdminSubscription
                  
Example
Query
subscription stanza {
  stanza {
    subscribeForMessages {
      ...StanzaMapFragment
    }
  }
}
Response
{"data": {"stanza": {"subscribeForMessages": StanzaMap}}}
Types
AccountAdminMutation
Description
Allow admin to manage user accounts.
Fields
| Field Name | Description | 
|---|---|
| registerUser-UserPayload | Register a user. Username will be generated when skipped | 
| Arguments | |
| removeUser-UserPayload | Remove the user's account along with all the associated personal data | 
| Arguments
 | |
| banUser-UserPayload | Ban an account: kick sessions and set a random password | 
| changeUserPassword-UserPayload | Change the password of a user | 
| importUsers-ImportPayload | Import users from a CSV file | 
| Arguments
 | |
Example
{
  "registerUser": UserPayload,
  "removeUser": UserPayload,
  "banUser": UserPayload,
  "changeUserPassword": UserPayload,
  "importUsers": ImportPayload
}
AccountAdminQuery
Description
Allow admin to get information about accounts.
Fields
| Field Name | Description | 
|---|---|
| listUsers-[String!] | List users per domain | 
| Arguments
 | |
| countUsers-Int | Get number of users per domain | 
| Arguments
 | |
| checkPassword-CheckPasswordPayload | Check if a password is correct | 
| checkPasswordHash-CheckPasswordPayload | Check if a password hash is correct (allowed methods: md5, sha). Works only for a plain passwords | 
| checkUser-CheckUserPayload | Check if a user exists | 
| Arguments
 | |
Example
{
  "listUsers": ["xyz789"],
  "countUsers": 987,
  "checkPassword": CheckPasswordPayload,
  "checkPasswordHash": CheckPasswordPayload,
  "checkUser": CheckUserPayload
}
Address
Example
{
  "tags": ["HOME"],
  "pobox": "abc123",
  "extadd": "xyz789",
  "street": "abc123",
  "locality": "xyz789",
  "region": "xyz789",
  "pcode": "abc123",
  "country": "abc123"
}
AddressInput
Example
{
  "tags": ["HOME"],
  "pobox": "abc123",
  "extadd": "xyz789",
  "street": "abc123",
  "locality": "xyz789",
  "region": "xyz789",
  "pcode": "abc123",
  "country": "abc123"
}
AddressTags
Description
Specifies type of an address
Values
| Enum Value | Description | 
|---|---|
| 
 | Place of residence address | 
| 
 | Workplace adress | 
| 
 | Postal code | 
| 
 | Parcel delivery address | 
| 
 | Domestic delivery address | 
| 
 | Preferred delivery address when more than one address is specified | 
| 
 | International delivery address | 
Example
"HOME"
AdminAuthInfo
Description
Information about user request authorization
Fields
| Field Name | Description | 
|---|---|
| domain-DomainName | Authorized for a domain | 
| authStatus-AuthStatus! | Authorization status | 
| authType-AuthType | Authorization as a | 
Example
{
  "domain": "localhost",
  "authStatus": "AUTHORIZED",
  "authType": "DOMAIN_ADMIN"
}
Affiliation
Description
User's affiliation
Values
| Enum Value | Description | 
|---|---|
| 
 | Owner of the room | 
| 
 | Member of the room | 
| 
 | User doesn't have any affiliation | 
Example
"OWNER"
Agent
Description
Specifies how agent is stored
Types
| Union Types | 
|---|
Example
AgentVcard
AgentInput
Fields
| Input Field | Description | 
|---|---|
| extValue-String | Link to external vcard | 
| vcard-VcardInput | Individual vcard container | 
Example
{
  "extValue": "abc123",
  "vcard": VcardInput
}
AgentVcard
Description
Agent vCard
Fields
| Field Name | Description | 
|---|---|
| vcard-Vcard | vCard data | 
Example
{"vcard": Vcard}
AuthStatus
Description
All authorization statuses
Values
| Enum Value | Description | 
|---|---|
| 
 | Request is authorized | 
| 
 | Request is unauthorized | 
Example
"AUTHORIZED"
AuthType
Values
| Enum Value | Description | 
|---|---|
| 
 | Administrator of the specific domain | 
| 
 | Global administrator | 
| 
 | Unauthorized user | 
Example
"DOMAIN_ADMIN"
BareJID
Description
JID without a resource
Example
"alice@localhost"
BinValue
Fields
| Field Name | Description | 
|---|---|
| binValue-String | Value in binary form | 
Example
{"binValue": "abc123"}
BlockedEntityType
Description
Type of blocked entity
Values
| Enum Value | Description | 
|---|---|
| 
 | Individual user | 
| 
 | MUC Light room | 
Example
"USER"
BlockingAction
Description
Type of blocking action
Values
| Enum Value | Description | 
|---|---|
| 
 | Unblock user/room | 
| 
 | Block user/room | 
Example
"ALLOW"
BlockingInput
Description
Specifies blocking data
Fields
| Input Field | Description | 
|---|---|
| entityType-BlockedEntityType! | Type of entity to block | 
| action-BlockingAction! | Type of blocking action. Default = DENY | 
| entity-JID! | Entity's JID | 
Example
{
  "entityType": "USER",
  "action": "ALLOW",
  "entity": "alice@localhost"
}
BlockingItem
Description
Blocking item data
Fields
| Field Name | Description | 
|---|---|
| entityType-BlockedEntityType! | Type of the entity | 
| action-BlockingAction! | Action to be taken | 
| entity-JID! | Entity's JID | 
Example
{
  "entityType": "USER",
  "action": "ALLOW",
  "entity": "alice@localhost"
}
Boolean
Description
The Boolean scalar type represents true or false.
Example
true
CETSAdminQuery
Description
Allow admin to get information about CETS status
Fields
| Field Name | Description | 
|---|---|
| tableInfo-[CETSTableInfo] | Get a list of tables from the local node | 
| systemInfo-CETSSystemInfo | Get status of CETS | 
Example
{
  "tableInfo": [CETSTableInfo],
  "systemInfo": CETSSystemInfo
}
CETSSystemInfo
Fields
| Field Name | Description | 
|---|---|
| availableNodes-[String] | Available nodes (nodes that are connected to us and have the CETS disco process started) | 
| unavailableNodes-[String] | Unavailable nodes (nodes that do not respond to our pings) | 
| joinedNodes-[String] | Joined nodes (nodes that have our local tables running) | 
| discoveredNodes-[String] | Discovered nodes (nodes that are extracted from the discovery backend) | 
| remoteNodesWithoutDisco-[String] | Nodes with stopped CETS discovery | 
| remoteNodesWithUnknownTables-[String] | Nodes that have more tables registered than the local node | 
| remoteUnknownTables-[String] | Unknown remote tables | 
| remoteNodesWithMissingTables-[String] | Nodes that are available, but do not host some of our local tables | 
| remoteMissingTables-[String] | Missing remote tables | 
| conflictNodes-[String] | Nodes that replicate at least one of our local tables to a different list of nodes | 
| conflictTables-[String] | Tables that have conflicting replication destinations | 
| discoveryWorks-Boolean | Returns true if the last discovery attempt is successful | 
Example
{
  "availableNodes": ["abc123"],
  "unavailableNodes": ["xyz789"],
  "joinedNodes": ["abc123"],
  "discoveredNodes": ["abc123"],
  "remoteNodesWithoutDisco": ["xyz789"],
  "remoteNodesWithUnknownTables": [
    "xyz789"
  ],
  "remoteUnknownTables": ["abc123"],
  "remoteNodesWithMissingTables": [
    "xyz789"
  ],
  "remoteMissingTables": ["abc123"],
  "conflictNodes": ["abc123"],
  "conflictTables": ["abc123"],
  "discoveryWorks": false
}
CETSTableInfo
CheckPasswordPayload
CheckUserPayload
Contact
Description
The contact or roster item
Fields
| Field Name | Description | 
|---|---|
| jid-JID! | The contact jid | 
| name-String | The contact name | 
| groups-[String!] | The list of the groups the contact belongs to | 
| subscription-ContactSub | The type of the subscription | 
| ask-ContactAsk | The type of the ask | 
Example
{
  "jid": "alice@localhost",
  "name": "abc123",
  "groups": ["abc123"],
  "subscription": "NONE",
  "ask": "SUBSCRIBE"
}
ContactAsk
Description
The contact ask types
Values
| Enum Value | Description | 
|---|---|
| 
 | Ask to subscribe | 
| 
 | Ask to unsubscribe | 
| 
 | Invitation came in | 
| 
 | Invitation came out | 
| 
 | Ask for mutual subscription | 
| 
 | No invitation | 
Example
"SUBSCRIBE"
ContactInput
ContactSub
Description
The contact subscription types
Values
| Enum Value | Description | 
|---|---|
| 
 | The user does not have a subscription to the contact's presence, and the contact does not have a subscription to the user's presence | 
| 
 | The user and the contact have subscriptions to each other's presence | 
| 
 | The contact has a subscription to the user's presence, but the user does not have a subscription to the contact's presence | 
| 
 | The user has a subscription to the contact's presence, but the contact does not have a subscription to the user's presence | 
Example
"NONE"
CounterMetric
Fields
| Field Name | Description | 
|---|---|
| name-[String] | Metric name | 
| type-MetricType | Metric type | 
| value-Int | The metric value | 
| ms_since_reset-Int | Time since last reset | 
Example
{
  "name": ["abc123"],
  "type": "histogram",
  "value": 123,
  "ms_since_reset": 987
}
DateTime
Description
Date and time represented using YYYY-MM-DDTHH:mm:ssZ format
Example
"2007-12-03T10:15:30Z"
Domain
Description
A dynamic domain representation. Some operation could return incomplete object i.e. some fields can be null.
Fields
| Field Name | Description | 
|---|---|
| domain-DomainName | Domain name | 
| hostType-String | Domain hostType | 
| status-DomainStatus | Is domain enabled? | 
Example
{
  "domain": "localhost",
  "hostType": "abc123",
  "status": "ENABLED"
}
DomainAdminMutation
Fields
| Field Name | Description | 
|---|---|
| addDomain-Domain | Add new domain. Only for global admin | 
| Arguments
 | |
| removeDomain-Domain | Remove domain. Only for global admin | 
| Arguments
 | |
| requestRemoveDomain-Domain | Remove domain asynchronously. Only for global admin | 
| Arguments
 | |
| enableDomain-Domain | Enable domain. Only for global admin | 
| Arguments
 | |
| disableDomain-Domain | Disable domain. Only for global admin | 
| Arguments
 | |
| setDomainPassword-String | Create or update domain admin password | 
| Arguments
 | |
| deleteDomainPassword-String | Delete domain admin password. Only for global admin | 
| Arguments
 | |
Example
{
  "addDomain": Domain,
  "removeDomain": Domain,
  "requestRemoveDomain": Domain,
  "enableDomain": Domain,
  "disableDomain": Domain,
  "setDomainPassword": "xyz789",
  "deleteDomainPassword": "abc123"
}
DomainAdminQuery
Fields
| Field Name | Description | 
|---|---|
| domainsByHostType-[DomainName!] | Get all enabled domains by hostType. Only for global admin | 
| Arguments
 | |
| domainDetails-Domain | Get information about the domain | 
| Arguments
 | |
Example
{
  "domainsByHostType": ["localhost"],
  "domainDetails": Domain
}
DomainName
Description
XMPP domain name (domain part of a JID)
Example
"localhost"
DomainStats
DomainStatus
Values
| Enum Value | Description | 
|---|---|
| 
 | Domain is enabled and ready to route traffic | 
| 
 | Domain is disabled and won't be loaded into MongooseIM | 
| 
 | Domain has been marked for deletion and is disabled until all data is removed | 
| 
 | Domain is deleted and does not exist anymore | 
Example
"ENABLED"
Fields
| Field Name | Description | 
|---|---|
| tags-[EmailTags] | Email tags | 
| userId-String | Email address | 
Example
{"tags": ["HOME"], "userId": "xyz789"}
EmailInput
Fields
| Input Field | Description | 
|---|---|
| tags-[EmailTags!] | Email tags | 
| userId-String! | Email address | 
Example
{"tags": ["HOME"], "userId": "xyz789"}
EmailTags
Description
Format or preference of an email
Values
| Enum Value | Description | 
|---|---|
| 
 | Address associated with a residence | 
| 
 | Address associated with a place of work | 
| 
 | Internet addressing type | 
| 
 | Preferred use of an email address when more than one is specified | 
| 
 | X.400 addressing type | 
Example
"HOME"
External
Fields
| Field Name | Description | 
|---|---|
| extValue-String | URI to an external value | 
Example
{"extValue": "abc123"}
FileUrls
FullJID
Description
JID with a resource
Example
"alice@localhost/res1"
GaugeMetric
Fields
| Field Name | Description | 
|---|---|
| name-[String] | Metric name | 
| type-MetricType | Metric type | 
| value-Int | The metric value | 
Example
{
  "name": ["xyz789"],
  "type": "histogram",
  "value": 123
}
GdprAdminQuery
Description
Retrieve user's presonal data
Fields
| Field Name | Description | 
|---|---|
| retrievePersonalData-String | Retrieves all personal data from MongooseIM for a given user | 
| Arguments | |
Example
{"retrievePersonalData": "xyz789"}
GeographicalPosition
GeographicalPositionInput
GlobalStats
Fields
| Field Name | Description | 
|---|---|
| uptimeSeconds-Int | Uptime of the node | 
| registeredUsers-Int | Number of registered users | 
| onlineUsersNode-Int | Number of online users on the node | 
| onlineUsers-Int | Number of online users | 
| incomingS2S-Int | Number of all incoming s2s connections | 
| outgoingS2S-Int | Number of all outgoing s2s connections | 
Example
{
  "uptimeSeconds": 123,
  "registeredUsers": 123,
  "onlineUsersNode": 123,
  "onlineUsers": 987,
  "incomingS2S": 123,
  "outgoingS2S": 123
}
Header
HistogramMetric
Fields
| Field Name | Description | 
|---|---|
| name-[String] | Metric name | 
| type-MetricType | Metric type | 
| n-Int | The number of values used in the calculation | 
| mean-Int | Mean value | 
| min-Int | Min value | 
| max-Int | Max value | 
| median-Int | Median value | 
| p50-Int | 50th percentile | 
| p75-Int | 75th percentile | 
| p90-Int | 90th percentile | 
| p95-Int | 95th percentile | 
| p99-Int | 99th percentile | 
| p999-Int | 99.9th percentile | 
Example
{
  "name": ["abc123"],
  "type": "histogram",
  "n": 987,
  "mean": 123,
  "min": 123,
  "max": 987,
  "median": 123,
  "p50": 987,
  "p75": 987,
  "p90": 987,
  "p95": 987,
  "p99": 123,
  "p999": 987
}
HttpUploadAdminMutation
Description
Allow admin to generate upload/download URL for a file on user's behalf".
Fields
| Field Name | Description | 
|---|---|
| getUrl-FileUrls | Allow admin to generate upload/download URLs for a file on user's behalf | 
| Arguments
 | |
Example
{"getUrl": FileUrls}
ID
Description
The ID scalar type represents a unique identifier, often used to refetch an object or as key for a cache. The ID type appears in a JSON response as a String; however, it is not intended to be human-readable. When expected as an input type, any string (such as "4") or integer (such as 4) input value will be accepted as an ID.
Example
4
Image
ImageData
ImageInput
ImportPayload
Description
Import users payload
Fields
| Field Name | Description | 
|---|---|
| status-String! | Status | 
| created-[JID!] | Users created | 
| existing-[JID!] | Users that were already existing | 
| notAllowed-[JID!] | Users there were not allowed to be created | 
| invalidJID-[String!] | Users with invalid JIDs | 
| emptyPassword-[JID!] | Users with empty passwords | 
| invalidRecord-[String!] | Invalid records | 
Example
{
  "status": "abc123",
  "created": ["alice@localhost"],
  "existing": ["alice@localhost"],
  "notAllowed": ["alice@localhost"],
  "invalidJID": ["abc123"],
  "emptyPassword": ["alice@localhost"],
  "invalidRecord": ["abc123"]
}
InboxAdminMutation
Description
Allow admin to flush the inbox bin".
Fields
| Field Name | Description | 
|---|---|
| flushUserBin-Int | Flush the user's bin and return the number of deleted rows | 
| flushDomainBin-Int | Flush the whole domain bin and return the number of deleted rows | 
| Arguments
 | |
| flushGlobalBin-Int | Flush the global bin and return the number of deleted rows | 
Example
{"flushUserBin": 123, "flushDomainBin": 987, "flushGlobalBin": 987}
Int
Description
The Int scalar type represents non-fractional signed whole numeric values. Int can represent values between -(2^31) and 2^31 - 1.
Example
123
JID
Description
Unique XMPP identifier in the form of node@domain or **node@domain/resource
Example
"alice@localhost"
Key
KeyInput
Keyword
Fields
| Field Name | Description | 
|---|---|
| keyword-[String] | Keywords list | 
Example
{"keyword": ["xyz789"]}
KeywordInput
Fields
| Input Field | Description | 
|---|---|
| keyword-[String!] | Keywords list | 
Example
{"keyword": ["xyz789"]}
KickUserResult
Description
Kick user session result
Example
{
  "jid": "alice@localhost",
  "kicked": false,
  "code": "abc123",
  "message": "abc123"
}
Label
Fields
| Field Name | Description | 
|---|---|
| tags-[AddressTags] | Label tags | 
| line-[String] | Individual label lines | 
Example
{"tags": ["HOME"], "line": ["abc123"]}
LabelInput
Fields
| Input Field | Description | 
|---|---|
| tags-[AddressTags!] | Label tags | 
| line-[String!]! | Individual label lines | 
Example
{"tags": ["HOME"], "line": ["abc123"]}
LastActivity
LastAdminMutation
Description
Allow admin to get information about last activity.
Fields
| Field Name | Description | 
|---|---|
| setLast-LastActivity | Set user's last status and timestamp | 
| removeOldUsers-[OldUser!] | Delete users that didn't log in the last days or have never logged in. Globally or for a specified domain. Please use listOldUsers to check which users will be deleted | 
| Arguments
 | |
Example
{
  "setLast": LastActivity,
  "removeOldUsers": [OldUser]
}
LastAdminQuery
Description
Allow admin to manage last activity.
Fields
| Field Name | Description | 
|---|---|
| getLast-LastActivity | Get the user's last status and timestamp | 
| Arguments
 | |
| countActiveUsers-Int | Get the number of users active from the given timestamp | 
| Arguments
 | |
| listOldUsers-[OldUser!] | List users that didn't log in the last days or have never logged in. Globally or for a specified domain | 
| Arguments
 | |
Example
{
  "getLast": LastActivity,
  "countActiveUsers": 123,
  "listOldUsers": [OldUser]
}
LogLevel
Description
Logs events that equally or more severe than the configured level
Values
| Enum Value | Description | 
|---|---|
| 
 | Do not log any events | 
| 
 | Log when system is unusable | 
| 
 | Log when action must be taken immediately | 
| 
 | Log critical conditions | 
| 
 | Log error conditions | 
| 
 | Log warning conditions | 
| 
 | Log normal but significant conditions | 
| 
 | Long informational messages | 
| 
 | Log debug messages | 
| 
 | Log everything | 
Example
"NONE"
MUCAdminMutation
Description
Allow admin to manage Multi-User Chat rooms.
Fields
| Field Name | Description | 
|---|---|
| createInstantRoom-MUCRoomDesc | Create a MUC room under the given XMPP hostname | 
| Arguments | |
| inviteUser-String | Invite a user to a MUC room | 
| kickUser-String | Kick a user from a MUC room | 
| Arguments | |
| sendMessageToRoom-String | Send a message to a MUC room | 
| sendPrivateMessage-String | Send a private message to a MUC room user | 
| Arguments | |
| deleteRoom-String | Remove a MUC room | 
| changeRoomConfiguration-MUCRoomConfig | Change configuration of a MUC room | 
| Arguments
 | |
| setUserRole-String | Change a user role | 
| Arguments | |
| setUserAffiliation-String | Change a user affiliation | 
| Arguments | |
| enterRoom-String | Make a user enter the room with a given nick | 
| Arguments | |
| exitRoom-String | Make a user with the given nick exit the room | 
| Arguments | |
Example
{
  "createInstantRoom": MUCRoomDesc,
  "inviteUser": "abc123",
  "kickUser": "abc123",
  "sendMessageToRoom": "xyz789",
  "sendPrivateMessage": "xyz789",
  "deleteRoom": "xyz789",
  "changeRoomConfiguration": MUCRoomConfig,
  "setUserRole": "xyz789",
  "setUserAffiliation": "xyz789",
  "enterRoom": "xyz789",
  "exitRoom": "abc123"
}
MUCAdminQuery
Description
Allow admin to get information about Multi-User Chat rooms.
Fields
| Field Name | Description | 
|---|---|
| listRooms-MUCRoomsPayload | Get MUC rooms under the given MUC domain | 
| Arguments | |
| getRoomConfig-MUCRoomConfig | Get configuration of the MUC room | 
| Arguments
 | |
| listRoomUsers-[MUCRoomUser!] | Get the user list of a given MUC room | 
| Arguments
 | |
| listRoomAffiliations-[MUCRoomAffiliation!] | Get the affiliation list of given MUC room | 
| Arguments
 | |
| getRoomMessages-StanzasPayload | Get the MUC room archived messages | 
Example
{
  "listRooms": MUCRoomsPayload,
  "getRoomConfig": MUCRoomConfig,
  "listRoomUsers": [MUCRoomUser],
  "listRoomAffiliations": [MUCRoomAffiliation],
  "getRoomMessages": StanzasPayload
}
MUCAffiliation
Description
User affiliation to a specific room
Values
| Enum Value | Description | 
|---|---|
| 
 | The user is the owner of the room | 
| 
 | The user has an administrative role | 
| 
 | The user is a member of the room | 
| 
 | The user isn't a member of the room | 
| 
 | The user doesn't have any affiliation | 
Example
"OWNER"
MUCLightAdminMutation
Description
Allow admin to manage Multi-User Chat Light rooms.
Fields
| Field Name | Description | 
|---|---|
| createRoom-Room | Create a MUC light room under the given XMPP hostname | 
| Arguments
 | |
| changeRoomConfiguration-Room | Change configuration of a MUC Light room | 
| Arguments | |
| inviteUser-String | Invite a user to a MUC Light room | 
| deleteRoom-String | Remove a MUC Light room | 
| Arguments
 | |
| kickUser-String | Kick a user from a MUC Light room | 
| sendMessageToRoom-String | Send a message to a MUC Light room | 
| setBlockingList-String | Set the user's list of blocked entities | 
| Arguments
 | |
Example
{
  "createRoom": Room,
  "changeRoomConfiguration": Room,
  "inviteUser": "xyz789",
  "deleteRoom": "xyz789",
  "kickUser": "xyz789",
  "sendMessageToRoom": "abc123",
  "setBlockingList": "xyz789"
}
MUCLightAdminQuery
Description
Allow admin to get information about Multi-User Chat Light rooms.
Fields
| Field Name | Description | 
|---|---|
| getRoomMessages-StanzasPayload | Get the MUC Light room archived messages | 
| getRoomConfig-Room | Get configuration of the MUC Light room | 
| Arguments
 | |
| listRoomUsers-[RoomUser!] | Get users list of given MUC Light room | 
| Arguments
 | |
| listUserRooms-[JID!] | Get the list of MUC Light rooms that the user participates in | 
| Arguments
 | |
| getBlockingList-[BlockingItem!] | Get the user's list of blocked entities | 
| Arguments
 | |
Example
{
  "getRoomMessages": StanzasPayload,
  "getRoomConfig": Room,
  "listRoomUsers": [RoomUser],
  "listUserRooms": ["alice@localhost"],
  "getBlockingList": [BlockingItem]
}
MUCRole
Description
MUC role types
Values
| Enum Value | Description | 
|---|---|
| 
 | User is a visitor | 
| 
 | User can participate in the room | 
| 
 | User has ability to moderate room | 
Example
"VISITOR"
MUCRoomAffiliation
Description
MUC room affiliation data
Fields
| Field Name | Description | 
|---|---|
| jid-JID! | Room's JID | 
| affiliation-MUCAffiliation! | Affiliation type | 
Example
{
  "jid": "alice@localhost",
  "affiliation": "OWNER"
}
MUCRoomConfig
Description
MUC room configuration
Fields
| Field Name | Description | 
|---|---|
| title-String! | Room's title | 
| description-String! | Room's description | 
| allowChangeSubject-Boolean! | Allow to change the room's subject? | 
| allowQueryUsers-Boolean! | Allow to query users? | 
| allowPrivateMessages-Boolean! | Allow private messages? | 
| allowVisitorStatus-Boolean! | Allow visitor status? | 
| allowVisitorNickchange-Boolean! | Allow visitors to change their nicks? | 
| public-Boolean! | Is the room public? | 
| publicList-Boolean! | Is the room on the public list? | 
| persistent-Boolean! | Is the room persistent | 
| moderated-Boolean! | Is the room moderated? | 
| membersByDefault-Boolean! | Should all new occupants be members by default? | 
| membersOnly-Boolean! | Should only users with member affiliation be allowed to join the room? | 
| allowUserInvites-Boolean! | Can users invite others to join the room? | 
| allowMultipleSession-Boolean! | Allow multiple sessions of the room? | 
| passwordProtected-Boolean! | Is the room password protected? | 
| password-String! | Password to the room | 
| anonymous-Boolean! | Are occupants, except from moderators, able see each others real JIDs? | 
| mayGetMemberList-[String!]! | Array of roles and/or privileges that enable retrieving the room's member list | 
| maxUsers-PosInt | Maximum number of users in the room | 
| logging-Boolean! | Does the room enabled logging events to a file on the disk? | 
Example
{
  "title": "abc123",
  "description": "xyz789",
  "allowChangeSubject": true,
  "allowQueryUsers": true,
  "allowPrivateMessages": false,
  "allowVisitorStatus": true,
  "allowVisitorNickchange": false,
  "public": true,
  "publicList": true,
  "persistent": true,
  "moderated": false,
  "membersByDefault": true,
  "membersOnly": true,
  "allowUserInvites": true,
  "allowMultipleSession": false,
  "passwordProtected": true,
  "password": "xyz789",
  "anonymous": true,
  "mayGetMemberList": ["xyz789"],
  "maxUsers": 2,
  "logging": false
}
MUCRoomConfigInput
Description
MUC rooom configuration input
Fields
| Input Field | Description | 
|---|---|
| title-String | Room's title | 
| description-String | Room's description | 
| allowChangeSubject-Boolean | Allow to change room's subject? | 
| allowQueryUsers-Boolean | Allow to query users? | 
| allowPrivateMessages-Boolean | Allow private messages? | 
| allowVisitorStatus-Boolean | Allow visitor status? | 
| allowVisitorNickchange-Boolean | Allow visitors to change their nicks? | 
| public-Boolean | Is the room public? | 
| publicList-Boolean | Is the room on the public list? | 
| persistent-Boolean | Is the room persistent | 
| moderated-Boolean | Is the room moderated? | 
| membersByDefault-Boolean | Should all new occupants be members by default? | 
| membersOnly-Boolean | Should only users with member affiliation be allowed to join the room? | 
| allowUserInvites-Boolean | Can users invite others to join the room? | 
| allowMultipleSession-Boolean | Allow multiple sessions of the room? | 
| passwordProtected-Boolean | Is the room password protected? | 
| password-String | Password to the room | 
| anonymous-Boolean | Are occupants, except from moderators, able see each others real JIDs? | 
| mayGetMemberList-[String!] | Array of roles and/or privileges that enable retrieving the room's member list | 
| maxUsers-PosInt | Maximum number of users in the room | 
| logging-Boolean | Does the room enabled logging events to a file on the disk? | 
Example
{
  "title": "abc123",
  "description": "xyz789",
  "allowChangeSubject": false,
  "allowQueryUsers": false,
  "allowPrivateMessages": true,
  "allowVisitorStatus": true,
  "allowVisitorNickchange": false,
  "public": true,
  "publicList": true,
  "persistent": false,
  "moderated": true,
  "membersByDefault": true,
  "membersOnly": true,
  "allowUserInvites": false,
  "allowMultipleSession": false,
  "passwordProtected": true,
  "password": "abc123",
  "anonymous": true,
  "mayGetMemberList": ["xyz789"],
  "maxUsers": 2,
  "logging": true
}
MUCRoomDesc
MUCRoomUser
MUCRoomsPayload
Description
MUC rooms payload
Fields
| Field Name | Description | 
|---|---|
| rooms-[MUCRoomDesc!] | List of rooms descriptions | 
| count-NonNegInt | Number of the rooms | 
| index-NonNegInt | Index of the room | 
| first-String | First room title | 
| last-String | Last room title | 
Example
{
  "rooms": [MUCRoomDesc],
  "count": 0,
  "index": 0,
  "first": "xyz789",
  "last": "abc123"
}
MetricAdminQuery
Description
Allow admin to get the metric values. Only works with Exometer enabled.
Fields
| Field Name | Description | 
|---|---|
| getMetrics-[MetricResult] | Match metrics using a name pattern and return the metric values. Return all metrics if the name is not provided. Name is a list of name segments or an underscore (i.e. path). | 
| Arguments
 | |
| getMetricsAsDicts-[MetricDictResult] | Get metrics without using graphql unions. Optionally returns only specified keys (i.e. keys: ["one"] only returns key "one", but not key "count") | 
| getClusterMetricsAsDicts-[MetricNodeResult] | Gather metrics from multiple nodes. Optionally returns only from specified nodes. | 
Example
{
  "getMetrics": [HistogramMetric],
  "getMetricsAsDicts": [MetricDictResult],
  "getClusterMetricsAsDicts": [MetricNodeResult]
}
MetricDictEntry
MetricDictResult
Fields
| Field Name | Description | 
|---|---|
| name-[String] | Metric name | 
| dict-[MetricDictEntry] | A list of keys and values | 
Example
{
  "name": ["xyz789"],
  "dict": [MetricDictEntry]
}
MetricNodeResult
Fields
| Field Name | Description | 
|---|---|
| node-String | |
| result-[MetricDictResult] | 
Example
{
  "node": "abc123",
  "result": [MetricDictResult]
}
MetricResult
Description
Type of metric result
Types
| Union Types | 
|---|
Example
HistogramMetric
MetricType
Description
Result of a metric
Values
| Enum Value | Description | 
|---|---|
| 
 | Collects values over a sliding window of 60s and returns appropriate statistical values | 
| 
 | Returns a number | 
| 
 | Provides 2 values: total event count and a value in 60s window. Dividing one value by 60 provides an average per-second value over last minute. | 
| 
 | Consists of value and time in milliseconds elapsed from the last metric update | 
Example
"histogram"
MnesiaAdminMutation
Description
Allow admin to backup, dump, load, restore and modify mnesia database
Fields
| Field Name | Description | 
|---|---|
| setMaster-String | Set mnesia's master node | 
| Arguments
 | |
| changeNodename-String | Change nodename from 'fromString' to 'toString' in 'source' backup file and create new 'target' backup file | 
| backup-String | Save mnesia backup to file 'path' | 
| Arguments
 | |
| restore-String | Restore mnesia backup from file 'path' | 
| Arguments
 | |
| dump-String | Dump mnesia to file 'path' | 
| Arguments
 | |
| dumpTable-String | Dump mnesia table 'table' to file 'path' | 
| load-String | Load mnesia from file 'path' that was previously dumped | 
| Arguments
 | |
| installFallback-String | Install mnesia fallback | 
| Arguments
 | |
Example
{
  "setMaster": "xyz789",
  "changeNodename": "abc123",
  "backup": "xyz789",
  "restore": "xyz789",
  "dump": "xyz789",
  "dumpTable": "abc123",
  "load": "xyz789",
  "installFallback": "abc123"
}
MnesiaAdminQuery
Description
Allow admin to acquire information about mnesia database
Fields
| Field Name | Description | 
|---|---|
| systemInfo-[MnesiaInfo] | Get the information about appropriate mnesia property for a specified key, if no keys are provided all the available properties will be returned | 
| Arguments
 | |
Example
{"systemInfo": [MnesiaStringResponse]}
MnesiaInfo
Types
| Union Types | 
|---|
Example
MnesiaStringResponse
MnesiaIntResponse
MnesiaListResponse
MnesiaStringResponse
MutualSubAction
Description
The mutual subscription actions
Values
| Enum Value | Description | 
|---|---|
| 
 | Add users to contacts with a bothsubscription type | 
| 
 | Delete contacts | 
Example
"CONNECT"
NameComponents
Example
{
  "family": "abc123",
  "givenName": "xyz789",
  "middleName": "xyz789",
  "prefix": "xyz789",
  "suffix": "abc123"
}
NameComponentsInput
Example
{
  "family": "xyz789",
  "givenName": "abc123",
  "middleName": "abc123",
  "prefix": "abc123",
  "suffix": "xyz789"
}
NodeName
Description
Name of the Erlang node. The value self is used to refer to the current node
Example
"mynode@localhost"
NonEmptyString
Description
String that contains at least one character
Example
"xyz789"
NonNegInt
Description
Integer that has a value above or equal to zero
OfflineAdminMutation
Description
Allow admin to delete offline messages from specified domain
Fields
| Field Name | Description | 
|---|---|
| deleteExpiredMessages-String | Delete offline messages whose date has expired | 
| Arguments
 | |
| deleteOldMessages-String | Delete messages at least as old as the number of days specified in the parameter | 
| Arguments
 | |
Example
{
  "deleteExpiredMessages": "xyz789",
  "deleteOldMessages": "abc123"
}
OldUser
Description
The user is considered old when never registered activity in mod_last, or the latest registered activity is older than the given timestamp.
Example
{
  "jid": "alice@localhost",
  "timestamp": "2007-12-03T10:15:30Z"
}
Organization
OrganizationInput
Phonetic
Fields
| Field Name | Description | 
|---|---|
| phonetic-String | Textual phonetic pronunciation | 
Example
{"phonetic": "abc123"}
PosInt
Description
Integer that has a value above zero
Example
2
PresenceShow
Description
Presence show field values
Values
| Enum Value | Description | 
|---|---|
| 
 | The entity or resource is online | 
| 
 | The entity or resource is temporarily away | 
| 
 | The entity or resource is actively interested in chatting | 
| 
 | The entity or resource is busy (dnd = 'Do Not Disturb') | 
| 
 | The entity or resource is away for an extended period (xa = 'eXtended Away') | 
Example
"ONLINE"
PresenceType
Description
Presence type field values
Values
| Enum Value | Description | 
|---|---|
| 
 | The sender is available for communication | 
| 
 | An error has occurred regarding processing of a previously sent presence stanza | 
| 
 | A request for an entity's current presence; SHOULD be generated only by a server on behalf of a user | 
| 
 | The sender wishes to subscribe to the recipient's presence | 
| 
 | The sender has allowed the recipient to receive their presence | 
| 
 | Signals that the entity is no longer available for communication | 
| 
 | The sender is unsubscribing from the receiver's presence | 
| 
 | The subscription request has been denied or a previously granted subscription has been canceled | 
Example
"AVAILABLE"
Privacy
Fields
| Field Name | Description | 
|---|---|
| tags-[PrivacyClassificationTags] | List of privacy classification tags | 
Example
{"tags": ["PUBLIC"]}
PrivacyClassificationTags
Values
| Enum Value | Description | 
|---|---|
| 
 | vCard may be shared with everyone | 
| 
 | vCard will not be shared | 
| 
 | vCard may be shared with allowed users | 
Example
"PUBLIC"
PrivacyInput
Fields
| Input Field | Description | 
|---|---|
| tags-[PrivacyClassificationTags!] | Privacy classification tag list | 
Example
{"tags": ["PUBLIC"]}
PrivateAdminMutation
Description
Allow admin to set the user's private data
Fields
| Field Name | Description | 
|---|---|
| setPrivate-XmlElement | Set the user's private data | 
| Arguments
 | |
Example
{
  "setPrivate": "<message to='bob@localhost' type='chat' from='alice@localhost'><body>Hi!</body></message>"
}
PrivateAdminQuery
Description
Allow admin to get the user's private data
Fields
| Field Name | Description | 
|---|---|
| getPrivate-XmlElement | Get the user's private data | 
| Arguments | |
Example
{
  "getPrivate": "<message to='bob@localhost' type='chat' from='alice@localhost'><body>Hi!</body></message>"
}
ResourceName
Description
XMPP resource name (resource part of a JID)
Example
"res1"
Room
Description
Room data
Fields
| Field Name | Description | 
|---|---|
| jid-BareJID! | Room's JId | 
| name-String | Name of the room | 
| subject-String | Subject of the room | 
| participants-[RoomUser!]! | List of participants | 
| options-[RoomConfigDictEntry!]! | Configuration options | 
Example
{
  "jid": "alice@localhost",
  "name": "xyz789",
  "subject": "abc123",
  "participants": [RoomUser],
  "options": [RoomConfigDictEntry]
}
RoomConfigDictEntry
RoomConfigDictEntryInput
RoomName
Description
XMPP room name (local part of a JID)
Example
"my-chat-room"
RoomUser
Description
Room user data
Fields
| Field Name | Description | 
|---|---|
| jid-JID! | User's JID | 
| affiliation-Affiliation! | User's affiliation | 
Example
{
  "jid": "alice@localhost",
  "affiliation": "OWNER"
}
RosterAdminMutation
Description
Allow admin to manage user roster/contacts.
Fields
| Field Name | Description | 
|---|---|
| addContact-String | Add a new contact to a user's roster without subscription | 
| addContacts-[String]! | Add new contacts to a user's roster without subscription | 
| Arguments
 | |
| subscription-String | Manage the user's subscription to the contact | 
| Arguments | |
| deleteContact-String | Delete user's contact | 
| deleteContacts-[String]! | Delete user's contacts | 
| setMutualSubscription-String | Manage mutual subscription between given users | 
| Arguments | |
| subscribeToAll-[String]! | Set mutual subscriptions between the user and each of the given contacts | 
| Arguments
 | |
| subscribeAllToAll-[String]! | Set mutual subscriptions between all of the given contacts | 
| Arguments
 | |
Example
{
  "addContact": "xyz789",
  "addContacts": ["abc123"],
  "subscription": "xyz789",
  "deleteContact": "xyz789",
  "deleteContacts": ["xyz789"],
  "setMutualSubscription": "abc123",
  "subscribeToAll": ["xyz789"],
  "subscribeAllToAll": ["abc123"]
}
RosterAdminQuery
Description
Allow admin to get information about user roster/contacts.
Fields
| Field Name | Description | 
|---|---|
| listContacts-[Contact!] | Get the user's roster/contacts | 
| Arguments
 | |
| getContact-Contact | Get the information about the user's specific contact | 
Example
{
  "listContacts": [Contact],
  "getContact": Contact
}
SendStanzaPayload
Description
Send stanza payload
Fields
| Field Name | Description | 
|---|---|
| id-ID | Stanza id | 
Example
{"id": 4}
ServerAdminMutation
Description
Allow admin to manage the node
Fields
| Field Name | Description | 
|---|---|
| joinCluster-String | Join the MongooseIM node to a cluster. Call it on the joining node | 
| Arguments
 | |
| leaveCluster-String | Leave a cluster. Call it on the node that is going to leave | 
| removeFromCluster-String | Remove a MongooseIM node from the cluster. Call it from the member of the cluster | 
| Arguments
 | |
| restart-String | Restart MongooseIM node | 
| stop-String | Stop MongooseIM node | 
| removeNode-String | Remove a MongooseIM node from Mnesia clustering config | 
| Arguments
 | |
| setLoglevel-String | Set MongooseIM node's LogLevel | 
| Arguments
 | |
Example
{
  "joinCluster": "abc123",
  "leaveCluster": "xyz789",
  "removeFromCluster": "xyz789",
  "restart": "abc123",
  "stop": "xyz789",
  "removeNode": "abc123",
  "setLoglevel": "xyz789"
}
ServerAdminQuery
Description
Allow admin to acquire data about the node
Example
{
  "status": Status,
  "getLoglevel": "NONE",
  "getCookie": "abc123"
}
Session
Description
The information about the session
Fields
| Field Name | Description | 
|---|---|
| user-JID! | The full JID | 
| connection-String | The connection type (e.g. c2s) | 
| ip-String | The session IP address | 
| port-Int | The session port | 
| priority-Int | The priority level of the resource | 
| node-String | The node that the session process belongs to | 
| uptime-Int | The uptime of the session | 
Example
{
  "user": "alice@localhost",
  "connection": "xyz789",
  "ip": "abc123",
  "port": 123,
  "priority": 987,
  "node": "abc123",
  "uptime": 123
}
SessionAdminMutation
Description
Allow admin to manage sessions.
Fields
| Field Name | Description | 
|---|---|
| kickUserSession-KickUserResult | Kick a user session. User JID must contain resource | 
| kickUser-[KickUserResult!] | Kick user sessions | 
| setPresence-SessionPayload | Set presence of a session. User JID should contain resource | 
| Arguments | |
Example
{
  "kickUserSession": KickUserResult,
  "kickUser": [KickUserResult],
  "setPresence": SessionPayload
}
SessionAdminQuery
Description
Allow admin to get information about sessions.
Fields
| Field Name | Description | 
|---|---|
| listSessions-[Session!] | Get the list of established sessions for a specified domain or globally | 
| Arguments
 | |
| countSessions-Int | Get the number of established sessions for a specified domain or globally | 
| Arguments
 | |
| listUserSessions-[Session!] | Get information about all sessions of a user | 
| Arguments
 | |
| countUserResources-Int | Get the number of resources of a user | 
| Arguments
 | |
| getUserResource-ResourceName | Get the resource string of the n-th session of a user | 
| listUsersWithStatus-[UserStatus!] | Get the list of logged users with this status for a specified domain or globally | 
| Arguments
 | |
| countUsersWithStatus-Int | Get the number of logged users with this status for a specified domain or globally | 
| Arguments
 | |
Example
{
  "listSessions": [Session],
  "countSessions": 123,
  "listUserSessions": [Session],
  "countUserResources": 123,
  "getUserResource": "res1",
  "listUsersWithStatus": [UserStatus],
  "countUsersWithStatus": 123
}
SessionPayload
Sound
SoundInput
SpiralMetric
Fields
| Field Name | Description | 
|---|---|
| name-[String] | Metric name | 
| type-MetricType | Metric type | 
| one-Int | One minute value | 
| count-Int | Total value | 
Example
{
  "name": ["abc123"],
  "type": "histogram",
  "one": 123,
  "count": 123
}
StanzaAdminMutation
Fields
| Field Name | Description | 
|---|---|
| sendMessage-SendStanzaPayload | Send a chat message from a given contact to a local or remote bare or full JID | 
| sendMessageHeadLine-SendStanzaPayload | Send a headline message from a given contact to a local or remote bare or full JID | 
| sendStanza-SendStanzaPayload | Send an arbitrary stanza. Only for global admin | 
| Arguments
 | |
Example
{
  "sendMessage": SendStanzaPayload,
  "sendMessageHeadLine": SendStanzaPayload,
  "sendStanza": SendStanzaPayload
}
StanzaAdminQuery
Fields
| Field Name | Description | 
|---|---|
| getLastMessages-StanzasPayload | Get last 50 messages to/from a given contact, optionally you can change the limit, specify a date or select only messages exchanged with a specific contact | 
Example
{"getLastMessages": StanzasPayload}
StanzaAdminSubscription
StanzaMap
Description
Stanza map data
Fields
| Field Name | Description | 
|---|---|
| sender-JID | Sender's JID | 
| timestamp-DateTime | Stanza's timestamp | 
| stanza_id-String | ID of the stanza | 
| stanza-XmlElement | Stanza's data | 
Example
{
  "sender": "alice@localhost",
  "timestamp": "2007-12-03T10:15:30Z",
  "stanza_id": "xyz789",
  "stanza": "<message to='bob@localhost' type='chat' from='alice@localhost'><body>Hi!</body></message>"
}
StanzasPayload
Description
Stanza payload data
Fields
| Field Name | Description | 
|---|---|
| stanzas-[StanzaMap] | List of stanza's maps | 
| limit-Int | Max number of stanzas | 
Example
{"stanzas": [StanzaMap], "limit": 987}
StatsAdminQuery
Description
Allow admin to get statistics
Fields
| Field Name | Description | 
|---|---|
| globalStats-GlobalStats | Get statistics from all of the nodes. Only for global admin | 
| domainStats-DomainStats | Get statistics from a specific domain | 
| Arguments
 | |
Example
{
  "globalStats": GlobalStats,
  "domainStats": DomainStats
}
Status
Description
Status of the server
Fields
| Field Name | Description | 
|---|---|
| statusCode-StatusCode | Code of the status | 
| message-String | Message about the status | 
| version-String | MongooseIM version | 
| commitHash-String | The hash of the commit that MongooseIM is running | 
Example
{
  "statusCode": "RUNNING",
  "message": "xyz789",
  "version": "xyz789",
  "commitHash": "abc123"
}
StatusCode
Description
Specifies status of the server
Values
| Enum Value | Description | 
|---|---|
| 
 | Server is running | 
| 
 | Server is not running | 
Example
"RUNNING"
String
Description
The String scalar type represents textual data, represented as UTF-8 character sequences. The String type is most often used by GraphQL to represent free-form human-readable text.
Example
"abc123"
SubAction
Description
The subscription actions
Values
| Enum Value | Description | 
|---|---|
| 
 | Send the subscription request to a user. Presence type: subscribe | 
| 
 | Accept the subscription request. Presence type: subscribed | 
| 
 | Decline the subscription's request. Presence type: unsubscribed | 
| 
 | Cancel the user's subscription. Presence type: unsubscribe | 
Example
"INVITE"
Telephone
Fields
| Field Name | Description | 
|---|---|
| tags-[TelephoneTags] | Telephone tags | 
| number-String | Telephone's number | 
Example
{"tags": ["HOME"], "number": "abc123"}
TelephoneInput
Fields
| Input Field | Description | 
|---|---|
| tags-[TelephoneTags!] | Telephone tags | 
| number-String! | Telephone's number | 
Example
{"tags": ["HOME"], "number": "xyz789"}
TelephoneTags
Description
Specifies intended use of a telphone number
Values
| Enum Value | Description | 
|---|---|
| 
 | Number associated with a residence | 
| 
 | Number associated with a workplace | 
| 
 | Voice telephone number | 
| 
 | Facsimile telephone number | 
| 
 | Paging device telephone number | 
| 
 | Number has voice messaging support | 
| 
 | Cellular telephone number | 
| 
 | Video conferencing telephone number | 
| 
 | Bulletin board system telephone number | 
| 
 | Modem connected telephone number | 
| 
 | ISDN service telephone number | 
| 
 | Personal communication services telephone number | 
| 
 | Preferred use of a telephone number | 
Example
"HOME"
Token
TokenAdminMutation
UserName
Description
XMPP user name (local part of a JID)
Example
"alice"
UserPayload
UserStatus
Vcard
Fields
| Field Name | Description | 
|---|---|
| formattedName-String | Formatted name from Vcard | 
| nameComponents-NameComponents | Person's name details | 
| nickname-[String] | User's nickname | 
| photo-[Image] | User's photo | 
| birthday-[String] | Birthday date | 
| address-[Address] | User's addresses | 
| label-[Label] | Formatted text corresponding to delivery address | 
| telephone-[Telephone] | User's telephone number | 
| email-[Email] | User's email | 
| jabberId-[String] | User's JID | 
| mailer-[String] | User's mail agent type | 
| timeZone-[String] | User's timezone | 
| geo-[GeographicalPosition] | Geographical position | 
| title-[String] | Job title, functional position or function | 
| role-[String] | User's role, occupation, or business category | 
| logo-[Image] | Logo image | 
| agent-[Agent] | Person who will act on behalf of the user or resource associated with the vCard | 
| org-[Organization] | Organizational name and units associated | 
| categories-[Keyword] | Application specific category information | 
| note-[String] | Note about user | 
| prodId-[String] | Identifier of product that generated the vCard property | 
| rev-[String] | Last revised property. The value must be an ISO 8601 formatted UTC date/time | 
| sortString-[String] | Sort string property | 
| sound-[Sound] | Formatted name pronunciation property | 
| uid-[String] | Unique identifier property | 
| url-[String] | Directory URL property | 
| desc-[String] | Free-form descriptive text | 
| class-[Privacy] | Privacy classification property | 
| key-[Key] | Authentication credential or encryption key property | 
Example
{
  "formattedName": "xyz789",
  "nameComponents": NameComponents,
  "nickname": ["xyz789"],
  "photo": [ImageData],
  "birthday": ["abc123"],
  "address": [Address],
  "label": [Label],
  "telephone": [Telephone],
  "email": [Email],
  "jabberId": ["abc123"],
  "mailer": ["abc123"],
  "timeZone": ["abc123"],
  "geo": [GeographicalPosition],
  "title": ["xyz789"],
  "role": ["xyz789"],
  "logo": [ImageData],
  "agent": [AgentVcard],
  "org": [Organization],
  "categories": [Keyword],
  "note": ["xyz789"],
  "prodId": ["abc123"],
  "rev": ["xyz789"],
  "sortString": ["xyz789"],
  "sound": [Phonetic],
  "uid": ["abc123"],
  "url": ["abc123"],
  "desc": ["abc123"],
  "class": [Privacy],
  "key": [Key]
}
VcardAdminMutation
Description
Allow admin to set user's vcard
Fields
| Field Name | Description | 
|---|---|
| setVcard-Vcard | Set a new vcard for a user | 
| Arguments
 | |
Example
{"setVcard": Vcard}
VcardAdminQuery
VcardInput
Fields
| Input Field | Description | 
|---|---|
| formattedName-String! | Formatted name from Vcard | 
| nameComponents-NameComponentsInput! | Person's name details | 
| nickname-[String] | User's nickname | 
| photo-[ImageInput!] | User's photo | 
| birthday-[String!] | Birthday date | 
| address-[AddressInput!] | User's address | 
| label-[LabelInput!] | Formatted text corresponding to delivery address | 
| telephone-[TelephoneInput!] | User's telephone number | 
| email-[EmailInput!] | User's email | 
| jabberId-[String!] | User's JID | 
| mailer-[String!] | User's mail agent type | 
| timeZone-[String!] | User's timezone | 
| geo-[GeographicalPositionInput!] | Geographical position | 
| title-[String!] | Job title, functional position or function | 
| role-[String!] | User's role, occupation, or business category | 
| logo-[ImageInput!] | Logo image | 
| agent-[AgentInput!] | Person who will act on behalf of the user or resource associated with the vCard | 
| org-[OrganizationInput!] | Organizational name and units associated | 
| categories-[KeywordInput!] | Application specific category information | 
| note-[String!] | Note about user | 
| prodId-[String!] | Identifier of product that generated the vCard property | 
| rev-[String!] | Last revised property. The value must be an ISO 8601 formatted UTC date/time | 
| sortString-[String!] | Sort string property | 
| sound-[SoundInput!] | Formatted name pronunciation property | 
| uid-[String!] | Unique identifier property | 
| url-[String!] | Directory URL property | 
| desc-[String!] | Free-form descriptive text | 
| class-[PrivacyInput!] | Privacy classification property | 
| key-[KeyInput!] | Authentication credential or encryption key property | 
Example
{
  "formattedName": "xyz789",
  "nameComponents": NameComponentsInput,
  "nickname": ["abc123"],
  "photo": [ImageInput],
  "birthday": ["abc123"],
  "address": [AddressInput],
  "label": [LabelInput],
  "telephone": [TelephoneInput],
  "email": [EmailInput],
  "jabberId": ["xyz789"],
  "mailer": ["xyz789"],
  "timeZone": ["abc123"],
  "geo": [GeographicalPositionInput],
  "title": ["xyz789"],
  "role": ["abc123"],
  "logo": [ImageInput],
  "agent": [AgentInput],
  "org": [OrganizationInput],
  "categories": [KeywordInput],
  "note": ["abc123"],
  "prodId": ["xyz789"],
  "rev": ["xyz789"],
  "sortString": ["xyz789"],
  "sound": [SoundInput],
  "uid": ["xyz789"],
  "url": ["abc123"],
  "desc": ["abc123"],
  "class": [PrivacyInput],
  "key": [KeyInput]
}
XmlElement
Description
String containing the XML document
Example
"<message to='bob@localhost' type='chat' from='alice@localhost'><body>Hi!</body></message>"