Tool Name: Not defined in the current tool contract
Risk Level: Read
Execution Mode: Synchronous
Category: Organization App Library
Quick Start (Copy and Use)
Summary: Search Organization App Library applications with a structured Filter and pagination.
Prerequisites: A configured AirDroid Business credential. Filter is optional; omit it or use {} to search all applications.
Success Criteria: StatusCode is 200 and ErrorMessage is empty. A successful page may have no matching Applications.
What to Do Next: Use Applications[].latest_release.release_id to inspect distribution status or, after status review and explicit approval, retry eligible failed deliveries.
Minimal Request Example:
{
"Filter": {
"platform": "Android"
},
"PageIndex": 1,
"PageSize": 20
}
Minimal Response Example:
{
"Applications": [],
"Pagination": {
"total": 0,
"page_size": 20,
"page_index": 1,
"last_page": 1
},
"Hint": "",
"Retryable": false,
"OriginalStatusCode": 200,
"StatusCode": 200,
"ErrorMessage": ""
}
Recipes (Common Recipes)
Recipe 1: Find Android Applications
When to use: A single exact field condition is enough.
{
"Filter": {
"platform": "Android"
},
"PageIndex": 1,
"PageSize": 20
}
Recipe 2: Find Names Containing Text
When to use: You need a case-insensitive name substring match.
{
"Filter": {
"name": {
"like": "agent"
}
},
"PageIndex": 1,
"PageSize": 20
}
Recipe 3: Find a Ready Release and Continue Paging
When to use: You need release-state filtering and more than one result page.
{
"Filter": {
"latest_release.status": "Ready to rollout"
},
"PageIndex": 2,
"PageSize": 100
}
1. Overview
1.1 Description
Searches the Organization App Library with a bounded structured Filter. It is the query tool for conditions beyond the simple Platform and Keyword controls of List Organization App Library Applications.
1.2 When to Use
- Filter by application name, package ID, platform, remark, dates, or latest release data.
- Locate a latest_release.release_id before release-specific work.
- Combine up to five AND conditions with one non-nested $or group.
1.3 Execution Mode and Response
This is synchronous, read-only, and idempotent. It returns a current result page, not per-device rollout progress.
1.4 Prerequisites
| Condition | Description |
|---|---|
| Credential | Configure a valid AirDroid Business OAuth2 credential. |
| Filter structure | Use only supported fields and operators; all top-level non-$or conditions are ANDed. |
| Pagination | PageIndex >= 1; PageSize is 1 through 100. |
1.5 Prerequisite Tools
No other tool is required.
1.6 Similar Tools
Use List Organization App Library Applications for a simple platform or keyword browse. Use List Organization App Library Distribution Status for a specific release's per-device results; Filter does not query distribution records.
2. Inputs
2.1 Parameter List
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
| PageIndex | number | No | 1 | 1-based page index. |
| PageSize | number | No | 20 | Items per page, from 1 through 100. |
| Filter | object | No | omitted | Structured application conditions, or {} for all applications. |
2.2 Parameter Details
`Filter`
Supported fields are store_id, name, package_id, platform, remark, updated_at, latest_release.release_id, latest_release.version, latest_release.status, and latest_release.updated_at.
Use a plain value for equality, or an object using one or more of these operators: eq, ne, like, in, gt, gte, lt, lte. like is a case-insensitive substring operation. in requires an array. For store_id and latest_release.release_id, digit-only string values are normalized to integers.
platform values are Android, Windows, or Web. latest_release.status values are The version has been deleted, Paused Rollout, Ready to rollout, Releasing, Rolled out to all devices, Scheduled Release, and Unknown.
At most five top-level non-$or field conditions are permitted. Conditions are ANDed. One $or group may be included; it must have at least two items, each item must contain exactly one non-nested supported field condition.
Example with an OR group:
{
"platform": "Android",
"$or": [
{
"name": {
"like": "agent"
}
},
{
"package_id": {
"like": "agent"
}
}
]
}
`PageIndex` and `PageSize`
Both must be positive whole numbers. PageSize has a maximum of 100; use a smaller page when only a narrow decision is needed.
2.3 Parameter Combination Logic
Omit Filter or send {} to retrieve all applications. All normal filter fields must match; $or is the only alternative group and cannot be nested. Keep the same filter when moving to the next page.
3. Outputs
3.1 Response Examples
The Quick Start response is a successful empty filtered result.
Unsupported filter field:
{
"Applications": [],
"Pagination": {},
"Hint": "Use supported application fields and operators, then retry.",
"Retryable": false,
"OriginalStatusCode": 0,
"StatusCode": -1,
"ErrorMessage": "Unsupported filter field: group_id."
}
3.2 Field Descriptions
| Field | Type | Description |
|---|---|---|
| Applications | object-array | Current page of matching applications. |
| Applications[].store_id | integer | Application-library identifier. |
| Applications[].name | string | Application name. |
| Applications[].package_id | string | Platform-specific application identifier. |
| Applications[].platform | string | Android, Windows, Web, or Unknown when normalized from an unrecognized upstream value. |
| Applications[].remark | string | Application remark. |
| Applications[].updated_at | string/null | UTC time in YYYY-MM-DD HH:mm:ss, or null. |
| Applications[].latest_release | object/null | Most recently updated release, or null if no release exists. |
| Applications[].latest_release.release_id | integer | Release identifier for downstream status and retry workflows. |
| Applications[].latest_release.version | string | Release version. |
| Applications[].latest_release.status | string | Release status. |
| Applications[].latest_release.updated_at | string/null | UTC release update time, or null. |
| Pagination | object | total, page_size, page_index, and last_page. |
| Hint | string | Recommended next action after a failure; empty on success. |
| Retryable | bool | Whether the same request may be attempted again after a failure. |
| OriginalStatusCode | number | Upstream HTTP status; 0 means no response was received. |
| StatusCode | number | Tool status. |
| ErrorMessage | string | Empty on success; otherwise the failure reason. |
3.3 Status and Enum Values
| Field | Values | Meaning |
|---|---|---|
| Applications[].platform | Android, Windows, Web, Unknown | Returned application platform after normalization. |
| Applications[].latest_release.status | The version has been deleted, Paused Rollout, Ready to rollout, Releasing, Rolled out to all devices, Scheduled Release, Unknown | Release status. |
| StatusCode | -1, 200, 500 | Validation failure, completed request, or upstream/system/network failure. |
3.4 Pagination
Pagination.page_index and Pagination.last_page are 1-based. If the current page_index is lower than last_page, increase PageIndex by one while retaining the same Filter. PageSize defaults to 20 and is limited to 100.
4. Examples
4.1 Basic Example: Exact Platform
{
"Filter": {
"platform": "Web"
},
"PageIndex": 1,
"PageSize": 20
}
4.2 Advanced Example: AND Plus OR
{
"Filter": {
"platform": "Windows",
"$or": [
{
"name": {
"like": "agent"
}
},
{
"package_id": {
"like": "agent"
}
}
]
},
"PageIndex": 1,
"PageSize": 20
}
4.3 Error Example: Nested OR Is Not Supported
{
"Filter": {
"$or": [
{
"$or": [
{
"platform": "Android"
},
{
"platform": "Windows"
}
]
},
{
"platform": "Web"
}
]
}
}
This returns StatusCode -1; each $or item must contain one non-nested field condition.
5. Error Handling
| Condition | Visible result | Action |
|---|---|---|
| Invalid filter shape, field, or operator | StatusCode: -1 and a filter-specific ErrorMessage | Use only the documented fields and operators. |
| More than five AND fields | StatusCode: -1, Filter supports at most five AND field conditions. | Reduce top-level non-$or conditions. |
| Invalid page values | StatusCode: -1 | Use positive whole numbers and a PageSize no greater than 100. |
| HTTP 429 | StatusCode: 500, Retryable: true | Wait 10-30 seconds, then retry once. |
| HTTP 401 or 403 | StatusCode: 500 | Refresh authorization or request the required permission. |
| Invalid returned pagination or application shape | StatusCode: 500, Retryable: false | Report the response-shape issue with OriginalStatusCode. |
| Upstream business error | StatusCode: 200, non-empty ErrorMessage | Treat it as a failure and follow Hint. |
6. Best Practices
6.1 Performance
Use the narrowest valid Filter before paging. Keep filter conditions to the decision you need instead of retrieving an unbounded catalog.
6.2 Safety
This is read-only and does not change applications or releases.
6.3 Idempotency
Idempotent. Repeating the same structured search does not change Organization App Library state.
7. Related Tools
| Tool | Use |
|---|---|
| List Organization App Library Applications | Use simple Platform and Keyword browse controls. |
| List Organization App Library Distribution Status | Inspect one selected release's per-device rollout. |
| Retry Organization App Library Distribution | Retry eligible failed deliveries only after status inspection and explicit user approval. |
8. Tool Chains
8.1 Locate a Release and Review Distribution
Search Organization App Library Applications -> List Organization App Library Distribution Status
- Search for an application and select an item with a non-null latest_release.
- Pass latest_release.release_id as ReleaseId to the distribution-status tool.
- Use Counts and per-device Records to decide whether any failed delivery needs attention.
Leave a Reply.