Zum Hauptinhalt springen

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.

info

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.

info

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.

ValueDescription
0Locking + warning sounds
1Warning sounds
2Locking
3No sounds
4Unlocking
5Locking & Unlocking
6All sounds
7Unlocking & warning

The attribute to change the sound settings is sound.

Alarm Settings

ValueDescription
2Small sensitivity
3Small sensitivity (silent)
4Medium sensitivity
5Medium sensitivity (silent)
16Highest sensitivity
17Highest sensitivity (silent)
34Small sensitivity (pre-alarm)
36Medium sensitivity (pre-alarm)
48Highest sensitivity (pre-alarm)

The attribute to change the alarm settings is alarmmode.

Low Power Settings

warnung

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

AttributeValueDescription
theftBattLevel0 - 100Battery level at which lock enters low power mode while in theft mode (in percent)
theftLpwInterval0 - 1440Update Frequency for lock stauts packages in theft mode (in minutes)
theftTrackingInterval10 - 7200GPS Tracking Frequency in theft mode (in seconds)
trackingInterval10 - 7200GPS Tracking Frequency in normal mode (in seconds)

Settings only for I LOCK IT GPS model

AttributeValueDescription
closedBattLevel0 - 100Battery level at which lock enters low power mode when lock is closed (in percent)
openedBattLevel0 - 100Battery level at which lock enters low power mode when lock is open (in percent)
closedLpwInterval0 - 1440Update Frequency for lock stauts packages when lock is in low power mode and closed (in minutes)
openedLpwInterval0 - 1440Update Frequency for lock stauts packages when lock is in low power mode and open (in minutes)

Settings only for I LOCK IT PRO models

AttributeValueDescription
lpwBattLevel0 - 100Battery level at which lock enters low power mode (in percent)
lpwInterval0 - 1440Update 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 /commands to 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:

KeyValue (Example)
eventId82142

Headers:

accept: application/json

Response:

{
"id": 82143,
"attributes": {
"eventId": 82142,
"command": "signalSound"
},
"deviceId": 358,
"type": "acknowledge",
"serverTime": "2021-09-09T07:25:14.000+0000"
}