please select
  • UIKit
  • SDK
  • Server APIs
Chat/
Server APIs/
RESTful APIs/
User Management/
User Status/
Server APIs
  • Generating UserSig
  • RESTful APIs
    • RESTful API Overview
    • RESTful API List
    • Message Related
      • Send Message
        • Sending One-to-One Messages to One User
        • Sending One-to-One Messages to Multiple Users
        • Sending Ordinary Messages in a Group
        • Sending System Messages in a Group
        • Broadcast Message of Audio-Video Group
        • Importing One-to-One Messages
        • Importing Group Messages
      • Historical Message
        • Modifying Historical One-to-one Messages
        • Modifying Historical Group Messages
        • Pulling Historical One-to-one Messages
        • Pulling Historical Group Messages
      • Delete Message
        • Deleting Messages Sent by a Specified User
      • Withdraw Message
        • Recalling One-to-One Messages
        • Recalling Group Messages
      • Read Receipt
        • Marking One-to-One Messages as Read
        • Pulling Group Message Read Receipt Details
        • Pulling Read Receipts for Group Messages
      • Message Extension
        • Pulling the Message Extension of a One-to-One Message
        • Configuring Message Extension for a One-to-One Message
        • Pulling Message Extension of a Group Message
        • Configuring Message Extension for a Group Message
      • Pushing to All Users
        • API for Pushing to All Users
        • Pushing to All Users
        • Setting Application Attribute Names
        • Getting Application Attribute Names
        • Getting User Attributes
        • Setting User Attributes
        • Deleting User Attributes
        • Getting User Tags
        • Adding User Tags
        • Deleting User Tags
        • Deleting All Tags of a User
    • Session Related
      • Conversation List
        • Pulling a conversation list
      • Session Unread Count
        • Setting the Unread Message Count of a Member
        • Querying Unread One-to-One Message Count
      • Delete Session
        • Deleting a conversation
      • Session Grouping Tag
        • Creating Conversation Group Data
        • Updating Conversation Group Data
        • Deleting Conversation Group Data
        • Creating or Updating Conversation Mark Data
        • Searching for Conversation Group Marks
        • Pulling Conversation Group Mark Data
    • Group Related
      • Group Management
        • Getting All Groups in an App
        • Creating a Group
        • Disbanding a Group
        • Getting the Groups a User Has Joined
      • Group Information
        • Getting Group Profiles
        • Modifying the Profile of a Group
        • Importing a Group Profile
      • Group Member Management
        • Adding Group Members
        • Deleting Group Members
        • Banning Group Members
        • Unbanning Group Members
        • Bulk Muting and Unmuting
        • Getting the List of Muted Group Members
        • Changing Group Owner
        • Querying the Roles of Users in a Group
        • Importing Group Members
      • Group Member Information
        • Getting Group Member Profiles
        • Modifying the Profile of a Group Member
      • Group Custom Attributes
        • Getting Group Custom Attributes
        • Modifying Group Custom Attributes
        • Clearing Group Custom Attributes
        • Resetting Group Custom Attributes
        • Deleting Group Custom Attributes
      • Live Group Management
        • Getting the Number of Online Users in an Audio-Video Group
        • Getting the List of Online Members in Audio-Video Group
        • Setting Audio-Video Group Member Marks
        • Getting the List of Banned Group Members.
      • Community Management
        • Creating Topic
        • Deleting Topic
        • Getting Topic Profile
        • Modifying Topic Profile
        • Importing Topic Profiles
      • Group Counter
        • Getting Group Counters
        • Updating Group Counters
        • Deleting Group Counters
    • User Management
      • Account Management
        • Importing a Single Account
        • Importing Multiple Accounts
        • Deleting Accounts
        • Querying Accounts
      • User Information
        • Setting Profiles
        • Pulling Profiles
      • User Status
        • Invalidating Account Login States
        • Querying Account Online Status
      • Friend Management
        • Adding Friends
        • Importing Friends
        • Updating Friends
        • Deleting Friends
        • Deleting All Friends
        • Verifying Friends
        • Pulling Friends
        • Pulling Specified Friends
      • Friend Lists
        • Adding Lists
        • Deleting Lists
        • Pulling Lists
      • Blocklist
        • Blocklisting Users
        • Unblocklisting Users
        • Pulling a Blacklist
        • Verifying Users on a Blocklist
    • Global Mute Management
      • Setting Global Mute
      • Querying Global Mute
    • Operations Management
      • Pulling Operations Data
      • Downloading Recent Messages
      • Getting Server IP Addresses
    • Chatbots
      • Pulling Chatbot Accounts
      • Creating Chatbot Accounts
      • Deleting Chatbot Accounts
  • Webhooks
    • Webhook Overview
    • Webhook Command List
    • Operations Management Callbacks
      • API Overclocking Alarm Callbacks
    • Online Status Webhooks
      • Status Change Webhooks
    • Relationship Chain Webhooks
      • After a Profile Is Updated
      • Before a Friend Is Added
      • Before a Friend Request Is Responded
      • After a Friend Is Added
      • After a Friend Is Deleted
      • After a User Is Added to Blocklist
      • After a User Is Removed from Blocklist
    • One-to-One Message Webhooks
      • Before a One-to-One Message Is Sent
      • After a One-to-One Message Is Sent
      • After a One-to-One message Is Marked as Read
      • After A One-to-One Message Is Recalled
    • Group Webhooks
      • Before a Group Is Created
      • After a Group Is Created
      • Before Applying to Join a Group
      • Before Inviting a User to a Group
      • After a User Joins a Group
      • After a User Leaves a Group
      • Before Group Message Is Sent
      • After a Group Message Is Sent
      • After a Group Is Full
      • After a Group Is Disbanded
      • After Group Profile Is Modified
      • Callback After Recalling Group Messages
      • Webhook for Online and Offline Status of Audio-Video Group Members
      • Webhook for Exceptions When Group Messages Are Sent
      • Before a Topic Is Created
      • After a Topic Is Created
      • After a Topic Is Deleted
      • Topic Profile Change Webhook
      • Callback After Group Member Profile Changed
      • Callback After Group Attribute Changed
      • Callback After Read Receipt
      • Callback After the Group Owner Changed
    • Webhook Mutual Authentication Configuration Guide
      • Apache Mutual Authentication Configuration
      • Nginx Mutual Authentication Configuration
    • Chatbot webhooks
      • Chatbot Passthrough Message Callback

Querying Account Online Status

Feature Description

This API is used to query the current login status of a user.

API Call Description

Sample request URL

https://xxxxxx/v4/openim/query_online_status?sdkappid=88888888&identifier=admin&usersig=xxx&random=99999999&contenttype=json

Request parameters

The following is a list of the parameters commonly used when calling this API and their descriptions. For more parameters, see the RESTful API Overview.
Parameter
Description
https
The request protocol is HTTPS, and the request method is POST.
xxxxxx
The country/region where your SDKAppID is located.
China: console.tim.qq.com
Singapore: adminapisgp.im.qcloud.com
Seoul: adminapikr.im.qcloud.com
Frankfurt: adminapiger.im.qcloud.com
Silicon Valley: adminapiusa.im.qcloud.com
Jakarta: adminapiidn.im.qcloud.com
v4/openim/query_online_status
The request API that is used.
sdkappid
The SDKAppID assigned via the IM console when the application is created.
identifier
The value must be the app admin account. For more information, see App Admin.
usersig
The signature generated by the app admin account. For more information on the operation, see Generating UserSig.
random
The value must be a random 32-bit unsigned integer. Value range: 0 to 4294967295.
contenttype
Request format. The value is always json.

Maximum call frequency

This API can be called up to 200 times per second.

Sample request packets

When detailed login platform information is not needed

{
"To_Account":["id1","id2","id3","id4"],
}


When detailed login platform information is needed

{
"IsNeedDetail": 1,
"To_Account": ["id1", "id2", "id4"]
}

Request packet fields

Field
Type
Property
Description
To_Account
Array
Required
The one or more UserIDs whose login statuses are to be queried. This API can be used to query the login statuses of up to 500 UserIDs at a time.
IsNeedDetail
Integer
Optional
Specifies whether detailed login platform information is needed in the response. 0: not needed. 1: needed.

Sample response packet body

When detailed login platform information is not needed

{
"ActionStatus":"OK",
"ErrorInfo":"",
"ErrorCode": 0
"QueryResult": [
{
"To_Account": "id1",
"State": "Offline"
},
{
"To_Account": "id2",
"State": "Online"
},
{
"To_Account": "id3",
"State": "PushOnline"
}
],
"ErrorList": [
{
"To_Account": "id4",
"ErrorCode": 70107
}
]
}


When detailed login platform information is needed

{
"ActionStatus":"OK",
"ErrorInfo":"",
"ErrorCode": 0
"QueryResult": [
{
"To_Account": "id1",
"State": "Online",
"Detail": [
{
"Platform": "IPhone",
"Status": "PushOnline"
},
{
"Platform": "Web",
"Status": "Online"
}
]
},
{
"To_Account": "id2",
"State": "Offline",
}
],
"ErrorList": [
{
"To_Account": "id4",
"ErrorCode": 70107
}
]
}

Request error

{
"ActionStatus": "FAIL",
"ErrorInfo": "Fail to Parse json data of body, Please check it",
"ErrorCode": 90001
}

Response packet fields

Field
Type
Description
ActionStatus
String
The processing result of the request. OK: succeeded. FAIL: failed.
ErrorInfo
String
Detailed information on the error.
ErrorCode
Integer
The error code returned for the request.
If the status query for any account succeed, the value is 0.
If the query for all the accounts failed, the return value is not 0.
QueryResult
Array
The returned structured information of the login status of the user.
QueryResult.To_Account
String
The UserID of the user whose status is returned.
QueryResult.Status
String
The returned login status. Valid values:
Online: after the user logs in to the client, the client remains in a persistent connection with the IM backend.
PushOnline: the client enters the PushOnline state when the iOS or Android process is disconnected due to a network error or is killed by the operating system. In this state, the client still can receive offline messages. However, if the client’s process is not terminated by the operating system after the client is switched to the background, the client is in Online state.
Offline: the user has logged out of the client properly or has not logged in to the client for at least 7 days since the last login.
If the user logs in to the client on multiple devices, the value is Online provided that the client is in the Online state on any device.
QueryResult.Detail
Object
The detailed information on the login platform.
QueryResult.Detail.Platform
String
The type of the login platform. Valid values: "iPhone", "Android", "Web", "PC", "iPad", and "Mac".
ErrorList
Array
The list of accounts whose statuses failed to be queried. The target accounts in this list were not found or their statuses failed to be queried. If the status query for all accounts succeeded, the value of the ErrorList field is blank.
ErrorList.To_Account
String
The target account whose status failed to be queried.
ErrorList.ErrorCode
Integer
The error code indicating that the status query failed. If the error code for a target account is 70107, the account was not found.
Caution
The IM backend stores the PushOnline state for only 7 days. If a user has not logged in to the client within 7 days since the previous login, the user enters the Offline state.

Error Codes

The HTTP return code for this API is 200 unless an network error such as error 502 occurs. The actual error code and error information are indicated by ErrorCode and ErrorInfo respectively in the response packet body. For public error codes 60000 to 79999, see Error Codes. The private error codes for this API are as follows:
Error Code
Description
70107
The requested UserID does not exist.
70169
The server timed out. Try again later.
90001
JSON format parsing failed. Check whether the request packet meets the JSON specification, or whether To_Account is a null array.
90003
The value of the To_Account field in the JSON format request packet does not meet the message format requirements. Please check whether the type of the To_Account field is String.
90009
The request requires the app admin’s permissions.
90011
The number of target accounts to which the message is to be sent exceeds 500. Reduce the number of target accounts in To_Account.
90992
The backend service timed out. Please try again.
90994
An internal service error occurred. Please try again.
90995
An internal service error occurred. Please try again.
91000
An internal service error occurred. Please try again.

API Debugging Tool

To debug this API, you can use the Online RESTful API Debugging Tool.

References

Batch Importing Multiple Accounts (v4/im_open_login_svc/multiaccount_import)
Invalidating the Login Status of an Account (v4/im_open_login_svc/kick)