Tool Name: airdroid_business_get_top_10_data_usage_apps
Risk Level: 🟢 Low Risk
Execution Mode: ⚡ Synchronous
Category: Reports & Analytics
Quick Start (Copy & Use)
In one sentence: Get the Top 10 apps by data consumption within a specified date range
What you need: StartDate (start date), EndDate (end date)
Success criteria: StatusCode=200 and ErrorMessage="" and HasData="Data available"
What to do next: Analyze app data consumption based on the FlowTopAppList, or combine with Get Top 10 Apps by Usage Duration to compare usage duration
Minimal request example:
{
"StartDate": "2026-01-01",
"EndDate": "2026-01-31"
}
Minimal response example:
{
"FlowTopAppList": [
{
"pkg_id": "com.tencent.mm",
"app_name": "WeChat",
"icon_url": "https://cdn.example.com/wechat.png",
"total_count": "976.56",
"wifi_count": "488.28",
"mobile_count": "488.28"
}
],
"HasData": "Data available",
"StatusCode": 200,
"ErrorMessage": ""
}
Recipes (Common Recipes)
Recipe 1: Query All Devices Top Data Usage Apps for the Last 30 Days
Scenario: Quick overview of app data consumption
{
"StartDate": "2026-01-05",
"EndDate": "2026-02-03",
"OrderBy": 1
}
Recipe 2: Filter Data Usage by Group
Scenario: View app data consumption for a specific group only
{
"StartDate": "2026-01-01",
"EndDate": "2026-01-31",
"GroupIds": [100],
"OrderBy": 1
}
GroupIds can be obtained via the Get a Group ID by Group Name tool
Recipe 3: Only Count Mobile Data Usage
Scenario: Analyze apps with the highest mobile data consumption
{
"StartDate": "2026-01-01",
"EndDate": "2026-01-31",
"OrderBy": 3
}
Recipe 4: Only Count WiFi Data Usage
Scenario: Analyze apps with the highest WiFi data consumption
{
"StartDate": "2026-01-01",
"EndDate": "2026-01-31",
"OrderBy": 2
}
1. Overview
1.1 Description
Get the Top 10 apps ranked by data consumption within a specified date range, with support for group filtering and data type sorting.
1.2 When to Use
- Data cost control: Identify apps consuming the most data
- Bandwidth optimization: Find apps that need data throttling
- Policy development: Develop usage policies based on app data consumption
- Anomaly detection: Discover apps with abnormal data consumption
1.3 Execution Mode & Response
This is a synchronous operation that returns results immediately upon invocation.
- Return value: FlowTopAppList array containing Top 10 app data usage
- Data scope: Returns Top 10 apps by data consumption (sorted descending)
1.4 Prerequisites
| Condition | Description | How to Verify |
|---|---|---|
| Valid date range | Date range cannot exceed 90 days | Ensure StartDate and EndDate are within limits |
| No future dates | StartDate and EndDate cannot be future dates | - |
| Account permission | Must have report viewing permissions | - |
1.5 Prerequisite Tools
| Dependency Tool | Purpose | Necessity |
|---|---|---|
| Get a Group ID by Group Name | Get GroupId by group name | If filtering by group is needed |
| Get All Devices | Get device list group_id | Optional |
2. Inputs
2.1 Parameter List
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
| StartDate | string | ✅ | - | Start date, format: YYYY-MM-DD |
| EndDate | string | ✅ | - | End date, format: YYYY-MM-DD |
| GroupIds | number-array | ❌ | - | Group ID list for filtering |
| Keyword | string | ❌ | "" | Search keyword |
| OrderBy | number | ❌ | 1 | Sort by traffic type (1=Total, 2=WiFi, 3=Mobile) |
2.2 Parameter Details
`StartDate`
- Type: string
- Format: YYYY-MM-DD (e.g., 2026-01-01)
- Constraints: Cannot be a future date
`EndDate`
- Type: string
- Format: YYYY-MM-DD (e.g., 2026-03-31)
- Constraints:
- Cannot be earlier than StartDate
- Cannot be a future date
- Date range with StartDate cannot exceed 90 days
`GroupIds`
- Type: number-array
- How to obtain: Via the Get a Group ID by Group Name tool
- Example:
[100, 101]
`OrderBy`
- Type: number
- Options:
| Value | Meaning |
|---|---|
| 1 | Total data usage (WiFi + Mobile) |
| 2 | WiFi data usage only |
| 3 | Mobile data usage only |
2.3 Parameter Combination Logic
- GroupIds and OrderBy are independent filter/sort conditions
- Date range StartDate to EndDate must be valid and not exceed 90 days
3. Outputs
3.1 Response Examples
Success response:
{
"FlowTopAppList": [
{
"pkg_id": "com.tencent.mm",
"app_name": "WeChat",
"icon_url": "https://cdn.example.com/wechat.png",
"total_count": "976.56",
"wifi_count": "762.94",
"mobile_count": "213.63"
},
{
"pkg_id": "com.alibaba.android.rimet",
"app_name": "DingTalk",
"icon_url": "https://cdn.example.com/dingtalk.png",
"total_count": "488.28",
"wifi_count": "381.47",
"mobile_count": "106.81"
}
],
"HasData": "Data available",
"StatusCode": 200,
"ErrorMessage": ""
}
No data response:
{
"FlowTopAppList": [],
"HasData": "No data available",
"StatusCode": 200,
"ErrorMessage": ""
}
Error response:
{
"FlowTopAppList": [],
"HasData": "No data available",
"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 |
| HasData | string | Data availability: "No data available" = no matching devices or data; "Data available" = has data |
| FlowTopAppList | array | Top 10 app data usage array (sorted by total_count descending) |
| FlowTopAppList[].pkg_id | string | App package name (e.g., com.tencent.mm) |
| FlowTopAppList[].app_name | string | App display name (e.g., WeChat) |
| FlowTopAppList[].icon_url | string | App icon URL |
| FlowTopAppList[].total_count | string | Total data usage (unit: MB) |
| FlowTopAppList[].wifi_count | string | WiFi data usage (unit: MB) |
| FlowTopAppList[].mobile_count | string | Mobile data usage (unit: MB) |
3.3 Data Unit Notes
Important: total_count, wifi_count, and mobile_count are all in MB (megabytes).
Field notes:
- total_count: Total data = WiFi data + Mobile data
- wifi_count: WiFi network data usage
- mobile_count: Mobile (cellular) network data usage
4. Examples
4.1 Basic Example: Query Last 30 Days App Data Usage Rankings
Request parameters:
{
"StartDate": "2026-01-05",
"EndDate": "2026-02-03"
}
Response:
{
"FlowTopAppList": [
{
"pkg_id": "com.tencent.mm",
"app_name": "WeChat",
"icon_url": "https://cdn.example.com/wechat.png",
"total_count": "1953.12",
"wifi_count": "1525.88",
"mobile_count": "427.25"
}
],
"HasData": "Data available",
"StatusCode": 200,
"ErrorMessage": ""
}
4.2 Advanced Example: Filter by Group for Mobile Data Only
Request parameters:
{
"StartDate": "2026-01-01",
"EndDate": "2026-01-31",
"GroupIds": [100],
"OrderBy": 3
}
4.3 Error Example: Empty Date
Request parameters:
{
"StartDate": "",
"EndDate": "2026-01-31"
}
Response:
{
"FlowTopAppList": [],
"HasData": "No data available",
"StatusCode": -1,
"ErrorMessage": "Invalid start_date. Must be a non-empty string."
}
5. Error Handling
5.1 AB Three-Layer Error Codes
| StatusCode | Meaning | Usage Scenario | Agent Response |
|---|---|---|---|
| -1 | Parameter validation error | Local validation failed (missing required params, 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 | Invalid start_date. Must be a non-empty string. | StartDate is empty | Provide a valid date format |
| -1 | Invalid end_date. Must be a non-empty string. | EndDate is empty | Provide a valid date format |
| 200 | API returned error: Date range exceeds limit | Date range exceeds 90 days | Reduce date range |
| 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 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
- Set reasonable date ranges: Smaller date ranges mean faster queries
- Use group filtering: If only interested in specific groups, setting GroupIds reduces data volume
- Choose data type as needed: Use OrderBy=3 when only interested in mobile data usage
6.2 Security Notes
🟢 Read operation: No special security requirements
6.3 Data Interpretation Tips
- All data values are in MB (string type); convert to numbers for calculations
- HasData="No data available" means no data, possibly because:
- Filter conditions are too strict
- Devices have not reported data usage
- No data usage records within the date range
- wifi_count + mobile_count should equal total_count
7. Related Tools
7.1 Prerequisite Tools
| Tool Name | Purpose |
|---|---|
| Get a Group ID by Group Name | Get GroupId by group name |
| Get All Devices | Get device list |
7.2 Follow-up Tools
| Tool Name | Purpose |
|---|---|
| Get Top 10 Apps by Usage Duration | Get app usage durations for comparison with data consumption |
| Get Data Usage Overview and Trends | Get device-level data usage statistics |
7.3 Similar Tools Comparison
| Tool Name | Use Case | Difference |
|---|---|---|
| Get Top 10 Data Usage Apps | Statistics by app data usage | Returns Top 10 apps |
| Get Top 10 Apps by Usage Duration | Statistics by app usage duration | Returns usage duration Top 10 |
| Get Data Usage Overview and Trends | Statistics by device data usage | Returns device-level data usage |
8. Tool Chains
8.1 App Data vs Usage Duration Comparison Pattern
Scenario: Analyze the relationship between app data consumption and usage duration
Tool chain:
Get Top 10 Data Usage Apps → Get Top 10 Apps by Usage Duration → Comparative analysis
Steps:
- Call Get Top 10 Data Usage Apps to get the Top 10 data usage apps
- Use the same date parameters to call Get Top 10 Apps by Usage Duration for Top 10 by usage duration
- Comparative analysis: High data + low duration = data-intensive apps; High duration + low data = lightweight apps
8.2 Group Data Usage Analysis Pattern
Scenario: Compare app data consumption across different groups
Tool chain:
Get a Group ID by Group Name (Group A) → Get Top 10 Data Usage Apps → Get a Group ID by Group Name (Group B) → Get Top 10 Data Usage Apps → Comparative analysis
Steps:
- Get Group A's GroupId and query Top data usage apps
- Get Group B's GroupId and query Top data usage apps
- Compare app data consumption differences between the two groups
8.3 WiFi vs Mobile Data Comparison Pattern
Scenario: Analyze app data consumption across different network types
Tool chain:
Get Top 10 Data Usage Apps (OrderBy=2) → Get Top 10 Data Usage Apps (OrderBy=3) → Comparative analysis
Steps:
- Call this tool with OrderBy=2 to get WiFi data usage Top apps
- Call this tool with OrderBy=3 to get mobile data usage Top apps
- Compare and analyze app data consumption patterns across different networks
Leave a Reply.