Every API here is available over the APIs.io API and to AI agents over MCP.
MCP server
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
Tools for apis
7 MCP tools reach this
find_apisBrowse and filter every API in the catalog.
get_api_artifactsOne API's artifacts, grouped by type.
get_openapiThe primary OpenAPI for this API.
find_similar_apisAPIs that look like this one.
apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
resolveTurn a domain, URL or GitHub org into the provider it belongs to.
find_cohortsEvery scored population of providers in the catalog.
All 92 tools →
Call it yourself
curl for this page
This API
curl "https://apis.io/api/v1/apis/kontaktio-config-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
Get an API key
Free tier, no form to fill in. Signing in shares your email address with us — we
store it to create your key and to recognise you if you sign in with another
provider. See our Privacy Policy and
Terms.
A second provider on the same verified email joins the account you already have.
openapi: 3.2.0
info:
title: Device Management Config API
x-logo:
url: https://kontakt.io/wp-content/themes/kontakt/dist/img/site-header/logo.svg
backgroundColor: '#FFFFFF'
version: '10'
description: 'This Kontakt.io API provides direct access to all Kio Cloud Device Management resources. It allows integrating device administration functionality into 3rd-party applications without the need to build all underlying logic from the ground up.
## Authentication
All requests must include a **JWT Bearer token** in the `Authorization` header, obtained via the [OAuth2 Client Credentials flow](https://developer.kontakt.io/docs/entity-management-integration-api/0255c5646ab01-authentication-o-auth2-client-credentials-flow).
> **Deprecated:** The `Api-Key` header is still accepted for backward compatibility but is deprecated and will be removed. Do not use it for new integrations.
Each API call requires the `Accept` header with the API version. **By default, set to the current stable version:** `application/vnd.com.kontakt+json;version=10`
'
contact:
name: Support
url: https://support.kontakt.io
email: support@kontakt.io
termsOfService: https://kontakt.io/legal-documents/terms-of-sale-and-service/
servers:
- url: https://dm-api.cloud.us.kontakt.io
description: Kio Cloud US region
- url: https://dm-api.cloud.uk.kontakt.io
description: Kio Cloud UK region
security:
- bearer_token: []
- api_key: []
tags:
- name: Config
description: Pending configs represent new values for beacon settings that should be applied to actual devices via e.g. Kontakt.io Administration Apps. Creating a new config does not automatically change anything on a real beacon.
paths:
/config:
get:
tags:
- Config
summary: Get Configs
description: "Returns all pending configurations for the specified Devices or device type. \n\nIf no query parameters are provided, this endpoint returns all pending configurations that can be applied to Devices that the user has access to."
parameters:
- name: uniqueId
in: query
description: List of Unique IDs of Devices which pending configurations should be returned
required: false
schema:
type: array
items:
type: string
- name: deviceType
in: query
description: Device type. Only pending configurations for devices of this type will be returned
required: false
schema:
type: string
enum:
- BEACON
- GATEWAY
default: BEACON
- $ref: '#/components/parameters/QueryMaxResult'
- $ref: '#/components/parameters/QueryType'
- $ref: '#/components/parameters/accept'
- $ref: '#/components/parameters/QueryStartIndex'
responses:
'200':
description: OK
content:
application/vnd.com.kontakt+json;version=10:
schema:
type: object
properties:
configs:
type: array
items:
oneOf:
- $ref: '#/components/schemas/PendingBeaconConfig'
- $ref: '#/components/schemas/PendingGatewayConfig'
searchMeta:
$ref: '#/components/schemas/SearchMeta'
security:
- bearer_token: []
- api_key: []
/config/create:
post:
tags:
- Config
summary: Create a Config
description: 'Create or update a *pending configuration* for one or more devices.
Please be aware that doing this alone *will not make any changes on actual, physical beacons*, unless these beacons are in range of a Kontakt.io gateway (Portal Light).
Otherwise, this config has to be encrypted, downloaded, and then applied to a device via a Bluetooth connection. Applying the config over a Bluetooth connection is usually done from the Kio Setup Manager app or a 3rd-party custom app that implements one of Kontakt.io mobile SDKs.
**Not all device models accept all configuration parameters available.** Please check first if device is capable of accepting given configuration parameter.
Except for `uniqueId` and `deviceType` which are mandatory you only need to provide configuration parameters you wish to change.'
requestBody:
content:
application/x-www-form-urlencoded:
schema:
oneOf:
- $ref: '#/components/schemas/NewBeaconConfig'
- $ref: '#/components/schemas/NewGatewayConfig'
required:
- uniqueId
- deviceType
responses:
'201':
description: 'Created. The request was processed by the server. This does not mean the device has received or applied the config yet — devices pull pending configs asynchronously.
The response body is an array of pending-config records and shows exactly what was created. How to read it:
- If the response array does not contain a requested `uniqueId`, the config was not created for that device. The device was unknown to the server, or your API key does not have access to it.
- For `deviceType=BEACON`, keys in `customConfiguration` that the device model does not accept are silently dropped.
- For `deviceType=GATEWAY`, unknown `applications.system.*` keys cause the request to be rejected with HTTP 422 (no `201` is returned in that case).
To check what is pending on the server side later, call `GET /config?uniqueId=...`.'
content:
application/vnd.com.kontakt+json;version=10:
schema:
type: array
items:
oneOf:
- $ref: '#/components/schemas/PendingBeaconConfig'
- $ref: '#/components/schemas/PendingGatewayConfig'
examples:
full-success:
summary: Full success — every uniqueId and field persisted
value:
- uniqueId: AAAA
model: SMART_BADGE_3_MINI
created: '2026-05-04T12:00:00.000Z'
updated: '2026-05-04T12:00:00.000Z'
txPower: 6
no-devices-resolved:
summary: 201 with empty array — no submitted uniqueId was visible to the caller
value: []
custom-pid-stripped:
summary: 201 with a customConfiguration PID silently dropped (unsupported by device)
value:
- uniqueId: AAAA
model: SMART_BADGE_3_MINI
created: '2026-05-04T12:00:00.000Z'
updated: '2026-05-04T12:00:00.000Z'
customConfiguration: {}
'401':
description: Unauthorized — the request did not present valid authentication.
'403':
description: Forbidden — the caller authenticated but lacks the `CONFIG_CREATE` permission. Note that missing per-device access does not produce 403; it produces a 201 with the affected `uniqueId`s filtered out of the response array (see the 201 response description).
content:
application/json:
schema:
$ref: '#/components/schemas/ApiError'
'409':
description: Conflict — a config-level rule was violated. Examples include a concurrent create for the same `uniqueId` (duplicate key), the resulting configuration exceeding the device's storage budget, or violating power-saving / lock constraints.
content:
application/json:
schema:
$ref: '#/components/schemas/ApiError'
'422':
description: Unprocessable Entity — a hard validation error. Examples include invalid types or ranges, malformed `customConfiguration` PIDs (non-hex value, dotted name, value longer than 32 characters), interval below the chip's minimum, invalid enum values, or `deviceType` mismatch.
content:
application/json:
schema:
$ref: '#/components/schemas/ApiError'
parameters:
- $ref: '#/components/parameters/accept'
security:
- bearer_token: []
- api_key: []
/config/encrypt:
get:
tags:
- Config
summary: Encrypt a Config
description: "Returns a list of Base64-encoded configs with encrypted pending configurations for each Device or Device types specified in a request. This payload can be sent directly via Bluetooth to a device to change its settings. \n\nIf no query parameters are provided, this endpoint returns encrypted versions of all pending configurations."
parameters:
- name: uniqueId
in: query
description: List of Unique IDs with existing pending configurations
required: false
schema:
type: array
items:
type: string
- name: clientType
in: query
required: false
schema:
type: string
enum:
- MANAGER
- GATEWAY
default: MANAGER
- $ref: '#/components/parameters/accept'
responses:
'200':
description: OK
content:
application/vnd.com.kontakt+json;version=10:
schema:
type: object
properties:
configs:
type: array
items:
$ref: '#/components/schemas/EncryptedConfig'
searchMeta:
$ref: '#/components/schemas/SearchMeta'
security:
- bearer_token: []
- api_key: []
/config/delete:
post:
tags:
- Config
summary: Delete a Config
description: Deletes pending configurations as specified by devices' unique IDs.
parameters:
- $ref: '#/components/parameters/UniqueIdList'
- $ref: '#/components/parameters/accept'
responses:
'200':
description: OK
content:
application/vnd.com.kontakt+json; version=10:
schema:
type: object
properties:
message:
type: string
description: Success message
example: Delete successful.
'401':
description: Unauthorized
'404':
description: Not Found
content:
application/json:
schema:
$ref: '#/components/schemas/ApiError'
'422':
description: Unprocessable Entity
content:
application/json:
schema:
$ref: '#/components/schemas/ApiError'
security:
- bearer_token: []
- api_key: []
/config/export:
post:
tags:
- Config
summary: Export Configs
description: '#### Note: this endpoint requires a user to have permission to call POST /config/create endpoint.
Writes pending configurations merged with the current state of devices into a CSV file. The link to this file
will be returned in the response.
Merging algorithm works as follows - for any given device''s parameter:
* if it''s a virtual parameter OR a physical one but no pending config exists which aims to change its value - the current value of this parameter is used.
* if it''s a physical parameter with a pending config changing its value - the value from that pending config is used.
List of parameters contained in the resulting CSV file:
| Parameter | Comment |
|-----------|---------|
|uniqueId| |
|mac| |
|alias| |
|tags| |
|currentLocation.campusId| |
|currentLocation.campusName| |
|currentLocation.buildingId| |
|currentLocation.buildingName| |
|currentLocation.floorId| |
|currentLocation.floorName| |
|currentLocation.roomId| |
|currentLocation.roomName| |
|packets| |
|profiles| |
|proximity| |
|major| |
|minor| |
|namespace| |
|instanceId| |
|lightSensorSamplingInterval| |
|url| |
|txPower| |
|shuffled| |
|interval| |
|name| |
|rssi0m| |
|rssi1m| |
|powerSaving.mode| See the `powerSaving.mode` field in the `Get Devices` endpoint response for possible values and descriptions. `OFF` = empty list in API response (default configuration); empty = not applicable to the device. |
|powerSaving.moveSuspendTimeout| |
|powerSaving.lightSensorHysteresis| |
|powerSaving.lightSensorThreshold| |
|powerSaving.rtc.MON| |
|powerSaving.rtc.TUE| |
|powerSaving.rtc.WED| |
|powerSaving.rtc.THU| |
|powerSaving.rtc.FRI| |
|powerSaving.rtc.SAT| |
|powerSaving.rtc.SUN| |
|eidRotationPeriodExponent| |
|wifiSsid| |
|wifiUserName| |
|wifiProtocol| |
|wifiPassword| |
|ibeaconUUID| |
|rssi_threshold| |
|filtration_mask| |
|fallbackSsid| |
|fallbackPass| |
|fallbackServer| |
|apiHost| |
|dataHost| |
|otaUrl| |
|proxyURL| |
|proxyPort| |
|eapType| |
|bleScanChannel| |
|accelerometer.features| |
|accelerometer.sensitivity| |
|accelerometer.preset| |
|accelerometer.move.threshold| |
|accelerometer.move.duration| |
|accelerometer.doubleTap.threshold| |
|accelerometer.doubleTap.timeLimit| |
|accelerometer.doubleTap.timeLatency| |
|accelerometer.doubleTap.timeWindow| |
|accelerometer.move.detectionFlags| |
|accelerometer.move.detectionFlagsJunction| |
|accelerometer.doubleTap.detectionFlags| |
|accelerometer.highPass.mode| |
|accelerometer.highPass.cutoffFrequency| |
|accelerometer.highPass.moveDetection| |
|accelerometer.highPass.doubleTapDetection| |
|accelerometer.highPass.accelerometerData| |
|accelerometer.highPass.reference| |
|batteryLevel| |
|lastSeen| |
|deployment.status| |
|secureProximity| |
|vendor| |
|firmware| |
|product| |
|productCode| |
|secureNamespace| |
|orderId| |
|category| |
|roomNumber| |
|temperatureOffset| |
|telemetryInterval| |
|telemetryFields| See the `telemetryFields` field in the `Get Devices` endpoint response for possible values and descriptions. `OFF` = empty list in API response (default configuration); empty = not applicable to the device. |
|eidIdentityKey| |
|kontaktFrameInterval| |
|locationFrameChannel| |
|locationFrameInterval| |
|buttonFeatures| See the `buttonFeatures` field in the `Get Devices` endpoint response for possible values and descriptions. `OFF` = empty list in API response (default configuration); empty = not applicable to the device. |
|multiClickCount| Number of clicks required for multi-click detection (1–10). |
|panicDuration| |
|bleScan.duration| |
|bleScan.models| |
|bleScan.force| |
|bleScan.interval| |
|bleScan.size| Maximum number of scanned items reported per scan (0–255). Requires nrf52 firmware >= 2.5.88. |
|occupancy.sleepInterval| |
|occupancy.minInterval| |
|occupancy.footfallLine| |
|occupancy.calibration| |
|occupancy.model| |
|irBlinkInterval| |
|irReceiver.wakeUpInterval| |
|irReceiver.maxListenInterval| |
|irReceiver.disableOnNoMotion| |
|irTransmitter.intensity| |
|irTransmitter.dutyCycle| |
|irTransmitter.protoV2| |
|irDetectionParams| |
'
parameters:
- $ref: '#/components/parameters/UniqueIdList'
- name: deviceType
in: query
description: Device type filter. If specified, only exports the devices with the type(s) specified. If not, all devices will be exported.
schema:
type: array
items:
type: string
example:
- BEACON
- GATEWAY
- $ref: '#/components/parameters/accept'
responses:
'200':
description: OK
content:
application/vnd.com.kontakt+json; version=10:
schema:
type: object
description: Contains the link to exported file, plus the list of uniqueIds in it.
properties:
url:
type: string
description: URL to download the exported file from.
example: https://dm-api.cloud.us.kontakt.io/config/bdf5b73a-df5a-466d-89ba-f0c4b6a2148c/csv
uniqueIds:
description: 'Specifies the devices included in the exported file. It could differ from
the requested list due to insufficient permissions.
'
type: array
items:
$ref: '#/components/schemas/UniqueId'
'401':
description: Unauthorized
'404':
description: Not Found
content:
application/json:
schema:
$ref: '#/components/schemas/ApiError'
'422':
description: Unprocessable Entity
content:
application/json:
schema:
$ref: '#/components/schemas/ApiError'
security:
- bearer_token: []
- api_key: []
/config/import:
post:
tags:
- Config
summary: Import Configs
description: "#### Note: this endpoint requires a user to have permission to call POST /config/create endpoint.\n\nImports a CSV file with configuration parameters, virtual or physical, and applies them to the devices\nas pointed in that file.\n\nVirtual parameters are modified instantly upon successful response, whereas for physical parameters a pending\nconfiguration is created.\n\nThis endpoint can take in a file generated by the POST /config/export without any modifications or modified as needed,\nbut also any valid CSV file. \n\n#### Note: All rows will be processed even if one of them contains errors - this is to aid in fixing errors in CSV files and resubmitting it.However **if one of the rows contains errors, the proper rows won't take effect**.\n#### The proper course of action when an error is returned for one or more of the rows is fixing errors in the file and submitting it again.\n\n\n## File format \n\nBelow is a comma-separated text file rendered as a table:\n\n| uniqueId | parameter 1 | ... | parameter N |\n|------------|-------------|-----|-------------|\n| 11P10AvW | 1 | ... | abctexttext |\n| 11S13AhY | 42 | ... | textvalue |\n| .......... | ... | ... | ... |\n| uniqueId N | | ... | abd |\n\nIn other words, each row is a *uniqueId* of a device followed by configuration properties we want to change in it.\n\nLack of value in a cell means no change to that value, with some exceptions:\n* alias: lack of value resets it to an empty string\n* tags: lack of value resets it to an empty list\n\n| Supported parameters |\n|----------------------|\n|deployment.status|\n|alias|\n|tags|\n|url|\n|namespace|\n|instanceId|\n|name|\n|password|\n|proximity|\n|major|\n|minor|\n|txPower|\n|interval|\n|shuffled|\n|lightSensorSamplingInterval|\n|eidRotationPeriodExponent|\n|profiles|\n|packets|\n|rssi0m|\n|rssi1m|\n|powerSaving.mode|\n|powerSaving.moveSuspendTimeout|\n|powerSaving.lightSensorHysteresis|\n|powerSaving.lightSensorThreshold|\n|powerSaving.rtc.MON|\n|powerSaving.rtc.TUE|\n|powerSaving.rtc.WED|\n|powerSaving.rtc.THU|\n|powerSaving.rtc.FRI|\n|powerSaving.rtc.SAT|\n|powerSaving.rtc.SUN|\n|accelerometer.features|\n|accelerometer.sensitivity|\n|accelerometer.preset|\n|accelerometer.move.threshold|\n|accelerometer.move.duration|\n|accelerometer.move.detectionFlags|\n|accelerometer.move.detectionFlagsJunction|\n|accelerometer.doubleTap.threshold|\n|accelerometer.doubleTap.timeLimit|\n|accelerometer.doubleTap.timeLatency|\n|accelerometer.doubleTap.timeWindow|\n|accelerometer.doubleTap.detectionFlags|\n|accelerometer.highPass.mode|\n|accelerometer.highPass.cutoffFrequency|\n|accelerometer.highPass.moveDetection|\n|accelerometer.highPass.doubleTapDetection|\n|accelerometer.highPass.accelerometerData|\n|accelerometer.highPass.reference|\n|occupancy.sleepInterval|\n|occupancy.minInterval|\n|occupancy.model|\n|occupancy.footfallLine|\n|occupancy.calibration|\n|irReceiver.wakeUpInterval|\n|irReceiver.maxListenInterval|\n|irReceiver.disableOnNoMotio|\n|irTransmitter.intensity|\n|irTransmitter.dutyCycle|\n|irTransmitter.protoV2|\n|irDetectionParams|\n|irBlinkInterval|\n|roomNumber|\n|temperatureOffset|\n|telemetryInterval|\n|telemetryFields|\n|eidIdentityKey|\n|kontaktFrameInterval|\n|locationFrameChannel|\n|locationFrameInterval|\n|buttonFeatures|\n|multiClickCount|\n|panicDuration|\n|bleScan.duration|\n|bleScan.models|\n|bleScan.force|\n|bleScan.interval|\n|bleScan.size|\n|wifiSsid|\n|wifiUserName|\n|wifiProtocol|\n|wifiPassword|\n|ibeaconUUID|\n|rssi_threshold|\n|filtration_mask|\n|apiHost|\n|dataHost|\n|otaUrl|\n|proxyURL|\n|proxyPort|\n|eapType|\n|bleScanChannel|\n\n| Ignored parameters (due to them being read-only) |\n|----------------------|\n|mac|\n|orderId|\n|batteryLevel|\n|lastSeen|\n|category|\n|firmware|\n|product|\n|productCode|\n|secureProximity|\n|vendor|\n|secureNamespace|\n|fallbackSsid|\n|fallbackPass|\n|fallbackServer|\n"
parameters:
- $ref: '#/components/parameters/accept'
requestBody:
content:
multipart/form-data:
schema:
type: object
properties:
file:
type: string
format: binary
description: a CSV file, structure as described in this endpoint's documentation.
responses:
'200':
description: OK
content:
application/vnd.com.kontakt+json; version=10:
schema:
type: array
description: Response with statuses per uniqueId
items:
type: object
properties:
message:
type: string
description: Empty if imported successfully, contains an error message otherwise
example: IBeacon UUID field is not a proper UUID
status:
type: string
description: 'ERROR means this row contained an error and needs to be fixed.
ROLLED_BACK means this row is okay, but other rows contained errors so the changes won''t take effect.
'
enum:
- SUCCESS
- ERROR
- ROLLED_BACK
uniqueId:
$ref: '#/components/schemas/UniqueId'
'401':
description: Unauthorized
'404':
description: Not Found
content:
application/json:
schema:
$ref: '#/components/schemas/ApiError'
'422':
description: Unprocessable Entity
content:
application/json:
schema:
$ref: '#/components/schemas/ApiError'
security:
- bearer_token: []
- api_key: []
/config/readall:
get:
tags:
- Config
summary: Read raw device configuration
description: Reads device configuration and returns its state in a raw form (secure response). It can be used as an input for the `POST /device/sync` endpoint to synchronize device state with the cloud.
parameters:
- $ref: '#/components/parameters/UniqueIdList'
responses:
'200':
description: Device configuration returned
content:
application/vnd.com.kontakt+json;version=10:
schema:
type: object
properties:
configs:
type: array
items:
$ref: '#/components/schemas/EncryptedConfig'
searchMeta:
$ref: '#/components/schemas/SearchMeta'
'401':
description: Unauthorized
'404':
description: Not Found
content:
application/json:
schema:
$ref: '#/components/schemas/ApiError'
'422':
description: Unprocessable Entity
content:
application/json:
schema:
$ref: '#/components/schemas/ApiError'
security:
- bearer_token: []
- api_key: []
/config/{fileName}/csv:
get:
tags:
- Config
summary: Download CSV file with exported devices
description: Downloads CSV file with exported devices that has been generated by the `POST /config/export` endpoint
parameters:
- name: fileName
in: path
description: Identifier of a file to be downloaded. The value is generated dynamically and available in the response of the `POST /config/export` endpoint
example: a0f49b9e-b2e7-4a5f-a94a-047014eb3958
schema:
type: string
required: true
responses:
'200':
description: CSV file with devices configuration
content:
text/csv:
schema:
type: object
'401':
description: Unauthorized
'404':
description: CSV file with provided name doesn't exist
security:
- bearer_token: []
- api_key: []
components:
schemas:
ApiError:
type: object
title: API Error
properties:
id:
type: string
description: Internal API error code
example: API_ERROR_1693477316246
status:
type: number
description: HTTP response status code
example: 422
cause:
type: string
description: General cause of the error
example: ValidationError
message:
type: string
description: Error message with an explanation of the problem
example: Invalid value for field name
details:
type:
- array
- 'null'
description: Optional details
items:
type: object
properties:
field:
type: string
example: name
error:
type: string
description: Error name
example: INVALID_VALUE
message:
type: string
description: Error message
example: Invalid value for field name
Dispenser:
type: object
description: Dispenser settings for UHH dispenser beacons. Maps to PIDs dispenser_model_id (0x917E) and dispenser_detection_params (0x917F). Requires soap_dispenser capability and firmware nrf52 >= 2.16.1.
properties:
model:
type: string
description: Dispenser model the beacon is mounted on. UNSET (0xFF) disables dispense detection.
enum:
- ES8_GOJO
- ES10_GOJO
- GENERIC_UHH_MANUAL
- GENERIC_UHH_AUTO
- FMX12_GOJO
- FMX20_GOJO
- COMPACT_AUTO_ECOLAB
- COMPACT_MANUAL_ECOLAB
- CLASSIC_AUTO_ECOLAB
- CLASSIC_MANUAL_ECOLAB
- UNSET
detectionParams:
type: string
description: 'Hex-encoded binary blob (0-500 bytes) with detection algorithm parameters. Structure: uint16 params_id + uint8 model_id + uint8 algorithm_id + uint8[] params_data. Valid lengths: 0, 4, or >4 bytes.'
pattern: ^([0-9A-Fa-f]{2})*$
maxLength: 1000
example: '00010002030405'
NewGatewayConfig:
allOf:
- $ref: '#/components/schemas/EditableGatewayConfig'
- type: object
properties:
uniqueId:
description: List of Gateway Unique IDs for which configs should be created.
type: array
items:
$ref: '#/components/schemas/UniqueId'
deviceType:
description: Type of a device that a configuration should be created for.
type: string
enum:
- GATEWAY
- $ref: '#/components/schemas/ConfigLocksRequest'
title: New Gateway Config
OccupancyPhysicalSettings:
type: object
x-stoplight:
id: ri25ewp162tv9
description: Occupancy settings. Only applicable to devices with occupancy capability.
properties:
sleepInterval:
type: integer
minimum: 0
maximum: 65535
default: 0
description: Occupancy sampling interval in seconds when in power-saving mode (outside of working hours).
minInterval:
type: integer
minimum: 0
maximum: 65535
default: 60
description: Min sampling interval in seconds. 0 means disabled.
calibration:
type: integer
minimum: -128
maximum: 127
default: 0
description: Common threshold delta (all occupancy modes). Allows to fine-tune the sensitivity relative to the newest default. For example, use -5 to lower the threshold by 5 units from the default (allow more detections), or conversely setting it to 5 adds 5 to that threshold, reducing false positives. In other words, this is a linear value, not a percentage.
sensitivity:
type: integer
minimum: 0
maximum: 100
deprecated: true
description: Deprecated! Please use the calibration parameter instead. Percentage of sensitivity. 0-100, 0 for very strict, 100 accept everything
model:
type: integer
description: "Detection model. \n\n0 - static occupancy. \n2 - traffic footfall."
footfallLine:
type: string
default: 28502800
description: Threshold line for footfall detection. [x0, y0, x1, y1] pixel coordinates for the line. Hex encoded.
footfallSensitivity:
type: integer
minimum: 0
maximum: 100
default: 40
deprecated: true
description: Deprecated! Please use the calibration parameter instead. Sensitivity for accepting footfall tracks. 0-100, 0 for very strict, 100 accept everything
PendingBeaconConfig:
description: Pending Beacon Configuration.
x-stoplight:
id: gnufpxhymraym
allOf:
- $ref: '#/components/schemas/BeaconConfig'
- type: object
properties:
created:
$ref: '#/components/schemas/CreatedDate'
updated:
$ref: '#/components/schemas/UpdatedDate'
uniqueId:
$ref: '#/components/schemas/UniqueId'
model:
$ref: '#/components/schemas/DeviceModel'
- $ref: '#/components/schemas/ConfigLocksResponse'
LockDetailsConfirmationId:
type: string
description: The value included in the DeviceChangedEvent.UPDATED to confirm that a specific configuration has been applied on a device
example: ed26348a-e33e-428c-a343-33e0054ebdf9
ConfigLocksRequest:
type: object
properties:
locks:
type: object
properties:
roomNumber:
$ref: '#/components/schemas/LockDetailsConfirmationId'
temperatureMonitor:
$ref: '#/components/schemas/LockDetailsConfirmationId'
LocalAlertingSettings:
type: object
description: Device local alerting settings.
properties:
alertSamples:
type: integer
description: The number of samples considered for triggering alerts.
example: 15
minimum: 1
maximum: 65535
loggingFactor:
type: integer
descripti
# --- truncated at 32 KB (81 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/kontaktio/refs/heads/main/openapi/kontaktio-config-api-openapi.yml