Skip to main content

Device Information

Get Device Info

Retrieve information about the Kolibri device.
GET /api/device/info
curl http://localhost:8080/api/device/info

Response Fields

version
string
Kolibri version number
device_id
string
Unique device identifier
os
string
Operating system (e.g., “Linux”, “Windows”, “Android”)
urls
array
Array of URLs where Kolibri is accessible
database_path
string
Path to database file or database type
content_storage_free_space
integer
Free space available for content in bytes
server_time
string
Current server time in ISO 8601 format
server_timezone
string
Server timezone name
installer
string
Installation type (e.g., “deb”, “pip”, “pex”)
python_version
string
Python version running Kolibri

Device Settings

Get Device Settings

Retrieve current device settings.
GET /api/device/devicesettings
curl http://localhost:8080/api/device/devicesettings

Response Fields

language_id
string
Default language for the device
landing_page
string
Default landing page (e.g., “learn”, “sign-in”)
allow_guest_access
boolean
Whether guest access is allowed
allow_peer_unlisted_channel_import
boolean
Whether importing unlisted channels from peers is allowed
allow_learner_unassigned_resource_access
boolean
Whether learners can access unassigned resources
allow_other_browsers_to_connect
boolean
Whether other browsers can connect (for app context)
extra_fields
object
Additional device-specific settings

Update Device Settings

Update device settings.
PATCH /api/device/devicesettings
curl -X PATCH http://localhost:8080/api/device/devicesettings \
  -H "Content-Type: application/json" \
  -d '{
    "language_id": "en",
    "allow_guest_access": true
  }'

Request Parameters

language_id
string
Default language ID
landing_page
string
Default landing page
allow_guest_access
boolean
Enable/disable guest access
allow_peer_unlisted_channel_import
boolean
Enable/disable unlisted channel import from peers
allow_learner_unassigned_resource_access
boolean
Enable/disable learner access to unassigned resources

Device Name

Get Device Name

Retrieve the device name.
GET /api/device/devicename
curl http://localhost:8080/api/device/devicename

Response

{
  "name": "My Kolibri Device"
}

Update Device Name

Update the device name.
PATCH /api/device/devicename
curl -X PATCH http://localhost:8080/api/device/devicename \
  -H "Content-Type: application/json" \
  -d '{
    "name": "Updated Device Name"
  }'

Device Permissions

List Device Permissions

Retrieve device permissions for users.
GET /api/device/devicepermissions
curl http://localhost:8080/api/device/devicepermissions

Response Fields

id
string
Permission record identifier
user
string
User UUID
is_superuser
boolean
Whether user has superuser permissions
can_manage_content
boolean
Whether user can manage content

Create Device Permission

Grant device permissions to a user.
POST /api/device/devicepermissions
curl -X POST http://localhost:8080/api/device/devicepermissions \
  -H "Content-Type: application/json" \
  -d '{
    "user": "user-uuid",
    "is_superuser": false,
    "can_manage_content": true
  }'

Request Parameters

user
string
required
UUID of the user
is_superuser
boolean
Grant superuser permissions
can_manage_content
boolean
Grant content management permissions

Update Device Permission

Update existing device permissions.
PATCH /api/device/devicepermissions/:id
curl -X PATCH http://localhost:8080/api/device/devicepermissions/permission-id \
  -H "Content-Type: application/json" \
  -d '{
    "can_manage_content": false
  }'

Delete Device Permission

Revoke device permissions from a user.
DELETE /api/device/devicepermissions/:id
curl -X DELETE http://localhost:8080/api/device/devicepermissions/permission-id

Free Space

Check Free Space

Check available storage space for content.
GET /api/device/freespace?path=Content
curl "http://localhost:8080/api/device/freespace?path=Content"

Query Parameters

path
string
required
Must be “Content” to check content storage space

Response

{
  "freespace": 52428800000
}
freespace
integer
Free space in bytes

Path Permissions

Check Path Permissions

Check if a filesystem path is writable.
GET /api/device/pathpermission
curl "http://localhost:8080/api/device/pathpermission?path=/path/to/check"

Query Parameters

path
string
Filesystem path to check (defaults to content directory)

Response

writable
boolean
Whether the path is writable
directory
boolean
Whether the path is a directory
path
string
Resolved absolute path

Device Restart

Get Restart Status

Check if Kolibri is running and can be restarted.
GET /api/device/restart
curl http://localhost:8080/api/device/restart

Restart Device

Restart the Kolibri server.
POST /api/device/restart
curl -X POST http://localhost:8080/api/device/restart

Drives

List Available Drives

Get information about mounted drives with Kolibri content.
GET /api/device/driveinfo
curl http://localhost:8080/api/device/driveinfo

Response

Returns an array of drive objects:
id
string
Drive identifier
name
string
Drive name/label
path
string
Mount path
freespace
integer
Free space in bytes
channels
array
Array of channel objects available on this drive

Get Drive Info

Get information about a specific drive.
GET /api/device/driveinfo/:id
curl http://localhost:8080/api/device/driveinfo/drive-id

Build docs developers (and LLMs) love