API Commands
This section describes how to work with commands in the I LOCK IT Cloud API. It includes retrieving available commands, sending commands to a lock, and interpreting responses.
In order to send a command to a lock you need its deviceId. You can get this ID by following the documentation here.
How it works
To control a lock remotely, you send a command to the server using the API. The server then attempts to deliver this command to the lock.
Important: The API response only confirms that the server has received your command — not that the lock has executed it successfully.
To verify whether the lock actually processed the command (e.g. unlocked or beeped), you need to check the corresponding event via the Events API or listen for updates using the WebSocket interface.
If the lock is connected to the cellular network it usually takes between 5 - 30 seconds for the lock to handle the command. In case of a weak cell reception it can sometimes take several minutes for the command to process.
Base URL
The base URL for all API calls is https://tracking.ilockit.bike/api/
Get List of Available Commands
Returns all commands assigned to your account. Use these command IDs to send commands.
Authentication: Basic
Method: GET
Endpoint: /commands
Query Parameters: deviceId (optional)
Response:
[
{
"id": 3,
"type": "locking",
"description": "Opens or closes an I LOCK IT",
"ttl": 1
},
{
"id": 4,
"type": "signalSound",
"description": "Activates a signal sound at I LOCK IT",
"ttl": 3
}
]
Send Command
Sends a command to an I LOCK IT device. If the device is offline, the command is queued and sent once it reconnects. TTL (time to live) indicates how long the command is valid.
Authentication: Basic
Method: POST
Endpoint: /commands/send
Body Example:
{
"deviceId": 274,
"id": 4
}
Response Example:
{
"id": 4,
"attributes": {},
"deviceId": 274,
"type": null,
"textChannel": false,
"description": null,
"ttl": 0,
"eventId": 82165
}
Possible Status Codes:
200 OK: Command sent to the lock.202 Accepted: Command queued because lock is offline.400 Bad Request: Command not valid or in wrong format.401 Unauthorized: Credentials missing or invalid or not authorized for this command.
Command Descriptions
Below are all supported commands and their API usage.
1. Get Lock Info
Request battery level, firmware version, lock state, etc.
Command ID: 5
Example:
{
"deviceId": 274,
"id": 5
}
2. Signal Sound
Triggers an audible beep on the lock.
Command ID: 4
Example:
{
"deviceId": 274,
"id": 4
}
3. Arm/Disarm Alarm
Arms/disarms the theft alarm.
Command IDs:
- Arm: 6
- Disarm: 7
Example: Arm alarm
{
"deviceId": 274,
"id": 6
}
Example: Disarm alarm
{
"deviceId": 274,
"id": 7
}
4. Turn Off Active Alarm
Disables an already active alarm. Alarm stays armed.
Command ID: 12
Example:
{
"deviceId": 274,
"id": 12
}
5. Restart Device or GPS
Restarts the entire lock or just the GPS module.
Command IDs:
- Lock: 8
- GPS: 11
Example: Restart Device
{
"deviceId": 274,
"id": 8
}
Example: Restart GPS
{
"deviceId": 274,
"id": 11
}
6. Locking and Unlocking
Lock or unlock the device.
Supported attributes:
"direction": "open""direction": "close"
Firmware ≥ 35.5 (no challenge):
Command ID: 3 Example: Unlock device
{
"deviceId": 443,
"id": 3,
"attributes": {
"direction": "open"
}
}
Firmware < 35.5 (with challenge):
Command ID: 3 Example: Unlock device
{
"deviceId": 274,
"id": 3,
"attributes": {
"lockingSeed": "2c12cb4ad877d738ba3661877540d483",
"direction": "close"
}
}
7. Theft Mode
Notifies the lock of a theft to increase location update frequency.
Supported attributes:
"theft": "true"- Activates theft mode"theft": "false"- Deactivates theft mode
Command ID: 10
Example:
{
"deviceId": 274,
"id": 10,
"attributes": {
"theft": "true"
}
}
8. Configuration
You can change sound and alarm settings as well as the low power modes and GPS tracking frequency.
Sound Values
- Locking process started: One long beep.
- Unlocking successful: One short beep.
- Warning sounds*: Three short beeps.
*Bike moved while trying to lock, locking bolt blocked while locking, unable to unlock because locking bolt is blocked, low Battery.
| Value | Description |
|---|---|
| 0 | Locking + warning sounds |
| 1 | Warning sounds |
| 2 | Locking |
| 3 | No sounds |
| 4 | Unlocking |
| 5 | Locking & Unlocking |
| 6 | All sounds |
| 7 | Unlocking & warning |
The attribute to change the sound settings is sound.
Alarm Settings
| Value | Description |
|---|---|
| 2 | Small sensitivity |
| 3 | Small sensitivity (silent) |
| 4 | Medium sensitivity |
| 5 | Medium sensitivity (silent) |
| 16 | Highest sensitivity |
| 17 | Highest sensitivity (silent) |
| 34 | Small sensitivity (pre-alarm) |
| 36 | Medium sensitivity (pre-alarm) |
| 48 | Highest sensitivity (pre-alarm) |
The attribute to change the alarm settings is alarmmode.
Low Power Settings
For GPS locks these settings can only be used with firmware 33.2 and above. For PRO locks no limitations apply
Settings for all lock models
| Attribute | Value | Description |
|---|---|---|
| theftBattLevel | 0 - 100 | Battery level at which lock enters low power mode while in theft mode (in percent) |
| theftLpwInterval | 0 - 1440 | Update Frequency for lock stauts packages in theft mode (in minutes) |
| theftTrackingInterval | 10 - 7200 | GPS Tracking Frequency in theft mode (in seconds) |
| trackingInterval | 10 - 7200 | GPS Tracking Frequency in normal mode (in seconds) |
Settings only for I LOCK IT GPS model
| Attribute | Value | Description |
|---|---|---|
| closedBattLevel | 0 - 100 | Battery level at which lock enters low power mode when lock is closed (in percent) |
| openedBattLevel | 0 - 100 | Battery level at which lock enters low power mode when lock is open (in percent) |
| closedLpwInterval | 0 - 1440 | Update Frequency for lock stauts packages when lock is in low power mode and closed (in minutes) |
| openedLpwInterval | 0 - 1440 | Update Frequency for lock stauts packages when lock is in low power mode and open (in minutes) |
Settings only for I LOCK IT PRO models
| Attribute | Value | Description |
|---|---|---|
| lpwBattLevel | 0 - 100 | Battery level at which lock enters low power mode (in percent) |
| lpwInterval | 0 - 1440 | Update Frequency for lock stauts packages in low power mode (in minutes) |
All parameters are optional and can be combined in any combination (as long as suitable for the corresponding lock).
API Call Example:
Command ID: 9
Example:
{
"deviceId": 274,
"id": 9,
"attributes": {
"alarmmode": 34,
"sound": 5,
"availability":
{
"theftTrackingInterval": 20
}
}
}
}
9. Request Position
Request GPS update (if a GPS fix is possible).
Command ID: 15
Example:
{
"deviceId": 274,
"id": 15
}
10. Start firmware update over mobile network
Starts a firmware update over-the-air if a newer firmware version is available. To start the update, the command as seen below must be send to the corresponding device.
Prerequisites:
- Lock version: Pro Sharing GPS DED/DEF
- Firmware version: ≥ 3.4
- Bootloader version: ≥ 5
Command ID: 16
Example:
{
"deviceId": 274,
"id": 16,
"attributes":
{
"fwPacketNr":201
}
}
Before starting the update, the lock sends a fwInfo command to determine, if a firmware update is available. The event looks like the following:
{
"id": 12345,
"attributes": {
"deviceBootloader": 5,
"devFirmware": 3.3,
"fwUpdateType": "APP"
},
"deviceId": 274,
"type": "fwInfo",
"serverTime": "2026-07-09T08:58:48.000+0000",
"positionId": 0,
"geofenceId": 0,
"maintenanceId": 0,
"commandId": 0
}
The version of the bootloader and firmware of the device can be seen in the attributes. If an update for the device is available the fwUpdateType will be APP and the update proceeds. If no update is available the type will be NONE and no update will be started.
11. Abort firmware update process
A running firmware update over mobile network can be aborted with this command.
Command ID: 19
Example:
{
"deviceId": 274,
"id": 19
}
🔐 Note: Not all commands may be available for all users or devices. Use
/commandsto retrieve your list.
Get Command Response
Returns a single event that is the response to a previously sent command. This is only available for locks from firmware version 34.0 onwards.
Authentication: Basic (email + password)
Method: GET
Endpoint: /events
Query Parameters:
| Key | Value (Example) |
|---|---|
| eventId | 82142 |
Headers:
accept: application/json
Response:
{
"id": 82143,
"attributes": {
"eventId": 82142,
"command": "signalSound"
},
"deviceId": 358,
"type": "acknowledge",
"serverTime": "2021-09-09T07:25:14.000+0000"
}