Tool Name: airdroid_business_get_account_activities
Risk Level: 🟢 Low Risk
Execution Mode: ⚡ Synchronous
Category: Other
Quick Start (Copy & Use)
Summary: Query account operation logs within a specified date range, with support for filtering by operator, target, action type, and pagination.
Prerequisites: StartDate (start date) + EndDate (end date)
Success Criteria: StatusCode == 200 and ErrorMessage is empty, OperationLogList contains log data
What to Do Next: Analyze operation records, audit user behavior, export reports
Minimal Request Example:
{
"StartDate": "2026-01-01",
"EndDate": "2026-01-20",
"Page": 1,
"PageSize": 10
}
Minimal Response Example:
{
"OperationLogList": [
{
"action": "web_signin",
"date": "2025-12-25 09:24:49",
"target_name": "",
"group_name": "",
"operator": {
"email": "admin@company.com",
"name": "Admin User"
},
"objects": {
"device_type": "Android",
"platform_type": "Android",
"from_type": "Mac"
}
}
],
"Pagination": {
"current_page": 1,
"last_page": 6,
"page_size": 10,
"total": 10
},
"StatusCode": 200,
"ErrorMessage": ""
}
Recipes (Common Recipes)
Recipe 1: Query Last Week's Operation Logs
Scenario: Audit account activities from the past week.
{
"StartDate": "2026-02-06",
"EndDate": "2026-02-13",
"Page": 1,
"PageSize": 50
}
Recipe 2: Filter by Operator Email
Scenario: Investigate operations performed by a specific administrator.
{
"StartDate": "2026-01-01",
"EndDate": "2026-01-31",
"Operator": "admin@company.com",
"Page": 1,
"PageSize": 50
}
Recipe 3: Filter by Action Type
Scenario: Query all device reboot and lock operations.
{
"StartDate": "2026-01-01",
"EndDate": "2026-01-31",
"Action": ["device_reboot", "device_lock"],
"Page": 1,
"PageSize": 50
}
Recipe 4: Filter by Target Name (Fuzzy Match)
Scenario: Find all operations related to a specific device.
{
"StartDate": "2026-01-01",
"EndDate": "2026-01-31",
"TargetName": "Device-001",
"Page": 1,
"PageSize": 50
}
Recipe 5: Paginate Through Large Result Sets
Scenario: Retrieve large amounts of logs page by page.
{
"StartDate": "2026-01-01",
"EndDate": "2026-01-31",
"Page": 2,
"PageSize": 50
}
Pagination Strategy:
- First request with Page=1; check Pagination.last_page for total pages
- When current_page < last_page, increment Page by 1 for the next page
1. Overview
1.1 Description
Query AirDroid Business account operation logs to retrieve records of user activities on the platform (such as sign-ins, device management, configuration changes, etc.). Supports filtering by date range, operator email, target name, and action type, with pagination support.
1.2 When to Use
- Security auditing: Track account activities and check for anomalous operations
- Compliance reporting: Generate operation history records for compliance audits
- Incident investigation: Investigate security incidents or unauthorized changes
- Troubleshooting: Review recent administrative changes to diagnose issues
- Behavior monitoring: Monitor administrator actions for security and governance
1.3 Execution Mode and Response
This operation is synchronous — results are returned immediately after the call.
- Response: OperationLogList (operation log list) + Pagination (pagination information)
- Data volume: Varies based on date range, filters, and PageSize
1.4 Prerequisites
| Condition | Description | How to Check |
|---|---|---|
| Valid date range | StartDate and EndDate cannot be future dates | Use current or past dates |
| EndDate >= StartDate | End date cannot be earlier than start date | Ensure date logic is correct |
| Date range limit | The range between StartDate and EndDate cannot exceed 90 days (inclusive) | Calculate: StartDate = EndDate minus 89 days |
| Account permissions | Must have permission to view operation logs | - |
1.5 Prerequisite Tools
This tool has no prerequisites and can be called directly.
2. Inputs
2.1 Parameter List
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
| StartDate | string | ✅ Yes | - | Query start date (YYYY-MM-DD) |
| EndDate | string | ✅ Yes | - | Query end date (YYYY-MM-DD) |
| Page | number | No | 1 | Page number, starting from 1 |
| PageSize | number | No | 50 | Records per page, range 1-50 |
| Operator | string | No | "" | Operator email address filter (exact match) |
| TargetName | string | No | "" | Target object name filter (fuzzy match, case-insensitive) |
| Action | string-array | No | [] | Action type filter array |
2.2 Parameter Details
`StartDate`
Start date for the query period.
- Type: string
- Format: YYYY-MM-DD, e.g., 2026-01-01
- Constraints:
- Cannot be a future date (latest allowed: today)
- Cannot be later than EndDate
- Date range (inclusive of both StartDate and EndDate) cannot exceed 90 days
- Calculation: Earliest allowed StartDate = EndDate minus 89 days
- How to fill in GI node:
- Constant: Enter a date string directly, e.g., 2026-01-01
- Upstream reference: Obtain dynamic date from upstream node
- Example:
"2026-01-01"
`EndDate`
End date for the query period.
- Type: string
- Format: YYYY-MM-DD, e.g., 2026-01-31
- Constraints:
- Cannot be a future date (latest allowed: today)
- Cannot be earlier than StartDate
- Date range (inclusive of both StartDate and EndDate) cannot exceed 90 days
- How to fill in GI node:
- Constant: Enter a date string directly, e.g., 2026-01-31
- Upstream reference: Obtain dynamic date from upstream node
- Example:
"2026-01-31"
`Page`
Page number for pagination.
- Type: number
- Default: 1
- Constraints: Minimum value is 1
- Example:
1
`PageSize`
Number of records per page.
- Type: number
- Default: 50
- Constraints: Minimum 1, maximum 50
- Example:
50
`Operator`
Operator email address for filtering account activities.
- Type: string
- Search type: Exact match
- How to fill in GI node:
- Constant: Enter the operator's email, e.g., user@example.com
- Upstream reference: Obtain from upstream node or user input
- Example:
"user@example.com"
`TargetName`
Target object name for filtering (e.g., device name).
- Type: string
- Search type: Fuzzy match (case-insensitive)
- How to fill in GI node:
- Constant: Enter the target name, e.g., Device-001
- Upstream reference: Obtain from upstream node or user input
- Example:
"Device-001"
`Action`
Action type filter array for filtering operation logs by specific activity types. Multiple action types can be specified (OR logic).
- Type: string-array
- Default: [] (empty array retrieves all types)
- Important — Action Matching:
- Exact match: use directly
- Similar match: use the closest action and inform user (e.g., "group_delete" -> "group_remove")
- No match: DO NOT call tool, inform user the operation is unsupported
Complete List of Supported Action Types:
| Category | Action Code | Description |
|---|---|---|
| Account Operations | web_signin | User signs in to web admin console |
| password_update | User changes account password | |
| signin_fail | Failed login attempt | |
| email_update | User changes account email address | |
| ae_bind | Bind Android Enterprise account | |
| ae_unbind | Unbind Android Enterprise account | |
| Member & Group | member_invite | Invite new team member |
| member_remove | Remove team member from account | |
| member_update_remark_name | Update member remark name | |
| member_disable | Disable member account | |
| member_enable | Enable member account | |
| member_update | Update member validity period | |
| role_change | Change member role/permission | |
| auth_change | Change member authorization | |
| member_set_group | Assign member to device groups | |
| group_add | Create new device group | |
| group_remove | Delete device group | |
| group_move | Move group to different parent | |
| group_update_name | Rename device group | |
| group_update_remark | Update group remark | |
| Device Binding | device_bind | Register/bind new device |
| device_unbind | Unregister/remove device | |
| Device Information | device_update_info | Update device name or note |
| biz_device_tag_save | Add or modify device tags | |
| biz_device_tag_delete | Remove device tags | |
| group_move_device | Move device(s) to different group | |
| Device Operations | device_reboot | Restart device |
| device_lock | Lock device screen | |
| device_recovery | Factory reset device | |
| device_open_app_to_foreground | Launch app to foreground | |
| device_screen_rest | Turn off device screen | |
| admin_use_lost_mode | Enable lost mode | |
| pwd_exit_lost_mode | Exit lost mode via password | |
| admin_exit_lost_mode | Exit lost mode via admin | |
| workflow_exit_lost_mode | Exit lost mode via workflow | |
| device_shutdown | Power off device | |
| device_bug_report | Request bug report | |
| device_kiosk_blocked_app | Block apps in kiosk mode | |
| Remote Control | remote_control | AirMirror remote control session |
| remote_camera | Remote camera access session | |
| observation_mode | Observation mode session | |
| Content Management | cms_file_upload | Upload file to media library |
| cms_file_delete | Delete file from media library | |
| cms_file_download | Download file from media library | |
| multiple_file_transfer | Transfer multiple files to device | |
| multiple_file_delete | Delete multiple files from device | |
| demo_mode_create | Create presentation configuration | |
| demo_mode_delete | Delete presentation configuration | |
| demo_mode_update | Update presentation configuration | |
| AMS | ams_upload | Upload APK to AMS |
| ams_release | Formally release app | |
| ams_del_app | Delete app from AMS | |
| device_uninstall_app | Uninstall app from device | |
| device_clear_userdata | Clear app data and cache | |
| Kiosk Mode | kiosk_config_create | Create kiosk configuration |
| kiosk_config_update | Update kiosk configuration | |
| kiosk_config_apply | Apply kiosk configuration | |
| kiosk_config_delete | Delete kiosk configuration | |
| Geofencing | geofencing_create | Create geofence |
| geofencing_delete | Delete geofence | |
| geofencing_apply | Apply geofence to devices | |
| Alerts | alert_create | Create alert rule |
| alert_delete | Delete alert rule | |
| alert_update | Update alert rule | |
| alert_apply | Apply alert rule | |
| Notifications | notify_create | Send notification to devices |
| notify_delete | Delete notification template | |
| notify_update | Update notification content | |
| notify_apply | Apply notification to devices |
Notes: Action types are case-sensitive. Multiple actions use OR logic. Empty array retrieves all types. See the full list in the publish JSON Action field description.
- Example:
["device_reboot", "device_lock"]
2.3 Parameter Combination Logic
- StartDate and EndDate must both be provided
- EndDate must be greater than or equal to StartDate
- Date range cannot exceed 90 days (inclusive)
- Page and PageSize are optional pagination controls
- Operator, TargetName, and Action are optional filters that can be used independently or combined
- Multiple Action values use OR logic (match any of the specified types)
3. Outputs
3.1 Response Examples
Success Response:
{
"OperationLogList": [
{
"action": "web_signin",
"date": "2025-12-25 09:24:49",
"target_name": "",
"group_name": "",
"operator": {
"email": "admin@company.com",
"name": "Admin User"
},
"objects": {
"device_type": "Android",
"platform_type": "Android",
"from_type": "Mac"
}
}
],
"Pagination": {
"current_page": 1,
"last_page": 6,
"page_size": 10,
"total": 56
},
"StatusCode": 200,
"ErrorMessage": ""
}
Error Response:
{
"OperationLogList": [],
"Pagination": {},
"StatusCode": -1,
"ErrorMessage": "Invalid start_date. Must be a non-empty string."
}
3.2 Field Descriptions
| Field Path | Type | Description |
|---|---|---|
| StatusCode | number | Status code. See 5.1 AB Three-Layer Error Codes |
| ErrorMessage | string | Error message; empty string on success |
| OperationLogList | array | Operation log list |
| OperationLogList[].action | string | Operation action type code |
| OperationLogList[].date | string | Operation datetime (format: YYYY-MM-DD HH:mm:ss) |
| OperationLogList[].target_name | string | Target entity name (device, group, user, etc.) |
| OperationLogList[].group_name | string | Group name (if the operation is related to a group) |
| OperationLogList[].operator | object | Operator information |
| OperationLogList[].operator.name | string | Operator display name |
| OperationLogList[].operator.email | string | Operator email address |
| OperationLogList[].objects | object | Additional operation information (varies by action type) |
| Pagination | object | Pagination information object |
| Pagination.current_page | number | Current page number (starting from 1) |
| Pagination.page_size | number | Number of records per page |
| Pagination.total | number | Total number of records |
| Pagination.last_page | number | Last page number |
3.3 Key Objects Field Reference
The objects field contains action-specific details. Common fields include:
| Field | Type | Description |
|---|---|---|
| device_type | string | Device type — "Android", "Windows" |
| platform_type | string | Platform type — "Android", "Windows" |
| from_type | string | Operation source — "Unknown", "Android", "iOS", "Windows", "Mac", "Chrome", "FireFox", "Edge" |
| device_name | string | Device display name |
| old_device_name | string | Previous device name (for rename operations) |
| group_name | string | Group name |
| target_group_name | string | Target group for move operations |
| invite_mail | string | Invited member email |
| invite_role_name | string | Invited member role name |
| nick_name | string | Member display name |
| app_name | string | Application name |
| app_version | string | App version |
| use_time | number | Session duration in seconds (remote access) |
| device_list | array | List of device objects with device_name and platform_type |
Agent Instruction: When presenting data to the user, convert all field names to natural language. For example: "device_name" -> "device name", "target_group_name" -> "target group". Combine fields into readable sentences, not key-value pairs.
3.4 Pagination Information
| Field | Description |
|---|---|
| Pagination.current_page | Current page number (starting from 1) |
| Pagination.page_size | Records per page |
| Pagination.total | Total record count |
| Pagination.last_page | Last page number |
Pagination Strategy:
- When current_page < last_page, use Page + 1 for the next page
- Consider narrowing the date range first, then paginate
- Default PageSize is 50 (maximum)
4. Examples
4.1 Basic Example: Query One Week of Operation Logs
Request Parameters:
{
"StartDate": "2026-02-06",
"EndDate": "2026-02-13",
"Page": 1,
"PageSize": 50
}
Response:
{
"OperationLogList": [
{
"action": "web_signin",
"date": "2026-02-07 09:00:00",
"target_name": "",
"group_name": "",
"operator": {
"email": "admin@company.com",
"name": "Admin User"
},
"objects": {
"device_type": "Android",
"platform_type": "Android",
"from_type": "Chrome"
}
}
],
"Pagination": {
"current_page": 1,
"last_page": 1,
"page_size": 50,
"total": 1
},
"StatusCode": 200,
"ErrorMessage": ""
}
4.2 Advanced Example: Filter by Operator and Action Type
Request Parameters:
{
"StartDate": "2026-01-01",
"EndDate": "2026-01-31",
"Operator": "admin@company.com",
"Action": ["device_reboot", "device_lock"],
"Page": 1,
"PageSize": 50
}
4.3 Advanced Example: Paginate Through All Logs
First Page Request:
{
"StartDate": "2026-01-01",
"EndDate": "2026-01-31",
"Page": 1,
"PageSize": 50
}
Check Pagination in Response:
{
"Pagination": {
"current_page": 1,
"last_page": 6,
"page_size": 50,
"total": 280
}
}
Next Page Request (when current_page < last_page):
{
"StartDate": "2026-01-01",
"EndDate": "2026-01-31",
"Page": 2,
"PageSize": 50
}
4.4 Error Example: Invalid Date Format
Request Parameters:
{
"StartDate": "",
"EndDate": "2026-01-31"
}
Response:
{
"OperationLogList": [],
"Pagination": {},
"StatusCode": -1,
"ErrorMessage": "Invalid start_date. Must be a non-empty string."
}
5. Error Handling
5.1 AB Three-Layer Error Codes
Core Principle: AB uses a three-layer error code strategy. The agent should decide handling based on StatusCode.
| StatusCode | Meaning | Use Case | Agent Action |
|---|---|---|---|
| -1 | Parameter validation error | Local validation failure (missing required params, format error) | ❌ Do not retry; fix parameters and re-call |
| 200 | Business success or business error | HTTP request succeeded; check ErrorMessage | Empty ErrorMessage = success; non-empty = business error |
| 500 | Network/request exception | Timeout, connection failure, DNS failure | ⚠️ May retry (max 2 times, 5-second interval) |
5.2 Common Errors
| StatusCode | ErrorMessage Example | Cause | Fix |
|---|---|---|---|
| -1 | Invalid start_date. Must be a non-empty string. | Start date is empty | Provide a valid StartDate |
| -1 | Invalid end_date. Must be a non-empty string. | End date is empty | Provide a valid EndDate |
| -1 | access_token is invalid. | Authentication token is invalid | Check credential configuration |
| 500 | Request timeout after 60 seconds. | Request timeout | Retry later |
5.3 Agent Self-Healing Decision Table
| StatusCode | Auto Retry | Retry Strategy | Manual Intervention |
|---|---|---|---|
| -1 | ❌ | - | Fix parameters and re-call |
| 200 (ErrorMessage non-empty) | ❌ | - | Fix based on error message |
| 500 | ⚠️ | Max 2 retries, 5-second interval | Escalate if persistent |
6. Best Practices
6.1 Performance Optimization
- Narrow the date range: Avoid querying overly long time spans; query in segments if needed
- Use filters: Leverage Operator, TargetName, and Action filters to reduce result volume
- Set appropriate PageSize: Use PageSize up to 50 (max) to minimize pagination calls
- Paginate for large datasets: Use pagination to retrieve data page by page
6.2 Security Considerations
🟢 Read Operation: This tool only queries logs and has no special security concerns.
6.3 Date Range Recommendations
- Daily auditing: Query the last 7 days of logs
- Monthly reports: Query an entire month's logs; use pagination for large results
- Incident investigation: Narrow to specific dates with action type filters to reduce data volume
- Maximum range: 90 days (inclusive of both start and end dates)
7. Related Tools
7.1 Prerequisite Tools
This tool has no prerequisites.
7.2 Follow-up Tools
| Tool Name | Purpose |
|---|---|
| Get All Devices | Look up device details by device_id found in logs |
| Get a Device by Name | Look up device details by device name found in logs |
7.3 Similar Tool Comparison
| Tool Name | Use Case | Difference |
|---|---|---|
| Get an Activity Log | Track a single async operation | Uses Pid to track execution status of a specific device operation |
| Get Account Activities | Account operation auditing | Queries all account operation records by date range with filtering support |
8. Tool Chains
8.1 Operation Audit Flow
Scenario: Audit account activities within a specific time period.
Tool Chain:
Get Account Activities → Data Analysis / Export
Steps:
- Define the date range and call Get Account Activities
- Paginate through all records if needed
- Analyze operation records or export reports
8.2 Device Operation Tracing Flow
Scenario: Trace device information based on operation logs.
Tool Chain:
Get Account Activities → Get All Devices (by device_id)
Steps:
- Call Get Account Activities to retrieve operation records
- Extract device_id from log entries
- Use Get All Devices or Get a Device by Name to look up device details
8.3 Security Incident Investigation Flow
Scenario: Investigate a security incident by reviewing administrator actions.
Tool Chain:
Get Account Activities (filter by operator/action) → Get All Devices → Unenroll a Device / Lock a Device
Steps:
- Call Get Account Activities with Operator and Action filters to narrow suspicious activities
- Identify affected devices from the log entries
- Take remediation actions (lock device, unenroll device, etc.) as needed
Appendix Reference:
- Field Reference: https://www.goinsight.ai/tools/field-reference/
- Error Code Quick Reference: https://www.goinsight.ai/tools/error-codes/
Leave a Reply.