Tool Name: airdroid_business_get_device_application_report
Risk Level: 🟢 Low Risk
Execution Mode: ⚡ Synchronous
Category: Reports & Analytics
Quick Start (Copy & Use)
In one sentence: Query the list of applications installed across all devices, including installation counts and version info
What you need: No required parameters; can be called directly
Success criteria: StatusCode == 200 and ErrorMessage is empty; DeviceAppList contains app data
What to do next: Analyze app distribution, check app version consistency, generate app reports
Minimal request example:
{}
Minimal response example:
{
"DeviceAppList": [
{
"pkg_id": "com.facebook.katana",
"app_name": "Facebook",
"install_time": "2026-01-15 10:30:00",
"device_count": "25",
"external_version": "543.0.0.55.73",
"is_system_app": "user",
"last_update_time": "2026-01-20 14:20:00",
"icon_url": "https://example.com/icon.png"
}
],
"Pagination": {
"current_page": 1,
"last_page": 1,
"page_size": 5,
"total": 1
},
"StatusCode": 200,
"ErrorMessage": ""
}
Recipes (Common Recipes)
Recipe 1: Query User-Installed Apps
Scenario: View only user-installed apps (excluding system apps)
{
"IsSystemApp": 0,
"Page": 1,
"PageSize": 20
}
Recipe 2: Query System Apps
Scenario: View only pre-installed system apps
{
"IsSystemApp": 1,
"Page": 1,
"PageSize": 20
}
Recipe 3: Search by App Name
Scenario: Find installation status of a specific app
{
"Keyword": "Facebook",
"IsSystemApp": 0,
"Page": 1,
"PageSize": 10
}
Recipe 4: Sort by Device Count
Scenario: Find the most widely installed apps
{
"IsSystemApp": 0,
"Order": "device_count",
"Ascending": false,
"Page": 1,
"PageSize": 10
}
Recipe 5: Sort by Latest Install Time
Scenario: View recently installed apps
{
"IsSystemApp": 0,
"Order": "install_time",
"Ascending": false,
"Page": 1,
"PageSize": 10
}
1. Overview
1.1 Description
This tool queries the aggregated application report across all managed devices. It returns the installation device count, version distribution, latest install/update times, and other information for each application. Suitable for app asset management, version consistency checks, compliance audits, and similar scenarios.
1.2 When to Use
- App asset inventory: Understand which apps are installed on enterprise devices
- Version consistency checks: Verify whether a particular app has consistent versions across devices
- Security compliance audits: Check for unauthorized app installations
- App distribution analysis: Understand app coverage across devices
1.3 Execution Mode & Response
This is a synchronous operation that returns results immediately upon invocation.
- Return value: DeviceAppList (app list) + Pagination (pagination info)
- Aggregation level: Aggregated by app package name (pkg_id), not per device
1.4 Prerequisites
| Condition | Description | How to Verify |
|---|---|---|
| Account permission | Must have app report viewing permissions | - |
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 |
|---|---|---|---|---|
| IsSystemApp | number | No | 0 | App type filter |
| Page | number | No | 1 | Current page number |
| PageSize | number | No | 5 | Records per page |
| Keyword | string | No | - | Search keyword |
| Order | string | No | install_time | Sort field |
| Ascending | bool | No | false | Sort direction |
2.2 Parameter Details
`IsSystemApp`
App type filter, used to distinguish between user apps and system apps.
- Type: number
- Default: 0
- Options:
- 0: User-installed apps only (e.g., Facebook, WhatsApp)
- 1: System apps only (e.g., Settings, Android System)
- 2: All apps (user + system)
- Usage tips:
- App asset inventory typically uses 0 (user apps)
- System security audits may require 1 (system apps) or 2 (all)
- Example:
0
`Page`
Current page number.
- Type: number
- Default: 1
- Constraints: Minimum value is 1
- Example:
1
`PageSize`
Records per page.
- Type: number
- Default: 5
- Constraints: Minimum 1, maximum 50
- Tip: Set a larger value (e.g., 20-50) to reduce request count
- Example:
20
`Keyword`
Search keyword for filtering by app name or package name (fuzzy match, case-insensitive).
- Type: string
- Searchable fields:
- app_name: Application display name
- pkg_id: Application package identifier
- Example:
"facebook"
`Order`
Sort field (only specific values allowed).
- Type: string
- Allowed values (case-sensitive):
- app_name: Sort by app name alphabetically
- device_count: Sort by installation device count
- last_update_time: Sort by latest update time
- Important notes:
- Only the above three values are supported
- Other values will be ignored or cause errors
- Values must match exactly (case-sensitive)
- Usage tips:
- Find most widely installed apps: device_count
- Check version update status: last_update_time
- Browse apps by name: app_name
- Example:
"device_count"
`Ascending`
Sort direction (boolean type).
- Type: bool
- Default: false
- Options:
- true: Ascending
- false: Descending
- Example:
false
2.3 Parameter Combination Logic
- All parameters are optional
- Order and Ascending are typically used together
- Keyword can be combined with other filter/sort conditions
3. Outputs
3.1 Response Examples
Success response:
{
"DeviceAppList": [
{
"pkg_id": "com.facebook.katana",
"app_name": "Facebook",
"install_time": "2026-01-15 10:30:00",
"device_count": "25",
"external_version": "543.0.0.55.73",
"is_system_app": "user",
"last_update_time": "2026-01-20 14:20:00",
"icon_url": "https://example.com/icon.png"
}
],
"Pagination": {
"current_page": 1,
"last_page": 5,
"page_size": 5,
"total": 25
},
"StatusCode": 200,
"ErrorMessage": ""
}
Error response:
{
"DeviceAppList": [],
"Pagination": {},
"StatusCode": -1,
"ErrorMessage": "access_token is invalid."
}
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 |
| DeviceAppList | array | Application list |
| DeviceAppList[].pkg_id | string | App package identifier, e.g., com.facebook.katana |
| DeviceAppList[].app_name | string | App display name |
| DeviceAppList[].install_time | string | Latest install time (YYYY-MM-DD HH:mm:ss) |
| DeviceAppList[].device_count | string | Number of devices with this app installed |
| DeviceAppList[].external_version | string | App version number |
| DeviceAppList[].is_system_app | string | App type ("user" = user app, "system" = system app) |
| DeviceAppList[].last_update_time | string | Latest update time (empty string means never updated) |
| DeviceAppList[].icon_url | string | App icon URL |
| DeviceAppList[].website_url | string | Web app URL (only present when pkg_id starts with "webapp_") |
| Pagination | object | Pagination info object |
3.3 Pagination Info
| 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 |
Paging strategy:
- When current_page < last_page, use Page + 1 to get the next page
- Consider using Keyword to narrow the scope
- Default PageSize=5; recommend increasing to reduce request count
4. Examples
4.1 Basic Example: Query User App List
Request parameters:
{
"IsSystemApp": 0,
"Page": 1,
"PageSize": 10
}
Response:
{
"DeviceAppList": [
{
"pkg_id": "com.facebook.katana",
"app_name": "Facebook",
"install_time": "2026-01-15 10:30:00",
"device_count": "25",
"external_version": "543.0.0.55.73",
"is_system_app": "user",
"last_update_time": "2026-01-20 14:20:00",
"icon_url": "https://example.com/icon.png"
}
],
"Pagination": {
"current_page": 1,
"last_page": 1,
"page_size": 10,
"total": 1
},
"StatusCode": 200,
"ErrorMessage": ""
}
4.2 Advanced Example: Sort by Device Count
Request parameters:
{
"IsSystemApp": 0,
"Order": "device_count",
"Ascending": false,
"Page": 1,
"PageSize": 10
}
Description: Sort by device_count descending to find the most widely installed apps.
4.3 Error Example: Invalid IsSystemApp Value
Request parameters:
{
"IsSystemApp": 5
}
Handling: The system will automatically use the default value 0 without returning an error.
5. Error Handling
5.1 AB Three-Layer Error Codes
Core principle: AB uses a three-layer error code strategy. The Agent should determine the handling approach based on the StatusCode.
| StatusCode | Meaning | Usage Scenario | Agent Response |
|---|---|---|---|
| -1 | Parameter validation error | Local validation failed (format errors) | ❌ Do not retry; fix parameters and call again |
| 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 resolution failure | ⚠️ May retry (up to 2 times, 5-second intervals) |
5.2 Common Errors
| StatusCode | ErrorMessage Example | Cause | Fix Suggestion |
|---|---|---|---|
| -1 | access_token is invalid. | Auth token is invalid | Check credential configuration |
| 500 | Request timeout after 60 seconds. | Request timeout | Retry later |
| 500 | HTTP error: ... | HTTP request failed | Check network connection |
5.3 Agent Self-Healing Decision Table
| StatusCode | Auto Retry | Retry Strategy | Manual Intervention |
|---|---|---|---|
| -1 | ❌ | - | Fix parameters and call again |
| 200 (non-empty ErrorMessage) | ❌ | - | Fix based on error message |
| 500 | ⚠️ | Up to 2 retries, 5-second intervals | Escalate if persistent failure |
6. Best Practices
6.1 Performance Optimization
- Increase PageSize: Default value of 5 is small; recommend 20-50
- Use Keyword filtering: Use keywords to narrow the scope when searching for specific apps
- Choose appropriate sorting: Select the sort field based on analysis purpose
6.2 Security Notes
🟢 Read operation: This tool only queries app information and has no special security requirements.
6.3 App Installation Statistics Tips
- Query target app: Use Keyword to filter
- Check device_count: Understand app installation coverage
- For pushing updates, combine with app management features
7. Related Tools
7.1 Prerequisite Tools
This tool has no prerequisites.
7.2 Follow-up Tools
| Tool Name | Purpose |
|---|---|
| Get Device Application Usage Duration | View app usage durations |
7.3 Similar Tools Comparison
| Tool Name | Use Case | Difference |
|---|---|---|
| Get Device Application Report | App installation statistics | Aggregates app installation info across all devices |
| Get Device Application Usage Duration | App usage analysis | Statistics on app usage duration per device |
8. Tool Chains
8.1 App Asset Inventory Pattern
Scenario: Generate enterprise app asset report
Tool chain:
Get Device Application Report → Data export/analysis
Steps:
- Call Get Device Application Report with IsSystemApp=0
- Iterate through pages to get all user apps
- Aggregate to generate app asset report
8.2 App Compliance Check Pattern
Scenario: Check for unauthorized apps
Tool chain:
Get Device Application Report → Compare with whitelist → Alert
Steps:
- Get all user app list
- Compare with the enterprise app whitelist
- Generate alerts for apps not on the whitelist
8.3 App Distribution Management Pattern
Scenario: Check app installation status and push updates
Tool chain:
Get Device Application Report (sort by device_count) → Identify popular apps → Push updates
Steps:
- Call the tool, sorted by device_count descending
- Identify apps that need updating
- Use app management features to push new versions
Leave a Reply.