1. KMS Management
Ludus API
  • Host Management
    • Retrieve the ludus version
      GET
    • Retrieve the ludus license
      GET
    • Diagnostics
      GET
  • Ansible Management
    • Retrieve available subscription roles
      GET
    • Install subscription roles
      POST
    • Get role variables for one or more Ansible roles
      POST
    • Retrieve available Ansible roles and collections
      GET
    • Move or copy roles between global and local scopes
      PATCH
    • Install or Remove an Ansible role
      POST
    • Install an Ansible role from local directory
      PUT
    • Install an Ansible collection
      POST
  • User Management
    • whoami
      GET
    • Get Default Range ID
      GET
    • Set Default Range ID
      POST
    • Get user group memberships
      GET
    • List user details
      GET
    • Add a user to the system
      POST
    • Remove a user from the system
      DELETE
    • Get proxmox creds for a user
      GET
    • Set the Ludus and Proxmox creds for the user
      POST
    • Reset and retrieve the Ludus API key for a user
      GET
    • List all users
      GET
    • Retrieve a WireGuard configuration file for a user
      GET
  • Range Management
    • VM Management
      • Destroy VM
    • List range VMs, power state, and testing state
      GET
    • Delete a range from the database and proxmox host
      DELETE
    • Stop the range deployment ansible process
      POST
    • Stop and delete all range VMs
      DELETE
    • List all tags available to use with deploy
      GET
    • List summary information for all ranges
      GET
    • Retrieve range configuration
      GET
    • Update the range configuration
      PUT
    • Retrieve an example range configuration
      GET
    • Deploy the range
      POST
    • Retrieve the latest range logs
      GET
    • Retrieve /etc/hosts file for the range
      GET
    • Retrieve a ssh config
      GET
    • Retrieve a zip file of RDP configs
      GET
    • Retrieve an ansible inventory
      GET
    • Create a new range
      POST
    • Assign a range to a user (admin only)
      POST
    • Revoke range access from a user (admin only)
      DELETE
    • List users with access to a range (admin only)
      GET
    • List ranges accessible to the user
      GET
  • Power State Management
    • Power on range VMs
    • Power off range VMs
  • Testing State Management
    • Snapshot and enter testing state
    • Revert and exit testing state
    • Allow a domain
    • Deny a domain
    • Update a VM or group
  • Anti-Sandbox Management
    • Enable anti-sandbox for a VM or multiple VMs (enterprise)
    • Install the custom QEMU/OMVF packages
    • Install the standard QEMU/OMVF packages
  • Template Management
    • Retrieve a list of VM templates
    • Build templates
    • Install an Ansible role from local directory
    • Delete a template
    • Kill packer processes for user
    • Retrieve the latest packer logs
    • Get the status of packer builds
  • Snapshot Management
    • Get all snapshots for a range
    • Take a snapshot of a VM or multiple VMs
    • Roll back to a snapshot of a VM or multiple VMs
    • Delete a snapshot from a VM or multiple VMs
  • KMS Management
    • Setup the KMS VM and install the KMS server
      POST
    • License Windows VMs using the KMS server
      POST
  • Group Management
    • Create a new group
    • List all groups
    • Delete a group
    • List group members
    • Add users to group
    • Remove users from group
    • List group ranges
    • Add ranges to group
    • Remove ranges from group
  • Migration
    • SDN Migration Status
    • Migrate to SDN networking
    • Migrate SQLite to PocketBase
  • Virtual Consoles
    • Get Console Websocket Ticket
    • Connect to VM Console WebSocket
  • Blueprint Management
    • List accessible blueprints
    • Create blueprint from range
    • Delete blueprint
    • Copy blueprint
    • Apply blueprint to range
    • Get blueprint config
    • Update blueprint config
    • Share blueprint with groups
    • Unshare blueprint from groups
    • Share blueprint with users
    • Unshare blueprint from users
    • List blueprint access users
    • List blueprint access groups
  • Schemas
    • Group Management
      • BulkAddUsersToGroupRequest
      • BulkRemoveUsersFromGroupRequest
      • BulkAddRangesToGroupRequest
      • BulkRemoveRangesFromGroupRequest
      • BulkGroupOperationResponse
      • BulkGroupOperationErrorItem
    • Blueprint Management
      • BlueprintListItem
      • CreateBlueprintFromRangeRequest
      • CopyBlueprintRequest
      • ApplyBlueprintRequest
      • UpdateBlueprintConfigRequest
      • BlueprintAccessUserItem
      • BulkShareBlueprintWithGroupsRequest
      • BlueprintAccessGroupItem
      • BulkUnshareBlueprintWithGroupsRequest
      • BulkShareBlueprintWithUsersRequest
      • BulkUnshareBlueprintWithUsersRequest
      • BulkBlueprintOperationErrorItem
      • BulkBlueprintOperationResponse
      • BlueprintMutationResponse
    • userID
    • rangeID
    • UserObject
    • UserAPIKeyObject
    • UserCredentialObject
    • UserMembershipObject
    • RangeObject
    • VMObject
    • Domain
    • IP
    • AllowPayload
    • SnapshotInfo
    • ErrorInfo
    • SnapshotCreatePayload
    • LicenseDataObject
  1. KMS Management

License Windows VMs using the KMS server

Cloud Mock
https://mock.apidog.com/m1/1126461-0-default
Cloud Mock
https://mock.apidog.com/m1/1126461-0-default
POST
/kms/license
License one or more Windows VMs using the KMS server (Enterprise only)

Request

Authorization
JWT Bearer
Add the parameter
Authorization
to Headers
Example:
Authorization: ********************
or
API Key
Add parameter in header
X-API-KEY
Example:
X-API-KEY: ********************
or
Query Params

Body Params application/json

Examples

Responses

🟢200OK
application/json
license success and error arrays
Body

🔴500Internal Server Error
Request Request Example
Shell
JavaScript
Java
Swift
curl --location --request POST 'https://mock.apidog.com/m1/1126461-0-default/kms/license?userID' \
--header 'X-API-KEY: <api-key>' \
--header 'Content-Type: application/json' \
--data-raw '{
    "productKey": "TVRH6-WHNXV-R9WG3-9XRFY-MY832",
    "vmids": [
        179,
        180
    ]
}'
Response Response Example
{
    "success": [
        179
    ],
    "errors": [
        {
            "item": "180",
            "reason": "Failed to run license-windows ansible playbook: ..."
        }
    ]
}
Modified at 2026-01-18 04:02:35
Previous
Setup the KMS VM and install the KMS server
Next
Create a new group
Built with