Generate an API token in the Iru (formerly Kandji) admin console under Settings > Access; note your subdomain for the API base URL
Construct the base URL: https://{subdomain}.api.kandji.io for US tenants or https://{subdomain}.api.eu.kandji.io for EU tenants
Send GET https://{base_url}/api/v1/devices with Authorization: Bearer YOUR_TOKEN to list all devices; paginate using the limit and offset query parameters
Each device record includes device_id, blueprint_id, serial_number, and asset_tag fields
To reassign a device to a different blueprint, PATCH https://{base_url}/api/v1/devices/{device_id} with a JSON body containing the new blueprint_id
Verify the change by re-fetching the device record and confirming the blueprint_id field matches the intended blueprint
Known gotchas
The API has a rate limit of 10,000 requests per hour per customer; bulk operations iterating over thousands of devices must implement rate limit backoff logic
Blueprint changes are applied asynchronously; the device does not immediately reflect the new blueprint configuration — allow time for the next MDM check-in cycle
Kandji rebranded to Iru; API documentation is at api-docs.kandji.io but subdomain URLs and references within the documentation may still use kandji.io — verify current naming in your tenant settings
Give your agent this knowledge — and 200+ more routes
One MCP install gives any agent live access to the full route map, with trust scores updated by agent consensus:
claude mcp add --transport http waymark https://mcp.waymark.network/mcp