• Tools
Tools
  • Tools
loading...
No Results
  • ActiveCampaign
  • AirDroid Business
    • Index
    • Batch Resolve Device and Group IDs by Name
    • Batch Resolve Device IDs by Name
    • Batch Resolve Group IDs by Name
    • Batch Get Devices by Device or Group IDs
    • Clear app data and cache
    • Create a group
    • Delete groups
    • Delete Provisioning Templates
    • Disable lost mode
    • Error codes
    • Enable lost mode
    • Field reference
    • Get average screen time
    • Get account activities
    • Get a Configuration
    • Get a device by name
    • Get a device app by name
    • Get a group
    • Get a group id by group name
    • Get a Provisioning Template
    • Get an activity log
    • Get all devices
    • Get all device apps
    • Get all devices with filter
    • Get Config File Deployment Status
    • Get device info push
    • Get device location report
    • Get device network connection history
    • Get device application usage duration
    • Get device application report
    • Get device online status report
    • Get device remote access report
    • Get data usage overview and trends
    • Get tag ids by tag names
    • Get top 10 apps by usage duration
    • Get top 10 data usage apps
    • Generate Device Owner Enrollment QR for Template
    • List Groups
    • List Policy and Kiosk Configurations
    • List Provisioning Templates
    • Lock a device
    • Move devices to a group
    • Open app to foreground
    • Power off a device
    • Reboot device
    • Remote operation
    • Search Groups
    • Set tags
    • Turn off device screen
    • Unenroll a device
    • Update a device name
    • Update a device remark
    • Update a group name
    • Update a group remark
  • Adalo
  • Appstore
  • Asana
  • AWS Lambda
  • AWS-S3
  • BambooHR
  • Bitbucket
  • Brevo
  • Clockify
  • Coda
  • ConvertKit
  • DingTalk
  • Discord
  • Discourse
  • Dropbox
  • Elasticsearch
  • Elastic Security
  • FeiShu
  • Firecrawl
  • Freshdesk
  • Freshservice
  • Freshworks CRM
  • Gerrit
  • Github
  • Gitlab
  • Google Ads
  • Google Analytics
  • Google Calendar
  • Google Developer
  • Google Docs
  • Google Drive
  • Google Gmail
  • Google Sheets
  • Grafana
  • Hacker News
  • HaloPSA
  • Harvest
  • Help Scout
  • Hubspot
  • Intercom
  • Jenkins
  • Jira
  • Kafka
  • Lemlist
  • Linear
  • Magento
  • MailChimp
  • Mautic
  • Metabase
  • Microsoft Excel
  • Microsoft OneDrive
  • Microsoft Outlook
  • Microsoft Sharepoint
  • Microsoft Teams
  • Microsoft To Do
  • monday.com
  • MySQL
  • Nextcloud
  • Notion
  • Odoo
  • Okta
  • OpenAI
  • Ortto
  • Paddle
  • PayPal
  • Pipedrive
  • PostgreSQL
  • PostHog
  • Qdrant
  • QuickBooks
  • Redis
  • Segment
  • SendGrid
  • ServiceNow
  • Shopify
  • Slack
  • Splunk
  • Spotify
  • Strapi
  • Stripe
  • System Tools
    • Code
    • CSV
    • Crypto
    • Data Shaping
    • Date & Time
    • Delay
    • Documents
    • QRCode
    • Search&Crawl
    • Text
    • Xml
  • Teambition
  • Telegram
  • Todoist
  • Trello
  • Twilio
  • Webflow
  • Wekan
  • Wikipedia
  • WooCommerce
  • WordPress
  • X
  • YouTube
  • Zammad
  • Zendesk
  • Zoho CRM
  • Zoom
  • Zulip
Home > Tools > AirDroid Business

List Policy and Kiosk Configurations

Tool Name: airdroid_business_policy_kiosk_configuration_list

Risk Level: 🟢 Low Risk

Execution Mode: âš¡ Synchronous

Category: Policy & Kiosk Configuration

Quick Start (Copy & Use)

Summary: List Policy and Kiosk configurations in the account with pagination, optional name filtering (case-insensitive substring), and sorting. The list mixes Policy and Kiosk rows — distinguish them by base_setting.type.

Prerequisites: A valid OAuth2 AccessToken configured in the GI node Credential. All inputs are optional.

Success Criteria: StatusCode == 200 and ErrorMessage == "".

What to Do Next: Take Configs[].base_setting.config_id and pass it to Get a Configuration (full settings) or Get Config File Deployment Status (per-device deployment status).

Minimal Request Example (recommended to copy directly):

{
  "PageIndex": 1,
  "PageSize": 50,
  "Name": "",
  "Order": "create_time",
  "Ascending": false
}

Minimal Response Example:

{
  "Configs": [
    {
      "base_setting": {
        "config_id": 10023,
        "config_name": "Retail Kiosk EU",
        "type": "Kiosk",
        "platform_type": "Android",
        "status": "On",
        "limit_status": "Effective",
        "config_password": "",
        "relative_setting_id": 0,
        "create_time": "2025-11-03 09:12:45",
        "update_time": "2026-05-20 14:30:02"
      }
    }
  ],
  "Pagination": {
    "total": 1,
    "page_size": 50,
    "page_index": 1,
    "last_page": 1
  },
  "Hint": "",
  "Retryable": false,
  "OriginalStatusCode": 200,
  "StatusCode": 200,
  "ErrorMessage": ""
}

Recipes (Common Recipes)

Recipe 1: List All Configurations (First Page)

When to use: Browse the account's configuration inventory.

{
  "PageIndex": 1,
  "PageSize": 50,
  "Name": "",
  "Order": "create_time",
  "Ascending": false
}

Recipe 2: Search Configurations by Name Keyword

When to use: Resolve a configuration name to its config_id before calling Get a Configuration or apply flows. Matching is a case-insensitive substring match against base_setting.config_name.

{
  "PageIndex": 1,
  "PageSize": 50,
  "Name": "Retail Kiosk",
  "Order": "create_time",
  "Ascending": false
}

Recipe 3: Most Recently Updated First

When to use: Audit which configurations changed recently.

{
  "PageIndex": 1,
  "PageSize": 20,
  "Name": "",
  "Order": "update_time",
  "Ascending": false
}

Recipe 4: Paginate Through All Pages

When to use: Iterate the full inventory. After each call, if Pagination.page_index < Pagination.last_page, call again with PageIndex + 1.

{
  "PageIndex": 2,
  "PageSize": 50,
  "Name": "",
  "Order": "config_name",
  "Ascending": true
}

1. Overview

1.1 Description

Retrieve a paginated list of Policy and Kiosk configurations with:

  • Optional name keyword filtering (case-insensitive substring on base_setting.config_name)
  • Sorting by config_name, create_time, or update_time in ascending or descending order
  • Mixed list: Policy and Kiosk configurations are returned together. There is no input type filter — distinguish rows by the returned base_setting.type (Policy | Kiosk | Windows Policy)

1.2 When to Use

  • Browse inventory: See what Policy/Kiosk configurations exist in the account
  • Resolve name → config_id: Search by partial name before using a configuration Id elsewhere
  • Audit changes: Sort by update_time descending to find recently modified configurations
  • Prepare apply/update/replicate flows: List existing configurations first

Don't use when:

  • You already have the configuration Id and need full settings — use Get a Configuration
  • You need per-device deployment progress — use Get Config File Deployment Status
  • You need to create or update a configuration — this tool is list-only

1.3 Execution Mode and Response

This operation is synchronous and returns:

  • Configs: Array of configuration objects (each with base_setting and optional child settings)
  • Pagination: Pagination metadata (total, page_size, page_index, last_page)
  • StatusCode / ErrorMessage / Hint / Retryable / OriginalStatusCode: Call status and error information

1.4 Prerequisites

Condition Description How to Check
Valid credential A valid OAuth2 AccessToken is required Configure AirDroid Business OAuth2 credential in the GI node

1.5 Differences from Similar Tools

Tool Use Case Key Difference
List Policy and Kiosk Configurations Browse/search configuration inventory Paginated list, name filter, sorting
Get a Configuration Full settings of one configuration Requires exact Id; returns the complete settings object
Get Config File Deployment Status Per-device deployment status Returns rollout progress per device, not the configuration list

2. Inputs

2.1 Parameter List

Parameter Type Required Default Description
PageIndex number No 1 Page index, starting from 1
PageSize number No 50 (GI node default) Records per page, range 1-50
Name string No "" Configuration name keyword (case-insensitive substring match); empty = no filter
Order string No "create_time" Sort field: config_name \ create_time \ update_time
Ascending bool No false Sort direction: true = ascending, false = descending

2.2 Parameter Details

`PageIndex`

  • Type: number
  • Format: Positive integer starting from 1. Values < 1 return StatusCode = -1
  • Example: 1

`PageSize`

  • Type: number
  • Format: Integer 1-50. Values outside this range return StatusCode = -1 (Invalid page_size. Must be between 1 and 50.)
  • Example: 50
  • Why recommended: Set explicitly to control response size; each config row can include large nested settings objects.

> The GI node prefills 50. The accepted runtime range is 1-50; values above 50 return StatusCode = -1.

`Name`

  • Type: string
  • Format: Keyword up to 200 characters (longer returns StatusCode = -1). Performs a case-insensitive substring match against base_setting.config_name. Empty string = no filter
  • Example: "Retail Kiosk"
  • Why recommended: Narrow the result set before paginating; there is no type filter, so a good name convention plus this keyword is the main way to scope results.

`Order`

  • Type: string
  • Allowed values (whitelist; any other value returns StatusCode = -1):
    • config_name — sort alphabetically by configuration name
    • create_time — sort by configuration creation time
    • update_time — sort by last update time
  • Default: create_time
  • Example: "update_time"

`Ascending`

  • Type: bool
  • Values: true = ascending (A to Z, 0 to 9, oldest to newest); false = descending (Z to A, 9 to 0, newest to oldest)
  • Default: false
  • Example: false

> Use Order (field name) and Ascending (boolean) for sorting. Sort and SortType are not valid inputs.

2.3 Parameter Combination Logic

  • All parameters are optional and combine as AND: the name filter is applied first, then sorting, then pagination.
  • Pagination.total reflects the count after the Name filter.

3. Outputs

3.1 Response Example

Success response:

{
  "Configs": [
    {
      "base_setting": {
        "config_id": 10023,
        "account_id": 8001234,
        "config_name": "Retail Kiosk EU",
        "config_remark": "Kiosk config for EU retail tablets",
        "type": "Kiosk",
        "platform_type": "Android",
        "status": "On",
        "limit_status": "Effective",
        "config_password": "2580",
        "relative_setting_id": 0,
        "create_time": "2025-11-03 09:12:45",
        "update_time": "2026-05-20 14:30:02"
      },
      "brand_setting": {
        "brand_id": 501,
        "brand_name": "Contoso Retail"
      }
    },
    {
      "base_setting": {
        "config_id": 10031,
        "account_id": 8001234,
        "config_name": "Warehouse Policy",
        "config_remark": "",
        "type": "Policy",
        "platform_type": "Android",
        "status": "On",
        "limit_status": "Effective",
        "config_password": "",
        "relative_setting_id": 0,
        "create_time": "2026-01-12 11:05:00",
        "update_time": "2026-04-02 16:44:10"
      },
      "policy_config_file_setting": {
        "allow_ctl_alarm_volume": 1
      }
    }
  ],
  "Pagination": {
    "total": 2,
    "page_size": 50,
    "page_index": 1,
    "last_page": 1
  },
  "Hint": "",
  "Retryable": false,
  "OriginalStatusCode": 200,
  "StatusCode": 200,
  "ErrorMessage": ""
}

Error response (invalid Order):

{
  "Configs": [],
  "Pagination": {},
  "Hint": "Set Order to config_name, create_time, or update_time, then retry.",
  "Retryable": false,
  "OriginalStatusCode": 0,
  "StatusCode": -1,
  "ErrorMessage": "Invalid Order. Allowed values: config_name, create_time, update_time."
}

3.2 Field Descriptions

Field Path Type Description
Configs object-array Configuration list for the current page. Mixed Policy and Kiosk rows
Configs[].base_setting.config_id number Unique configuration Id — use as Id in Get a Configuration and ConfigId in Get Config File Deployment Status
Configs[].base_setting.config_name string Administrator-defined name
Configs[].base_setting.type string Configuration type: Policy \ Kiosk \ Windows Policy
Configs[].base_setting.platform_type string Platform: Android \ Windows
Configs[].base_setting.status string Configuration switch: On \ Off. Do not confuse with limit_status
Configs[].base_setting.limit_status string Quota/slot effectiveness: Effective \ Ineffective. A config is generally usable for Get/apply when status is On and limit_status is Effective; Ineffective configs may be blocked by Get a Configuration
Configs[].base_setting.config_password string Kiosk exit / settings access password for this configuration (not an account login password). Treat as sensitive
Configs[].base_setting.relative_setting_id number Internal legacy relative-settings association Id. Often 0 on newer configs; it is not a config_id — Agents can ignore it
Configs[].base_setting.create_time string Creation timestamp
Configs[].base_setting.update_time string Last update timestamp
Configs[].base_setting.account_id number Business account Id (optional)
Configs[].base_setting.config_remark string Remark/description (optional)
Configs[].brand_setting object Brand display settings (optional; present when configured)
Configs[].policy_config_file_setting object Policy settings (optional; present when the configuration contains policy data)
Pagination.total number Total configurations matching the query across all pages
Pagination.page_size number Records per page as requested
Pagination.page_index number Current page number (1-indexed)
Pagination.last_page number Last page number
StatusCode number 200 = completed (check ErrorMessage), -1 = parameter validation error, 500 = network exception
ErrorMessage string Empty string on success; failure reason otherwise
Hint string Next-action guidance on error; empty on success
Retryable boolean true = transient error; false = persistent error or bad params
OriginalStatusCode number Upstream HTTP status code; 0 = no upstream request was made

3.3 Status Code / Enum Value Mapping

Field Value Meaning
base_setting.type "Policy" Android policy configuration
base_setting.type "Kiosk" Kiosk (locked-down launcher) configuration
base_setting.type "Windows Policy" Windows policy configuration
base_setting.platform_type "Android" / "Windows" Target platform
base_setting.status "On" / "Off" Configuration switch on/off
base_setting.limit_status "Effective" / "Ineffective" Whether the configuration counts as effective under the account quota/slots

3.4 Pagination

Field Description
Pagination.page_index Current page index (starts at 1)
Pagination.page_size Records per page
Pagination.total Total records matching the query (after Name filter)
Pagination.last_page Last page number

Paging strategy:

  • When page_index < last_page, call again with PageIndex + 1
  • Use Name to narrow the result set before paginating
  • PageSize range is 1-50

4. Examples

4.1 Basic Example: List All Configurations

Request Parameters:

{
  "PageIndex": 1,
  "PageSize": 50,
  "Name": "",
  "Order": "create_time",
  "Ascending": false
}

Response: See the success response in Section 3.1.

4.2 Advanced Example: Find a Kiosk Configuration by Name, Sorted A→Z

Request Parameters:

{
  "PageIndex": 1,
  "PageSize": 20,
  "Name": "kiosk",
  "Order": "config_name",
  "Ascending": true
}

Then filter the returned Configs[] client-side by base_setting.type == "Kiosk" (there is no server-side type filter).

4.3 Error Example: PageSize Out of Range

Request Parameters (error — PageSize is 100):

{
  "PageIndex": 1,
  "PageSize": 100,
  "Name": "",
  "Order": "create_time",
  "Ascending": false
}

Response:

{
  "Configs": [],
  "Pagination": {},
  "Hint": "Set page_size to an integer between 1 and 50, then retry.",
  "Retryable": false,
  "OriginalStatusCode": 0,
  "StatusCode": -1,
  "ErrorMessage": "Invalid page_size. Must be between 1 and 50."
}

5. Error Handling

5.1 AB Three-Layer Error Codes

StatusCode Meaning Use Case Agent Response
-1 Parameter validation error Invalid PageIndex/PageSize/Name/Order, or empty token (no request sent; OriginalStatusCode = 0) Do not retry; fix parameters
200 Business success or business error HTTP request succeeded; check ErrorMessage Empty ErrorMessage = success; non-empty = business error (read Hint)
500 Network/request exception Timeout (60s), connection failure, HTTP non-200 (including 429 rate limit) Retry only when Retryable == true (max 2 times, 5-second interval)

This Action's StatusCode semantics:

  • HTTP 429 → StatusCode = 500, Retryable = true (wait 10-30 seconds, retry once)
  • Other HTTP non-200 → StatusCode = 500; Retryable = true only for HTTP 500/502/503/504
  • Business errors (code != 1 in the upstream body) → StatusCode = 200, non-empty ErrorMessage, Retryable = false

5.2 Common Errors

StatusCode ErrorMessage Example Cause Fix
-1 Invalid page_index. Must be a positive integer (≥1). PageIndex < 1 or not an integer Set PageIndex to 1 or higher
-1 Invalid page_size. Must be between 1 and 50. PageSize out of range Set PageSize to 1-50
-1 Invalid name. Length must not exceed 200 characters. Name keyword too long Shorten to ≤ 200 characters
-1 Invalid Order. Allowed values: config_name, create_time, update_time. Unsupported sort field Use one of the three allowed values
-1 access_token is required and cannot be empty. Credential not configured Configure AirDroid Business OAuth2 Credential
500 Rate limited. Please retry after a few seconds. HTTP 429 Wait 10-30 seconds, retry once
500 Request timeout after 60 seconds. Request timeout Retry once; reduce PageSize or filter scope if persistent

5.3 Agent Self-Healing Decision Table

Condition Handling Strategy
StatusCode == 200 and ErrorMessage == "" Success; read Configs and Pagination
StatusCode == 200 and ErrorMessage != "" Business error; follow Hint
StatusCode == -1 Fix input parameters or Credential; do not retry as-is
StatusCode == 500 and Retryable == true Retry up to 2 times (5-second interval)
StatusCode == 500 and Retryable == false Do not retry; escalate with ErrorMessage + OriginalStatusCode

6. Best Practices

6.1 Performance Optimization

  • Filter by Name before paginating: Reduces total pages and response size
  • Keep PageSize modest (20-50): Config rows can carry large nested settings objects
  • Sort by update_time descending when auditing recent changes, so page 1 contains what you need

6.2 Security Considerations

🟢 Read operation: No destructive side effects.

  • base_setting.config_password (Kiosk exit/settings password) is returned in the list — treat it as sensitive; do not log it or expose it in user-facing summaries.

6.3 Idempotency

Idempotency: Naturally idempotent. Read-only; identical parameters return the same result unless configurations changed in between.

7. Related Tools

7.1 Follow-up Tools

Tool Name Purpose
Get a Configuration Get full settings of a configuration (use base_setting.config_id as Id)
Get Config File Deployment Status Check per-device deployment status (use base_setting.config_id as ConfigId)

7.2 Similar Tool Comparison

Tool Name Use Case Difference
List Policy and Kiosk Configurations Browse/search inventory Paginated summaries with name filter and sorting
Get a Configuration Single configuration detail Complete settings object; requires exact Id
Get Config File Deployment Status Rollout verification Per-device progress records for one configuration

8. Tool Chains

8.1 Resolve Configuration Name to Full Settings

Scenario: You know a configuration by name and need its full settings.

Tool Chain:

List Policy and Kiosk Configurations → Get a Configuration

Steps:

  1. Call List Policy and Kiosk Configurations with Name = "Retail Kiosk"
  2. Pick the intended row from Configs[] (check base_setting.type and platform_type)
  3. Call Get a Configuration with Id = base_setting.config_id

8.2 Audit Deployment of Recently Updated Configurations

Scenario: Find recently changed configurations and verify their rollout status.

Tool Chain:

List Policy and Kiosk Configurations → Get Config File Deployment Status

Steps:

  1. Call List Policy and Kiosk Configurations with Order = "update_time", Ascending = false
  2. For each configuration of interest, call Get Config File Deployment Status with ConfigId = base_setting.config_id
  3. Check each device's progress in ApplyInfo.open_status[]

Appendix Reference:

  • Field Reference: ./Field Reference.md
  • Error Code Quick Reference: ./Error Codes.md
Updated on: Jul 17, 2026
Was This Page Helpful?
Prev List Groups
Next List Provisioning Templates
Discussion

Leave a Reply. Cancel reply

Your email address will not be published. Required fields are marked*

Product-related questions?Contact Our Support Team to Get a Quick Solution>
On this page
  • Quick Start (Copy & Use)
  • Recipes (Common Recipes)
    • Recipe 1: List All Configurations (First Page)
    • Recipe 2: Search Configurations by Name Keyword
    • Recipe 3: Most Recently Updated First
    • Recipe 4: Paginate Through All Pages
  • 1. Overview
    • 1.1 Description
    • 1.2 When to Use
    • 1.3 Execution Mode and Response
    • 1.4 Prerequisites
    • 1.5 Differences from Similar Tools
  • 2. Inputs
    • 2.1 Parameter List
    • 2.2 Parameter Details
    • 2.3 Parameter Combination Logic
  • 3. Outputs
    • 3.1 Response Example
    • 3.2 Field Descriptions
    • 3.3 Status Code / Enum Value Mapping
    • 3.4 Pagination
  • 4. Examples
    • 4.1 Basic Example: List All Configurations
    • 4.2 Advanced Example: Find a Kiosk Configuration by Name, Sorted A→Z
    • 4.3 Error Example: PageSize Out of Range
  • 5. Error Handling
    • 5.1 AB Three-Layer Error Codes
    • 5.2 Common Errors
    • 5.3 Agent Self-Healing Decision Table
  • 6. Best Practices
    • 6.1 Performance Optimization
    • 6.2 Security Considerations
    • 6.3 Idempotency
  • 7. Related Tools
    • 7.1 Follow-up Tools
    • 7.2 Similar Tool Comparison
  • 8. Tool Chains
    • 8.1 Resolve Configuration Name to Full Settings
    • 8.2 Audit Deployment of Recently Updated Configurations
loading...
No Results