List devices
Applies to: API integrators with third-party API access.
Use Content-Type: application/json and optionally X-Locale: en. The third-api-token header is required. See common headers and error handling.
Brief Description
- Paginated query of device (kiosk) list for the current OpenAPI user
- Data scope follows the user identity and selected
groupIdassociated with the Token - Supports optional filters: device code, device name, group, Business Logic, Status, and online status
- Each row includes online status (
isOnline); this is not the same as Status (status)
Request URL
https://{GATEWAY_HOST}/third-center-web/openapi/v1/phamboxDevice/devicePage?current=1&size=10
Request Method
- POST
Header
| Parameter Name | Required | Type | Description |
|---|---|---|---|
| third-api-token | Yes | string | Access token obtained from the login interface |
| Content-Type | Yes | string | application/json |
Parameters
Send a JSON object as the request body. When using only defaults, send {}; optional fields do not make the body optional.
URL Query:
| Parameter Name | Required | Type | Description |
|---|---|---|---|
| current | No | int | Page number, default 1 |
| size | No | int | Page size, default 10 |
Request Body:
| Parameter Name | Required | Type | Description |
|---|---|---|---|
| deviceCode | No | string | Device code (exact match) |
| deviceName | No | string | Device name (fuzzy match) |
| groupId | No | string | Extra filter by group; overall data scope is still limited by the Token account / selected group |
| businessLogic | No | int | Business Logic: 0=Vending, 1=Sampling |
| status | No | int | Status (business operating status, not online): 1=Active, 2=InActive, 3=Pending Install, 4=Out Of Service |
| isOnline | No | int | Online filter: 1=online only, 0=offline only |
Response Example
{
"code": 200,
"msg": "success",
"enMsg": null,
"data": {
"total": 1,
"current": 1,
"size": 10,
"records": [
{
"deviceCode": "KIOSK-EXAMPLE-001",
"deviceName": "Example Lobby Kiosk",
"businessLogic": 1,
"status": 1,
"isOnline": 1,
"modelId": "model-001",
"modelName": "Example Model",
"locationId": "loc-001",
"locationName": "Lobby",
"locationText": "Main lobby entrance",
"tax": 0.08,
"lastTransactionTimestamp": 1710000000000,
"lastServiceTimestamp": 1709500000000,
"groups": [
{
"groupId": "g-001",
"groupName": "Downtown"
}
]
}
]
}
}
Response Parameter Description
Response data: A pagination object on success. An empty result keeps the pagination wrapper with records: [].
Errors: data may be null, a string or an array of messages. Check the HTTP status and code before reading success data. See error handling.
Response:
| Parameter Name | Type | Description |
|---|---|---|
| total | long | Total number of records |
| current | long | Current page number |
| size | long | Page size |
| records | array | Device list |
| records[].deviceCode | string | Device code |
| records[].deviceName | string | Device name |
| records[].businessLogic | int | Business Logic: 0=Vending, 1=Sampling |
| records[].status | int | Status: 1=Active, 2=InActive, 3=Pending Install, 4=Out Of Service |
| records[].isOnline | int | Online status: 1=online, 0=offline |
| records[].modelId | string | Device model ID |
| records[].modelName | string | Device model name |
| records[].locationId | string | Location ID |
| records[].locationName | string | Location name |
| records[].locationText | string | Free-text location |
| records[].tax | double / null | Tax rate as a decimal ratio (e.g. 0.08 means 8%) |
| records[].lastTransactionTimestamp | long / null | Last transaction time (Unix milliseconds); null when unavailable |
| records[].lastServiceTimestamp | long / null | Last service / last main online time (Unix milliseconds); null when unavailable |
| records[].groups | array | Bound groups |
| records[].groups[].groupId | string | Group ID |
| records[].groups[].groupName | string | Group name |
Notes
statusis the business operating status shown as Active / InActive / Pending Install / Out Of Service.isOnlineis the device connectivity status. Do not treatstatusas online/offline.- Request and response use the same field names for Business Logic (
businessLogic) and Status (status). - Queries use the selected Group and the supplied filters.
- Request header must include
Content-Type: application/jsonandthird-api-token;X-Locale: enis recommended.