Skip to main content
Tools Reference

ImmyBot Tools

Written By Christopher Scaminaci

Last updated 7 days ago

ImmyBot Tools

immy_ · 555 tools · Free 264 · Pro 291 Software deployment and endpoint maintenance for MSPs. Authentication is app-only against the customer's own Microsoft Entra directory, so the credential has four parts: an Entra application id and secret, the Entra tenant id or domain, and your ImmyBot instance address. The Entra token is presented straight to the ImmyBot instance; there is no ImmyBot-native token exchange and no refresh token, so expiry is recovered by minting again. Paging is mixed: list endpoints take a page number with page size, filters and sorts, while the grid feeds take skip and take with a page size capped at 100. POST is verb-overloaded here, so several tools that read data are POSTs and stay read-only. Bodies are passed through as sent, except the four spreadsheet exports, which return a link to the stored file.

All connector tools · ImmyBot setup guide

ImmyBot tool groups

Computers

ToolPlanAccessSummary
immy_add_tags_to_computersProWriteAdd one or more tags to a set of computers (bulk).
immy_bulk_delete_computersProDestructivePermanently delete multiple computers (bulk).
immy_computers_change_tenantProWriteMove one or more computers to a different tenant.
immy_computers_exclude_from_maintenanceProWriteExclude a computer from maintenance (it will be skipped by maintenance sessions).
immy_computers_notesProWriteSet/update the notes on a computer.
immy_computers_reinventoryProWriteTrigger a reinventory of a computer (re-collect its software/inventory data).
immy_computers_restoreProWriteRestore previously (soft-)deleted computers.
immy_computers_set_to_needs_onboardingProWriteFlag a computer as needing onboarding (re-enters the onboarding pipeline).
immy_computers_skip_onboardingProWriteMark computers to skip onboarding.
immy_computers_update_additional_personsProWriteUpdate the additional (secondary) persons associated with a computer.
immy_computers_update_primary_personProWriteUpdate the primary person associated with a computer (its main user).
immy_get_computersFreeRead-onlyGet a single computer by id, including its default detail (sessions, primary/additional persons and provider-agent data as ImmyBot resolves them).
immy_list_computersFreeRead-onlyList managed computers (basic view).
immy_list_computers_agent_statusFreeRead-onlyList computers with their agent connectivity/health status (DevExtreme grid feed).
immy_list_computers_device_update_form_dataFreeRead-onlyGet the device-update form data for a computer (the fields/options used to drive a device update).
immy_list_computers_dxFreeRead-onlyList computers via the raw DevExtreme grid feed.
immy_list_computers_eventsFreeRead-onlyList the event history for a computer.
immy_list_computers_exportFreeRead-onlyExport the computers grid to an XLSX spreadsheet.
immy_list_computers_myFreeRead-onlyList the computers scoped to the calling identity/session.
immy_list_computers_onboardingFreeRead-onlyList computers currently in the onboarding pipeline (awaiting or undergoing onboarding).
immy_list_computers_pagedFreeRead-onlyList computers with DevExtreme server-side paging, filtering and sorting — the richer counterpart to immy_list_computers.
immy_list_computers_parent_tenant_infoFreeRead-onlyGet the parent-tenant information for a computer (the tenant hierarchy context the computer belongs to).
immy_list_computers_statusFreeRead-onlyGet the current status of a single computer (online/agent/maintenance state).
immy_remove_tags_from_computersProWriteRemove one or more tags from a set of computers (bulk).
immy_resolve_computer_onboarding_target_assignmentsFreeRead-onlyResolve the onboarding target-assignments (deployments) that can be overridden for a computer — a preview used before onboarding.
immy_update_computersProWriteUpdate a computer (PUT).

[ImmyBot] Add one or more tags to a set of computers (bulk). Body typically carries the computer ids and the tag ids to apply. Tag ids come from immy_list_tags; computer ids from immy_list_computers.

ParamTypeRequiredDefaultDescription
bodyJsonstringyesJSON object with the target computer ids and tag ids to add.

[ImmyBot] Permanently delete multiple computers (bulk). DESTRUCTIVE — removes the computer records; recover with immy_computers_restore only where ImmyBot supports soft-delete. Body carries the list of computer ids to delete (from immy_list_computers).

ParamTypeRequiredDefaultDescription
bodyJsonstringyesJSON object/array identifying the computer ids to delete.

[ImmyBot] Move one or more computers to a different tenant. Body carries the computer ids and the destination tenant id (from immy_list_tenants). This reassigns which customer the endpoints belong to.

ParamTypeRequiredDefaultDescription
bodyJsonstringyesJSON object with the computer ids and destination tenant id.

[ImmyBot] Exclude a computer from maintenance (it will be skipped by maintenance sessions). computerId comes from immy_list_computers. Body carries the exclusion options (e.g. reason/duration) as ImmyBot's schema allows; pass for defaults.

ParamTypeRequiredDefaultDescription
bodyJsonstringno""JSON object with the exclusion options. Pass for defaults.
computerIdstringyesComputer id (from immy_list_computers).

[ImmyBot] Set/update the notes on a computer. computerId comes from immy_list_computers. Body carries the notes payload (e.g. {"notes":"..."}).

ParamTypeRequiredDefaultDescription
bodyJsonstringyesJSON object with the notes to set.
computerIdstringyesComputer id (from immy_list_computers).

[ImmyBot] Trigger a reinventory of a computer (re-collect its software/inventory data). computerId comes from immy_list_computers. This action takes no options — pass for the body.

ParamTypeRequiredDefaultDescription
bodyJsonstringno""Optional JSON body. This action takes no options — pass (the default).
computerIdstringyesComputer id (from immy_list_computers).

[ImmyBot] Restore previously (soft-)deleted computers. Body is a JSON array of the computer ids to restore. Counterpart of immy_bulk_delete_computers.

ParamTypeRequiredDefaultDescription
bodyJsonstringyesJSON array of computer ids to restore.

[ImmyBot] Flag a computer as needing onboarding (re-enters the onboarding pipeline). computerId comes from immy_list_computers. This action takes no options — pass for the body. Inverse of immy_computers_skip_onboarding.

ParamTypeRequiredDefaultDescription
bodyJsonstringno""Optional JSON body. This action takes no options — pass (the default).
computerIdstringyesComputer id (from immy_list_computers).

[ImmyBot] Mark computers to skip onboarding. Body is a JSON array of skip-onboarding requests (each identifying a computer and its skip options). See immy_list_computers_onboarding for the onboarding queue and immy_computers_set_to_needs_onboarding for the inverse.

ParamTypeRequiredDefaultDescription
bodyJsonstringyesJSON array of skip-onboarding requests.

[ImmyBot] Update the additional (secondary) persons associated with a computer. computerId comes from immy_list_computers; person ids from immy_list_persons. Body carries the additional-person assignments. See also immy_computers_update_primary_person.

ParamTypeRequiredDefaultDescription
bodyJsonstringyesJSON object with the additional-person assignments.
computerIdstringyesComputer id (from immy_list_computers).

[ImmyBot] Update the primary person associated with a computer (its main user). computerId comes from immy_list_computers; person id from immy_list_persons. Body carries the primary-person assignment. See also immy_computers_update_additional_persons.

ParamTypeRequiredDefaultDescription
bodyJsonstringyesJSON object with the primary-person assignment.
computerIdstringyesComputer id (from immy_list_computers).

[ImmyBot] Get a single computer by id, including its default detail (sessions, primary/additional persons and provider-agent data as ImmyBot resolves them). computerId comes from immy_list_computers / immy_list_computers_paged.

ParamTypeRequiredDefaultDescription
computerIdstringyesComputer id (from immy_list_computers).

[ImmyBot] List managed computers (basic view). Only pageSize is supported here (capped at 100). For server-side filtering, sorting or paging use immy_list_computers_paged or immy_list_computers_dx; for per-computer detail use immy_get_computers.

ParamTypeRequiredDefaultDescription
pageSizeintegernonullOptional. Max rows to return (1-100). Defaults to the ImmyBot server default.

[ImmyBot] List computers with their agent connectivity/health status (DevExtreme grid feed). filters/sorts use DevExtreme syntax: filters is a JSON filter array (e.g. ["name","contains","srv"]) and sorts a JSON sort array (e.g. [{"selector":"name","desc":false}]). pageSize is capped at 100. See also immy_list_computers_status for a single computer.

ParamTypeRequiredDefaultDescription
filtersstringnonullOptional. DevExtreme filter expression as a JSON array string.
pageintegernonullOptional. 1-based page number (mapped to DevExtreme skip).
pageSizeintegernonullOptional. Rows per page, 1-100 (DevExtreme take).
sortsstringnonullOptional. DevExtreme sort expression as a JSON array string.

[ImmyBot] Get the device-update form data for a computer (the fields/options used to drive a device update). computerId comes from immy_list_computers.

ParamTypeRequiredDefaultDescription
computerIdstringyesComputer id (from immy_list_computers).

[ImmyBot] List computers via the raw DevExtreme grid feed. Accepts native DevExtreme load options: skip, take (capped at 100), filter (JSON filter array string) and sort (JSON sort array string). Set requireTotalCount=true to include the total row count in the response.

ParamTypeRequiredDefaultDescription
filterstringnonullOptional. DevExtreme filter expression as a JSON array string.
requireTotalCountbooleannonullOptional. Set true to include a total row count.
skipintegernonullOptional. Rows to skip (DevExtreme offset).
sortstringnonullOptional. DevExtreme sort expression as a JSON array string.
takeintegernonullOptional. Rows to take, 1-100.

[ImmyBot] List the event history for a computer. The endpoint pages via skip/take only (no server-side filter/sort); page/pageSize are mapped onto them and pageSize is capped at 100. computerId comes from immy_list_computers.

ParamTypeRequiredDefaultDescription
computerIdstringyesComputer id (from immy_list_computers).
pageintegernonullOptional. 1-based page number (mapped to skip).
pageSizeintegernonullOptional. Rows per page, 1-100 (take).

[ImmyBot] Export the computers grid to an XLSX spreadsheet. The binary is uploaded to StackJack blob storage and returned as a short-lived (~15 minute) read-only SAS URL envelope {sasUrl, contentType, suggestedFilename, sizeBytes, expiresAt} — fetch the file from sasUrl within the window; do NOT decode the URL as content. filters/sorts use DevExtreme syntax.

ParamTypeRequiredDefaultDescription
filtersstringnonullOptional. DevExtreme filter expression as a JSON array string.
sortsstringnonullOptional. DevExtreme sort expression as a JSON array string.

[ImmyBot] List the computers scoped to the calling identity/session. Takes no parameters. For the full tenant inventory use immy_list_computers or immy_list_computers_paged.

[ImmyBot] List computers currently in the onboarding pipeline (awaiting or undergoing onboarding). Takes no parameters. Related actions: immy_computers_skip_onboarding, immy_computers_set_to_needs_onboarding.

[ImmyBot] List computers with DevExtreme server-side paging, filtering and sorting — the richer counterpart to immy_list_computers. filter/sort use DevExtreme syntax (JSON array strings). pageSize is capped at 100. Some vendor convenience boolean flags (staleOnly, onboardingOnly, orphanedOnly and similar) are not exposed by this tool; express the equivalent constraint through the DevExtreme filter instead.

ParamTypeRequiredDefaultDescription
filterstringnonullOptional. DevExtreme filter expression as a JSON array string.
pageintegernonullOptional. 1-based page number (mapped to DevExtreme skip).
pageSizeintegernonullOptional. Rows per page, 1-100 (DevExtreme take).
sortstringnonullOptional. DevExtreme sort expression as a JSON array string.

[ImmyBot] Get the parent-tenant information for a computer (the tenant hierarchy context the computer belongs to). computerId comes from immy_list_computers.

ParamTypeRequiredDefaultDescription
computerIdstringyesComputer id (from immy_list_computers).

[ImmyBot] Get the current status of a single computer (online/agent/maintenance state). computerId comes from immy_list_computers. For a fleet-wide view use immy_list_computers_agent_status.

ParamTypeRequiredDefaultDescription
computerIdstringyesComputer id (from immy_list_computers).

[ImmyBot] Remove one or more tags from a set of computers (bulk). Body carries the computer ids and the tag ids to remove. Counterpart of immy_add_tags_to_computers.

ParamTypeRequiredDefaultDescription
bodyJsonstringyesJSON object with the target computer ids and tag ids to remove.

[ImmyBot] Resolve the onboarding target-assignments (deployments) that can be overridden for a computer — a preview used before onboarding. computerId comes from immy_list_computers. Read-only.

ParamTypeRequiredDefaultDescription
computerIdstringyesComputer id (from immy_list_computers).

[ImmyBot] Update a computer (PUT). computerId comes from immy_list_computers. Body is the computer object with the fields to change (e.g. name, notes, tenant assignment as ImmyBot's schema allows).

ParamTypeRequiredDefaultDescription
computerIdstringyesComputer id to update (from immy_list_computers).
fieldsJsonstringyesJSON object with the computer fields to update.

Computer Inventory

ToolPlanAccessSummary
immy_computers_exclude_from_user_affinityProWriteExclude a single computer from user-affinity tracking.
immy_computers_set_excluded_from_user_affinityProWriteBulk set whether a set of computers are excluded from user-affinity tracking.
immy_get_computers_inventory_script_resultsFreeRead-onlyGet the results of a specific inventory script for a computer, keyed by inventoryKey.
immy_list_computers_detected_computer_softwareFreeRead-onlyList the detected (installed) software for a single computer.
immy_list_computers_inventoryFreeRead-onlyList the collected computer inventory (DevExtreme grid feed).
immy_list_computers_inventory_exportFreeRead-onlyExport the computer-inventory grid to an XLSX spreadsheet.
immy_list_computers_inventory_software_search_by_nameFreeRead-onlySearch the software inventory across computers by (partial) product name.
immy_list_computers_inventory_software_search_by_upgrade_codeFreeRead-onlySearch the software inventory across computers by MSI upgrade code.
immy_list_computers_user_affinitiesFreeRead-onlyList computer↔user affinities (which persons are associated with which computers, inferred from usage).
immy_list_computers_user_affinities_exportFreeRead-onlyExport the computer user-affinity grid to an XLSX spreadsheet.

[ImmyBot] Exclude a single computer from user-affinity tracking. computerId comes from immy_list_computers. Pass for the body unless ImmyBot expects exclusion options. For a bulk operation use immy_computers_set_excluded_from_user_affinity.

ParamTypeRequiredDefaultDescription
bodyJsonstringno""JSON object with the exclusion options. Pass for defaults.
computerIdstringyesComputer id (from immy_list_computers).

[ImmyBot] Bulk set whether a set of computers are excluded from user-affinity tracking. Body carries the computer ids and the excluded flag. For a single computer use immy_computers_exclude_from_user_affinity.

ParamTypeRequiredDefaultDescription
bodyJsonstringyesJSON object with the computer ids and the excluded flag.

[ImmyBot] Get the results of a specific inventory script for a computer, keyed by inventoryKey. computerId comes from immy_list_computers; inventoryKey identifies which inventory-task/script's output to return.

ParamTypeRequiredDefaultDescription
computerIdstringyesComputer id (from immy_list_computers).
inventoryKeystringyesInventory key identifying which inventory script's results to return.

[ImmyBot] List the detected (installed) software for a single computer. computerId comes from immy_list_computers. Returns the full detected-software set (no server-side paging).

ParamTypeRequiredDefaultDescription
computerIdstringyesComputer id (from immy_list_computers).

[ImmyBot] List the collected computer inventory (DevExtreme grid feed). filters/sorts use DevExtreme syntax (JSON array strings); pageSize is capped at 100. For a single computer's detected software use immy_list_computers_detected_computer_software.

ParamTypeRequiredDefaultDescription
filtersstringnonullOptional. DevExtreme filter expression as a JSON array string.
pageintegernonullOptional. 1-based page number (mapped to DevExtreme skip).
pageSizeintegernonullOptional. Rows per page, 1-100 (DevExtreme take).
sortsstringnonullOptional. DevExtreme sort expression as a JSON array string.

[ImmyBot] Export the computer-inventory grid to an XLSX spreadsheet. Returns a short-lived (~15 minute) read-only SAS URL envelope {sasUrl, contentType, suggestedFilename, sizeBytes, expiresAt} — fetch the file from sasUrl within the window; do NOT decode the URL as content. filters/sorts use DevExtreme syntax.

ParamTypeRequiredDefaultDescription
filtersstringnonullOptional. DevExtreme filter expression as a JSON array string.
sortsstringnonullOptional. DevExtreme sort expression as a JSON array string.

[ImmyBot] Search the software inventory across computers by (partial) product name. Returns matching installed-software records. Use immy_list_computers_inventory_software_search_by_upgrade_code to search by MSI upgrade code instead.

ParamTypeRequiredDefaultDescription
namestringyesSoftware name (or substring) to search for.

[ImmyBot] Search the software inventory across computers by MSI upgrade code. Returns matching installed-software records. Use immy_list_computers_inventory_software_search_by_name to search by product name instead.

ParamTypeRequiredDefaultDescription
upgradeCodestringyesMSI upgrade code (or substring) to search for.

[ImmyBot] List computer↔user affinities (which persons are associated with which computers, inferred from usage). DevExtreme grid feed — filters/sorts use DevExtreme syntax (JSON array strings); pageSize is capped at 100.

ParamTypeRequiredDefaultDescription
filtersstringnonullOptional. DevExtreme filter expression as a JSON array string.
pageintegernonullOptional. 1-based page number (mapped to DevExtreme skip).
pageSizeintegernonullOptional. Rows per page, 1-100 (DevExtreme take).
sortsstringnonullOptional. DevExtreme sort expression as a JSON array string.

[ImmyBot] Export the computer user-affinity grid to an XLSX spreadsheet. Returns a short-lived (~15 minute) read-only SAS URL envelope {sasUrl, contentType, suggestedFilename, sizeBytes, expiresAt} — fetch the file from sasUrl within the window; do NOT decode the URL as content. filters/sorts use DevExtreme syntax.

ParamTypeRequiredDefaultDescription
filtersstringnonullOptional. DevExtreme filter expression as a JSON array string.
sortsstringnonullOptional. DevExtreme sort expression as a JSON array string.

Computer Agents

ToolPlanAccessSummary
immy_computers_ephemeral_agent_circuit_breaker_resetProWriteReset the ephemeral-agent circuit breaker for a computer (clears the tripped state so agent launches are retried).
immy_computers_registry_keysFreeRead-onlyEnumerate the registry sub-keys under a supplied path on a computer (read-only; POST is used to carry the query path).
immy_computers_registry_valuesFreeRead-onlyRead the registry values under a supplied key on a computer (read-only; POST is used to carry the query key).
immy_end_ephemeral_agent_sessionProDestructiveEnd (terminate) the live ephemeral-agent session on a computer.
immy_launch_ephemeral_agentProDestructiveLaunch a short-lived ephemeral agent on a computer (an ACTION despite the GET verb — it establishes a live agent session, so it is NOT read-only).
immy_list_computers_ephemeral_agentFreeRead-onlyGet the current ephemeral-agent state for a computer (whether a short-lived agent session is active and its details).
immy_list_computers_ephemeral_agent_circuit_breakerFreeRead-onlyGet the ephemeral-agent circuit-breaker state for a computer (whether repeated agent-launch failures have tripped the breaker).
immy_list_computers_provider_links_screen_share_urlFreeRead-onlyGet the provider-link screen-share (remote-control) URL for a computer through a specific provider integration.

[ImmyBot] Reset the ephemeral-agent circuit breaker for a computer (clears the tripped state so agent launches are retried). computerId comes from immy_list_computers. This action takes no options — pass for the body. Inspect state first with immy_list_computers_ephemeral_agent_circuit_breaker.

ParamTypeRequiredDefaultDescription
bodyJsonstringno""Optional JSON body. This action takes no options — pass (the default).
computerIdstringyesComputer id (from immy_list_computers).

[ImmyBot] Enumerate the registry sub-keys under a supplied path on a computer (read-only; POST is used to carry the query path). computerId comes from immy_list_computers. Body identifies the hive/path to enumerate (e.g. {"path":"HKLM:\SOFTWARE"}). Use immy_computers_registry_values to read the values within a key.

ParamTypeRequiredDefaultDescription
bodyJsonstringyesJSON object identifying the registry hive/path to enumerate.
computerIdstringyesComputer id (from immy_list_computers).

[ImmyBot] Read the registry values under a supplied key on a computer (read-only; POST is used to carry the query key). computerId comes from immy_list_computers. Body identifies the hive/key to read (e.g. {"path":"HKLM:\SOFTWARE\..."}). Use immy_computers_registry_keys to list sub-keys first.

ParamTypeRequiredDefaultDescription
bodyJsonstringyesJSON object identifying the registry hive/key whose values to read.
computerIdstringyesComputer id (from immy_list_computers).

[ImmyBot] End (terminate) the live ephemeral-agent session on a computer. DESTRUCTIVE — the active agent session is torn down immediately; any in-flight work on that session is interrupted. computerId comes from immy_list_computers. Launch a new session with immy_launch_ephemeral_agent.

ParamTypeRequiredDefaultDescription
computerIdstringyesComputer id (from immy_list_computers).

[ImmyBot] Launch a short-lived ephemeral agent on a computer (an ACTION despite the GET verb — it establishes a live agent session, so it is NOT read-only). computerId comes from immy_list_computers. Check state with immy_list_computers_ephemeral_agent and tear down with immy_end_ephemeral_agent_session.

ParamTypeRequiredDefaultDescription
computerIdstringyesComputer id (from immy_list_computers).

[ImmyBot] Get the current ephemeral-agent state for a computer (whether a short-lived agent session is active and its details). computerId comes from immy_list_computers. Launch one with immy_launch_ephemeral_agent; end one with immy_end_ephemeral_agent_session.

ParamTypeRequiredDefaultDescription
computerIdstringyesComputer id (from immy_list_computers).

[ImmyBot] Get the ephemeral-agent circuit-breaker state for a computer (whether repeated agent-launch failures have tripped the breaker). computerId comes from immy_list_computers. Reset it with immy_computers_ephemeral_agent_circuit_breaker_reset.

ParamTypeRequiredDefaultDescription
computerIdstringyesComputer id (from immy_list_computers).

Software

ToolPlanAccessSummary
immy_delete_software_globalProDestructiveDelete a global software item by softwareIdentifier, including all its versions.
immy_delete_software_localProDestructiveDelete a local software item by softwareIdentifier, including all its versions.
immy_get_software_globalFreeRead-onlyGet a single global software item by softwareIdentifier (from immy_list_software_global).
immy_get_software_localFreeRead-onlyGet a single local software item by softwareIdentifier (from immy_list_software_local).
immy_list_software_globalFreeRead-onlyList global (shared/vendor-maintained) software items, optionally filtered with a Sieve `filters` expression.
immy_list_software_global_latestFreeRead-onlyGet the latest version of a global software item by softwareIdentifier (from immy_list_software_global).
immy_list_software_localFreeRead-onlyList local (instance-authored) software items, optionally filtered with a Sieve `filters` expression.
immy_list_software_local_authorizationFreeRead-onlyGet the authorization (tenant/scope access) configuration for a local software item by softwareIdentifier.
immy_list_software_local_latestFreeRead-onlyGet the latest version of a local software item by softwareIdentifier (from immy_list_software_local).
immy_list_software_local_migrate_local_to_global_what_ifFreeRead-onlyPreview (what-if) migrating a local software item to the global catalog by softwareIdentifier — reports what would change WITHOUT migrating.
immy_patch_software_globalProWritePartially update a global software item by softwareIdentifier.
immy_patch_software_localProWritePartially update a local software item by softwareIdentifier.
immy_software_globalProWriteCreate a global software item.
immy_software_global_analyzeFreeRead-onlyAnalyze a global software definition WITHOUT saving it — a read-only preview that returns detection/install evaluation for the supplied definition.
immy_software_global_fast_createProWriteFast-create a global software item from a minimal definition (ImmyBot infers install/detection defaults).
immy_software_global_uploadProWriteUpload an installer binary for global software (multipart/form-data).
immy_software_localProWriteCreate a local (instance-authored) software item.
immy_software_local_analyzeFreeRead-onlyAnalyze a local software definition WITHOUT saving it — a read-only preview returning detection/install evaluation for the supplied definition.
immy_software_local_authorizationProWriteSet the authorization (tenant/scope access) for a local software item by softwareIdentifier.
immy_software_local_fast_createProWriteFast-create a local software item from a minimal definition (ImmyBot infers install/detection defaults).
immy_software_local_migrate_local_to_globalProWriteMigrate a local software item to the global catalog by softwareIdentifier, making it shared across the instance.
immy_software_local_uploadProWriteUpload an installer binary for local software (multipart/form-data).

[ImmyBot] Delete a global software item by softwareIdentifier, including all its versions. Deployments (target-assignments) referencing it will break. Cannot be undone. Returns the raw ImmyBot result.

ParamTypeRequiredDefaultDescription
softwareIdentifierstringyesThe global software identifier to delete (from immy_list_software_global).

[ImmyBot] Delete a local software item by softwareIdentifier, including all its versions. Deployments (target-assignments) referencing it will break. Cannot be undone. Returns the raw ImmyBot result.

ParamTypeRequiredDefaultDescription
softwareIdentifierstringyesThe local software identifier to delete (from immy_list_software_local).

[ImmyBot] Get a single global software item by softwareIdentifier (from immy_list_software_global). Returns the raw ImmyBot software JSON. Use immy_list_software_global_versions for its version list.

ParamTypeRequiredDefaultDescription
softwareIdentifierstringyesThe global software identifier (from immy_list_software_global).

[ImmyBot] Get a single local software item by softwareIdentifier (from immy_list_software_local). Returns the raw ImmyBot software JSON. Use immy_list_software_local_versions for its version list.

ParamTypeRequiredDefaultDescription
softwareIdentifierstringyesThe local software identifier (from immy_list_software_local).

[ImmyBot] List global (shared/vendor-maintained) software items, optionally filtered with a Sieve `filters` expression. Global software is available to every tenant. Returns raw ImmyBot JSON. Use immy_get_software_global for one item, immy_list_software_global_versions for its versions, or immy_list_software_local for instance-authored software.

ParamTypeRequiredDefaultDescription
filtersstringnonullSieve filter expression, e.g. "name@=Chrome". Omit for no filter.
pageintegernonull1-based page number. Omit for the first page.
pageSizeintegernonullResults per page (clamped to 100).
sortsstringnonullSieve sort expression (leading - = descending). Omit for default order.

[ImmyBot] Get the latest version of a global software item by softwareIdentifier (from immy_list_software_global). Returns the raw ImmyBot version JSON for the newest version. Use immy_list_software_global_versions for the full history.

ParamTypeRequiredDefaultDescription
softwareIdentifierstringyesThe global software identifier (from immy_list_software_global).

[ImmyBot] List local (instance-authored) software items, optionally filtered with a Sieve `filters` expression. Local software is defined inside this ImmyBot instance and can be migrated to global. Returns raw ImmyBot JSON. Use immy_get_software_local for one item, or immy_list_software_global for shared software.

ParamTypeRequiredDefaultDescription
filtersstringnonullSieve filter expression, e.g. "name@=Line-of-Business". Omit for no filter.
pageintegernonull1-based page number. Omit for the first page.
pageSizeintegernonullResults per page (clamped to 100).
sortsstringnonullSieve sort expression (leading - = descending). Omit for default order.

[ImmyBot] Get the authorization (tenant/scope access) configuration for a local software item by softwareIdentifier. Shows which tenants may use it. Returns raw ImmyBot JSON. Use immy_software_local_authorization to change it.

ParamTypeRequiredDefaultDescription
softwareIdentifierstringyesThe local software identifier (from immy_list_software_local).

[ImmyBot] Get the latest version of a local software item by softwareIdentifier (from immy_list_software_local). Returns the raw ImmyBot version JSON for the newest version. Use immy_list_software_local_versions for the full history.

ParamTypeRequiredDefaultDescription
softwareIdentifierstringyesThe local software identifier (from immy_list_software_local).

[ImmyBot] Preview (what-if) migrating a local software item to the global catalog by softwareIdentifier — reports what would change WITHOUT migrating. Run this before immy_software_local_migrate_local_to_global. Returns the raw ImmyBot preview JSON.

ParamTypeRequiredDefaultDescription
softwareIdentifierstringyesThe local software identifier to preview migrating (from immy_list_software_local).

[ImmyBot] Partially update a global software item by softwareIdentifier. Provide a JSON object body (fieldsJson) with only the fields to change (JSON merge-patch semantics). Returns the updated software JSON.

ParamTypeRequiredDefaultDescription
fieldsJsonstringyesJSON object body with only the fields to change (partial update).
softwareIdentifierstringyesThe global software identifier to update (from immy_list_software_global).

[ImmyBot] Partially update a local software item by softwareIdentifier. Provide a JSON object body (fieldsJson) with only the fields to change (JSON merge-patch semantics). Returns the updated software JSON.

ParamTypeRequiredDefaultDescription
fieldsJsonstringyesJSON object body with only the fields to change (partial update).
softwareIdentifierstringyesThe local software identifier to update (from immy_list_software_local).

[ImmyBot] Create a global software item. Provide a JSON object body (fieldsJson) with the software definition (name, install/detection method, etc.). For a quick minimal create use immy_software_global_fast_create; to upload the installer binary use immy_software_global_upload; add versions with immy_create_global_software_version. Returns the created software JSON.

ParamTypeRequiredDefaultDescription
fieldsJsonstringyesJSON object body describing the global software item.

[ImmyBot] Analyze a global software definition WITHOUT saving it — a read-only preview that returns detection/install evaluation for the supplied definition. Provide a JSON object body (fieldsJson) describing the software/version to analyze. POST is used only to carry the body; nothing is created. Returns the raw analysis JSON.

ParamTypeRequiredDefaultDescription
fieldsJsonstringyesJSON object body describing the global software/version definition to analyze.

[ImmyBot] Fast-create a global software item from a minimal definition (ImmyBot infers install/detection defaults). Provide a JSON object body (fieldsJson) — typically just name and package/source hints. Use immy_software_global for full control. Returns the created software JSON.

ParamTypeRequiredDefaultDescription
fieldsJsonstringyesMinimal JSON object body (name and package/source hints).

[ImmyBot] Upload an installer binary for global software (multipart/form-data). Provide the file bytes base64-encoded (base64Content) and a fileName; the file is posted as the `file` form part. Returns the raw ImmyBot upload result JSON (reference the uploaded payload when creating a version with immy_create_global_software_version).

ParamTypeRequiredDefaultDescription
base64ContentstringyesThe installer file, base64-encoded.
fileNamestringyesThe original file name (e.g. "setup.exe").

[ImmyBot] Create a local (instance-authored) software item. Provide a JSON object body (fieldsJson) with the software definition. For a quick minimal create use immy_software_local_fast_create; to upload the installer use immy_software_local_upload; add versions with immy_create_local_software_version. Returns the created software JSON.

ParamTypeRequiredDefaultDescription
fieldsJsonstringyesJSON object body describing the local software item.

[ImmyBot] Analyze a local software definition WITHOUT saving it — a read-only preview returning detection/install evaluation for the supplied definition. Provide a JSON object body (fieldsJson). POST is used only to carry the body; nothing is created. Returns the raw analysis JSON.

ParamTypeRequiredDefaultDescription
fieldsJsonstringyesJSON object body describing the local software/version definition to analyze.

[ImmyBot] Set the authorization (tenant/scope access) for a local software item by softwareIdentifier. Provide a JSON object body (fieldsJson) describing which tenants/scopes may use it. Read the current config first with immy_list_software_local_authorization. Returns the raw ImmyBot result.

ParamTypeRequiredDefaultDescription
fieldsJsonstringyesJSON object body describing the tenant/scope authorization.
softwareIdentifierstringyesThe local software identifier (from immy_list_software_local).

[ImmyBot] Fast-create a local software item from a minimal definition (ImmyBot infers install/detection defaults). Provide a JSON object body (fieldsJson) — typically just name and package/source hints. Use immy_software_local for full control. Returns the created software JSON.

ParamTypeRequiredDefaultDescription
fieldsJsonstringyesMinimal JSON object body (name and package/source hints).

[ImmyBot] Migrate a local software item to the global catalog by softwareIdentifier, making it shared across the instance. Preview the effect first with immy_list_software_local_migrate_local_to_global_what_if. The optional fieldsJson carries migration options (usually none — leave as ). Returns the raw ImmyBot result.

ParamTypeRequiredDefaultDescription
fieldsJsonstringno""Optional JSON object body with migration options. Leave as "" (default) when none are needed.
softwareIdentifierstringyesThe local software identifier to migrate (from immy_list_software_local).

[ImmyBot] Upload an installer binary for local software (multipart/form-data). Provide the file bytes base64-encoded (base64Content) and a fileName; the file is posted as the `file` form part. Returns the raw ImmyBot upload result JSON (reference the uploaded payload when creating a version with immy_create_local_software_version).

ParamTypeRequiredDefaultDescription
base64ContentstringyesThe installer file, base64-encoded.
fileNamestringyesThe original file name (e.g. "setup.msi").

Software Versions

ToolPlanAccessSummary
immy_create_global_software_versionProWriteAdd a new version to a global software item (softwareIdentifier from immy_list_software_global).
immy_create_local_software_versionProWriteAdd a new version to a local software item (softwareIdentifier from immy_list_software_local).
immy_delete_software_global_versionsProDestructiveDelete a version from a global software item (softwareIdentifier + semanticVersion).
immy_delete_software_local_versionsProDestructiveDelete a version from a local software item (softwareIdentifier + semanticVersion).
immy_get_software_global_versionsFreeRead-onlyGet a single global software version by softwareIdentifier + semanticVersion (both from immy_list_software_global_versions).
immy_get_software_local_versionsFreeRead-onlyGet a single local software version by softwareIdentifier + semanticVersion (both from immy_list_software_local_versions).
immy_list_software_global_versionsFreeRead-onlyList the versions of a global (shared/vendor) software item by its softwareIdentifier (from immy_list_software_global / immy_get_software_global).
immy_list_software_global_versions_request_downloadFreeRead-onlyRequest a download URL for a global software version's install payload by softwareIdentifier + semanticVersion.
immy_list_software_local_versionsFreeRead-onlyList the versions of a local (per-instance) software item by its softwareIdentifier (from immy_list_software_local / immy_get_software_local).
immy_list_software_local_versions_request_downloadFreeRead-onlyRequest a download URL for a local software version's install payload by softwareIdentifier + semanticVersion.
immy_patch_software_global_versionsProWritePartially update a global software version (softwareIdentifier + semanticVersion).
immy_patch_software_local_versionsProWritePartially update a local software version (softwareIdentifier + semanticVersion).

[ImmyBot] Add a new version to a global software item (softwareIdentifier from immy_list_software_global). Provide a JSON object body (fieldsJson) with the semanticVersion, install/detection metadata, and payload reference. To upload the binary, use immy_software_global_upload. Returns the created version JSON.

ParamTypeRequiredDefaultDescription
fieldsJsonstringyesJSON object body for the new version (semanticVersion, install/detection metadata, payload reference).
softwareIdentifierstringyesThe global software identifier to add a version to (from immy_list_software_global).

[ImmyBot] Add a new version to a local software item (softwareIdentifier from immy_list_software_local). Provide a JSON object body (fieldsJson) with the semanticVersion, install/detection metadata, and payload reference. To upload the binary, use immy_software_local_upload. Returns the created version JSON.

ParamTypeRequiredDefaultDescription
fieldsJsonstringyesJSON object body for the new version (semanticVersion, install/detection metadata, payload reference).
softwareIdentifierstringyesThe local software identifier to add a version to (from immy_list_software_local).

[ImmyBot] Delete a version from a global software item (softwareIdentifier + semanticVersion). Deployments pinned to this version will no longer resolve. Cannot be undone. Returns the raw ImmyBot result.

ParamTypeRequiredDefaultDescription
semanticVersionstringyesThe semantic version to delete (from immy_list_software_global_versions).
softwareIdentifierstringyesThe global software identifier (from immy_list_software_global).

[ImmyBot] Delete a version from a local software item (softwareIdentifier + semanticVersion). Deployments pinned to this version will no longer resolve. Cannot be undone. Returns the raw ImmyBot result.

ParamTypeRequiredDefaultDescription
semanticVersionstringyesThe semantic version to delete (from immy_list_software_local_versions).
softwareIdentifierstringyesThe local software identifier (from immy_list_software_local).

[ImmyBot] Get a single global software version by softwareIdentifier + semanticVersion (both from immy_list_software_global_versions). Returns the raw ImmyBot version JSON, including install metadata.

ParamTypeRequiredDefaultDescription
semanticVersionstringyesThe semantic version, e.g. "119.0.6045.124" (from immy_list_software_global_versions).
softwareIdentifierstringyesThe global software identifier (from immy_list_software_global).

[ImmyBot] Get a single local software version by softwareIdentifier + semanticVersion (both from immy_list_software_local_versions). Returns the raw ImmyBot version JSON, including install metadata.

ParamTypeRequiredDefaultDescription
semanticVersionstringyesThe semantic version, e.g. "1.2.3" (from immy_list_software_local_versions).
softwareIdentifierstringyesThe local software identifier (from immy_list_software_local).

[ImmyBot] List the versions of a global (shared/vendor) software item by its softwareIdentifier (from immy_list_software_global / immy_get_software_global). Returns raw ImmyBot JSON. Use immy_get_software_global_versions for one version, or immy_list_software_global_latest for the newest.

ParamTypeRequiredDefaultDescription
filtersstringnonullSieve filter expression. Omit for no filter.
pageintegernonull1-based page number. Omit for the first page.
pageSizeintegernonullResults per page (clamped to 100).
softwareIdentifierstringyesThe global software identifier (from immy_list_software_global).
sortsstringnonullSieve sort expression (leading - = descending). Omit for default order.

[ImmyBot] Request a download URL for a global software version's install payload by softwareIdentifier + semanticVersion. Returns a JSON body containing the URL string — a normal passthrough read, not a binary export. Fetch the URL out-of-band to retrieve the payload.

ParamTypeRequiredDefaultDescription
semanticVersionstringyesThe semantic version whose payload URL to request (from immy_list_software_global_versions).
softwareIdentifierstringyesThe global software identifier (from immy_list_software_global).

[ImmyBot] List the versions of a local (per-instance) software item by its softwareIdentifier (from immy_list_software_local / immy_get_software_local). Returns raw ImmyBot JSON. Use immy_get_software_local_versions for one version, or immy_list_software_local_latest for the newest.

ParamTypeRequiredDefaultDescription
filtersstringnonullSieve filter expression. Omit for no filter.
pageintegernonull1-based page number. Omit for the first page.
pageSizeintegernonullResults per page (clamped to 100).
softwareIdentifierstringyesThe local software identifier (from immy_list_software_local).
sortsstringnonullSieve sort expression (leading - = descending). Omit for default order.

[ImmyBot] Request a download URL for a local software version's install payload by softwareIdentifier + semanticVersion. Returns a JSON body containing the URL string — a normal passthrough read, not a binary export. Fetch the URL out-of-band to retrieve the payload.

ParamTypeRequiredDefaultDescription
semanticVersionstringyesThe semantic version whose payload URL to request (from immy_list_software_local_versions).
softwareIdentifierstringyesThe local software identifier (from immy_list_software_local).

[ImmyBot] Partially update a global software version (softwareIdentifier + semanticVersion). Provide a JSON object body (fieldsJson) with only the fields to change (JSON merge-patch semantics). Returns the updated version JSON.

ParamTypeRequiredDefaultDescription
fieldsJsonstringyesJSON object body with only the fields to change (partial update).
semanticVersionstringyesThe semantic version to update (from immy_list_software_global_versions).
softwareIdentifierstringyesThe global software identifier (from immy_list_software_global).

[ImmyBot] Partially update a local software version (softwareIdentifier + semanticVersion). Provide a JSON object body (fieldsJson) with only the fields to change (JSON merge-patch semantics). Returns the updated version JSON.

ParamTypeRequiredDefaultDescription
fieldsJsonstringyesJSON object body with only the fields to change (partial update).
semanticVersionstringyesThe semantic version to update (from immy_list_software_local_versions).
softwareIdentifierstringyesThe local software identifier (from immy_list_software_local).

Licenses

ToolPlanAccessSummary
immy_delete_licensesProDestructiveDelete a software license by id (from immy_list_licenses).
immy_get_licensesFreeRead-onlyGet a single software license by id (from immy_list_licenses).
immy_licensesProWriteCreate a software license.
immy_licenses_uploadProWriteUpload a license file (multipart/form-data).
immy_list_chocolatey_find_packages_by_idFreeRead-onlyLook up Chocolatey community-feed packages by exact package id (e.g. "googlechrome", "7zip").
immy_list_chocolatey_searchFreeRead-onlyFuzzy-search the Chocolatey community feed by term (matches package id/title).
immy_list_licensesFreeRead-onlyList software licenses, optionally filtered with a Sieve `filters` expression (e.g. "name@=Adobe").
immy_list_licenses_dxFreeRead-onlyDevExtreme grid feed for the licenses table (skip/take paging plus DevExtreme filter/sort).
immy_list_licenses_request_downloadFreeRead-onlyRequest a download URL for a license's uploaded file by license id (from immy_list_licenses).
immy_update_licensesProDestructiveUpdate (full replace) a software license by id (from immy_list_licenses).

[ImmyBot] Delete a software license by id (from immy_list_licenses). This permanently removes the license and its stored key/file; deployments that reference it will no longer activate. Cannot be undone. Returns the raw ImmyBot result.

ParamTypeRequiredDefaultDescription
licenseIdstringyesThe license id to delete (from immy_list_licenses).

[ImmyBot] Get a single software license by id (from immy_list_licenses). Returns the raw ImmyBot license JSON. Use immy_list_licenses_request_download for a download URL to the license file, if any.

ParamTypeRequiredDefaultDescription
licenseIdstringyesThe license id (from immy_list_licenses).

[ImmyBot] Create a software license. Provide a JSON object body (fieldsJson) — typically name, softwareId (from immy_list_software_global/immy_list_software_local), the license key/value, and any tenant/scope fields. To attach a license FILE, create the license then use immy_licenses_upload. Returns the created license JSON.

ParamTypeRequiredDefaultDescription
fieldsJsonstringyesJSON object body describing the license (name, softwareId, key, scope, …).

[ImmyBot] Upload a license file (multipart/form-data). Provide the file bytes base64-encoded (base64Content) and a fileName. The file is decoded and posted as the `file` form part. Returns the raw ImmyBot upload result JSON. Pair with immy_licenses to bind the uploaded file to a license record.

ParamTypeRequiredDefaultDescription
base64ContentstringyesThe license file, base64-encoded.
fileNamestringyesThe original file name (e.g. "office-license.lic").

[ImmyBot] Look up Chocolatey community-feed packages by exact package id (e.g. "googlechrome", "7zip"). Use this when authoring a Chocolatey-backed global/local software item to confirm the package id and available versions. Returns the raw Chocolatey search JSON. See immy_list_chocolatey_search for a fuzzy term search.

ParamTypeRequiredDefaultDescription
idstringnonullExact Chocolatey package id to look up (e.g. "googlechrome"). Omit to return the default result set.
pageintegernonull1-based page number for the Sieve page window. Omit for the first page.
pageSizeintegernonullResults per page (clamped to 100).

[ImmyBot] Fuzzy-search the Chocolatey community feed by term (matches package id/title). Use this to discover the correct package id before authoring a Chocolatey-backed software item; then confirm with immy_list_chocolatey_find_packages_by_id. Returns the raw Chocolatey search JSON.

ParamTypeRequiredDefaultDescription
pageintegernonull1-based page number for the Sieve page window. Omit for the first page.
pageSizeintegernonullResults per page (clamped to 100).
querystringnonullFree-text search term (matches package id/title, e.g. "chrome"). Omit to return the default result set.

[ImmyBot] List software licenses, optionally filtered with a Sieve `filters` expression (e.g. "name@=Adobe"). Each license binds an activation key/file to software applied during deployment. Returns raw ImmyBot JSON. Use immy_list_licenses_dx for the grid/DevExtreme feed, or immy_get_licenses for a single license.

ParamTypeRequiredDefaultDescription
filtersstringnonullSieve filter expression, e.g. "name@=Adobe" (contains) or "softwareId==123". Omit for no filter.
pageintegernonull1-based page number. Omit for the first page.
pageSizeintegernonullResults per page (clamped to 100).
sortsstringnonullSieve sort expression, e.g. "name" or "-createdDate" (leading - = descending). Omit for default order.

[ImmyBot] DevExtreme grid feed for the licenses table (skip/take paging plus DevExtreme filter/sort). This backs the ImmyBot UI grid; prefer immy_list_licenses for straightforward listing. Returns the raw DevExtreme envelope {data, totalCount}.

ParamTypeRequiredDefaultDescription
filterstringnonullDevExtreme filter expression (JSON array form). Omit for no filter.
requireTotalCountbooleannonullIf true, the response includes totalCount. Omit to let the server decide.
skipintegernonullNumber of records to skip (DevExtreme paging offset). Omit for 0.
sortstringnonullDevExtreme sort expression (JSON array form). Omit for default order.
takeintegernonullNumber of records to take (clamped to 100).

[ImmyBot] Request a download URL for a license's uploaded file by license id (from immy_list_licenses). Returns a JSON body containing the URL string — this is a normal passthrough read, not a binary export. Fetch the URL out-of-band to retrieve the file.

ParamTypeRequiredDefaultDescription
licenseIdstringyesThe license id whose file download URL to request (from immy_list_licenses).

[ImmyBot] Update (full replace) a software license by id (from immy_list_licenses). Provide the complete JSON object body (fieldsJson) — omitted fields are cleared, so fetch with immy_get_licenses first and send the merged object. Returns the updated license JSON.

ParamTypeRequiredDefaultDescription
fieldsJsonstringyesComplete JSON object body for the license (full replace).
licenseIdstringyesThe license id to update (from immy_list_licenses).

Script Catalog & Functions

ToolPlanAccessSummary
immy_list_metascript_catalog_describeFreeRead-onlyList the metascript catalog with full descriptions — the reusable ImmyBot metascript building blocks available to compose scripts and maintenance tasks.
immy_list_metascript_catalog_searchFreeRead-onlySearch the metascript catalog by keyword.
immy_list_scripts_functionsFreeRead-onlyList the PowerShell/metascript functions exposed to scripts (the built-in function library scripts can call).
immy_list_scripts_language_service_languageFreeRead-onlyGet the language/analysis state for an active script language-service terminal.
immy_scripts_functions_syntaxFreeRead-onlyAnalyze the syntax of a script function (read-only static analysis — a POST that inspects, not a write).
immy_scripts_language_service_startProWriteStart a script language-service session (editor/analysis backend), returning a terminalId used by immy_list_scripts_language_service_language.

[ImmyBot] List the metascript catalog with full descriptions — the reusable ImmyBot metascript building blocks available to compose scripts and maintenance tasks. Sieve-paged (Page/pageSize/Filters/Sorts); pageSize is clamped to 100. Use immy_list_metascript_catalog_search for a lighter keyword search.

ParamTypeRequiredDefaultDescription
filtersstringnonullSieve Filters expression, e.g. 'name@=backup'. Optional.
pageintegernonullSieve page number (1-based). Optional.
pageSizeintegernonullSieve page size (max 100). Optional.
sortsstringnonullSieve Sorts expression, e.g. 'name' or '-createdAt'. Optional.

[ImmyBot] Search the metascript catalog by keyword. Sieve-paged (Page/pageSize/Filters/Sorts); pageSize is clamped to 100. Use immy_list_metascript_catalog_describe for full catalog entry descriptions.

ParamTypeRequiredDefaultDescription
filtersstringnonullSieve Filters expression, e.g. 'name@=install'. Optional.
pageintegernonullSieve page number (1-based). Optional.
pageSizeintegernonullSieve page size (max 100). Optional.
sortsstringnonullSieve Sorts expression, e.g. 'name'. Optional.

[ImmyBot] List the PowerShell/metascript functions exposed to scripts (the built-in function library scripts can call). Sieve-paged (Page/pageSize/Filters/Sorts); pageSize is clamped to 100. Validate a function's PowerShell syntax with immy_scripts_functions_syntax.

ParamTypeRequiredDefaultDescription
filtersstringnonullSieve Filters expression. Optional.
pageintegernonullSieve page number (1-based). Optional.
pageSizeintegernonullSieve page size (max 100). Optional.
sortsstringnonullSieve Sorts expression. Optional.

[ImmyBot] Get the language/analysis state for an active script language-service terminal. terminalId comes from immy_scripts_language_service_start. Read-only editor support surface.

ParamTypeRequiredDefaultDescription
terminalIdstringyesLanguage-service terminal id (from immy_scripts_language_service_start).

[ImmyBot] Analyze the syntax of a script function (read-only static analysis — a POST that inspects, not a write). Body carries the function source to check; returns parse/syntax diagnostics. No script is created or run.

ParamTypeRequiredDefaultDescription
bodyJsonstringyesJSON object with the function source/body to analyze. Passed through verbatim to POST /api/v1/scripts/functions/syntax.

[ImmyBot] Start a script language-service session (editor/analysis backend), returning a terminalId used by immy_list_scripts_language_service_language. Body carries the session/init options. This allocates a server-side session — a write.

ParamTypeRequiredDefaultDescription
bodyJsonstringyesJSON object with the language-service start options. Passed through verbatim to POST /api/v1/scripts/language-service/start.

Script Execution

ToolPlanAccessSummary
immy_cancel_debug_script_runProDestructiveCancel an in-progress debug script run identified by cancellationId.
immy_list_scripts_disabled_preflight_scriptsFreeRead-onlyList the preflight scripts currently disabled (preflight scripts run before maintenance to decide applicability).
immy_scripts_default_variablesFreeRead-onlyResolve the default variables ImmyBot would supply for a script (a POST that computes/reads defaults — it does not run the script or change state).
immy_scripts_does_script_have_param_blockFreeRead-onlyInspect a script and report whether it declares a PowerShell param() block (read-only static analysis via POST).
immy_scripts_runProDestructiveExecute a script against target computers/tenants.
immy_scripts_run_adhoc_metascriptProDestructiveExecute an ad-hoc metascript (inline PowerShell/metascript code, not a saved script) against targets.
immy_scripts_set_preflight_script_enablementProWriteEnable or disable a preflight script.
immy_scripts_syntax_checkFreeRead-onlyStatic syntax check of a script (a POST that parses and returns diagnostics — it does not run the script).
immy_scripts_validate_param_block_parametersFreeRead-onlyValidate a set of parameters against a script's param() block (read-only validation via POST — it checks, it does not persist anything).

[ImmyBot] Cancel an in-progress debug script run identified by cancellationId. This aborts a running execution — flagged Destructive because it terminates work in flight. Body carries any additional cancel options.

ParamTypeRequiredDefaultDescription
bodyJsonstringyesJSON object with additional cancel options (may be an empty object ''). Passed through verbatim to POST /api/v1/scripts/debug/cancel/.
cancellationIdstringyesThe cancellation id of the debug script run to cancel.

[ImmyBot] List the preflight scripts currently disabled (preflight scripts run before maintenance to decide applicability). Sieve-paged (Page/pageSize/Filters/Sorts); pageSize is clamped to 100. Toggle enablement with immy_scripts_set_preflight_script_enablement.

ParamTypeRequiredDefaultDescription
filtersstringnonullSieve Filters expression. Optional.
pageintegernonullSieve page number (1-based). Optional.
pageSizeintegernonullSieve page size (max 100). Optional.
sortsstringnonullSieve Sorts expression. Optional.

[ImmyBot] Resolve the default variables ImmyBot would supply for a script (a POST that computes/reads defaults — it does not run the script or change state). Body carries the script/context to evaluate; returns the resolved variable set.

ParamTypeRequiredDefaultDescription
bodyJsonstringyesJSON object describing the script/context to resolve defaults for. Passed through verbatim to POST /api/v1/scripts/default-variables.

[ImmyBot] Inspect a script and report whether it declares a PowerShell param() block (read-only static analysis via POST). Body carries the script source; returns a boolean/analysis result. No script is created or run.

ParamTypeRequiredDefaultDescription
bodyJsonstringyesJSON object with the script source to inspect. Passed through verbatim to POST /api/v1/scripts/does-script-have-param-block.

[ImmyBot] Execute a script against target computers/tenants. This RUNS PowerShell/metascript code on managed endpoints and can change system state — flagged Destructive so it requires explicit approval. Body carries the script reference, target selection, and parameters. Preview/validate first with immy_scripts_syntax_check and immy_scripts_validate_param_block_parameters.

ParamTypeRequiredDefaultDescription
bodyJsonstringyesJSON object with the script reference, targets, and parameters. Passed through verbatim to POST /api/v1/scripts/run.

[ImmyBot] Execute an ad-hoc metascript (inline PowerShell/metascript code, not a saved script) against targets. This RUNS arbitrary code on managed endpoints and can change system state — flagged Destructive so it requires explicit approval. Body carries the metascript source, target selection, and parameters.

ParamTypeRequiredDefaultDescription
bodyJsonstringyesJSON object with the ad-hoc metascript source, targets, and parameters. Passed through verbatim to POST /api/v1/scripts/run-adhoc-metascript.

[ImmyBot] Enable or disable a preflight script. Body carries the script identifier and desired enabled state. Changes which preflight checks run before maintenance — a configuration write. Use immy_list_scripts_disabled_preflight_scripts to see current state.

ParamTypeRequiredDefaultDescription
bodyJsonstringyesJSON object with the script id and enabled flag. Passed through verbatim to POST /api/v1/scripts/set-preflight-script-enablement.

[ImmyBot] Static syntax check of a script (a POST that parses and returns diagnostics — it does not run the script). Body carries the script source; returns parse errors/warnings.

ParamTypeRequiredDefaultDescription
bodyJsonstringyesJSON object with the script source to syntax-check. Passed through verbatim to POST /api/v1/scripts/syntax-check.

[ImmyBot] Validate a set of parameters against a script's param() block (read-only validation via POST — it checks, it does not persist anything). Body carries the param block and candidate parameter values; returns validation results. Note: immy_users_invalidate_cache is a DIFFERENT, write operation despite the similar name.

ParamTypeRequiredDefaultDescription
bodyJsonstringyesJSON object with the param block and candidate parameter values to validate. Passed through verbatim to POST /api/v1/scripts/validate-param-block-parameters.

Scripts

ToolPlanAccessSummary
immy_create_global_scriptProWriteCreate a new global script (shared platform-wide).
immy_create_local_scriptProWriteCreate a new local script (tenant-scoped).
immy_delete_scripts_globalProDestructivePermanently delete a global script.
immy_delete_scripts_localProDestructivePermanently delete a local script.
immy_get_scripts_globalFreeRead-onlyGet a single global script by id, including its source and metadata.
immy_get_scripts_localFreeRead-onlyGet a single local script by id, including its source and metadata.
immy_list_scripts_dxFreeRead-onlyList scripts via the DevExtreme grid feed (the data source behind the ImmyBot scripts grid).
immy_list_scripts_globalFreeRead-onlyList global scripts (shared platform-wide).
immy_list_scripts_global_auditFreeRead-onlyList the audit history (change events) for a global script.
immy_list_scripts_global_audit_summariesFreeRead-onlyList rolled-up audit summaries for a global script (aggregated change events).
immy_list_scripts_global_namesFreeRead-onlyList just the id+name pairs of global scripts (a lightweight pick-list for referencing scripts).
immy_list_scripts_global_referencesFreeRead-onlyList the entities (maintenance tasks, deployments, etc.) that reference a global script.
immy_list_scripts_localFreeRead-onlyList local scripts (tenant-scoped).
immy_list_scripts_local_auditFreeRead-onlyList the audit history (change events) for a local script.
immy_list_scripts_local_audit_summariesFreeRead-onlyList rolled-up audit summaries for a local script (aggregated change events).
immy_list_scripts_local_authorizationFreeRead-onlyGet the authorization (who may view/run/edit) for a local script.
immy_list_scripts_local_migrate_local_to_global_what_ifFreeRead-onlyPreview what would happen if a local script were migrated to a global script (a read-only what-if — nothing is migrated).
immy_list_scripts_local_namesFreeRead-onlyList just the id+name pairs of local scripts (a lightweight tenant-scoped pick-list).
immy_list_scripts_local_referencesFreeRead-onlyList the entities that reference a local script.
immy_list_scripts_references_countFreeRead-onlyGet the reference counts for scripts (how many maintenance tasks/deployments reference each script).
immy_list_scripts_searchFreeRead-onlySearch across scripts (global + local) by keyword.
immy_scripts_duplicateProWriteDuplicate an existing script into a new script.
immy_scripts_local_authorizationProWriteSet the authorization (who may view/run/edit) for a local script.
immy_scripts_local_migrate_local_to_globalProWriteMigrate a local (tenant-scoped) script to a global (platform-wide) script.
immy_update_global_scriptProWriteUpdate an existing global script (POST-based update, not a PATCH).
immy_update_local_scriptProWriteUpdate an existing local script (POST-based update, not a PATCH).

[ImmyBot] Create a new global script (shared platform-wide). Body carries the script name, source, and metadata. Validate the source first with immy_scripts_syntax_check.

ParamTypeRequiredDefaultDescription
bodyJsonstringyesJSON object with the new global script (name, source, metadata). Passed through verbatim to POST /api/v1/scripts/global.

[ImmyBot] Create a new local script (tenant-scoped). Body carries the script name, source, and metadata. Validate the source first with immy_scripts_syntax_check.

ParamTypeRequiredDefaultDescription
bodyJsonstringyesJSON object with the new local script (name, source, metadata). Passed through verbatim to POST /api/v1/scripts/local.

[ImmyBot] Permanently delete a global script. Any maintenance task or deployment referencing it loses that script — this cannot be undone. scriptId comes from immy_list_scripts_global; check immy_list_scripts_global_references first.

ParamTypeRequiredDefaultDescription
scriptIdstringyesGlobal script id to delete (from immy_list_scripts_global).

[ImmyBot] Permanently delete a local script. Any maintenance task or deployment referencing it loses that script — this cannot be undone. scriptId comes from immy_list_scripts_local; check immy_list_scripts_local_references first.

ParamTypeRequiredDefaultDescription
scriptIdstringyesLocal script id to delete (from immy_list_scripts_local).

[ImmyBot] Get a single global script by id, including its source and metadata. scriptId comes from immy_list_scripts_global.

ParamTypeRequiredDefaultDescription
scriptIdstringyesGlobal script id (from immy_list_scripts_global).

[ImmyBot] Get a single local script by id, including its source and metadata. scriptId comes from immy_list_scripts_local.

ParamTypeRequiredDefaultDescription
scriptIdstringyesLocal script id (from immy_list_scripts_local).

[ImmyBot] List scripts via the DevExtreme grid feed (the data source behind the ImmyBot scripts grid). Uses DevExtreme paging: skip/take (take clamped to 100) plus optional filter/sort and requireTotalCount. For a standard list use immy_list_scripts_global or immy_list_scripts_local.

ParamTypeRequiredDefaultDescription
filterstringnonullDevExtreme filter expression (JSON array form). Optional.
requireTotalCountbooleannonullWhether to include the total row count. Optional.
skipintegernonullDevExtreme skip (offset). Optional.
sortstringnonullDevExtreme sort expression (JSON array form). Optional.
takeintegernonullDevExtreme take (page size, max 100). Optional.

[ImmyBot] List global scripts (shared platform-wide). Sieve-paged (Page/pageSize/Filters/Sorts); pageSize is clamped to 100. Each entry carries a scriptId used by immy_get_scripts_global, immy_update_global_script, and immy_delete_scripts_global.

ParamTypeRequiredDefaultDescription
filtersstringnonullSieve Filters expression. Optional.
pageintegernonullSieve page number (1-based). Optional.
pageSizeintegernonullSieve page size (max 100). Optional.
sortsstringnonullSieve Sorts expression. Optional.

[ImmyBot] List the audit history (change events) for a global script. scriptId comes from immy_list_scripts_global. Sieve-paged (Page/pageSize/Filters/Sorts); pageSize is clamped to 100. Use immy_list_scripts_global_audit_summaries for a rolled-up view.

ParamTypeRequiredDefaultDescription
filtersstringnonullSieve Filters expression. Optional.
pageintegernonullSieve page number (1-based). Optional.
pageSizeintegernonullSieve page size (max 100). Optional.
scriptIdstringyesGlobal script id (from immy_list_scripts_global).
sortsstringnonullSieve Sorts expression. Optional.

[ImmyBot] List rolled-up audit summaries for a global script (aggregated change events). scriptId comes from immy_list_scripts_global. Sieve-paged (Page/pageSize/Filters/Sorts); pageSize is clamped to 100.

ParamTypeRequiredDefaultDescription
filtersstringnonullSieve Filters expression. Optional.
pageintegernonullSieve page number (1-based). Optional.
pageSizeintegernonullSieve page size (max 100). Optional.
scriptIdstringyesGlobal script id (from immy_list_scripts_global).
sortsstringnonullSieve Sorts expression. Optional.

[ImmyBot] List just the id+name pairs of global scripts (a lightweight pick-list for referencing scripts). Sieve-paged (Page/pageSize/Filters/Sorts); pageSize is clamped to 100.

ParamTypeRequiredDefaultDescription
filtersstringnonullSieve Filters expression. Optional.
pageintegernonullSieve page number (1-based). Optional.
pageSizeintegernonullSieve page size (max 100). Optional.
sortsstringnonullSieve Sorts expression. Optional.

[ImmyBot] List the entities (maintenance tasks, deployments, etc.) that reference a global script. scriptId comes from immy_list_scripts_global. Sieve-paged (Page/pageSize/Filters/Sorts); pageSize is clamped to 100. Check references before deleting with immy_delete_scripts_global.

ParamTypeRequiredDefaultDescription
filtersstringnonullSieve Filters expression. Optional.
pageintegernonullSieve page number (1-based). Optional.
pageSizeintegernonullSieve page size (max 100). Optional.
scriptIdstringyesGlobal script id (from immy_list_scripts_global).
sortsstringnonullSieve Sorts expression. Optional.

[ImmyBot] List local scripts (tenant-scoped). Sieve-paged (Page/pageSize/Filters/Sorts); pageSize is clamped to 100. Each entry carries a scriptId used by immy_get_scripts_local, immy_update_local_script, and immy_delete_scripts_local.

ParamTypeRequiredDefaultDescription
filtersstringnonullSieve Filters expression. Optional.
pageintegernonullSieve page number (1-based). Optional.
pageSizeintegernonullSieve page size (max 100). Optional.
sortsstringnonullSieve Sorts expression. Optional.

[ImmyBot] List the audit history (change events) for a local script. scriptId comes from immy_list_scripts_local. Sieve-paged (Page/pageSize/Filters/Sorts); pageSize is clamped to 100. Use immy_list_scripts_local_audit_summaries for a rolled-up view.

ParamTypeRequiredDefaultDescription
filtersstringnonullSieve Filters expression. Optional.
pageintegernonullSieve page number (1-based). Optional.
pageSizeintegernonullSieve page size (max 100). Optional.
scriptIdstringyesLocal script id (from immy_list_scripts_local).
sortsstringnonullSieve Sorts expression. Optional.

[ImmyBot] List rolled-up audit summaries for a local script (aggregated change events). scriptId comes from immy_list_scripts_local. Sieve-paged (Page/pageSize/Filters/Sorts); pageSize is clamped to 100.

ParamTypeRequiredDefaultDescription
filtersstringnonullSieve Filters expression. Optional.
pageintegernonullSieve page number (1-based). Optional.
pageSizeintegernonullSieve page size (max 100). Optional.
scriptIdstringyesLocal script id (from immy_list_scripts_local).
sortsstringnonullSieve Sorts expression. Optional.

[ImmyBot] Get the authorization (who may view/run/edit) for a local script. scriptId comes from immy_list_scripts_local. Set authorization with immy_scripts_local_authorization.

ParamTypeRequiredDefaultDescription
scriptIdstringyesLocal script id (from immy_list_scripts_local).

[ImmyBot] Preview what would happen if a local script were migrated to a global script (a read-only what-if — nothing is migrated). scriptId comes from immy_list_scripts_local. Perform the migration with immy_scripts_local_migrate_local_to_global.

ParamTypeRequiredDefaultDescription
scriptIdstringyesLocal script id (from immy_list_scripts_local).

[ImmyBot] List just the id+name pairs of local scripts (a lightweight tenant-scoped pick-list). Sieve-paged (Page/pageSize/Filters/Sorts); pageSize is clamped to 100.

ParamTypeRequiredDefaultDescription
filtersstringnonullSieve Filters expression. Optional.
pageintegernonullSieve page number (1-based). Optional.
pageSizeintegernonullSieve page size (max 100). Optional.
sortsstringnonullSieve Sorts expression. Optional.

[ImmyBot] List the entities that reference a local script. scriptId comes from immy_list_scripts_local. Sieve-paged (Page/pageSize/Filters/Sorts); pageSize is clamped to 100. Check references before deleting with immy_delete_scripts_local.

ParamTypeRequiredDefaultDescription
filtersstringnonullSieve Filters expression. Optional.
pageintegernonullSieve page number (1-based). Optional.
pageSizeintegernonullSieve page size (max 100). Optional.
scriptIdstringyesLocal script id (from immy_list_scripts_local).
sortsstringnonullSieve Sorts expression. Optional.

[ImmyBot] Get the reference counts for scripts (how many maintenance tasks/deployments reference each script). No parameters. Use immy_list_scripts_global_references / immy_list_scripts_local_references for the detailed referencing entities of one script.

[ImmyBot] Search across scripts (global + local) by keyword. Sieve-paged (Page/pageSize/Filters/Sorts); pageSize is clamped to 100.

ParamTypeRequiredDefaultDescription
filtersstringnonullSieve Filters expression, e.g. 'name@=install'. Optional.
pageintegernonullSieve page number (1-based). Optional.
pageSizeintegernonullSieve page size (max 100). Optional.
sortsstringnonullSieve Sorts expression. Optional.

[ImmyBot] Duplicate an existing script into a new script. Body carries the source scriptId and any new-script overrides (e.g. name). Creates a new script — a write.

ParamTypeRequiredDefaultDescription
bodyJsonstringyesJSON object identifying the source script and duplicate options. Passed through verbatim to POST /api/v1/scripts/duplicate.

[ImmyBot] Set the authorization (who may view/run/edit) for a local script. scriptId comes from immy_list_scripts_local; body carries the authorization grants. Read current state with immy_list_scripts_local_authorization.

ParamTypeRequiredDefaultDescription
bodyJsonstringyesJSON object with the authorization grants. Passed through verbatim to POST /api/v1/scripts/local//authorization.
scriptIdstringyesLocal script id (from immy_list_scripts_local).

[ImmyBot] Migrate a local (tenant-scoped) script to a global (platform-wide) script. scriptId comes from immy_list_scripts_local; body carries migration options. Preview the effect first with immy_list_scripts_local_migrate_local_to_global_what_if.

ParamTypeRequiredDefaultDescription
bodyJsonstringyesJSON object with migration options (may be an empty object ''). Passed through verbatim to POST /api/v1/scripts/local//migrate-local-to-global.
scriptIdstringyesLocal script id to migrate (from immy_list_scripts_local).

[ImmyBot] Update an existing global script (POST-based update, not a PATCH). scriptId comes from immy_list_scripts_global; body carries the updated script fields. Validate the source first with immy_scripts_syntax_check.

ParamTypeRequiredDefaultDescription
bodyJsonstringyesJSON object with the updated global script fields. Passed through verbatim to POST /api/v1/scripts/global/.
scriptIdstringyesGlobal script id to update (from immy_list_scripts_global).

[ImmyBot] Update an existing local script (POST-based update, not a PATCH). scriptId comes from immy_list_scripts_local; body carries the updated script fields. Validate the source first with immy_scripts_syntax_check.

ParamTypeRequiredDefaultDescription
bodyJsonstringyesJSON object with the updated local script fields. Passed through verbatim to POST /api/v1/scripts/local/.
scriptIdstringyesLocal script id to update (from immy_list_scripts_local).

Deployments

ToolPlanAccessSummary
immy_delete_target_assignmentsProDestructivePermanently delete a deployment (target assignment) by its id (from immy_list_target_assignments).
immy_delete_target_assignments_globalProDestructivePermanently delete a global (cross-tenant) deployment by its id (from immy_list_target_assignments_global).
immy_get_computer_optional_target_assignment_approvalsFreeRead-onlyGet the optional (opt-in) deployment approvals available for a specific computer, by computerId (from immy_list_computers).
immy_get_target_assignmentsFreeRead-onlyGet a single deployment (target assignment) by its id (from immy_list_target_assignments).
immy_get_target_assignments_globalFreeRead-onlyGet a single global (cross-tenant) deployment by its id (from immy_list_target_assignments_global).
immy_list_target_assignmentsFreeRead-onlyList deployments (target assignments) across the ImmyBot instance.
immy_list_target_assignments_globalFreeRead-onlyList global (cross-tenant) deployments — target assignments that apply across every tenant rather than to a single one.
immy_list_target_assignments_global_typeFreeRead-onlyGet the maintenance-item type (software / maintenance task / script) of a global deployment by its id (from immy_list_target_assignments_global).
immy_list_target_assignments_maintenance_item_ordersFreeRead-onlyList the ordering of maintenance items as resolved by deployments — the sequence in which items run during maintenance.
immy_list_target_assignments_recommended_approvalsFreeRead-onlyList recommended deployment approvals — deployments ImmyBot recommends approving based on current state.
immy_list_target_assignments_typeFreeRead-onlyGet the maintenance-item type (software / maintenance task / script) of a deployment by its id (from immy_list_target_assignments).
immy_patch_target_assignments_batch_updateProWriteBatch-update multiple deployments in one call.
immy_target_assignment_migrate_to_superseding_what_ifFreeRead-onlyPreview (what-if, no changes made) migrating deployments onto a superseding target assignment — shows what would happen without applying it.
immy_target_assignmentsProWriteCreate a new deployment (target assignment).
immy_target_assignments_duplicateProWriteDuplicate a single deployment (target assignment) into a new one.
immy_target_assignments_duplicatesProWriteDuplicate multiple deployments (target assignments) in one call.
immy_target_assignments_global_createProWriteCreate a new global (cross-tenant) deployment.
immy_target_assignments_global_notesProWriteSet or update the notes on a global (cross-tenant) deployment by its id (from immy_list_target_assignments_global).
immy_target_assignments_global_overrideProWriteApply an override to a global (cross-tenant) deployment by its id (from immy_list_target_assignments_global).
immy_target_assignments_migrate_deployments_to_provider_linksProWriteMigrate deployments so their targeting is driven by provider-link (RMM/PSA integration) data instead of legacy targeting.
immy_target_assignments_migrate_to_superseding_assignmentProWriteMigrate deployments onto a superseding target assignment (applies the change).
immy_target_assignments_notesProWriteSet or update the notes on a deployment (target assignment) by its id (from immy_list_target_assignments).
immy_target_assignments_optional_target_assignment_approvalsProWriteApprove (opt in) an optional deployment for a target, by the optional-approval id.
immy_target_assignments_overrideProWriteApply an override to a deployment (target assignment) by its id (from immy_list_target_assignments).
immy_target_assignments_persons_target_previewFreeRead-onlyPreview which persons a deployment target would resolve to (no changes made).
immy_target_assignments_recommended_approvals_updateProWriteApply recommended deployment approvals.
immy_target_assignments_target_previewFreeRead-onlyPreview which computers a deployment target would resolve to (no changes made).
immy_target_assignments_tenant_target_previewFreeRead-onlyPreview which tenants a deployment target would resolve to (no changes made).
immy_target_assignments_update_maintenance_item_orderProWriteUpdate the run order of maintenance items resolved by deployments.
immy_target_assignments_visibilityProWriteSet the visibility of deployments (e.g. hide/show in tenant-facing views).
immy_update_target_assignmentsProWriteUpdate (replace) a deployment (target assignment) by its id (from immy_list_target_assignments).
immy_update_target_assignments_globalProWriteUpdate (replace) a global (cross-tenant) deployment by its id (from immy_list_target_assignments_global).

[ImmyBot] Permanently delete a deployment (target assignment) by its id (from immy_list_target_assignments). This removes the deployment and cannot be undone.

ParamTypeRequiredDefaultDescription
deploymentIdstringyesThe deployment id to delete, from immy_list_target_assignments.

[ImmyBot] Permanently delete a global (cross-tenant) deployment by its id (from immy_list_target_assignments_global). This removes the deployment from every tenant it applied to and cannot be undone.

ParamTypeRequiredDefaultDescription
deploymentIdstringyesThe global deployment id to delete, from immy_list_target_assignments_global.

[ImmyBot] Get the optional (opt-in) deployment approvals available for a specific computer, by computerId (from immy_list_computers). Optional deployments require per-computer approval before they run; this shows which are pending/available. Grant one with immy_target_assignments_optional_target_assignment_approvals.

ParamTypeRequiredDefaultDescription
computerIdstringyesThe computer id, from immy_list_computers.

[ImmyBot] Get a single deployment (target assignment) by its id (from immy_list_target_assignments). Returns the full deployment definition — maintenance item, targets, desired state, schedule, and scope.

ParamTypeRequiredDefaultDescription
deploymentIdstringyesThe deployment (target-assignment) id, from immy_list_target_assignments.

[ImmyBot] Get a single global (cross-tenant) deployment by its id (from immy_list_target_assignments_global). Returns the full deployment definition.

ParamTypeRequiredDefaultDescription
deploymentIdstringyesThe global deployment (target-assignment) id, from immy_list_target_assignments_global.

[ImmyBot] List deployments (target assignments) across the ImmyBot instance. A deployment binds a maintenance item (software/task/script) to targets (tenant, tag, computer, person, or MSP). Supports Sieve paging and filtering (Page, pageSize up to 100, Filters, Sorts). Use immy_get_target_assignments for one deployment, immy_list_target_assignments_global for cross-tenant deployments.

ParamTypeRequiredDefaultDescription
filtersstringnonullSieve Filters expression, e.g. 'name@=Chrome'. Optional.
pageintegernonullPage number (Sieve, 1-based).
pageSizeintegernonullRecords per page (Sieve pageSize; max 100).
sortsstringnonullSieve Sorts expression, e.g. '-updatedDate'. Optional.

[ImmyBot] List global (cross-tenant) deployments — target assignments that apply across every tenant rather than to a single one. Supports Sieve paging (Page, pageSize up to 100, Filters, Sorts). Use immy_get_target_assignments_global for one global deployment.

ParamTypeRequiredDefaultDescription
filtersstringnonullSieve Filters expression. Optional.
pageintegernonullPage number (Sieve, 1-based).
pageSizeintegernonullRecords per page (Sieve pageSize; max 100).
sortsstringnonullSieve Sorts expression. Optional.

[ImmyBot] Get the maintenance-item type (software / maintenance task / script) of a global deployment by its id (from immy_list_target_assignments_global). Lightweight lookup used to disambiguate which item family the deployment targets.

ParamTypeRequiredDefaultDescription
deploymentIdstringyesThe global deployment (target-assignment) id, from immy_list_target_assignments_global.

[ImmyBot] List the ordering of maintenance items as resolved by deployments — the sequence in which items run during maintenance. Supports Sieve paging (Page, pageSize up to 100, Filters, Sorts). Change the order with immy_target_assignments_update_maintenance_item_order.

ParamTypeRequiredDefaultDescription
filtersstringnonullSieve Filters expression. Optional.
pageintegernonullPage number (Sieve, 1-based).
pageSizeintegernonullRecords per page (Sieve pageSize; max 100).
sortsstringnonullSieve Sorts expression. Optional.

[ImmyBot] Get the maintenance-item type (software / maintenance task / script) of a deployment by its id (from immy_list_target_assignments). Lightweight lookup used to disambiguate which item family the deployment targets.

ParamTypeRequiredDefaultDescription
deploymentIdstringyesThe deployment (target-assignment) id, from immy_list_target_assignments.

[ImmyBot] Batch-update multiple deployments in one call. Provide a JSON body containing the set of deployments and the fields to change on each. Use for bulk edits instead of many immy_update_target_assignments calls.

ParamTypeRequiredDefaultDescription
bodyJsonstringyesJSON body describing the batch of deployments and the fields to update.

[ImmyBot] Preview (what-if, no changes made) migrating deployments onto a superseding target assignment — shows what would happen without applying it. POST-as-read: provide a JSON body describing the migration (source deployments and superseding target). Apply for real with immy_target_assignments_migrate_to_superseding_assignment.

ParamTypeRequiredDefaultDescription
bodyJsonstringyesJSON object body describing the migration to preview (source deployment ids + superseding target).

[ImmyBot] Create a new deployment (target assignment). Provide a JSON object body defining the maintenance item, targets (tenant/tag/computer/person/MSP), desired state, and schedule. Preview the resolved targets first with immy_target_assignments_target_preview / _tenant_target_preview / _persons_target_preview.

ParamTypeRequiredDefaultDescription
bodyJsonstringyesJSON object body defining the deployment (maintenance item, targets, desired state, schedule).

[ImmyBot] Duplicate a single deployment (target assignment) into a new one. Provide a JSON body identifying the source deployment and any overrides for the copy. See immy_target_assignments_duplicates to duplicate several at once.

ParamTypeRequiredDefaultDescription
bodyJsonstringyesJSON body identifying the source deployment id and any overrides for the copy.

[ImmyBot] Duplicate multiple deployments (target assignments) in one call. Provide a JSON body identifying the source deployments and any overrides. See immy_target_assignments_duplicate for a single copy.

ParamTypeRequiredDefaultDescription
bodyJsonstringyesJSON body identifying the source deployment ids and any overrides for the copies.

[ImmyBot] Create a new global (cross-tenant) deployment. Provide a JSON object body defining the maintenance item, cross-tenant targets, desired state, and schedule. List existing global deployments with immy_list_target_assignments_global.

ParamTypeRequiredDefaultDescription
bodyJsonstringyesJSON object body defining the global deployment.

[ImmyBot] Set or update the notes on a global (cross-tenant) deployment by its id (from immy_list_target_assignments_global). Provide a JSON body containing the notes text.

ParamTypeRequiredDefaultDescription
bodyJsonstringyesJSON body containing the notes to set.
deploymentIdstringyesThe global deployment id, from immy_list_target_assignments_global.

[ImmyBot] Apply an override to a global (cross-tenant) deployment by its id (from immy_list_target_assignments_global). Provide a JSON body describing the override (e.g. a tenant-level exception to the cross-tenant deployment).

ParamTypeRequiredDefaultDescription
bodyJsonstringyesJSON body describing the override to apply.
deploymentIdstringyesThe global deployment id, from immy_list_target_assignments_global.

[ImmyBot] Migrate deployments onto a superseding target assignment (applies the change). Provide a JSON body identifying the source deployments and the superseding target. Preview first with immy_target_assignment_migrate_to_superseding_what_if.

ParamTypeRequiredDefaultDescription
bodyJsonstringyesJSON body identifying the source deployments and the superseding target.

[ImmyBot] Set or update the notes on a deployment (target assignment) by its id (from immy_list_target_assignments). Provide a JSON body containing the notes text.

ParamTypeRequiredDefaultDescription
bodyJsonstringyesJSON body containing the notes to set.
deploymentIdstringyesThe deployment id, from immy_list_target_assignments.

[ImmyBot] Approve (opt in) an optional deployment for a target, by the optional-approval id. Provide a JSON body with the approval decision. Discover available approvals with immy_get_computer_optional_target_assignment_approvals.

ParamTypeRequiredDefaultDescription
approvalIdstringyesThe optional-target-assignment-approval id to act on.
bodyJsonstringyesJSON body containing the approval decision.

[ImmyBot] Apply an override to a deployment (target assignment) by its id (from immy_list_target_assignments). Provide a JSON body describing the override (e.g. a per-computer or per-tenant exception to the deployment).

ParamTypeRequiredDefaultDescription
bodyJsonstringyesJSON body describing the override to apply.
deploymentIdstringyesThe deployment id, from immy_list_target_assignments.

[ImmyBot] Preview which persons a deployment target would resolve to (no changes made). POST-as-read: provide a JSON body describing the target criteria; returns the matching persons. See immy_target_assignments_target_preview (computers) and immy_target_assignments_tenant_target_preview (tenants).

ParamTypeRequiredDefaultDescription
bodyJsonstringyesJSON object body describing the persons target criteria to resolve.

[ImmyBot] Preview which computers a deployment target would resolve to (no changes made). POST-as-read: provide a JSON body describing the target criteria; returns the matching computers. See immy_target_assignments_tenant_target_preview and immy_target_assignments_persons_target_preview for tenant/person previews.

ParamTypeRequiredDefaultDescription
bodyJsonstringyesJSON object body describing the computer target criteria to resolve.

[ImmyBot] Preview which tenants a deployment target would resolve to (no changes made). POST-as-read: provide a JSON body describing the target criteria; returns the matching tenants. See immy_target_assignments_target_preview (computers) and immy_target_assignments_persons_target_preview (persons).

ParamTypeRequiredDefaultDescription
bodyJsonstringyesJSON object body describing the tenant target criteria to resolve.

[ImmyBot] Update the run order of maintenance items resolved by deployments. Provide a JSON body containing the desired ordering. View the current order with immy_list_target_assignments_maintenance_item_orders.

ParamTypeRequiredDefaultDescription
bodyJsonstringyesJSON body containing the desired maintenance-item ordering.

[ImmyBot] Set the visibility of deployments (e.g. hide/show in tenant-facing views). Provide a JSON body identifying the deployments and the visibility setting.

ParamTypeRequiredDefaultDescription
bodyJsonstringyesJSON body identifying the deployments and desired visibility.

[ImmyBot] Update (replace) a deployment (target assignment) by its id (from immy_list_target_assignments). Provide the full JSON deployment definition — this is a PUT/replace, so include all fields you want to keep. For bulk edits use immy_patch_target_assignments_batch_update.

ParamTypeRequiredDefaultDescription
bodyJsonstringyesFull JSON deployment definition (PUT/replace).
deploymentIdstringyesThe deployment id to update, from immy_list_target_assignments.

[ImmyBot] Update (replace) a global (cross-tenant) deployment by its id (from immy_list_target_assignments_global). Provide the full JSON deployment definition — this is a PUT/replace, so include all fields you want to keep.

ParamTypeRequiredDefaultDescription
bodyJsonstringyesFull JSON deployment definition (PUT/replace).
deploymentIdstringyesThe global deployment id to update, from immy_list_target_assignments_global.

Deployment Change Requests

ToolPlanAccessSummary
immy_apply_change_requestProWriteApply a deployment change request by its changeRequestId (from immy_list_target_assignment_change_requests) — commits the proposed deployment edits.
immy_create_change_requestProWriteCreate an instance-wide deployment change request — a reviewable proposal of deployment edits.
immy_create_deployment_change_requestProWriteCreate a change request scoped to a single deployment, by deploymentId (from immy_list_target_assignments).
immy_get_target_assignments_change_requestFreeRead-onlyGet a single deployment change request by its changeRequestId (from immy_list_target_assignment_change_requests).
immy_list_deployment_change_requestsFreeRead-onlyList the change requests scoped to a single deployment, by deploymentId (from immy_list_target_assignments).
immy_list_target_assignment_change_requestsFreeRead-onlyList deployment change requests across the instance.
immy_list_target_assignments_change_request_diffFreeRead-onlyGet the diff of a deployment change request by its changeRequestId (from immy_list_target_assignment_change_requests) — the before/after of what applying it would change.
immy_update_deployment_change_requestProWriteUpdate an existing change request scoped to a deployment, by deploymentId and changeRequestId (both from immy_list_deployment_change_requests).

[ImmyBot] Apply a deployment change request by its changeRequestId (from immy_list_target_assignment_change_requests) — commits the proposed deployment edits. Provide a JSON body with any apply options. Review the diff (immy_list_target_assignments_change_request_diff) before applying.

ParamTypeRequiredDefaultDescription
bodyJsonstringyesJSON body with apply options (may be an empty object ).
changeRequestIdstringyesThe change request id to apply, from immy_list_target_assignment_change_requests.

[ImmyBot] Create an instance-wide deployment change request — a reviewable proposal of deployment edits. Provide a JSON body describing the proposed changes. Review its diff with immy_list_target_assignments_change_request_diff, then apply with immy_apply_change_request.

ParamTypeRequiredDefaultDescription
bodyJsonstringyesJSON body describing the proposed deployment change(s).

[ImmyBot] Create a change request scoped to a single deployment, by deploymentId (from immy_list_target_assignments). Provide a JSON body describing the proposed change to that deployment. List a deployment's change requests with immy_list_deployment_change_requests.

ParamTypeRequiredDefaultDescription
bodyJsonstringyesJSON body describing the proposed change to the deployment.
deploymentIdstringyesThe deployment (target-assignment) id, from immy_list_target_assignments.

[ImmyBot] Get a single deployment change request by its changeRequestId (from immy_list_target_assignment_change_requests). Returns the proposed change to a deployment. Inspect what it would alter with immy_list_target_assignments_change_request_diff.

ParamTypeRequiredDefaultDescription
changeRequestIdstringyesThe change request id, from immy_list_target_assignment_change_requests.

[ImmyBot] List the change requests scoped to a single deployment, by deploymentId (from immy_list_target_assignments). Supports Sieve paging (Page, pageSize up to 100, Filters, Sorts). Create one with immy_create_deployment_change_request.

ParamTypeRequiredDefaultDescription
deploymentIdstringyesThe deployment (target-assignment) id, from immy_list_target_assignments.
filtersstringnonullSieve Filters expression. Optional.
pageintegernonullPage number (Sieve, 1-based).
pageSizeintegernonullRecords per page (Sieve pageSize; max 100).
sortsstringnonullSieve Sorts expression. Optional.

[ImmyBot] List deployment change requests across the instance. Supports Sieve paging (Page, pageSize up to 100, Filters, Sorts). For change requests scoped to one deployment use immy_list_deployment_change_requests.

ParamTypeRequiredDefaultDescription
filtersstringnonullSieve Filters expression. Optional.
pageintegernonullPage number (Sieve, 1-based).
pageSizeintegernonullRecords per page (Sieve pageSize; max 100).
sortsstringnonullSieve Sorts expression. Optional.

[ImmyBot] Get the diff of a deployment change request by its changeRequestId (from immy_list_target_assignment_change_requests) — the before/after of what applying it would change. Review this before immy_apply_change_request.

ParamTypeRequiredDefaultDescription
changeRequestIdstringyesThe change request id, from immy_list_target_assignment_change_requests.

[ImmyBot] Update an existing change request scoped to a deployment, by deploymentId and changeRequestId (both from immy_list_deployment_change_requests). Provide a JSON body with the revised proposed change.

ParamTypeRequiredDefaultDescription
bodyJsonstringyesJSON body with the revised proposed change.
changeRequestIdstringyesThe change request id to update, from immy_list_deployment_change_requests.
deploymentIdstringyesThe deployment (target-assignment) id, from immy_list_target_assignments.

Maintenance Actions

ToolPlanAccessSummary
immy_get_maintenance_actions_dx_for_computerFreeRead-onlyDevExtreme grid feed of maintenance actions scoped to a single computer.
immy_get_maintenance_actions_latest_for_computerFreeRead-onlyGet the latest maintenance actions for a single computer (from immy_list_computers).
immy_get_maintenance_actions_latest_for_tenantFreeRead-onlyGet the latest maintenance actions for a single tenant (from immy_list_tenants).
immy_get_tenant_latest_non_compliant_maintenance_actionsFreeRead-onlyGet the latest non-compliant maintenance actions (action still required) for a single tenant (from immy_list_tenants).
immy_list_maintenance_actions_computer_needs_attentionFreeRead-onlyList the maintenance actions on one computer that currently need attention (non-compliant / action required).
immy_list_maintenance_actions_dxFreeRead-onlyDevExtreme grid feed of maintenance actions across the instance.
immy_list_maintenance_actions_logsFreeRead-onlyList the execution logs for a single maintenance action.
immy_list_maintenance_actions_maintenance_itemFreeRead-onlyList maintenance actions grouped/filtered by maintenance item (software or task).
immy_list_maintenance_actions_versionFreeRead-onlyGet the maintenance-actions version/metadata record used by the ImmyBot UI grid.
immy_maintenance_actions_latest_action_for_computersFreeRead-onlyLook up the latest maintenance action for a set of computers for one software item or maintenance task.
immy_maintenance_actions_latest_action_for_tenantsFreeRead-onlyLook up the latest maintenance action for a set of tenants for one software item or maintenance task.

[ImmyBot] DevExtreme grid feed of maintenance actions scoped to a single computer. Pass the computerId (from immy_list_computers). Uses skip/take paging (take max 100) plus optional DevExtreme filter/sort JSON and requireTotalCount. Returns raw ImmyBot JSON.

ParamTypeRequiredDefaultDescription
computerIdstringyesThe computer id (from immy_list_computers).
filterstringnonullOptional DevExtreme filter expression (JSON array string).
requireTotalCountbooleannonullWhen true, include the total record count in the response.
skipintegernonullNumber of records to skip (DevExtreme skip). Optional.
sortstringnonullOptional DevExtreme sort expression (JSON array string).
takeintegernonullNumber of records to return (DevExtreme take, max 100). Optional.

[ImmyBot] Get the latest maintenance actions for a single computer (from immy_list_computers). Returns raw ImmyBot JSON.

ParamTypeRequiredDefaultDescription
computerIdstringyesThe computer id (from immy_list_computers).

[ImmyBot] Get the latest maintenance actions for a single tenant (from immy_list_tenants). Returns raw ImmyBot JSON.

ParamTypeRequiredDefaultDescription
tenantIdstringyesThe tenant id (from immy_list_tenants).

[ImmyBot] Get the latest non-compliant maintenance actions (action still required) for a single tenant (from immy_list_tenants). Returns raw ImmyBot JSON.

ParamTypeRequiredDefaultDescription
tenantIdstringyesThe tenant id (from immy_list_tenants).

[ImmyBot] List the maintenance actions on one computer that currently need attention (non-compliant / action required). Pass the computerId (from immy_list_computers). Sieve-paginated: Page + pageSize (max 100) + optional Filters/Sorts. Returns raw ImmyBot JSON.

ParamTypeRequiredDefaultDescription
computerIdstringyesThe computer id (from immy_list_computers).
filtersstringnonullOptional Sieve filter expression (e.g. `name@=chrome`).
pageintegernonull1-based page number (Sieve Page). Optional.
pageSizeintegernonullRecords per page (Sieve pageSize, max 100). Optional.
sortsstringnonullOptional Sieve sort expression (e.g. `-createdDate`).

[ImmyBot] DevExtreme grid feed of maintenance actions across the instance. Uses skip/take paging (take max 100) plus optional DevExtreme filter/sort JSON and requireTotalCount. Returns raw ImmyBot JSON.

ParamTypeRequiredDefaultDescription
filterstringnonullOptional DevExtreme filter expression (JSON array string).
requireTotalCountbooleannonullWhen true, include the total record count in the response.
skipintegernonullNumber of records to skip (DevExtreme skip). Optional.
sortstringnonullOptional DevExtreme sort expression (JSON array string).
takeintegernonullNumber of records to return (DevExtreme take, max 100). Optional.

[ImmyBot] List the execution logs for a single maintenance action. Pass the actionId (from a maintenance-actions listing or a session's actions). Sieve-paginated: Page + pageSize (max 100) + optional Filters/Sorts. Returns raw ImmyBot JSON.

ParamTypeRequiredDefaultDescription
actionIdstringyesThe maintenance action id.
filtersstringnonullOptional Sieve filter expression.
pageintegernonull1-based page number (Sieve Page). Optional.
pageSizeintegernonullRecords per page (Sieve pageSize, max 100). Optional.
sortsstringnonullOptional Sieve sort expression.

[ImmyBot] List maintenance actions grouped/filtered by maintenance item (software or task). Sieve-paginated: Page + pageSize (max 100) + optional Filters/Sorts. Returns raw ImmyBot JSON.

ParamTypeRequiredDefaultDescription
filtersstringnonullOptional Sieve filter expression.
pageintegernonull1-based page number (Sieve Page). Optional.
pageSizeintegernonullRecords per page (Sieve pageSize, max 100). Optional.
sortsstringnonullOptional Sieve sort expression.

[ImmyBot] Get the maintenance-actions version/metadata record used by the ImmyBot UI grid. Returns raw ImmyBot JSON.

[ImmyBot] Look up the latest maintenance action for a set of computers for one software item or maintenance task. This is a POST-as-read (read-only): provide a JSON object body — required: maintenanceIdentifier (string). Optional: maintenanceType ('Software' or 'MaintenanceTask'; must accompany maintenanceIdentifier), computerIds (array of computer ids), dateUtc (ISO timestamp to look back from). Returns raw ImmyBot JSON.

ParamTypeRequiredDefaultDescription
fieldsJsonstringyesJSON object body. Required: maintenanceIdentifier. Optional: maintenanceType, computerIds (array), dateUtc.

[ImmyBot] Look up the latest maintenance action for a set of tenants for one software item or maintenance task. This is a POST-as-read (read-only): provide a JSON object body — required: maintenanceIdentifier (string). Optional: maintenanceType ('Software' or 'MaintenanceTask'; must accompany maintenanceIdentifier), tenantIds (array of tenant ids), dateUtc (ISO timestamp to look back from). Returns raw ImmyBot JSON.

ParamTypeRequiredDefaultDescription
fieldsJsonstringyesJSON object body. Required: maintenanceIdentifier. Optional: maintenanceType, tenantIds (array), dateUtc.

Maintenance Sessions

ToolPlanAccessSummary
immy_cancel_all_maintenance_sessionsProDestructiveCancel ALL currently-running maintenance sessions across the instance.
immy_cancel_maintenance_sessionProDestructiveCancel a single maintenance session by sessionId.
immy_cancel_maintenance_sessionsProDestructiveCancel a specific set of running maintenance sessions.
immy_cancel_maintenance_sessions_for_scheduleProDestructiveCancel all maintenance sessions that were started by a given schedule.
immy_get_maintenance_sessionsFreeRead-onlyGet a single maintenance session by sessionId (from immy_list_maintenance_sessions_dx), including its status, target, and actions.
immy_list_maintenance_sessions_dxFreeRead-onlyDevExtreme grid feed of maintenance sessions across the instance.
immy_list_maintenance_sessions_last_logFreeRead-onlyGet the most recent log line for a maintenance session by sessionId — a lightweight way to poll live progress.
immy_list_maintenance_sessions_logsFreeRead-onlyList the full log stream for a maintenance session by sessionId.
immy_list_maintenance_sessions_old_logsFreeRead-onlyList the archived/old log stream for a maintenance session by sessionId (the pre-rollover logs not returned by immy_list_maintenance_sessions_logs).
immy_list_maintenance_sessions_phasesFreeRead-onlyList the phases (detection, resolution, follow-up, etc.) of a maintenance session by sessionId, with each phase's status and timing.
immy_list_maintenance_sessions_status_countsFreeRead-onlyGet the count of maintenance sessions in each status (e.g. running, completed, cancelled, failed).
immy_maintenance_sessions_actions_rerunProDestructiveRe-run a single action within a maintenance session (re-executes just that one maintenance action).
immy_maintenance_sessions_resumeProDestructiveResume a paused/waiting maintenance session by sessionId (e.g. one that stalled awaiting a reboot or user response).
immy_rerun_maintenance_sessionProDestructiveRe-run a single maintenance session by sessionId (re-executes maintenance against its original target).
immy_rerun_maintenance_sessionsProDestructiveRe-run a set of maintenance sessions (re-executes maintenance against their original targets).
immy_run_immy_serviceProDestructiveEnqueue one or more maintenance sessions and SYNCHRONOUSLY return the started session IDs.
immy_run_immy_service_newProDestructiveEnqueue one or more maintenance sessions in the BACKGROUND and return immediately (202 Accepted) without waiting for the session IDs.

[ImmyBot] Cancel ALL currently-running maintenance sessions across the instance. Destructive and broad — it aborts every in-progress session; get user approval first. Takes no meaningful body (leave fieldsJson as ``). Returns raw ImmyBot JSON.

ParamTypeRequiredDefaultDescription
fieldsJsonstringno""JSON object body. This endpoint takes no parameters — leave as `` (the default).

[ImmyBot] Cancel a single maintenance session by sessionId. Destructive — it aborts the in-progress session. This is a GET-verb action endpoint (not a read); pass the sessionId (from immy_list_maintenance_sessions_dx). Returns raw ImmyBot JSON.

ParamTypeRequiredDefaultDescription
sessionIdstringyesThe maintenance session id to cancel (from immy_list_maintenance_sessions_dx).

[ImmyBot] Cancel a specific set of running maintenance sessions. Destructive — it aborts in-progress maintenance. Provide a JSON object body: sessionIds (array of maintenance session ids from immy_list_maintenance_sessions_dx). Returns raw ImmyBot JSON.

ParamTypeRequiredDefaultDescription
fieldsJsonstringyesJSON object body. Required: sessionIds (array of session ids to cancel).

[ImmyBot] Cancel all maintenance sessions that were started by a given schedule. Destructive — it aborts in-progress sessions for that schedule. This is a GET-verb action endpoint (not a read); pass the scheduleId. Returns raw ImmyBot JSON.

ParamTypeRequiredDefaultDescription
scheduleIdstringyesThe schedule id whose maintenance sessions should be cancelled.

[ImmyBot] Get a single maintenance session by sessionId (from immy_list_maintenance_sessions_dx), including its status, target, and actions. Returns raw ImmyBot JSON.

ParamTypeRequiredDefaultDescription
sessionIdstringyesThe maintenance session id (from immy_list_maintenance_sessions_dx).

[ImmyBot] DevExtreme grid feed of maintenance sessions across the instance. Uses skip/take paging (take max 100) plus optional DevExtreme filter/sort JSON and requireTotalCount. Use this to find session IDs. Returns raw ImmyBot JSON.

ParamTypeRequiredDefaultDescription
filterstringnonullOptional DevExtreme filter expression (JSON array string).
requireTotalCountbooleannonullWhen true, include the total record count in the response.
skipintegernonullNumber of records to skip (DevExtreme skip). Optional.
sortstringnonullOptional DevExtreme sort expression (JSON array string).
takeintegernonullNumber of records to return (DevExtreme take, max 100). Optional.

[ImmyBot] Get the most recent log line for a maintenance session by sessionId — a lightweight way to poll live progress. Returns raw ImmyBot JSON.

ParamTypeRequiredDefaultDescription
sessionIdstringyesThe maintenance session id (from immy_list_maintenance_sessions_dx).

[ImmyBot] List the full log stream for a maintenance session by sessionId. Sieve-paginated: Page + pageSize (max 100) + optional Filters/Sorts. For very old sessions whose logs were rolled off, use immy_list_maintenance_sessions_old_logs. Returns raw ImmyBot JSON.

ParamTypeRequiredDefaultDescription
filtersstringnonullOptional Sieve filter expression.
pageintegernonull1-based page number (Sieve Page). Optional.
pageSizeintegernonullRecords per page (Sieve pageSize, max 100). Optional.
sessionIdstringyesThe maintenance session id (from immy_list_maintenance_sessions_dx).
sortsstringnonullOptional Sieve sort expression.

[ImmyBot] List the archived/old log stream for a maintenance session by sessionId (the pre-rollover logs not returned by immy_list_maintenance_sessions_logs). Sieve-paginated: Page + pageSize (max 100) + optional Filters/Sorts. Returns raw ImmyBot JSON.

ParamTypeRequiredDefaultDescription
filtersstringnonullOptional Sieve filter expression.
pageintegernonull1-based page number (Sieve Page). Optional.
pageSizeintegernonullRecords per page (Sieve pageSize, max 100). Optional.
sessionIdstringyesThe maintenance session id (from immy_list_maintenance_sessions_dx).
sortsstringnonullOptional Sieve sort expression.

[ImmyBot] List the phases (detection, resolution, follow-up, etc.) of a maintenance session by sessionId, with each phase's status and timing. Sieve-paginated: Page + pageSize (max 100) + optional Filters/Sorts. Returns raw ImmyBot JSON.

ParamTypeRequiredDefaultDescription
filtersstringnonullOptional Sieve filter expression.
pageintegernonull1-based page number (Sieve Page). Optional.
pageSizeintegernonullRecords per page (Sieve pageSize, max 100). Optional.
sessionIdstringyesThe maintenance session id (from immy_list_maintenance_sessions_dx).
sortsstringnonullOptional Sieve sort expression.

[ImmyBot] Get the count of maintenance sessions in each status (e.g. running, completed, cancelled, failed). Useful for a dashboard summary. Returns raw ImmyBot JSON.

[ImmyBot] Re-run a single action within a maintenance session (re-executes just that one maintenance action). Pass the sessionId and the actionId (both from immy_get_maintenance_sessions). This endpoint takes no body — leave fieldsJson as ``. Returns raw ImmyBot JSON.

ParamTypeRequiredDefaultDescription
actionIdstringyesThe action id within the session (from immy_get_maintenance_sessions).
fieldsJsonstringno""JSON object body. This endpoint takes no parameters — leave as `` (the default).
sessionIdstringyesThe maintenance session id (from immy_list_maintenance_sessions_dx).

[ImmyBot] Resume a paused/waiting maintenance session by sessionId (e.g. one that stalled awaiting a reboot or user response). Pass the sessionId (from immy_list_maintenance_sessions_dx). This endpoint takes no body — leave fieldsJson as ``. Returns raw ImmyBot JSON.

ParamTypeRequiredDefaultDescription
fieldsJsonstringno""JSON object body. This endpoint takes no parameters — leave as `` (the default).
sessionIdstringyesThe maintenance session id to resume (from immy_list_maintenance_sessions_dx).

[ImmyBot] Re-run a single maintenance session by sessionId (re-executes maintenance against its original target). Pass the sessionId (from immy_list_maintenance_sessions_dx). This endpoint takes no body — leave fieldsJson as ``. Returns raw ImmyBot JSON.

ParamTypeRequiredDefaultDescription
fieldsJsonstringno""JSON object body. This endpoint takes no parameters — leave as `` (the default).
sessionIdstringyesThe maintenance session id to rerun (from immy_list_maintenance_sessions_dx).

[ImmyBot] Re-run a set of maintenance sessions (re-executes maintenance against their original targets). Provide a JSON object body: sessionIds (array of maintenance session ids from immy_list_maintenance_sessions_dx). Returns raw ImmyBot JSON (new session IDs).

ParamTypeRequiredDefaultDescription
fieldsJsonstringyesJSON object body. Required: sessionIds (array of session ids to rerun).

[ImmyBot] Enqueue one or more maintenance sessions and SYNCHRONOUSLY return the started session IDs. This can install/uninstall software, run maintenance tasks, and reboot endpoints, so it is destructive — get user approval before running. Provide a JSON object body: target with exactly one of computers, tenants, or persons (arrays; mutually exclusive). Optional: maintenanceParams (the software/task to run; omit for full maintenance), detectionOnly, resolutionOnly, inventoryOnly, fullMaintenance, cacheOnly, rebootPreference, licenseId, updateTime, timeZoneInfoId, and email/prompt options. For large fan-outs prefer immy_run_immy_service_new (background). Returns raw ImmyBot JSON (started session IDs).

ParamTypeRequiredDefaultDescription
fieldsJsonstringyesJSON object body. Targets: exactly one of computers / tenants / persons (arrays). Optional: maintenanceParams, detectionOnly, resolutionOnly, inventoryOnly, fullMaintenance, rebootPreference, licenseId, etc.

[ImmyBot] Enqueue one or more maintenance sessions in the BACKGROUND and return immediately (202 Accepted) without waiting for the session IDs. Same target/body shape as immy_run_immy_service (exactly one of computers, tenants, or persons; optional maintenanceParams and options). Preferred for large fan-outs. Destructive — it executes maintenance (install/uninstall/reboot) on customer endpoints; get user approval first. Poll status with immy_list_maintenance_sessions_dx / immy_get_maintenance_sessions. Returns raw ImmyBot JSON.

ParamTypeRequiredDefaultDescription
fieldsJsonstringyesJSON object body. Targets: exactly one of computers / tenants / persons (arrays). Optional: maintenanceParams and options. Optional sessionGroupId to correlate per-target sessions.

Maintenance Tasks

ToolPlanAccessSummary
immy_create_global_maintenance_taskProWriteCreate a new GLOBAL (cross-tenant) maintenance task.
immy_create_local_maintenance_taskProWriteCreate a new LOCAL (tenant-scoped) maintenance task.
immy_delete_maintenance_tasks_globalProDestructivePermanently delete the global maintenance task identified by id — this cannot be undone and every deployment/target-assignment referencing it will lose that task.
immy_delete_maintenance_tasks_localProDestructivePermanently delete the local maintenance task identified by id — this cannot be undone and any deployment referencing it will lose that task.
immy_get_maintenance_tasks_globalFreeRead-onlyGet a single global maintenance task by id, including its script/metascript body and parameter definitions.
immy_get_maintenance_tasks_localFreeRead-onlyGet a single local maintenance task by id, including its script/metascript body and parameter definitions.
immy_list_maintenance_tasks_authorizationFreeRead-onlyGet the authorization/access configuration for the maintenance task identified by id (which tenants/roles may see or run it).
immy_list_maintenance_tasks_globalFreeRead-onlyList global (cross-tenant) maintenance tasks.
immy_list_maintenance_tasks_localFreeRead-onlyList local (tenant-scoped) maintenance tasks.
immy_list_maintenance_tasks_reference_countFreeRead-onlyReturn the count of references to maintenance tasks (how many deployments/other objects point at each task) — used to gauge blast radius before editing or deleting a task.
immy_list_maintenance_tasks_searchFreeRead-onlySearch across both global and local maintenance tasks.
immy_maintenance_task_migrate_local_to_global_what_ifFreeRead-onlyPreview (dry-run) what promoting the local maintenance task identified by id to a global task would do — surfaces conflicts, references, and the resulting shape without making any change.
immy_maintenance_tasks_authorizationProWriteSet the authorization/access configuration for the maintenance task identified by id (which tenants/roles may see or run it).
immy_maintenance_tasks_duplicateProWriteDuplicate an existing maintenance task, creating an editable copy.
immy_maintenance_tasks_global_param_block_from_parametersFreeRead-onlyGenerate the PowerShell param() block text for the global maintenance task identified by id from a set of parameter definitions.
immy_maintenance_tasks_local_migrate_local_to_globalProWritePromote the local maintenance task identified by id to a GLOBAL (cross-tenant) task, making it available to all tenants.
immy_maintenance_tasks_local_param_block_from_parametersFreeRead-onlyGenerate the PowerShell param() block text for the local maintenance task identified by id from a set of parameter definitions.
immy_maintenance_tasks_validate_param_block_parametersFreeRead-onlyValidate a set of param-block parameter definitions for a maintenance task — checks types, required-ness, and default consistency and returns validation results.
immy_update_global_maintenance_taskProDestructiveUpdate the global maintenance task identified by id.
immy_update_local_maintenance_taskProDestructiveUpdate the local maintenance task identified by id.

[ImmyBot] Create a new GLOBAL (cross-tenant) maintenance task. Body (fieldsJson) is the task definition — typically name, description, the script/metascript body, execution context, and parameter definitions. Returns the created task JSON (including its assigned id).

ParamTypeRequiredDefaultDescription
fieldsJsonstringyesMaintenance-task definition JSON (name, script body, execution context, parameters, ...).

[ImmyBot] Create a new LOCAL (tenant-scoped) maintenance task. Body (fieldsJson) is the task definition — typically name, description, script/metascript body, execution context, and parameter definitions. Returns the created task JSON (including its assigned id).

ParamTypeRequiredDefaultDescription
fieldsJsonstringyesMaintenance-task definition JSON (name, script body, execution context, parameters, ...).

[ImmyBot] Permanently delete the global maintenance task identified by id — this cannot be undone and every deployment/target-assignment referencing it will lose that task. Check immy_list_maintenance_tasks_reference_count first. id comes from immy_list_maintenance_tasks_global.

ParamTypeRequiredDefaultDescription
idstringyesGlobal maintenance-task id to delete (from immy_list_maintenance_tasks_global).

[ImmyBot] Permanently delete the local maintenance task identified by id — this cannot be undone and any deployment referencing it will lose that task. id comes from immy_list_maintenance_tasks_local.

ParamTypeRequiredDefaultDescription
idstringyesLocal maintenance-task id to delete (from immy_list_maintenance_tasks_local).

[ImmyBot] Get a single global maintenance task by id, including its script/metascript body and parameter definitions. id comes from immy_list_maintenance_tasks_global or immy_list_maintenance_tasks_search.

ParamTypeRequiredDefaultDescription
idstringyesGlobal maintenance-task id (from immy_list_maintenance_tasks_global).

[ImmyBot] Get a single local maintenance task by id, including its script/metascript body and parameter definitions. id comes from immy_list_maintenance_tasks_local or immy_list_maintenance_tasks_search.

ParamTypeRequiredDefaultDescription
idstringyesLocal maintenance-task id (from immy_list_maintenance_tasks_local).

[ImmyBot] Get the authorization/access configuration for the maintenance task identified by id (which tenants/roles may see or run it). id comes from immy_list_maintenance_tasks_global/local. Change it with the write tool immy_maintenance_tasks_authorization.

ParamTypeRequiredDefaultDescription
idstringyesMaintenance-task id (from immy_list_maintenance_tasks_global or immy_list_maintenance_tasks_local).

[ImmyBot] List global (cross-tenant) maintenance tasks. Supports Sieve paging/filtering. Each entry carries an id used by immy_get_maintenance_tasks_global and the update/delete tools. `pageSize` is clamped to 100. `filters`/`sorts` accept Sieve expressions (e.g. filters="name@=defender", sorts="name").

ParamTypeRequiredDefaultDescription
filtersstringnonullSieve filter expression, e.g. "name@=defender". Optional.
pageintegernonullSieve page number (1-based). Optional.
pageSizeintegernonullRows per page (max 100). Optional.
sortsstringnonullSieve sort expression, e.g. "name" or "-updatedDate". Optional.

[ImmyBot] List local (tenant-scoped) maintenance tasks. Supports Sieve paging/filtering. Each entry carries an id used by immy_get_maintenance_tasks_local and the update/delete tools. `pageSize` is clamped to 100. `filters`/`sorts` accept Sieve expressions.

ParamTypeRequiredDefaultDescription
filtersstringnonullSieve filter expression, e.g. "name@=install". Optional.
pageintegernonullSieve page number (1-based). Optional.
pageSizeintegernonullRows per page (max 100). Optional.
sortsstringnonullSieve sort expression, e.g. "name" or "-updatedDate". Optional.

[ImmyBot] Return the count of references to maintenance tasks (how many deployments/other objects point at each task) — used to gauge blast radius before editing or deleting a task. Takes no parameters.

[ImmyBot] Search across both global and local maintenance tasks. Supports Sieve paging/filtering — pass a Sieve `filters` expression to narrow by name/text. `pageSize` is clamped to 100. Results carry ids usable with the get/update/delete tools.

ParamTypeRequiredDefaultDescription
filtersstringnonullSieve filter expression, e.g. "name@=chrome". Optional.
pageintegernonullSieve page number (1-based). Optional.
pageSizeintegernonullRows per page (max 100). Optional.
sortsstringnonullSieve sort expression, e.g. "name". Optional.

[ImmyBot] Preview (dry-run) what promoting the local maintenance task identified by id to a global task would do — surfaces conflicts, references, and the resulting shape without making any change. Pair with the write tool immy_maintenance_tasks_local_migrate_local_to_global to actually perform the migration. id comes from immy_list_maintenance_tasks_local.

ParamTypeRequiredDefaultDescription
idstringyesLocal maintenance-task id (from immy_list_maintenance_tasks_local).

[ImmyBot] Set the authorization/access configuration for the maintenance task identified by id (which tenants/roles may see or run it). id comes from immy_list_maintenance_tasks_global/local. Read the current config with immy_list_maintenance_tasks_authorization. Body (fieldsJson): the authorization definition.

ParamTypeRequiredDefaultDescription
fieldsJsonstringyesAuthorization definition JSON.
idstringyesMaintenance-task id (from immy_list_maintenance_tasks_global or immy_list_maintenance_tasks_local).

[ImmyBot] Duplicate an existing maintenance task, creating an editable copy. Body (fieldsJson): identifies the source task (e.g. its id) and any overrides (e.g. new name). Returns the newly created task JSON.

ParamTypeRequiredDefaultDescription
fieldsJsonstringyesJSON identifying the source task to duplicate plus any overrides (e.g. sourceId, name).

[ImmyBot] Generate the PowerShell param() block text for the global maintenance task identified by id from a set of parameter definitions. This is a read-only preview/codegen helper (POST-as-read) — it computes and returns the param block and does NOT modify the task. id comes from immy_list_maintenance_tasks_global. Body (fieldsJson): the parameter definitions to render.

ParamTypeRequiredDefaultDescription
fieldsJsonstringyesParameter definitions JSON to render into a param() block.
idstringyesGlobal maintenance-task id (from immy_list_maintenance_tasks_global).

[ImmyBot] Promote the local maintenance task identified by id to a GLOBAL (cross-tenant) task, making it available to all tenants. Preview the effect first with immy_maintenance_task_migrate_local_to_global_what_if. id comes from immy_list_maintenance_tasks_local. Body (fieldsJson): migration options (may be an empty object).

ParamTypeRequiredDefaultDescription
fieldsJsonstringyesMigration options JSON (may be an empty object ).
idstringyesLocal maintenance-task id to promote (from immy_list_maintenance_tasks_local).

[ImmyBot] Generate the PowerShell param() block text for the local maintenance task identified by id from a set of parameter definitions. This is a read-only preview/codegen helper (POST-as-read) — it computes and returns the param block and does NOT modify the task. id comes from immy_list_maintenance_tasks_local. Body (fieldsJson): the parameter definitions to render.

ParamTypeRequiredDefaultDescription
fieldsJsonstringyesParameter definitions JSON to render into a param() block.
idstringyesLocal maintenance-task id (from immy_list_maintenance_tasks_local).

[ImmyBot] Validate a set of param-block parameter definitions for a maintenance task — checks types, required-ness, and default consistency and returns validation results. This is a read-only validation helper (POST-as-read) and does NOT persist anything. Body (fieldsJson): the parameter definitions to validate.

ParamTypeRequiredDefaultDescription
fieldsJsonstringyesParameter definitions JSON to validate.

[ImmyBot] Update the global maintenance task identified by id. Body (fieldsJson) is the full task definition (replace semantics, not a partial patch). id comes from immy_list_maintenance_tasks_global. Editing a widely-referenced task affects every deployment that uses it — check immy_list_maintenance_tasks_reference_count first.

ParamTypeRequiredDefaultDescription
fieldsJsonstringyesFull maintenance-task definition JSON (replace semantics).
idstringyesGlobal maintenance-task id (from immy_list_maintenance_tasks_global).

[ImmyBot] Update the local maintenance task identified by id. Body (fieldsJson) is the full task definition (replace semantics, not a partial patch). id comes from immy_list_maintenance_tasks_local.

ParamTypeRequiredDefaultDescription
fieldsJsonstringyesFull maintenance-task definition JSON (replace semantics).
idstringyesLocal maintenance-task id (from immy_list_maintenance_tasks_local).

Inventory Tasks

ToolPlanAccessSummary
immy_create_local_inventory_taskProWriteCreate a new LOCAL (tenant-authored) inventory task.
immy_delete_inventory_tasks_localProDestructivePermanently delete the local inventory task identified by id, along with its collection scripts — this cannot be undone and any detection/deployment logic referencing its inventory keys will lose that…
immy_delete_inventory_tasks_local_scriptsProDestructivePermanently remove a single collection script (identified by inventoryKey) from the local inventory task identified by taskId — this cannot be undone.
immy_inventory_tasks_local_scriptsProWriteAdd or update a collection script on the local inventory task identified by id.
immy_list_inventory_tasksFreeRead-onlyList all inventory tasks (global vendor + local tenant-authored) that collect custom inventory data from managed computers.
immy_update_local_inventory_taskProDestructiveUpdate the local inventory task identified by id.

[ImmyBot] Create a new LOCAL (tenant-authored) inventory task. Body (fieldsJson) is the inventory-task definition — typically name, description, and the inventory scripts/keys it gathers. Returns the created task JSON (including its assigned id). Only local inventory tasks are editable; global ones are read-only vendor content. Attach collection scripts afterward with immy_inventory_tasks_local_scripts.

ParamTypeRequiredDefaultDescription
fieldsJsonstringyesInventory-task definition JSON (e.g. name, description, inventory keys/scripts).

[ImmyBot] Permanently delete the local inventory task identified by id, along with its collection scripts — this cannot be undone and any detection/deployment logic referencing its inventory keys will lose that data source. id comes from immy_list_inventory_tasks. Only local inventory tasks can be deleted.

ParamTypeRequiredDefaultDescription
idstringyesLocal inventory-task id to delete (from immy_list_inventory_tasks).

[ImmyBot] Permanently remove a single collection script (identified by inventoryKey) from the local inventory task identified by taskId — this cannot be undone. taskId comes from immy_list_inventory_tasks; inventoryKey identifies the specific script/inventory slot within that task.

ParamTypeRequiredDefaultDescription
inventoryKeystringyesInventory key identifying the script/slot to remove from the task.
taskIdstringyesLocal inventory-task id (from immy_list_inventory_tasks).

[ImmyBot] Add or update a collection script on the local inventory task identified by id. Body (fieldsJson) describes the script and its inventory key (the named slot whose output this script produces). id comes from immy_list_inventory_tasks. Remove a script with immy_delete_inventory_tasks_local_scripts.

ParamTypeRequiredDefaultDescription
fieldsJsonstringyesScript definition JSON (script body + its inventory key / metadata).
idstringyesLocal inventory-task id (from immy_list_inventory_tasks).

[ImmyBot] List all inventory tasks (global vendor + local tenant-authored) that collect custom inventory data from managed computers. Supports Sieve paging/filtering. Each entry carries an id used by the get/update/delete inventory-task tools. `pageSize` is clamped to 100. `filters`/`sorts` accept Sieve expressions (e.g. filters="name@=chrome", sorts="name").

ParamTypeRequiredDefaultDescription
filtersstringnonullSieve filter expression, e.g. "name@=chrome". Optional.
pageintegernonullSieve page number (1-based). Optional.
pageSizeintegernonullRows per page (max 100). Optional.
sortsstringnonullSieve sort expression, e.g. "name" or "-updatedDate". Optional.

[ImmyBot] Update the local inventory task identified by id. Body (fieldsJson) is the full inventory-task definition (this is a replace, not a partial patch). id comes from immy_list_inventory_tasks. Only local inventory tasks can be updated.

ParamTypeRequiredDefaultDescription
fieldsJsonstringyesFull inventory-task definition JSON (replace semantics).
idstringyesLocal inventory-task id (from immy_list_inventory_tasks).

Tags

ToolPlanAccessSummary
immy_create_tagProWriteCreate a tag.
immy_delete_tagsProDestructivePermanently delete a tag by id (from immy_list_tags).
immy_get_tagsFreeRead-onlyGet a single tag by id (from immy_list_tags).
immy_list_tagsFreeRead-onlyList tags defined in the ImmyBot instance.
immy_list_tags_authorizationFreeRead-onlyGet the authorization (RBAC) settings for a tag by id (from immy_list_tags) — which roles/groups may act on resources carrying this tag.
immy_tags_authorizationProWriteSet the authorization (RBAC) settings for a tag by id (from immy_list_tags) — which roles/groups may act on resources carrying this tag.
immy_update_tagProWriteUpdate a tag by id (from immy_list_tags).

[ImmyBot] Create a tag. Provide a JSON object body — typically name (string) plus optional color/description. The created tag id can then be applied via immy_add_tags_to_computers / immy_add_tags_to_persons / immy_add_tags_to_tenants.

ParamTypeRequiredDefaultDescription
fieldsJsonstringyesJSON object body for the new tag (e.g. { "name": "Finance" }).

[ImmyBot] Permanently delete a tag by id (from immy_list_tags). This removes the tag from every computer/person/tenant it is applied to and cannot be undone.

ParamTypeRequiredDefaultDescription
tagIdstringyesThe id of the tag to delete (from immy_list_tags).

[ImmyBot] Get a single tag by id (from immy_list_tags). Returns the tag's id, name, and configuration.

ParamTypeRequiredDefaultDescription
tagIdstringyesThe id of the tag (from immy_list_tags).

[ImmyBot] List tags defined in the ImmyBot instance. Tags label computers, persons, and tenants and can be used as deployment/role-assignment targets. Paginated via Sieve: page (1-based) + pageSize (max 100). filters/sorts accept Sieve expressions (e.g. filters="Name@=windows", sorts="Name"). Returns each tag's id and name; feed a tag id to immy_get_tags / immy_update_tag / immy_delete_tags.

ParamTypeRequiredDefaultDescription
filtersstringnonullSieve filter expression, e.g. "Name@=finance". Omit for no filter.
pageintegernonull1-based page number (Sieve Page). Omit for the first page.
pageSizeintegernonullRecords per page (Sieve pageSize). Max 100; omit for the server default.
sortsstringnonullSieve sort expression, e.g. "Name" or "-Name" (descending). Omit for the default order.

[ImmyBot] Get the authorization (RBAC) settings for a tag by id (from immy_list_tags) — which roles/groups may act on resources carrying this tag. Update it with immy_tags_authorization.

ParamTypeRequiredDefaultDescription
tagIdstringyesThe id of the tag (from immy_list_tags).

[ImmyBot] Set the authorization (RBAC) settings for a tag by id (from immy_list_tags) — which roles/groups may act on resources carrying this tag. Provide a JSON object body describing the authorization. Read the current state with immy_list_tags_authorization first.

ParamTypeRequiredDefaultDescription
fieldsJsonstringyesJSON object body describing the tag authorization to apply.
tagIdstringyesThe id of the tag (from immy_list_tags).

[ImmyBot] Update a tag by id (from immy_list_tags). Provide a JSON object body with the fields to change (e.g. name). Note: ImmyBot updates a tag via HTTP POST to /tags/, not PUT.

ParamTypeRequiredDefaultDescription
fieldsJsonstringyesJSON object body with the tag fields to change.
tagIdstringyesThe id of the tag to update (from immy_list_tags).

Tenants

ToolPlanAccessSummary
immy_add_tags_to_tenantsProWriteAdd one or more tags to one or more tenants.
immy_get_tenantsFreeRead-onlyGet a single tenant by id (from immy_list_tenants).
immy_get_tenants_azure_groupsFreeRead-onlyGet a single Azure (Entra) group for a tenant by tenant id (from immy_list_tenants) and group id (from immy_list_tenants_azure_groups).
immy_get_tenants_software_from_inventoryFreeRead-onlyGet a single software-from-inventory record by id (from immy_list_tenants_software_from_inventory_dx).
immy_list_tenantsFreeRead-onlyList the tenants (managed customer organizations) in the ImmyBot instance.
immy_list_tenants_azure_groupsFreeRead-onlyList the Azure (Entra) groups for a tenant by tenant id (from immy_list_tenants).
immy_list_tenants_computer_countsFreeRead-onlyList tenants with their managed-computer counts.
immy_list_tenants_computers_excluded_from_maintenanceFreeRead-onlyList a tenant's computers that are excluded from maintenance, by tenant id (from immy_list_tenants).
immy_list_tenants_excluded_from_cross_tenant_deploymentsFreeRead-onlyList tenants that are excluded from cross-tenant (global) deployments.
immy_list_tenants_software_from_inventory_dxFreeRead-onlyList software discovered across tenants from inventory, as a DevExtreme grid feed.
immy_list_tenants_software_from_inventory_exportFreeRead-onlyExport the cross-tenant software-from-inventory report as an XLSX spreadsheet.
immy_patch_tenants_activateProWriteActivate a tenant by id (from immy_list_tenants).
immy_patch_tenants_deactivateProWriteDeactivate a tenant by id (from immy_list_tenants).
immy_remove_tags_from_tenantsProWriteRemove one or more tags from one or more tenants.
immy_tenantsProWriteCreate a tenant (managed customer organization).
immy_tenants_bulk_createProWriteCreate multiple tenants in one call.
immy_tenants_bulk_deleteProDestructivePermanently delete multiple tenants in one call — irreversible.
immy_tenants_bulk_mergeProDestructiveMerge tenants together — consolidates source tenants into a target and removes the sources; irreversible.
immy_tenants_remove_parent_tenantProWriteRemove the parent-tenant link from one or more tenants, flattening them out of a parent/child hierarchy.
immy_tenants_resolve_assignments_for_maintenance_itemFreeRead-onlyResolve which tenants a given maintenance item's deployments apply to (a read-only what-resolves query, sent as an HTTP POST).
immy_tenants_set_parent_tenantProWriteSet the parent-tenant link on one or more tenants, placing them under a parent in the tenant hierarchy.
immy_tenants_update_azure_tenant_linkProWriteLink (or update the link for) an ImmyBot tenant to a Microsoft Azure (Entra) tenant, enabling Azure-group inspection (immy_list_tenants_azure_groups) and Azure-scoped automation.
immy_update_tenantsProWriteUpdate a tenant by id (from immy_list_tenants).

[ImmyBot] Add one or more tags to one or more tenants. Provide a JSON object body identifying the tenant id(s) and tag id(s) (tags from immy_list_tags, tenants from immy_list_tenants). Remove them with immy_remove_tags_from_tenants.

ParamTypeRequiredDefaultDescription
fieldsJsonstringyesJSON object body with the tenant id(s) and tag id(s) to add.

[ImmyBot] Get a single tenant by id (from immy_list_tenants). Returns the tenant's full detail (name, parent tenant, Azure link, flags).

ParamTypeRequiredDefaultDescription
idstringyesThe id of the tenant (from immy_list_tenants).

[ImmyBot] Get a single Azure (Entra) group for a tenant by tenant id (from immy_list_tenants) and group id (from immy_list_tenants_azure_groups). Returns the group's detail.

ParamTypeRequiredDefaultDescription
groupIdstringyesThe id of the Azure group (from immy_list_tenants_azure_groups).
idstringyesThe id of the tenant (from immy_list_tenants).

[ImmyBot] Get a single software-from-inventory record by id (from immy_list_tenants_software_from_inventory_dx). Returns the discovered software detail.

ParamTypeRequiredDefaultDescription
idstringyesThe id of the software-from-inventory record (from immy_list_tenants_software_from_inventory_dx).

[ImmyBot] List the tenants (managed customer organizations) in the ImmyBot instance. Paginated via Sieve: page (1-based) + pageSize (max 100). filters/sorts accept Sieve expressions (e.g. filters="Name@=acme", sorts="Name"). Returns each tenant's id and name; feed a tenant id to immy_get_tenants and the tenant write tools.

ParamTypeRequiredDefaultDescription
filtersstringnonullSieve filter expression, e.g. "Name@=acme". Omit for no filter.
pageintegernonull1-based page number (Sieve Page). Omit for the first page.
pageSizeintegernonullRecords per page (Sieve pageSize). Max 100; omit for the server default.
sortsstringnonullSieve sort expression, e.g. "Name" or "-Name" (descending). Omit for the default order.

[ImmyBot] List the Azure (Entra) groups for a tenant by tenant id (from immy_list_tenants). Requires the tenant to have a linked Azure tenant (see immy_tenants_update_azure_tenant_link). Paginated via Sieve: page + pageSize (max 100), plus optional filters/sorts. Get one group with immy_get_tenants_azure_groups.

ParamTypeRequiredDefaultDescription
filtersstringnonullSieve filter expression. Omit for no filter.
idstringyesThe id of the tenant (from immy_list_tenants).
pageintegernonull1-based page number (Sieve Page). Omit for the first page.
pageSizeintegernonullRecords per page (Sieve pageSize). Max 100; omit for the server default.
sortsstringnonullSieve sort expression. Omit for the default order.

[ImmyBot] List tenants with their managed-computer counts. Paginated via Sieve: page + pageSize (max 100), plus optional filters/sorts. Useful for a fleet-size overview per customer.

ParamTypeRequiredDefaultDescription
filtersstringnonullSieve filter expression. Omit for no filter.
pageintegernonull1-based page number (Sieve Page). Omit for the first page.
pageSizeintegernonullRecords per page (Sieve pageSize). Max 100; omit for the server default.
sortsstringnonullSieve sort expression. Omit for the default order.

[ImmyBot] List a tenant's computers that are excluded from maintenance, by tenant id (from immy_list_tenants). Paginated via Sieve: page + pageSize (max 100), plus optional filters/sorts. Exclude/include individual computers with immy_computers_exclude_from_maintenance.

ParamTypeRequiredDefaultDescription
filtersstringnonullSieve filter expression. Omit for no filter.
idstringyesThe id of the tenant (from immy_list_tenants).
pageintegernonull1-based page number (Sieve Page). Omit for the first page.
pageSizeintegernonullRecords per page (Sieve pageSize). Max 100; omit for the server default.
sortsstringnonullSieve sort expression. Omit for the default order.

[ImmyBot] List tenants that are excluded from cross-tenant (global) deployments. Paginated via Sieve: page + pageSize (max 100), plus optional filters/sorts.

ParamTypeRequiredDefaultDescription
filtersstringnonullSieve filter expression. Omit for no filter.
pageintegernonull1-based page number (Sieve Page). Omit for the first page.
pageSizeintegernonullRecords per page (Sieve pageSize). Max 100; omit for the server default.
sortsstringnonullSieve sort expression. Omit for the default order.

[ImmyBot] List software discovered across tenants from inventory, as a DevExtreme grid feed. Uses DevExtreme paging: skip + take (take max 100), with optional filter/sort (DevExtreme JSON expressions) and requireTotalCount. For a downloadable spreadsheet use immy_list_tenants_software_from_inventory_export.

ParamTypeRequiredDefaultDescription
filterstringnonullDevExtreme filter expression (JSON). Omit for no filter.
requireTotalCountbooleannonullSet true to include a total record count in the response. Omit to skip counting.
skipintegernonullNumber of records to skip (DevExtreme skip). Omit to start at 0.
sortstringnonullDevExtreme sort expression (JSON). Omit for the default order.
takeintegernonullNumber of records to take (DevExtreme take). Max 100; omit for the server default.

[ImmyBot] Export the cross-tenant software-from-inventory report as an XLSX spreadsheet. Because the response is a binary spreadsheet (not JSON), this returns a short-lived read-only SAS URL envelope {sasUrl, contentType, suggestedFilename, sizeBytes, expiresAt} — download the spreadsheet from sasUrl out-of-band; do NOT decode the URL as content. Optional Sieve filters/sorts narrow the exported rows.

ParamTypeRequiredDefaultDescription
filtersstringnonullSieve filter expression to narrow the exported rows. Omit to export all.
sortsstringnonullSieve sort expression for the exported rows. Omit for the default order.

[ImmyBot] Activate a tenant by id (from immy_list_tenants). Sent as an HTTP PATCH to /tenants/activate/. The body is usually empty (); pass a JSON object only if the endpoint requires activation options.

ParamTypeRequiredDefaultDescription
fieldsJsonstringno""JSON object body of activation options. Defaults to an empty object ().
idstringyesThe id of the tenant to activate (from immy_list_tenants).

[ImmyBot] Deactivate a tenant by id (from immy_list_tenants). Sent as an HTTP PATCH to /tenants/deactivate/. The body is usually empty (); pass a JSON object only if the endpoint requires deactivation options. Re-activate with immy_patch_tenants_activate.

ParamTypeRequiredDefaultDescription
fieldsJsonstringno""JSON object body of deactivation options. Defaults to an empty object ().
idstringyesThe id of the tenant to deactivate (from immy_list_tenants).

[ImmyBot] Remove one or more tags from one or more tenants. Provide a JSON object body identifying the tenant id(s) and tag id(s) (tags from immy_list_tags, tenants from immy_list_tenants). Add them with immy_add_tags_to_tenants.

ParamTypeRequiredDefaultDescription
fieldsJsonstringyesJSON object body with the tenant id(s) and tag id(s) to remove.

[ImmyBot] Create a tenant (managed customer organization). Provide a JSON object body — typically name plus optional parent-tenant and configuration fields. For creating many at once use immy_tenants_bulk_create.

ParamTypeRequiredDefaultDescription
fieldsJsonstringyesJSON object body for the new tenant (e.g. { "name": "Acme Corp" }).

[ImmyBot] Create multiple tenants in one call. Provide a JSON object body containing the array of tenants to create (each typically with a name). For a single tenant use immy_tenants.

ParamTypeRequiredDefaultDescription
fieldsJsonstringyesJSON object body describing the tenants to create (e.g. { "tenants": [ { "name": "Acme" } ] }).

[ImmyBot] Permanently delete multiple tenants in one call — irreversible. Provide a JSON object body with the array of tenant id(s) to delete (from immy_list_tenants). Deleting a tenant removes its managed computers/persons associations.

ParamTypeRequiredDefaultDescription
fieldsJsonstringyesJSON object body with the tenant id(s) to permanently delete (from immy_list_tenants).

[ImmyBot] Merge tenants together — consolidates source tenants into a target and removes the sources; irreversible. Provide a JSON object body identifying the source and target tenant id(s) (from immy_list_tenants). Review affected tenants before merging.

ParamTypeRequiredDefaultDescription
fieldsJsonstringyesJSON object body identifying the source and target tenant id(s) to merge (from immy_list_tenants).

[ImmyBot] Remove the parent-tenant link from one or more tenants, flattening them out of a parent/child hierarchy. Provide a JSON object body with the tenant id(s) (from immy_list_tenants). Set a parent with immy_tenants_set_parent_tenant.

ParamTypeRequiredDefaultDescription
fieldsJsonstringyesJSON object body with the tenant id(s) whose parent link to remove (from immy_list_tenants).

[ImmyBot] Resolve which tenants a given maintenance item's deployments apply to (a read-only what-resolves query, sent as an HTTP POST). Provide a JSON object body describing the maintenance item / criteria. Returns the resolved tenant assignments; makes no changes.

ParamTypeRequiredDefaultDescription
fieldsJsonstringyesJSON object body identifying the maintenance item / resolution criteria.

[ImmyBot] Set the parent-tenant link on one or more tenants, placing them under a parent in the tenant hierarchy. Provide a JSON object body identifying the child tenant id(s) and the parent tenant id (from immy_list_tenants). Remove the link with immy_tenants_remove_parent_tenant.

ParamTypeRequiredDefaultDescription
fieldsJsonstringyesJSON object body with the child tenant id(s) and the parent tenant id (from immy_list_tenants).

[ImmyBot] Update a tenant by id (from immy_list_tenants). Sent as an HTTP PUT to /tenants/ — provide the full JSON object body of tenant fields to set. For activation/parent-link changes use the dedicated tools (immy_patch_tenants_activate, immy_tenants_set_parent_tenant).

ParamTypeRequiredDefaultDescription
fieldsJsonstringyesJSON object body of tenant fields to set (full replace).
idstringyesThe id of the tenant to update (from immy_list_tenants).
ToolPlanAccessSummary
immy_delete_provider_linksProDestructivePermanently delete a provider link by its id (from immy_list_provider_links).
immy_get_provider_linksFreeRead-onlyGet a single provider link by its id (from immy_list_provider_links).
immy_get_provider_links_ticketsFreeRead-onlyGet a single ticket from the PSA provider behind a provider link (from immy_list_provider_links), identified by the provider's ticket id.
immy_get_rmm_linksFreeRead-onlyGet a single RMM link by its id (from immy_list_rmm_links) — the RMM-scoped view of a provider link.
immy_installer_agent_rekey_requestProWriteRequest a rekey of an ImmyBot agent installer (rotate the agent's key material for re-enrollment).
immy_list_provider_linksFreeRead-onlyList the provider links (integrations to external RMM / PSA / documentation providers) configured in this ImmyBot instance.
immy_list_provider_links_auditsFreeRead-onlyList the audit-log entries for a provider link (from immy_list_provider_links) — configuration changes, sync events, and errors over time.
immy_list_provider_links_immy_field_samplesFreeRead-onlyList sample values for the ImmyBot-side fields available when configuring asset field mappings on a provider link (from immy_list_provider_links).
immy_list_provider_links_with_unmapped_clientsFreeRead-onlyList provider links that still have external clients not yet mapped to an ImmyBot tenant.
immy_list_rmm_linksFreeRead-onlyList provider links filtered to the RMM-capable providers only (a filtered alias view over immy_list_provider_links).
immy_plugin_proxy_getFreeRead-onlyOpen-world proxy: forward a GET request to a provider plugin's own API under the given provider link (from immy_list_provider_links).
immy_plugin_proxy_postProDestructiveOpen-world proxy: forward a POST request to a provider plugin's own API under the given provider link (from immy_list_provider_links).
immy_provider_linksProWriteCreate a provider link (a new integration to an external RMM / PSA / documentation provider).
immy_provider_links_create_with_external_provider_referenceProWriteCreate a provider link from an existing external provider reference (e.g. an Azure/partner reference already known to ImmyBot).
immy_provider_links_reloadProWriteReload a provider link by its id (from immy_list_provider_links) — reinitialize the plugin/integration and refresh its cached state.
immy_provider_links_verify_with_external_provider_referenceProWriteVerify that an external provider reference resolves and can back a provider link, WITHOUT creating anything.
immy_rmm_linksProWriteCreate an RMM provider link (the RMM-scoped create path; a provider link whose provider is an RMM).
immy_update_provider_linksProDestructiveUpdate a provider link by its id (from immy_list_provider_links).
immy_update_rmm_linksProDestructiveUpdate an RMM link by its id (from immy_list_rmm_links).

[ImmyBot] Request a rekey of an ImmyBot agent installer (rotate the agent's key material for re-enrollment). Provide the request parameters as a JSON object in bodyJson. This is a host-rooted installer endpoint (/installer/agent-rekey/request).

ParamTypeRequiredDefaultDescription
bodyJsonstringyesJSON object with the agent-rekey request parameters.

[ImmyBot] Open-world proxy: forward a GET request to a provider plugin's own API under the given provider link (from immy_list_provider_links). The catchAll sub-path and optional raw query string are passed VERBATIM to the plugin (path is host-rooted at /plugins/api/v1//); the plugin defines its own routes and response shape. Use only when a dedicated ImmyBot tool does not cover the plugin capability you need.

ParamTypeRequiredDefaultDescription
catchAllstringyesThe plugin-defined sub-path, forwarded verbatim (may contain slashes), e.g. "devices/123/status".
providerLinkIdstringyesThe provider link id that owns the plugin (from immy_list_provider_links).
querystringnonullOptional raw query string WITHOUT a leading '?', e.g. "limit=50&active=true". Omit if none.

[ImmyBot] Open-world proxy: forward a POST request to a provider plugin's own API under the given provider link (from immy_list_provider_links). The catchAll sub-path is passed VERBATIM (host-rooted at /plugins/api/v1//) and bodyJson becomes the request body; the plugin defines its own routes, semantics, and response shape. This can mutate provider-side state — use only when a dedicated ImmyBot tool does not cover the capability.

ParamTypeRequiredDefaultDescription
bodyJsonstringyesJSON request body forwarded to the plugin.
catchAllstringyesThe plugin-defined sub-path, forwarded verbatim (may contain slashes).
providerLinkIdstringyesThe provider link id that owns the plugin (from immy_list_provider_links).
ToolPlanAccessSummary
immy_delete_provider_links_asset_field_mappingsProDestructivePermanently delete an asset field mapping from a provider link.
immy_delete_provider_links_asset_match_fieldsProDestructivePermanently delete an asset match field from a provider link.
immy_list_provider_links_asset_field_mappingsFreeRead-onlyList the asset field mappings configured on a provider link (from immy_list_provider_links) — each mapping ties an external provider field to an ImmyBot field.
immy_list_provider_links_asset_fieldsFreeRead-onlyList the external asset fields exposed by the provider behind a provider link (from immy_list_provider_links) — the source side of an asset field mapping.
immy_list_provider_links_asset_fields_samplesFreeRead-onlyList sample values for a single external asset field on a provider link — helps you preview what data a field carries before mapping it.
immy_list_provider_links_asset_match_fieldsFreeRead-onlyList the asset match fields configured on a provider link (from immy_list_provider_links) — the fields used to match external assets to ImmyBot computers during sync.
immy_list_provider_links_asset_match_fields_recommendedFreeRead-onlyList the recommended asset match fields for a provider link (from immy_list_provider_links) — ImmyBot's suggested matchers based on the provider's field schema.
immy_list_provider_links_assets_dxFreeRead-onlyList the synced assets for a provider link (from immy_list_provider_links) as a DevExtreme grid feed.
immy_list_provider_links_assets_job_stateFreeRead-onlyGet the current asset-sync job state for a provider link (from immy_list_provider_links) — whether a sync is running, queued, or idle, plus progress/last-result metadata.
immy_list_provider_links_assets_scheduleFreeRead-onlyGet the asset-sync schedule for a provider link (from immy_list_provider_links) — the cadence at which ImmyBot re-syncs assets from the external provider.
immy_list_provider_links_assets_urlFreeRead-onlyGet the external provider URL for a single synced asset — the deep link into the provider's UI for that asset.
immy_provider_links_asset_field_mappingsProWriteCreate an asset field mapping on a provider link (from immy_list_provider_links) — tie one external provider field to one ImmyBot field.
immy_provider_links_asset_match_fieldsProWriteCreate an asset match field on a provider link (from immy_list_provider_links) — a field used to match external assets to ImmyBot computers during sync.
immy_provider_links_assets_triggerProWriteTrigger an on-demand asset sync for a provider link (from immy_list_provider_links) — pull the latest assets from the external provider now instead of waiting for the schedule.
immy_update_provider_links_asset_field_mappingsProDestructiveUpdate an existing asset field mapping on a provider link.
immy_update_provider_links_asset_match_fieldsProDestructiveUpdate an existing asset match field on a provider link.

Provider Agents

ToolPlanAccessSummary
immy_list_provider_agents_identification_logsFreeRead-onlyList the identification logs for a single provider agent, by agentId (from immy_list_provider_agents_pending).
immy_list_provider_agents_pendingFreeRead-onlyList provider agents that are pending identification — agents discovered through a provider link (RMM/PSA integration) that ImmyBot has not yet matched to a managed computer/tenant.
immy_list_provider_agents_pending_conflictsFreeRead-onlyList the pending provider-agent conflicts for a specific computer, by computerId (from immy_list_computers).
immy_list_provider_agents_pending_countsFreeRead-onlyGet the count of provider agents pending identification, broken down (e.g. per provider link).
immy_provider_agents_bulk_delete_pendingProDestructivePermanently delete a set of pending (unidentified) provider agents in one call.
immy_provider_agents_identifyProWriteIdentify one or more pending provider agents — match each discovered agent to a managed computer/tenant so ImmyBot can manage it.
immy_provider_agents_resolve_failureProWriteResolve a single provider-agent identification failure, by failureId.
immy_resolve_agent_failures_for_agentProWriteResolve all identification failures for one provider agent, by agentId (from immy_list_provider_agents_pending).
immy_resolve_provider_agent_failuresProWriteResolve provider-agent identification failures in bulk.

[ImmyBot] List the identification logs for a single provider agent, by agentId (from immy_list_provider_agents_pending). Shows how ImmyBot attempted to match this agent to a computer/tenant and why it succeeded or failed — the primary evidence when resolving an identification failure with immy_provider_agents_resolve_failure. Supports Sieve paging (Page, pageSize up to 100, Filters, Sorts).

ParamTypeRequiredDefaultDescription
agentIdstringyesThe provider agent id, from immy_list_provider_agents_pending.
filtersstringnonullSieve Filters expression. Optional.
pageintegernonullPage number (Sieve, 1-based).
pageSizeintegernonullRecords per page (Sieve pageSize; max 100).
sortsstringnonullSieve Sorts expression. Optional.

[ImmyBot] List provider agents that are pending identification — agents discovered through a provider link (RMM/PSA integration) that ImmyBot has not yet matched to a managed computer/tenant. Supports Sieve paging (Page, pageSize up to 100, Filters, Sorts). Match them with immy_provider_agents_identify, or clear them with immy_provider_agents_bulk_delete_pending. See immy_list_provider_agents_pending_counts for a quick total.

ParamTypeRequiredDefaultDescription
filtersstringnonullSieve Filters expression. Optional.
pageintegernonullPage number (Sieve, 1-based).
pageSizeintegernonullRecords per page (Sieve pageSize; max 100).
sortsstringnonullSieve Sorts expression. Optional.

[ImmyBot] List the pending provider-agent conflicts for a specific computer, by computerId (from immy_list_computers). A conflict is when more than one pending provider agent could map to the same computer; this shows the competing candidates so you can pick the right one before identifying. Supports Sieve paging (Page, pageSize up to 100, Filters, Sorts).

ParamTypeRequiredDefaultDescription
computerIdstringyesThe computer id, from immy_list_computers.
filtersstringnonullSieve Filters expression. Optional.
pageintegernonullPage number (Sieve, 1-based).
pageSizeintegernonullRecords per page (Sieve pageSize; max 100).
sortsstringnonullSieve Sorts expression. Optional.

[ImmyBot] Get the count of provider agents pending identification, broken down (e.g. per provider link). A lightweight summary companion to immy_list_provider_agents_pending — use it to decide whether identification work is needed before paging the full list.

[ImmyBot] Permanently delete a set of pending (unidentified) provider agents in one call. Provide a JSON body listing the pending agent ids to remove. This clears them from the pending queue and cannot be undone — use it for stale/duplicate discoveries rather than agents you still intend to identify with immy_provider_agents_identify.

ParamTypeRequiredDefaultDescription
bodyJsonstringyesJSON body listing the pending provider-agent ids to delete.

[ImmyBot] Identify one or more pending provider agents — match each discovered agent to a managed computer/tenant so ImmyBot can manage it. Provide a JSON body describing the agent(s) and the target computer/mapping. Review candidates first with immy_list_provider_agents_pending and immy_list_provider_agents_pending_conflicts.

ParamTypeRequiredDefaultDescription
bodyJsonstringyesJSON body describing the agent(s) to identify and the target computer/mapping.

[ImmyBot] Resolve a single provider-agent identification failure, by failureId. Provide a JSON body describing the resolution (e.g. the correct computer/tenant mapping to apply). Inspect the failure evidence first with immy_list_provider_agents_identification_logs. To resolve every failure at once use immy_resolve_provider_agent_failures; to resolve all failures for one agent use immy_resolve_agent_failures_for_agent.

ParamTypeRequiredDefaultDescription
bodyJsonstringyesJSON body describing the resolution to apply.
failureIdstringyesThe identification-failure id to resolve.

[ImmyBot] Resolve all identification failures for one provider agent, by agentId (from immy_list_provider_agents_pending). Provide a JSON body describing the resolution. Scopes the fix to a single agent — for a specific failure use immy_provider_agents_resolve_failure, for every agent use immy_resolve_provider_agent_failures.

ParamTypeRequiredDefaultDescription
agentIdstringyesThe provider agent id, from immy_list_provider_agents_pending.
bodyJsonstringyesJSON body describing the resolution to apply for this agent.

[ImmyBot] Resolve provider-agent identification failures in bulk. Provide a JSON body describing the resolution to apply across the failures. For a single failure use immy_provider_agents_resolve_failure; to scope resolution to one agent use immy_resolve_agent_failures_for_agent.

ParamTypeRequiredDefaultDescription
bodyJsonstringyesJSON body describing the bulk resolution to apply.

Provider Clients & Agents

ToolPlanAccessSummary
immy_delete_provider_links_cross_references_deleteProDestructivePermanently delete a provider-link cross-reference, by provider-link id (from immy_list_provider_links) and externalLinkId.
immy_list_provider_links_clientsFreeRead-onlyList the external clients a provider link exposes, by provider-link id (from immy_list_provider_links, S8).
immy_list_provider_links_clients_statusesFreeRead-onlyList the linking status of each client on a provider link, by provider-link id (from immy_list_provider_links).
immy_list_provider_links_clients_typesFreeRead-onlyList the client types a provider link supports, by provider-link id (from immy_list_provider_links).
immy_provider_agent_onboarding_powershell_install_scriptProWriteGenerate a PowerShell (Windows) install script for the provider link's agent that also triggers ImmyBot onboarding on first run, by provider-link id (from immy_list_provider_links).
immy_provider_agent_onboarding_provisioning_package_uriProWriteGet a download URI for a Windows provisioning-package (.ppkg) installer for the provider link's agent that also triggers ImmyBot onboarding on first run, by provider-link id (from…
immy_provider_links_agents_bash_install_scriptProWriteGenerate a bash (macOS/Linux) install script for the provider link's agent, by provider-link id (from immy_list_provider_links).
immy_provider_links_agents_bash_install_script_with_onboardingProWriteGenerate a bash (macOS/Linux) install script for the provider link's agent that also triggers ImmyBot onboarding on first run, by provider-link id (from immy_list_provider_links).
immy_provider_links_agents_delete_offline_agent_from_computerProDestructivePermanently remove an offline provider agent from a computer, by provider-link id (from immy_list_provider_links) and agentId.
immy_provider_links_agents_executable_uriProWriteGet a download URI for the provider link's agent executable installer, by provider-link id (from immy_list_provider_links).
immy_provider_links_agents_executable_uri_with_onboardingProWriteGet a download URI for the provider link's agent executable installer that also triggers ImmyBot onboarding on first run, by provider-link id (from immy_list_provider_links).
immy_provider_links_agents_external_agent_urlProWriteGet the external RMM/PSA console URL for a computer's agent, by provider-link id (from immy_list_provider_links) and computerId (from immy_list_computers).
immy_provider_links_agents_install_on_computerProDestructiveInstall the provider link's agent directly onto a specific managed computer, by provider-link id (from immy_list_provider_links) and computerId (from immy_list_computers).
immy_provider_links_agents_powershell_install_scriptProWriteGenerate a PowerShell (Windows) install script for the provider link's agent, by provider-link id (from immy_list_provider_links).
immy_provider_links_agents_provisioning_package_uriProWriteGet a download URI for a Windows provisioning-package (.ppkg) installer for the provider link's agent, by provider-link id (from immy_list_provider_links).
immy_provider_links_agents_refresh_device_online_statusProWriteRefresh the online/offline status of a provider agent's device, by provider-link id (from immy_list_provider_links) and agentId.
immy_provider_links_agents_syncProWriteTrigger a sync of the provider link's agents, by provider-link id (from immy_list_provider_links).
immy_provider_links_clients_auto_link_to_tenantsProWriteAutomatically link a provider link's external clients to ImmyBot tenants using ImmyBot's matching heuristics, by provider-link id (from immy_list_provider_links).
immy_provider_links_clients_link_exact_match_clientsProWriteLink only the provider clients whose names exactly match an existing ImmyBot tenant, by provider-link id (from immy_list_provider_links).
immy_provider_links_clients_link_to_new_tenantProWriteCreate a new ImmyBot tenant and link a provider client to it in one step, by provider-link id (from immy_list_provider_links).
immy_provider_links_clients_link_to_tenantProWriteLink a provider client to a specific existing ImmyBot tenant, by provider-link id (from immy_list_provider_links).
immy_provider_links_clients_syncProWriteTrigger a sync of the provider link's clients, by provider-link id (from immy_list_provider_links).
immy_provider_links_clients_sync_agentsProWriteSync the agents belonging to the provider link's linked clients, by provider-link id (from immy_list_provider_links).
immy_provider_links_clients_unlink_from_tenantsProWriteUnlink provider clients from their ImmyBot tenants, by provider-link id (from immy_list_provider_links).
immy_provider_links_cross_references_createProWriteCreate a cross-reference on a provider link — an external link that ties another provider/system's records to this provider link, by provider-link id (from immy_list_provider_links).
immy_provider_links_cross_references_disable_client_linkingProWriteDisable client linking for a provider-link cross-reference, by provider-link id (from immy_list_provider_links) and externalLinkId.
immy_provider_links_cross_references_enable_client_linkingProWriteEnable client linking for a provider-link cross-reference, by provider-link id (from immy_list_provider_links) and externalLinkId.
immy_provider_links_cross_references_sync_clientsProWriteSync the clients associated with a provider-link cross-reference, by provider-link id (from immy_list_provider_links) and externalLinkId.

[ImmyBot] Generate a PowerShell (Windows) install script for the provider link's agent that also triggers ImmyBot onboarding on first run, by provider-link id (from immy_list_provider_links). Provide a JSON body with the script/target + onboarding options. Non-onboarding variant: immy_provider_links_agents_powershell_install_script.

ParamTypeRequiredDefaultDescription
bodyJsonstringyesJSON body with the install-script + onboarding options.
idstringyesThe provider-link id, from immy_list_provider_links.

[ImmyBot] Get a download URI for a Windows provisioning-package (.ppkg) installer for the provider link's agent that also triggers ImmyBot onboarding on first run, by provider-link id (from immy_list_provider_links). Provide a JSON body with the target + onboarding options. Non-onboarding variant: immy_provider_links_agents_provisioning_package_uri.

ParamTypeRequiredDefaultDescription
bodyJsonstringyesJSON body with the provisioning-package + onboarding options.
idstringyesThe provider-link id, from immy_list_provider_links.

Provider Types

ToolPlanAccessSummary
immy_get_provider_types_form_dropdown_optionsFreeRead-onlyGet the option set for a provider-type configuration-form dropdown, by its key.
immy_list_provider_typesFreeRead-onlyList the available provider types — the kinds of external RMM/PSA integration a provider link can be created against (e.g. the supported vendor integrations).
immy_list_provider_types_client_group_types_client_groupsFreeRead-onlyList the client groups available for a given client-group-type, by clientGroupTypeId (from immy_list_provider_types metadata).
immy_list_provider_types_device_group_types_device_groupsFreeRead-onlyList the device groups available for a given device-group-type, by deviceGroupTypeId (from immy_list_provider_types metadata).
immy_provider_types_bind_parametersFreeRead-onlyPreview how a set of configuration parameters binds for a given provider type, by providerType.

[ImmyBot] Get the option set for a provider-type configuration-form dropdown, by its key. Provider-link configuration forms populate certain fields from server-side option lists; this returns the valid choices for one such field so you can supply a correct value when creating/updating a provider link (S8).

ParamTypeRequiredDefaultDescription
keystringyesThe dropdown option-set key, as referenced by the provider-type configuration form.

[ImmyBot] List the available provider types — the kinds of external RMM/PSA integration a provider link can be created against (e.g. the supported vendor integrations). Supports Sieve paging (Page, pageSize up to 100, Filters, Sorts). Use the returned type keys when creating a provider link with immy_provider_links (S8).

ParamTypeRequiredDefaultDescription
filtersstringnonullSieve Filters expression. Optional.
pageintegernonullPage number (Sieve, 1-based).
pageSizeintegernonullRecords per page (Sieve pageSize; max 100).
sortsstringnonullSieve Sorts expression. Optional.

[ImmyBot] List the client groups available for a given client-group-type, by clientGroupTypeId (from immy_list_provider_types metadata). Client groups are how a provider type organizes its customer/tenant containers; use them when configuring how a provider link maps external clients to ImmyBot tenants.

ParamTypeRequiredDefaultDescription
clientGroupTypeIdstringyesThe client-group-type id, from the provider-type metadata in immy_list_provider_types.

[ImmyBot] List the device groups available for a given device-group-type, by deviceGroupTypeId (from immy_list_provider_types metadata). Device groups are how a provider type organizes its endpoint/device containers; use them when configuring how a provider link maps external devices to ImmyBot computers.

ParamTypeRequiredDefaultDescription
deviceGroupTypeIdstringyesThe device-group-type id, from the provider-type metadata in immy_list_provider_types.

[ImmyBot] Preview how a set of configuration parameters binds for a given provider type, by providerType. POST-as-read: provide a JSON body of the parameter values; ImmyBot resolves/validates them and returns the bound result without saving anything. Use it to sanity-check provider-link configuration before creating the link with immy_provider_links (S8).

ParamTypeRequiredDefaultDescription
bodyJsonstringyesJSON body of the parameter values to bind (preview only, nothing is saved).
providerTypestringyesThe provider type key/identifier, from immy_list_provider_types.

Personal Access Tokens

ToolPlanAccessSummary
immy_delete_personal_access_tokensProDestructivePermanently revoke the personal access token identified by id (from immy_list_personal_access_tokens / immy_list_personal_access_tokens_all).
immy_list_personal_access_tokensFreeRead-onlyList the personal access tokens (PATs) belonging to the current user.
immy_list_personal_access_tokens_allFreeRead-onlyList ALL personal access tokens across every user in the instance (administrator view) — use this to audit outstanding API tokens.
immy_personal_access_tokensProWriteCreate a new personal access token (PAT).

[ImmyBot] Permanently revoke the personal access token identified by id (from immy_list_personal_access_tokens / immy_list_personal_access_tokens_all). Any integration still using the token immediately loses API access; this cannot be undone.

ParamTypeRequiredDefaultDescription
idstringyesThe id of the personal access token to revoke (from immy_list_personal_access_tokens).

[ImmyBot] List the personal access tokens (PATs) belonging to the current user. Paginated via Sieve: page (1-based) + pageSize (max 100); filters/sorts accept Sieve expressions. To see every user's PATs across the instance (admin view) use immy_list_personal_access_tokens_all. Create a PAT with immy_personal_access_tokens; revoke one with immy_delete_personal_access_tokens.

ParamTypeRequiredDefaultDescription
filtersstringnonullSieve filter expression, e.g. "Name@=deploy". Omit for no filter.
pageintegernonull1-based page number (Sieve Page). Omit for the first page.
pageSizeintegernonullRecords per page (Sieve pageSize). Max 100; omit for the server default.
sortsstringnonullSieve sort expression, e.g. "-CreatedDate". Omit for the default order.

[ImmyBot] List ALL personal access tokens across every user in the instance (administrator view) — use this to audit outstanding API tokens. For only the current user's tokens use immy_list_personal_access_tokens. Paginated via Sieve: page + pageSize (max 100), filters/sorts accept Sieve expressions.

ParamTypeRequiredDefaultDescription
filtersstringnonullSieve filter expression, e.g. "UserId==123". Omit for no filter.
pageintegernonull1-based page number (Sieve Page). Omit for the first page.
pageSizeintegernonullRecords per page (Sieve pageSize). Max 100; omit for the server default.
sortsstringnonullSieve sort expression, e.g. "-CreatedDate". Omit for the default order.

[ImmyBot] Create a new personal access token (PAT). Provide a JSON object body — typically a name/description and optional expiration. The response includes the generated token secret, which is shown only once; store it securely. Revoke with immy_delete_personal_access_tokens.

ParamTypeRequiredDefaultDescription
fieldsJsonstringyesJSON object body for the new PAT (e.g. { "name": "CI deploy", "expiration": "2027-01-01" }).

Persons

ToolPlanAccessSummary
immy_add_tags_to_personsProWriteAdd one or more tags to one or more persons in bulk.
immy_delete_personsProDestructivePermanently delete the person identified by id (from immy_list_persons).
immy_get_personsFreeRead-onlyGet a single person by id (from immy_list_persons).
immy_list_personsFreeRead-onlyList persons (managed end-users) known to the ImmyBot instance.
immy_list_persons_detected_softwareFreeRead-onlyList the software detected across the computers associated with the person identified by personId (from immy_list_persons).
immy_list_persons_dxFreeRead-onlyList persons via the DevExtreme grid feed (the shape the ImmyBot UI person grid consumes).
immy_list_persons_requesting_accessFreeRead-onlyList persons who have requested self-service portal access and are awaiting a decision.
immy_list_persons_self_serviceFreeRead-onlyGet the self-service view for the person identified by id (from immy_list_persons) — the software and actions this person is entitled to run themselves through the ImmyBot self-service portal.
immy_personsProWriteCreate a person (managed end-user).
immy_persons_deny_accessProWriteDeny or revoke self-service portal access for the person identified by personId (from immy_list_persons / immy_list_persons_requesting_access).
immy_persons_grant_accessProWriteGrant self-service portal access to the person identified by personId (from immy_list_persons / immy_list_persons_requesting_access).
immy_remove_tags_from_personsProWriteRemove one or more tags from one or more persons in bulk.
immy_update_personsProDestructiveUpdate the person identified by id (from immy_list_persons).

[ImmyBot] Add one or more tags to one or more persons in bulk. Provide a JSON object body naming the target person ids and the tag ids to apply (discover tag ids with immy_list_tags, person ids with immy_list_persons). Remove tags with immy_remove_tags_from_persons.

ParamTypeRequiredDefaultDescription
fieldsJsonstringyesJSON object body identifying the target person ids and the tag ids to add (e.g. { "personIds": [1,2], "tagIds": [10] }).

[ImmyBot] Permanently delete the person identified by id (from immy_list_persons). This removes the person record and their computer/tag affinities; it cannot be undone. It does NOT delete the person's computers.

ParamTypeRequiredDefaultDescription
idstringyesThe id of the person to delete (from immy_list_persons).

[ImmyBot] Get a single person by id (from immy_list_persons). Returns the person's profile — name, email, tenant, tags, owned-computer affinities, and access state.

ParamTypeRequiredDefaultDescription
idstringyesThe id of the person (from immy_list_persons).

[ImmyBot] List persons (managed end-users) known to the ImmyBot instance. Paginated via Sieve: page (1-based) + pageSize (max 100); filters/sorts accept Sieve expressions (e.g. filters="EmailAddress@=@contoso.com", sorts="DisplayName"). For the DevExtreme grid feed use immy_list_persons_dx. Feed a person id to immy_get_persons / immy_update_persons / immy_delete_persons.

ParamTypeRequiredDefaultDescription
filtersstringnonullSieve filter expression, e.g. "DisplayName@=smith". Omit for no filter.
pageintegernonull1-based page number (Sieve Page). Omit for the first page.
pageSizeintegernonullRecords per page (Sieve pageSize). Max 100; omit for the server default.
sortsstringnonullSieve sort expression, e.g. "DisplayName" or "-DisplayName". Omit for the default order.

[ImmyBot] List the software detected across the computers associated with the person identified by personId (from immy_list_persons). Paginated via Sieve: page + pageSize (max 100), filters/sorts accept Sieve expressions.

ParamTypeRequiredDefaultDescription
filtersstringnonullSieve filter expression, e.g. "Name@=chrome". Omit for no filter.
pageintegernonull1-based page number (Sieve Page). Omit for the first page.
pageSizeintegernonullRecords per page (Sieve pageSize). Max 100; omit for the server default.
personIdstringyesThe id of the person (from immy_list_persons).
sortsstringnonullSieve sort expression. Omit for the default order.

[ImmyBot] List persons via the DevExtreme grid feed (the shape the ImmyBot UI person grid consumes). Uses skip/take paging (take max 100) plus optional DevExtreme filter/sort expressions and requireTotalCount. For standard Sieve paging use immy_list_persons.

ParamTypeRequiredDefaultDescription
filterstringnonullDevExtreme filter expression (JSON array form). Omit for no filter.
requireTotalCountbooleannonullSet true to include the total record count in the response. Omit for the server default.
skipintegernonullNumber of records to skip (DevExtreme skip). Omit to start at 0.
sortstringnonullDevExtreme sort expression (JSON array form). Omit for the default order.
takeintegernonullNumber of records to take (DevExtreme take). Max 100; omit for the server default.

[ImmyBot] List persons who have requested self-service portal access and are awaiting a decision. Approve a request with immy_persons_grant_access or reject it with immy_persons_deny_access. Paginated via Sieve: page + pageSize (max 100), filters/sorts accept Sieve expressions.

ParamTypeRequiredDefaultDescription
filtersstringnonullSieve filter expression. Omit for no filter.
pageintegernonull1-based page number (Sieve Page). Omit for the first page.
pageSizeintegernonullRecords per page (Sieve pageSize). Max 100; omit for the server default.
sortsstringnonullSieve sort expression. Omit for the default order.
ParamTypeRequiredDefaultDescription
idstringyesThe id of the person (from immy_list_persons).

[ImmyBot] Create a person (managed end-user). Provide a JSON object body — typically displayName, emailAddress, and the owning tenantId. Returns the created person JSON including its assigned id. Update it later with immy_update_persons; attach tags with immy_add_tags_to_persons.

ParamTypeRequiredDefaultDescription
fieldsJsonstringyesJSON object body for the new person (e.g. { "displayName": "Jane Doe", "emailAddress": "jane@contoso.com", "tenantId": 42 }).

[ImmyBot] Deny or revoke self-service portal access for the person identified by personId (from immy_list_persons / immy_list_persons_requesting_access). Provide a JSON object body with any options. Grant access with immy_persons_grant_access.

ParamTypeRequiredDefaultDescription
fieldsJsonstringyesJSON object body describing the denial (may be an empty object ).
personIdstringyesThe id of the person to deny access to (from immy_list_persons).

[ImmyBot] Grant self-service portal access to the person identified by personId (from immy_list_persons / immy_list_persons_requesting_access). Provide a JSON object body with any access options. Revoke with immy_persons_deny_access.

ParamTypeRequiredDefaultDescription
fieldsJsonstringyesJSON object body describing the access to grant (may be an empty object ).
personIdstringyesThe id of the person to grant access to (from immy_list_persons).

[ImmyBot] Remove one or more tags from one or more persons in bulk. Provide a JSON object body naming the target person ids and the tag ids to remove. Add tags with immy_add_tags_to_persons.

ParamTypeRequiredDefaultDescription
fieldsJsonstringyesJSON object body identifying the target person ids and the tag ids to remove (e.g. { "personIds": [1,2], "tagIds": [10] }).

[ImmyBot] Update the person identified by id (from immy_list_persons). Body (fieldsJson) is the person definition to apply (replace semantics). Use immy_add_tags_to_persons / immy_remove_tags_from_persons for tag membership rather than editing tags here.

ParamTypeRequiredDefaultDescription
fieldsJsonstringyesJSON object body with the person fields to apply.
idstringyesThe id of the person to update (from immy_list_persons).

Users

ToolPlanAccessSummary
immy_bulk_delete_usersProDestructivePermanently delete multiple ImmyBot console users in one call.
immy_delete_usersProDestructivePermanently delete the ImmyBot console user identified by userId (from immy_list_users).
immy_get_usersFreeRead-onlyGet a single ImmyBot console user by userId (from immy_list_users).
immy_list_usersFreeRead-onlyList ImmyBot console users (operators/technicians).
immy_list_users_claimsFreeRead-onlyGet the identity claims for the currently authenticated caller — the claim set the ImmyBot backend associates with this session/token.
immy_list_users_groupsFreeRead-onlyList the RBAC groups the user identified by userId (from immy_list_users) belongs to.
immy_usersProWriteUpdate the ImmyBot console user identified by userId (from immy_list_users).
immy_users_bulk_createProWriteCreate multiple ImmyBot console users in one call.
immy_users_impersonateProDestructiveBegin impersonating the ImmyBot console user identified by userId (from immy_list_users) — subsequent actions are performed as that user, for support/troubleshooting.
immy_users_invalidate_cacheProWriteInvalidate the server-side user/permission cache so identity and RBAC changes take effect immediately.
immy_users_stop_impersonatingProWriteEnd the current user-impersonation session started by immy_users_impersonate, returning to the caller's own identity.
immy_users_submit_feedbackProWriteSubmit product feedback to ImmyBot on behalf of the current user.
immy_users_update_expirationProWriteSet or change the expiration for one or more ImmyBot console users.

[ImmyBot] Permanently delete multiple ImmyBot console users in one call. Provide a JSON object/array body naming the user ids to delete (from immy_list_users). This is sent as an HTTP DELETE with a request body; it cannot be undone. Deleted users immediately lose console access.

ParamTypeRequiredDefaultDescription
fieldsJsonstringyesJSON body identifying the user ids to delete (e.g. { "userIds": [1,2,3] }).

[ImmyBot] Permanently delete the ImmyBot console user identified by userId (from immy_list_users). The user immediately loses console access; this cannot be undone. To remove several users at once use immy_bulk_delete_users.

ParamTypeRequiredDefaultDescription
userIdstringyesThe id of the user to delete (from immy_list_users).

[ImmyBot] Get a single ImmyBot console user by userId (from immy_list_users). Returns the user's profile, status, and expiration. See their group memberships with immy_list_users_groups and role assignments with immy_get_user_role_assignments_users.

ParamTypeRequiredDefaultDescription
userIdstringyesThe id of the user (from immy_list_users).

[ImmyBot] List ImmyBot console users (operators/technicians). Paginated via Sieve: page (1-based) + pageSize (max 100); filters/sorts accept Sieve expressions (e.g. filters="Email@=@msp.com", sorts="Email"). Feed a user id to immy_get_users, immy_list_users_groups, immy_users (update), or immy_delete_users. For the person (end-user) directory use immy_list_persons instead.

ParamTypeRequiredDefaultDescription
filtersstringnonullSieve filter expression, e.g. "Email@=admin". Omit for no filter.
pageintegernonull1-based page number (Sieve Page). Omit for the first page.
pageSizeintegernonullRecords per page (Sieve pageSize). Max 100; omit for the server default.
sortsstringnonullSieve sort expression, e.g. "Email" or "-Email". Omit for the default order.

[ImmyBot] Get the identity claims for the currently authenticated caller — the claim set the ImmyBot backend associates with this session/token. Useful for confirming which identity and roles the connector is acting as.

[ImmyBot] List the RBAC groups the user identified by userId (from immy_list_users) belongs to. Paginated via Sieve: page + pageSize (max 100), filters/sorts accept Sieve expressions. Manage group membership with immy_groups_members / immy_delete_groups_members (RBAC slice).

ParamTypeRequiredDefaultDescription
filtersstringnonullSieve filter expression. Omit for no filter.
pageintegernonull1-based page number (Sieve Page). Omit for the first page.
pageSizeintegernonullRecords per page (Sieve pageSize). Max 100; omit for the server default.
sortsstringnonullSieve sort expression. Omit for the default order.
userIdstringyesThe id of the user (from immy_list_users).

[ImmyBot] Update the ImmyBot console user identified by userId (from immy_list_users). Body (fieldsJson) is the user definition to apply. Note: ImmyBot updates a user via HTTP POST to /users/, not PUT. Adjust the user's expiration separately with immy_users_update_expiration and role/group membership via the RBAC tools.

ParamTypeRequiredDefaultDescription
fieldsJsonstringyesJSON object body with the user fields to apply.
userIdstringyesThe id of the user to update (from immy_list_users).

[ImmyBot] Create multiple ImmyBot console users in one call. Provide a JSON object/array body describing the users to create (typically each with email and role/group assignments). Returns the created users. Delete users in bulk with immy_bulk_delete_users.

ParamTypeRequiredDefaultDescription
fieldsJsonstringyesJSON body describing the users to create (e.g. { "users": [ { "email": "tech@msp.com" } ] }).

[ImmyBot] Begin impersonating the ImmyBot console user identified by userId (from immy_list_users) — subsequent actions are performed as that user, for support/troubleshooting. Provide a JSON object body with any impersonation options (may be ). End the session with immy_users_stop_impersonating.

ParamTypeRequiredDefaultDescription
fieldsJsonstringyesJSON object body with impersonation options (may be an empty object ).
userIdstringyesThe id of the user to impersonate (from immy_list_users).

[ImmyBot] Invalidate the server-side user/permission cache so identity and RBAC changes take effect immediately. Provide a JSON object body with any scope options (may be ). Despite the name this is a state-changing operation, not a validation read.

ParamTypeRequiredDefaultDescription
fieldsJsonstringyesJSON object body with any cache-invalidation scope options (may be an empty object ).

[ImmyBot] End the current user-impersonation session started by immy_users_impersonate, returning to the caller's own identity. Provide a JSON object body with any options (may be ).

ParamTypeRequiredDefaultDescription
fieldsJsonstringyesJSON object body with any stop-impersonation options (may be an empty object ).

[ImmyBot] Submit product feedback to ImmyBot on behalf of the current user. Provide a JSON object body with the feedback content (e.g. message/category).

ParamTypeRequiredDefaultDescription
fieldsJsonstringyesJSON object body with the feedback content (e.g. { "message": "..." }).

[ImmyBot] Set or change the expiration for one or more ImmyBot console users. Provide a JSON object body naming the target user id(s) and the new expiration (or clearing it). Expired users lose console access at the given time.

ParamTypeRequiredDefaultDescription
fieldsJsonstringyesJSON object body identifying the user id(s) and the expiration to apply (e.g. { "userId": 5, "expiration": "2027-06-01" }).

Roles, Groups & Permissions

ToolPlanAccessSummary
immy_delete_groupsProDestructivePermanently delete an RBAC group by id (from immy_list_groups).
immy_delete_groups_membersProDestructiveRemove a user from a group.
immy_delete_rolesProDestructivePermanently delete a role by id (from immy_list_roles).
immy_effective_permissions_groups_evaluate_all_assignmentsFreeRead-onlyEvaluate the effective permissions a group would have across ALL of its role assignments (POST-as-read what-if — nothing is changed).
immy_effective_permissions_groups_evaluate_resourceFreeRead-onlyEvaluate a group's effective permissions against a specific resource (POST-as-read what-if — nothing is changed).
immy_effective_permissions_groups_evaluate_tenantFreeRead-onlyEvaluate a group's effective permissions within a specific tenant (POST-as-read what-if — nothing is changed).
immy_effective_permissions_users_evaluate_all_assignmentsFreeRead-onlyEvaluate the effective permissions a user would have across ALL of their role assignments (POST-as-read what-if — nothing is changed).
immy_effective_permissions_users_evaluate_resourceFreeRead-onlyEvaluate a user's effective permissions against a specific resource (POST-as-read what-if — nothing is changed).
immy_effective_permissions_users_evaluate_tenantFreeRead-onlyEvaluate a user's effective permissions within a specific tenant (POST-as-read what-if — nothing is changed).
immy_get_groupsFreeRead-onlyGet a single RBAC group by id (from immy_list_groups).
immy_get_rolesFreeRead-onlyGet a single role by id (from immy_list_roles).
immy_groupsProWriteCreate an RBAC group.
immy_groups_membersProWriteAdd a member to a group by id (from immy_list_groups).
immy_groups_members_bulkProWriteAdd multiple members to a group by id (from immy_list_groups) in one call.
immy_list_groupsFreeRead-onlyList RBAC groups.
immy_list_groups_membersFreeRead-onlyList the users that belong to a group by id (from immy_list_groups).
immy_list_groups_role_assignmentsFreeRead-onlyList the role assignments attached to a group by id (from immy_list_groups) — which roles the group grants and at what scope.
immy_list_rolesFreeRead-onlyList RBAC roles.
immy_list_roles_assignmentsFreeRead-onlyList the assignments of a role by id (from immy_list_roles) — which users/groups hold this role and at what scope.
immy_list_roles_permissionsFreeRead-onlyList the full catalog of permissions that roles can grant (the building blocks referenced when creating/updating a role with immy_roles / immy_update_roles).
immy_rolesProWriteCreate an RBAC role.
immy_roles_cloneProWriteClone an existing role by id (from immy_list_roles) into a new role.
immy_update_groupsProWriteUpdate a group by id (from immy_list_groups) via HTTP PUT.
immy_update_rolesProWriteUpdate a role by id (from immy_list_roles) via HTTP PUT.

[ImmyBot] Permanently delete an RBAC group by id (from immy_list_groups). This removes the group and its role assignments; members lose any access granted through it. Cannot be undone.

ParamTypeRequiredDefaultDescription
groupIdstringyesThe id of the group to delete (from immy_list_groups).

[ImmyBot] Remove a user from a group. Provide the group id (from immy_list_groups) and the user id (from immy_list_groups_members / immy_list_users). The user loses any access granted through this group. Cannot be undone (re-add with immy_groups_members).

ParamTypeRequiredDefaultDescription
groupIdstringyesThe id of the group (from immy_list_groups).
userIdstringyesThe id of the user to remove (from immy_list_groups_members).

[ImmyBot] Permanently delete a role by id (from immy_list_roles). This removes the role and revokes it from every user/group it is assigned to (see immy_list_roles_assignments). Cannot be undone.

ParamTypeRequiredDefaultDescription
roleIdstringyesThe id of the role to delete (from immy_list_roles).

[ImmyBot] Evaluate the effective permissions a group would have across ALL of its role assignments (POST-as-read what-if — nothing is changed). Provide the group id (from immy_list_groups) plus a JSON body describing the evaluation context. Use the resource/tenant variants (immy_effective_permissions_groups_evaluate_resource / _tenant) to scope the evaluation.

ParamTypeRequiredDefaultDescription
bodyJsonstringyesJSON object body describing the evaluation context.
groupIdstringyesThe id of the group to evaluate (from immy_list_groups).

[ImmyBot] Evaluate a group's effective permissions against a specific resource (POST-as-read what-if — nothing is changed). Provide the group id (from immy_list_groups) plus a JSON body identifying the resource. See immy_effective_permissions_groups_evaluate_tenant for tenant-scoped and immy_effective_permissions_groups_evaluate_all_assignments for the full picture.

ParamTypeRequiredDefaultDescription
bodyJsonstringyesJSON object body identifying the resource to evaluate against.
groupIdstringyesThe id of the group to evaluate (from immy_list_groups).

[ImmyBot] Evaluate a group's effective permissions within a specific tenant (POST-as-read what-if — nothing is changed). Provide the group id (from immy_list_groups) plus a JSON body identifying the tenant. See immy_effective_permissions_groups_evaluate_resource for resource-scoped evaluation.

ParamTypeRequiredDefaultDescription
bodyJsonstringyesJSON object body identifying the tenant to evaluate within.
groupIdstringyesThe id of the group to evaluate (from immy_list_groups).

[ImmyBot] Evaluate the effective permissions a user would have across ALL of their role assignments (POST-as-read what-if — nothing is changed). Provide the user id (from immy_list_users) plus a JSON body describing the evaluation context. Use the resource/tenant variants (immy_effective_permissions_users_evaluate_resource / _tenant) to scope the evaluation.

ParamTypeRequiredDefaultDescription
bodyJsonstringyesJSON object body describing the evaluation context.
userIdstringyesThe id of the user to evaluate (from immy_list_users).

[ImmyBot] Evaluate a user's effective permissions against a specific resource (POST-as-read what-if — nothing is changed). Provide the user id (from immy_list_users) plus a JSON body identifying the resource. See immy_effective_permissions_users_evaluate_tenant for tenant-scoped and immy_effective_permissions_users_evaluate_all_assignments for the full picture.

ParamTypeRequiredDefaultDescription
bodyJsonstringyesJSON object body identifying the resource to evaluate against.
userIdstringyesThe id of the user to evaluate (from immy_list_users).

[ImmyBot] Evaluate a user's effective permissions within a specific tenant (POST-as-read what-if — nothing is changed). Provide the user id (from immy_list_users) plus a JSON body identifying the tenant. See immy_effective_permissions_users_evaluate_resource for resource-scoped evaluation.

ParamTypeRequiredDefaultDescription
bodyJsonstringyesJSON object body identifying the tenant to evaluate within.
userIdstringyesThe id of the user to evaluate (from immy_list_users).

[ImmyBot] Get a single RBAC group by id (from immy_list_groups). Returns the group's id, name, and configuration. List its members with immy_list_groups_members and its role assignments with immy_list_groups_role_assignments.

ParamTypeRequiredDefaultDescription
groupIdstringyesThe id of the group (from immy_list_groups).

[ImmyBot] Get a single role by id (from immy_list_roles). Returns the role's id, name, and the permissions it grants. List where the role is assigned with immy_list_roles_assignments.

ParamTypeRequiredDefaultDescription
roleIdstringyesThe id of the role (from immy_list_roles).

[ImmyBot] Create an RBAC group. Provide a JSON object body — typically name (string) plus optional description. The created group id can then take members (immy_groups_members) and role assignments.

ParamTypeRequiredDefaultDescription
bodyJsonstringyesJSON object body for the new group (e.g. { "name": "Help Desk" }).

[ImmyBot] Add a member to a group by id (from immy_list_groups). Provide a JSON object body identifying the user to add (e.g. { "userId": ... }). To add several at once use immy_groups_members_bulk; to remove one use immy_delete_groups_members.

ParamTypeRequiredDefaultDescription
bodyJsonstringyesJSON object body identifying the user to add.
groupIdstringyesThe id of the group (from immy_list_groups).

[ImmyBot] Add multiple members to a group by id (from immy_list_groups) in one call. Provide a JSON body containing the collection of users to add. For a single member use immy_groups_members.

ParamTypeRequiredDefaultDescription
bodyJsonstringyesJSON body containing the users to add (e.g. an array of user ids).
groupIdstringyesThe id of the group (from immy_list_groups).

[ImmyBot] List RBAC groups. Groups bundle users and carry role assignments. Paginated via Sieve: page (1-based) + pageSize (max 100); filters/sorts accept Sieve expressions. Feed a group id to immy_get_groups, immy_list_groups_members, immy_list_groups_role_assignments, immy_update_groups, or immy_delete_groups.

ParamTypeRequiredDefaultDescription
filtersstringnonullSieve filter expression, e.g. "Name@=admins". Omit for no filter.
pageintegernonull1-based page number (Sieve Page). Omit for the first page.
pageSizeintegernonullRecords per page (Sieve pageSize). Max 100; omit for the server default.
sortsstringnonullSieve sort expression, e.g. "Name" or "-Name" (descending). Omit for the default order.

[ImmyBot] List the users that belong to a group by id (from immy_list_groups). Paginated via Sieve (page, pageSize up to 100, filters, sorts). Add members with immy_groups_members (single) / immy_groups_members_bulk (many) and remove one with immy_delete_groups_members.

ParamTypeRequiredDefaultDescription
filtersstringnonullSieve filter expression. Omit for no filter.
groupIdstringyesThe id of the group (from immy_list_groups).
pageintegernonull1-based page number (Sieve Page). Omit for the first page.
pageSizeintegernonullRecords per page (Sieve pageSize). Max 100; omit for the server default.
sortsstringnonullSieve sort expression. Omit for the default order.

[ImmyBot] List the role assignments attached to a group by id (from immy_list_groups) — which roles the group grants and at what scope. Paginated via Sieve (page, pageSize up to 100, filters, sorts). Create user/group role assignments with the immy_user_role_assignments_*_create family.

ParamTypeRequiredDefaultDescription
filtersstringnonullSieve filter expression. Omit for no filter.
groupIdstringyesThe id of the group (from immy_list_groups).
pageintegernonull1-based page number (Sieve Page). Omit for the first page.
pageSizeintegernonullRecords per page (Sieve pageSize). Max 100; omit for the server default.
sortsstringnonullSieve sort expression. Omit for the default order.

[ImmyBot] List RBAC roles. A role bundles a set of permissions (enumerate the full permission catalog with immy_list_roles_permissions). Paginated via Sieve (page, pageSize up to 100, filters, sorts). Feed a role id to immy_get_roles, immy_list_roles_assignments, immy_update_roles, immy_roles_clone, or immy_delete_roles.

ParamTypeRequiredDefaultDescription
filtersstringnonullSieve filter expression. Omit for no filter.
pageintegernonull1-based page number (Sieve Page). Omit for the first page.
pageSizeintegernonullRecords per page (Sieve pageSize). Max 100; omit for the server default.
sortsstringnonullSieve sort expression. Omit for the default order.

[ImmyBot] List the assignments of a role by id (from immy_list_roles) — which users/groups hold this role and at what scope. Paginated via Sieve (page, pageSize up to 100, filters, sorts). Create assignments with the immy_user_role_assignments_*_create family.

ParamTypeRequiredDefaultDescription
filtersstringnonullSieve filter expression. Omit for no filter.
pageintegernonull1-based page number (Sieve Page). Omit for the first page.
pageSizeintegernonullRecords per page (Sieve pageSize). Max 100; omit for the server default.
roleIdstringyesThe id of the role (from immy_list_roles).
sortsstringnonullSieve sort expression. Omit for the default order.

[ImmyBot] List the full catalog of permissions that roles can grant (the building blocks referenced when creating/updating a role with immy_roles / immy_update_roles). Paginated via Sieve (page, pageSize up to 100, filters, sorts). This is the permission universe, not the permissions of one role.

ParamTypeRequiredDefaultDescription
filtersstringnonullSieve filter expression. Omit for no filter.
pageintegernonull1-based page number (Sieve Page). Omit for the first page.
pageSizeintegernonullRecords per page (Sieve pageSize). Max 100; omit for the server default.
sortsstringnonullSieve sort expression. Omit for the default order.

[ImmyBot] Create an RBAC role. Provide a JSON object body — typically name plus the collection of permissions it grants (enumerate valid permissions with immy_list_roles_permissions). To copy an existing role instead, use immy_roles_clone.

ParamTypeRequiredDefaultDescription
bodyJsonstringyesJSON object body for the new role (name + permissions).

[ImmyBot] Clone an existing role by id (from immy_list_roles) into a new role. Provide a JSON object body for the clone (typically the new name plus any overrides). The source role is unchanged.

ParamTypeRequiredDefaultDescription
bodyJsonstringyesJSON object body for the cloned role (e.g. { "name": "Help Desk (copy)" }).
roleIdstringyesThe id of the role to clone (from immy_list_roles).

[ImmyBot] Update a group by id (from immy_list_groups) via HTTP PUT. Provide a JSON object body with the fields to change (e.g. name, description).

ParamTypeRequiredDefaultDescription
bodyJsonstringyesJSON object body with the group fields to change.
groupIdstringyesThe id of the group to update (from immy_list_groups).

[ImmyBot] Update a role by id (from immy_list_roles) via HTTP PUT. Provide a JSON object body with the fields to change (e.g. name, permissions). Valid permission identifiers come from immy_list_roles_permissions.

ParamTypeRequiredDefaultDescription
bodyJsonstringyesJSON object body with the role fields to change.
roleIdstringyesThe id of the role to update (from immy_list_roles).

User Role Assignments

ToolPlanAccessSummary
immy_delete_user_role_assignmentProDestructiveDelete (revoke) a user-role assignment.
immy_get_user_role_assignments_usersFreeRead-onlyGet all role assignments for a single user by id (from immy_list_users).
immy_list_user_role_assignmentsFreeRead-onlyList user-role assignments across the instance — the bindings of roles to users/groups at their scopes.
immy_list_user_role_assignments_users_countFreeRead-onlyGet the number of role assignments a single user has, by user id (from immy_list_users).
immy_user_role_assignments_category_resource_createProWriteCreate a role assignment scoped to a CATEGORY of resources — grants a role to a user/group over an entire resource category.
immy_user_role_assignments_msp_createProWriteCreate an MSP-WIDE role assignment — grants a role to a user/group across the entire MSP (all tenants).
immy_user_role_assignments_owner_createProWriteCreate an OWNER-scoped role assignment — grants a role to a user/group at the owner (instance-owner) scope.
immy_user_role_assignments_specific_resource_createProWriteCreate a role assignment scoped to a SPECIFIC resource — grants a role to a user/group on one identified resource only.
immy_user_role_assignments_specific_tenant_createProWriteCreate a role assignment scoped to a SPECIFIC tenant — grants a role to a user/group within one tenant only.
immy_user_role_assignments_tag_resource_createProWriteCreate a role assignment scoped to every resource carrying a given TAG — grants a role to a user/group over all resources with that tag.
immy_user_role_assignments_tenant_tag_createProWriteCreate a role assignment scoped to every tenant carrying a given TAG — grants a role to a user/group across all tenants with that tag.
immy_user_role_assignments_user_tenant_createProWriteCreate a user-tenant role assignment — associates a user with a tenant and grants the accompanying role.

[ImmyBot] Delete (revoke) a user-role assignment. This is an HTTP DELETE that carries a JSON body identifying the assignment to remove (as returned by immy_list_user_role_assignments / immy_get_user_role_assignments_users). The affected user/group loses the access that assignment granted. Cannot be undone (recreate with the matching immy_user_role_assignments_*_create tool).

ParamTypeRequiredDefaultDescription
bodyJsonstringyesJSON object body identifying the user-role assignment to delete.

[ImmyBot] Get all role assignments for a single user by id (from immy_list_users). Returns each role bound to the user and its scope. Count them with immy_list_user_role_assignments_users_count.

ParamTypeRequiredDefaultDescription
userIdstringyesThe id of the user (from immy_list_users).

[ImmyBot] List user-role assignments across the instance — the bindings of roles to users/groups at their scopes. Paginated via Sieve (page, pageSize up to 100, filters, sorts). For a single user use immy_get_user_role_assignments_users; create assignments with the immy_user_role_assignments_*_create family; remove one with immy_delete_user_role_assignment.

ParamTypeRequiredDefaultDescription
filtersstringnonullSieve filter expression. Omit for no filter.
pageintegernonull1-based page number (Sieve Page). Omit for the first page.
pageSizeintegernonullRecords per page (Sieve pageSize). Max 100; omit for the server default.
sortsstringnonullSieve sort expression. Omit for the default order.

[ImmyBot] Get the number of role assignments a single user has, by user id (from immy_list_users). Enumerate the assignments themselves with immy_get_user_role_assignments_users.

ParamTypeRequiredDefaultDescription
userIdstringyesThe id of the user (from immy_list_users).

[ImmyBot] Create a role assignment scoped to a CATEGORY of resources — grants a role to a user/group over an entire resource category. Provide a JSON object body identifying the user/group, the role (from immy_list_roles), and the resource category. For a single resource use immy_user_role_assignments_specific_resource_create.

ParamTypeRequiredDefaultDescription
bodyJsonstringyesJSON object body: the user/group + role + resource category to scope the assignment to.

[ImmyBot] Create an MSP-WIDE role assignment — grants a role to a user/group across the entire MSP (all tenants). Provide a JSON object body identifying the user/group and the role (from immy_list_roles). This is the broadest scope; prefer a narrower create tool (specific-tenant/specific-resource/tag) where possible.

ParamTypeRequiredDefaultDescription
bodyJsonstringyesJSON object body: the user/group + role to assign MSP-wide.

[ImmyBot] Create an OWNER-scoped role assignment — grants a role to a user/group at the owner (instance-owner) scope. Provide a JSON object body identifying the user/group and the role (from immy_list_roles). This is a high-privilege grant; use deliberately.

ParamTypeRequiredDefaultDescription
bodyJsonstringyesJSON object body: the user/group + role to assign at owner scope.

[ImmyBot] Create a role assignment scoped to a SPECIFIC resource — grants a role to a user/group on one identified resource only. Provide a JSON object body identifying the user/group, the role (from immy_list_roles), and the target resource. For a category of resources use immy_user_role_assignments_category_resource_create; for tag-matched resources use immy_user_role_assignments_tag_resource_create.

ParamTypeRequiredDefaultDescription
bodyJsonstringyesJSON object body: the user/group + role + specific resource to scope the assignment to.

[ImmyBot] Create a role assignment scoped to a SPECIFIC tenant — grants a role to a user/group within one tenant only. Provide a JSON object body identifying the user/group, the role (from immy_list_roles), and the tenant (from immy_list_tenants). For all tenants sharing a tag use immy_user_role_assignments_tenant_tag_create.

ParamTypeRequiredDefaultDescription
bodyJsonstringyesJSON object body: the user/group + role + tenant to scope the assignment to.

[ImmyBot] Create a role assignment scoped to every resource carrying a given TAG — grants a role to a user/group over all resources with that tag. Provide a JSON object body identifying the user/group, the role (from immy_list_roles), and the resource tag (from immy_list_tags). For a single resource use immy_user_role_assignments_specific_resource_create.

ParamTypeRequiredDefaultDescription
bodyJsonstringyesJSON object body: the user/group + role + resource tag to scope the assignment to.

[ImmyBot] Create a role assignment scoped to every tenant carrying a given TAG — grants a role to a user/group across all tenants with that tag. Provide a JSON object body identifying the user/group, the role (from immy_list_roles), and the tenant tag (from immy_list_tags). For a single tenant use immy_user_role_assignments_specific_tenant_create.

ParamTypeRequiredDefaultDescription
bodyJsonstringyesJSON object body: the user/group + role + tenant tag to scope the assignment to.

[ImmyBot] Create a user-tenant role assignment — associates a user with a tenant and grants the accompanying role. Provide a JSON object body identifying the user (from immy_list_users), the tenant (from immy_list_tenants), and the role (from immy_list_roles).

ParamTypeRequiredDefaultDescription
bodyJsonstringyesJSON object body: the user + tenant + role for the assignment.

Identity & Azure

ToolPlanAccessSummary
immy_auth_delete_azure_tenant_auth_detailsProDestructivePermanently remove the stored Azure/Entra auth details (app registration link + consent) for one or more Azure tenants.
immy_auth_request_accessProWriteSubmit an access request for the calling identity (e.g. to gain access to a tenant/resource requiring approval).
immy_auth_update_azure_tenant_auth_detailsProWriteCreate or update the stored Azure/Entra auth details for an Azure tenant (app registration, client credentials reference, delegated scopes).
immy_azure_disambiguate_azure_tenant_typeProWriteResolve/record whether an Azure tenant is a partner (CSP) tenant, a customer tenant, or standalone — used when ImmyBot cannot infer the tenant type automatically.
immy_azure_preconsent_customer_tenantsProWritePreconsent ImmyBot's app registration into one or more CSP customer tenants (grants the app the permissions it needs without visiting each tenant's consent screen).
immy_azure_sync_details_from_azure_tenantsProWriteTrigger a sync of tenant detail/metadata from the linked Azure/Entra tenants into ImmyBot.
immy_azure_sync_users_from_azure_tenantsProWriteTrigger a sync of user accounts from the linked Azure/Entra tenants into ImmyBot persons.
immy_azure_tenant_consentedProWriteNotify ImmyBot that an Azure/Entra tenant has completed admin consent for its app registration (the callback that finalizes the consent handshake).
immy_get_auth_get_azure_tenant_auth_detailsFreeRead-onlyGet the stored Azure/Entra auth details (app registration, consent state, delegated permissions) for a single Azure tenant, keyed by its Azure tenant principal id.
immy_get_azure_partner_tenant_customersFreeRead-onlyList the CSP customer tenants under a partner (reseller) Azure tenant, keyed by the partner's Azure principal id.
immy_list_authFreeRead-onlyList the auth context / linked Azure-tenant auth records for the ImmyBot instance.
immy_list_auth_get_ip_addressesFreeRead-onlyList the outbound IP addresses the ImmyBot instance uses when calling Azure/Entra and other external services — useful for allow-listing on customer firewalls or conditional-access policies.
immy_list_auth_me_permissions_tenantsFreeRead-onlyList the tenants the calling identity holds a given permission type against (i.e. the scope of one permission across tenants).
immy_list_azure_app_registration_optionsFreeRead-onlyList the available Azure app-registration options / templates ImmyBot can use when wiring up Azure/Entra integration for a tenant (e.g. the permission sets and consent URLs it offers).
immy_list_azure_errors_dxFreeRead-onlyList Azure/Entra integration errors across all tenants as a DevExtreme grid feed (failed consents, throttled Graph calls, sync failures).
immy_list_azure_errors_for_tenant_dxFreeRead-onlyList Azure/Entra integration errors for a single tenant (by Azure tenant principal id) as a DevExtreme grid feed.
immy_list_azure_partner_tenant_infosFreeRead-onlyList the partner (CSP/reseller) Azure tenants known to ImmyBot.
immy_list_me_permissionsFreeRead-onlyGet the effective permission map for the calling identity (the app registration StackJack authenticates with).

[ImmyBot] Permanently remove the stored Azure/Entra auth details (app registration link + consent) for one or more Azure tenants. This severs ImmyBot's ability to sync users/details for those tenants until re-consented and cannot be undone. Provide a JSON body identifying the Azure tenant(s). Read the current state with immy_get_auth_get_azure_tenant_auth_details first.

ParamTypeRequiredDefaultDescription
bodyJsonstringyesJSON object body identifying the Azure tenant(s) whose auth details to delete.

[ImmyBot] Submit an access request for the calling identity (e.g. to gain access to a tenant/resource requiring approval). Provide a JSON body describing the requested access. Persons awaiting access approval can be listed via immy_list_persons_requesting_access.

ParamTypeRequiredDefaultDescription
bodyJsonstringyesJSON object body describing the access being requested.

[ImmyBot] Create or update the stored Azure/Entra auth details for an Azure tenant (app registration, client credentials reference, delegated scopes). Provide a JSON body with the fields to set. Read the current state with immy_get_auth_get_azure_tenant_auth_details first; remove with immy_auth_delete_azure_tenant_auth_details.

ParamTypeRequiredDefaultDescription
bodyJsonstringyesJSON object body with the Azure tenant auth details to set.

[ImmyBot] Resolve/record whether an Azure tenant is a partner (CSP) tenant, a customer tenant, or standalone — used when ImmyBot cannot infer the tenant type automatically. Provide a JSON body identifying the tenant and the chosen type. This mutates stored tenant-type classification, so it is a write.

ParamTypeRequiredDefaultDescription
bodyJsonstringyesJSON object body identifying the Azure tenant and its resolved type.

[ImmyBot] Preconsent ImmyBot's app registration into one or more CSP customer tenants (grants the app the permissions it needs without visiting each tenant's consent screen). Provide a JSON body identifying the customer tenants (discover them via immy_get_azure_partner_tenant_customers). Follow with immy_azure_sync_details_from_azure_tenants / immy_azure_sync_users_from_azure_tenants to pull data.

ParamTypeRequiredDefaultDescription
bodyJsonstringyesJSON object body identifying the customer tenants to preconsent.

[ImmyBot] Trigger a sync of tenant detail/metadata from the linked Azure/Entra tenants into ImmyBot. Provide a JSON body scoping which Azure tenants to sync (or pass the documented all-tenants shape). To sync user accounts instead use immy_azure_sync_users_from_azure_tenants. Sync failures surface in immy_list_azure_errors_dx.

ParamTypeRequiredDefaultDescription
bodyJsonstringyesJSON object body scoping which Azure tenants to sync details from.

[ImmyBot] Trigger a sync of user accounts from the linked Azure/Entra tenants into ImmyBot persons. Provide a JSON body scoping which Azure tenants to sync. Related: immy_syncs_azure_user_sync (the generic user-sync trigger) and immy_azure_sync_details_from_azure_tenants (tenant metadata). Failures surface in immy_list_azure_errors_dx.

ParamTypeRequiredDefaultDescription
bodyJsonstringyesJSON object body scoping which Azure tenants to sync users from.

[ImmyBot] Notify ImmyBot that an Azure/Entra tenant has completed admin consent for its app registration (the callback that finalizes the consent handshake). Provide a JSON body identifying the tenant and consent result. Typically follows immy_azure_preconsent_customer_tenants or a manual consent flow.

ParamTypeRequiredDefaultDescription
bodyJsonstringyesJSON object body identifying the consented Azure tenant and consent result.

[ImmyBot] Get the stored Azure/Entra auth details (app registration, consent state, delegated permissions) for a single Azure tenant, keyed by its Azure tenant principal id. Update these details with immy_auth_update_azure_tenant_auth_details or remove them with immy_auth_delete_azure_tenant_auth_details.

ParamTypeRequiredDefaultDescription
azureTenantPrincipalIdstringyesThe Azure tenant principal id whose auth details to fetch.

[ImmyBot] List the CSP customer tenants under a partner (reseller) Azure tenant, keyed by the partner's Azure principal id. Use immy_list_azure_partner_tenant_infos to discover partner tenants first. These customers can then be preconsented via immy_azure_preconsent_customer_tenants.

ParamTypeRequiredDefaultDescription
partnerPrincipalIdstringyesThe partner (reseller) Azure principal id whose customer tenants to list.

[ImmyBot] List the auth context / linked Azure-tenant auth records for the ImmyBot instance. Paginated via Sieve: page (1-based) + pageSize (max 100). filters/sorts accept Sieve expressions. For the calling identity's effective permissions use immy_list_me_permissions; for a single Azure tenant's auth details use immy_get_auth_get_azure_tenant_auth_details.

ParamTypeRequiredDefaultDescription
filtersstringnonullSieve filter expression. Omit for no filter.
pageintegernonull1-based page number (Sieve Page). Omit for the first page.
pageSizeintegernonullRecords per page (Sieve pageSize). Max 100; omit for the server default.
sortsstringnonullSieve sort expression, e.g. "-CreatedDate". Omit for the default order.

[ImmyBot] List the tenants the calling identity holds a given permission type against (i.e. the scope of one permission across tenants). permissionType is an ImmyBot permission key. Paginated via Sieve: page + pageSize (max 100), filters/sorts optional. For the full permission map use immy_list_me_permissions.

ParamTypeRequiredDefaultDescription
filtersstringnonullSieve filter expression. Omit for no filter.
pageintegernonull1-based page number (Sieve Page). Omit for the first page.
pageSizeintegernonullRecords per page (Sieve pageSize). Max 100; omit for the server default.
permissionTypestringyesThe permission type/key to evaluate across tenants.
sortsstringnonullSieve sort expression. Omit for the default order.

[ImmyBot] List the available Azure app-registration options / templates ImmyBot can use when wiring up Azure/Entra integration for a tenant (e.g. the permission sets and consent URLs it offers). Read-only discovery of what can be configured.

[ImmyBot] List Azure/Entra integration errors across all tenants as a DevExtreme grid feed (failed consents, throttled Graph calls, sync failures). Uses DevExtreme paging: skip + take (take max 100), with optional filter/sort (DevExtreme JSON expressions) and requireTotalCount. For a single tenant's errors use immy_list_azure_errors_for_tenant_dx.

ParamTypeRequiredDefaultDescription
filterstringnonullDevExtreme filter expression (JSON). Omit for no filter.
requireTotalCountbooleannonullSet true to include a total record count in the response. Omit to skip counting.
skipintegernonullNumber of records to skip (DevExtreme skip). Omit to start at 0.
sortstringnonullDevExtreme sort expression (JSON). Omit for the default order.
takeintegernonullNumber of records to take (DevExtreme take). Max 100; omit for the server default.

[ImmyBot] List Azure/Entra integration errors for a single tenant (by Azure tenant principal id) as a DevExtreme grid feed. Uses DevExtreme paging: skip + take (take max 100), with optional filter/sort and requireTotalCount. For all tenants at once use immy_list_azure_errors_dx.

ParamTypeRequiredDefaultDescription
filterstringnonullDevExtreme filter expression (JSON). Omit for no filter.
requireTotalCountbooleannonullSet true to include a total record count in the response. Omit to skip counting.
skipintegernonullNumber of records to skip (DevExtreme skip). Omit to start at 0.
sortstringnonullDevExtreme sort expression (JSON). Omit for the default order.
takeintegernonullNumber of records to take (DevExtreme take). Max 100; omit for the server default.
tenantPrincipalIdstringyesThe Azure tenant principal id whose errors to list.

[ImmyBot] List the partner (CSP/reseller) Azure tenants known to ImmyBot. Paginated via Sieve: page + pageSize (max 100), filters/sorts optional. Feed a partner principal id to immy_get_azure_partner_tenant_customers to enumerate that partner's customer tenants.

ParamTypeRequiredDefaultDescription
filtersstringnonullSieve filter expression. Omit for no filter.
pageintegernonull1-based page number (Sieve Page). Omit for the first page.
pageSizeintegernonullRecords per page (Sieve pageSize). Max 100; omit for the server default.
sortsstringnonullSieve sort expression. Omit for the default order.

[ImmyBot] Get the effective permission map for the calling identity (the app registration StackJack authenticates with). Returns which actions/roles are granted. To see the tenant scope of a single permission, use immy_list_auth_me_permissions_tenants.

OAuth & Syncs

ToolPlanAccessSummary
immy_auth_loginFreeRead-onlyHit the host-rooted /auth/login endpoint (initiates the interactive sign-in redirect).
immy_auth_logoutFreeRead-onlyHit the host-rooted /auth/logout endpoint.
immy_auth_meFreeRead-onlyHit the host-rooted /auth/me endpoint — returns the current caller's identity as ImmyBot sees it (the app registration under StackJack's app-only Azure Bearer auth).
immy_delete_oauth_oauth_access_tokensProDestructivePermanently revoke/delete an OAuth access-token record by id (from immy_list_oauth_oauth_access_tokens).
immy_get_oauth_oauth_access_tokensFreeRead-onlyGet a single OAuth access-token record by its composite key (id + accessTokenId, both from immy_list_oauth_oauth_access_tokens).
immy_list_oauth_oauth_access_tokensFreeRead-onlyList the OAuth access tokens ImmyBot holds for its provider integrations (metadata: provider, scopes, expiry, status — not the raw secret).
immy_oauth_begin_auth_code_flowProWriteBegin an OAuth authorization-code flow so ImmyBot can obtain a delegated token from a third-party provider.
immy_oauth_fail_auth_code_flowProWriteReport that an in-progress OAuth authorization-code flow failed or was aborted (records the error and clears the pending flow state).
immy_oauth_finish_auth_code_flowProWriteComplete an OAuth authorization-code flow by redeeming the returned code for a token (the success callback).
immy_oauth_oauth_access_tokens_refreshProWriteRefresh (renew) an OAuth access token by id (from immy_list_oauth_oauth_access_tokens) using its stored refresh token.
immy_syncs_azure_user_syncProWriteTrigger an Azure/Entra user sync job (pulls users from linked Azure tenants into ImmyBot persons).
immy_syncs_expire_pending_sessionsProWriteTrigger the housekeeping job that expires stale pending maintenance sessions (clears sessions stuck in a pending state).
immy_syncs_trigger_user_affinity_syncProWriteTrigger a user-affinity sync (recomputes which persons are associated with which computers, e.g. primary/additional users).

[ImmyBot] Hit the host-rooted /auth/login endpoint (initiates the interactive sign-in redirect). StackJack authenticates with an app-only Azure Bearer token, so this returns the login challenge/redirect metadata rather than establishing an interactive session. Primarily useful for inspecting the instance's sign-in configuration.

[ImmyBot] Hit the host-rooted /auth/logout endpoint. Under StackJack's app-only Azure Bearer auth there is no interactive session to terminate, so this is effectively inert — it returns the logout redirect metadata. Exposed for completeness of the auth surface.

[ImmyBot] Hit the host-rooted /auth/me endpoint — returns the current caller's identity as ImmyBot sees it (the app registration under StackJack's app-only Azure Bearer auth). For the granular permission map use immy_list_me_permissions.

[ImmyBot] Permanently revoke/delete an OAuth access-token record by id (from immy_list_oauth_oauth_access_tokens). Any integration relying on this token will lose access until re-authorized and this cannot be undone. To renew instead of revoke, use immy_oauth_oauth_access_tokens_refresh.

ParamTypeRequiredDefaultDescription
idstringyesThe OAuth access-token record id to delete (from immy_list_oauth_oauth_access_tokens).

[ImmyBot] Get a single OAuth access-token record by its composite key (id + accessTokenId, both from immy_list_oauth_oauth_access_tokens). Returns the token's provider/scope/expiry metadata.

ParamTypeRequiredDefaultDescription
accessTokenIdstringyesThe access-token id component (from immy_list_oauth_oauth_access_tokens).
idstringyesThe OAuth access-token record id (from immy_list_oauth_oauth_access_tokens).

[ImmyBot] List the OAuth access tokens ImmyBot holds for its provider integrations (metadata: provider, scopes, expiry, status — not the raw secret). Paginated via Sieve: page + pageSize (max 100), filters/sorts optional. Fetch one with immy_get_oauth_oauth_access_tokens, refresh with immy_oauth_oauth_access_tokens_refresh, or revoke with immy_delete_oauth_oauth_access_tokens.

ParamTypeRequiredDefaultDescription
filtersstringnonullSieve filter expression. Omit for no filter.
pageintegernonull1-based page number (Sieve Page). Omit for the first page.
pageSizeintegernonullRecords per page (Sieve pageSize). Max 100; omit for the server default.
sortsstringnonullSieve sort expression. Omit for the default order.

[ImmyBot] Begin an OAuth authorization-code flow so ImmyBot can obtain a delegated token from a third-party provider. Returns the authorization URL / flow state the operator must complete. Provide a JSON body describing the provider and requested scopes. Complete the flow with immy_oauth_finish_auth_code_flow (success) or immy_oauth_fail_auth_code_flow (error/abort).

ParamTypeRequiredDefaultDescription
bodyJsonstringyesJSON object body describing the provider and scopes for the auth-code flow.

[ImmyBot] Report that an in-progress OAuth authorization-code flow failed or was aborted (records the error and clears the pending flow state). Provide a JSON body with the flow id and error details. The paired success callback is immy_oauth_finish_auth_code_flow; start a flow with immy_oauth_begin_auth_code_flow.

ParamTypeRequiredDefaultDescription
bodyJsonstringyesJSON object body with the failing flow id and error details.

[ImmyBot] Complete an OAuth authorization-code flow by redeeming the returned code for a token (the success callback). Provide a JSON body with the flow id, authorization code, and state. Started by immy_oauth_begin_auth_code_flow; the failure callback is immy_oauth_fail_auth_code_flow.

ParamTypeRequiredDefaultDescription
bodyJsonstringyesJSON object body with the flow id, authorization code, and state.

[ImmyBot] Refresh (renew) an OAuth access token by id (from immy_list_oauth_oauth_access_tokens) using its stored refresh token. Most refreshes need no body — pass (the default). This endpoint takes no parameters unless the provider requires extra fields.

ParamTypeRequiredDefaultDescription
bodyJsonstringno""Optional JSON object body. This action normally takes no options — pass (the default).
idstringyesThe OAuth access-token record id to refresh (from immy_list_oauth_oauth_access_tokens).

[ImmyBot] Trigger an Azure/Entra user sync job (pulls users from linked Azure tenants into ImmyBot persons). Most invocations take no body — pass (the default) — or supply a JSON body to scope the sync. For a tenant-scoped variant use immy_azure_sync_users_from_azure_tenants. Failures surface in immy_list_azure_errors_dx.

ParamTypeRequiredDefaultDescription
bodyJsonstringno""Optional JSON object body scoping the sync. Pass (the default) for a full sync.

[ImmyBot] Trigger the housekeeping job that expires stale pending maintenance sessions (clears sessions stuck in a pending state). Most invocations take no body — pass (the default). Inspect sessions first with immy_list_maintenance_sessions_dx / immy_list_maintenance_sessions_status_counts.

ParamTypeRequiredDefaultDescription
bodyJsonstringno""Optional JSON object body. This action normally takes no options — pass (the default).

[ImmyBot] Trigger a user-affinity sync (recomputes which persons are associated with which computers, e.g. primary/additional users). Most invocations take no body — pass (the default). Per-computer affinity is managed via immy_computers_update_primary_person / immy_computers_update_additional_persons.

ParamTypeRequiredDefaultDescription
bodyJsonstringno""Optional JSON object body. This action normally takes no options — pass (the default).

Media

ToolPlanAccessSummary
immy_delete_media_globalProDestructiveDelete a GLOBAL media asset by id (from immy_list_media_global).
immy_delete_media_localProDestructiveDelete a LOCAL media asset by id (from immy_list_media_local).
immy_get_media_globalFreeRead-onlyGet a single GLOBAL media asset by id (from immy_list_media_global).
immy_get_media_localFreeRead-onlyGet a single LOCAL media asset by id (from immy_list_media_local).
immy_list_media_globalFreeRead-onlyList GLOBAL media assets (shared across every tenant on the instance) via the DevExtreme grid feed.
immy_list_media_global_download_urlFreeRead-onlyResolve a download URL for a GLOBAL media asset's file by id (from immy_list_media_global).
immy_list_media_localFreeRead-onlyList LOCAL media assets (owned by a single tenant) via the DevExtreme grid feed.
immy_list_media_local_authorizationFreeRead-onlyGet the authorization/access scope for a LOCAL media asset by id (from immy_list_media_local) — which tenants/roles may use it.
immy_list_media_local_download_urlFreeRead-onlyResolve a download URL for a LOCAL media asset's file by id (from immy_list_media_local).
immy_list_media_searchFreeRead-onlySearch media assets with a Sieve page window (Page/pageSize/Filters/Sorts), optionally restricted to global-scope assets via globalOnly.
immy_media_globalProWriteUpdate a GLOBAL media asset's metadata by id (from immy_list_media_global).
immy_media_global_uploadProWriteUpload a GLOBAL media asset (multipart/form-data) — shared across every tenant on the instance.
immy_media_localProWriteUpdate a LOCAL media asset's metadata by id (from immy_list_media_local).
immy_media_local_authorizationProWriteSet the authorization/access scope for a LOCAL media asset by id (from immy_list_media_local) — which tenants/roles may use it.
immy_media_local_uploadProWriteUpload a LOCAL media asset (multipart/form-data) — owned by a single tenant.
immy_media_requestFileDownloadUrlFreeRead-onlyRequest a download URL for a media file (POST-as-read).
immy_media_support_uploadProWriteUpload a SUPPORT media file (multipart/form-data) — e.g. a screenshot or log attached to an ImmyBot support request.

[ImmyBot] Delete a GLOBAL media asset by id (from immy_list_media_global). This permanently removes the asset instance-wide; software items or branding that reference it will lose the image. Cannot be undone. Returns the raw ImmyBot result.

ParamTypeRequiredDefaultDescription
idstringyesThe global media asset id to delete (from immy_list_media_global).

[ImmyBot] Delete a LOCAL media asset by id (from immy_list_media_local). This permanently removes the tenant-owned asset; anything referencing it will lose the image. Cannot be undone. Returns the raw ImmyBot result.

ParamTypeRequiredDefaultDescription
idstringyesThe local media asset id to delete (from immy_list_media_local).

[ImmyBot] Get a single GLOBAL media asset by id (from immy_list_media_global). Returns the raw ImmyBot media JSON (metadata, category, dimensions). Use immy_list_media_global_download_url to resolve a URL for the underlying file.

ParamTypeRequiredDefaultDescription
idstringyesThe global media asset id (from immy_list_media_global).

[ImmyBot] Get a single LOCAL media asset by id (from immy_list_media_local). Returns the raw ImmyBot media JSON. Use immy_list_media_local_download_url for a file URL and immy_list_media_local_authorization to inspect access scope.

ParamTypeRequiredDefaultDescription
idstringyesThe local media asset id (from immy_list_media_local).

[ImmyBot] List GLOBAL media assets (shared across every tenant on the instance) via the DevExtreme grid feed. Despite the plain path this endpoint pages with skip/take, not Sieve. Optionally narrow to a media `category` (e.g. "SoftwareIcon"). Returns the raw DevExtreme envelope {data, totalCount}. See immy_list_media_local for tenant-owned assets and immy_list_media_search for a simple Sieve search.

ParamTypeRequiredDefaultDescription
categorystringnonullMedia category discriminator to filter by (e.g. "None", "SoftwareIcon"). Omit for all categories.
filterstringnonullDevExtreme filter expression (JSON array form). Omit for no filter.
requireTotalCountbooleannonullIf true, the response includes totalCount. Omit to let the server decide.
skipintegernonullNumber of records to skip (DevExtreme paging offset). Omit for 0.
sortstringnonullDevExtreme sort expression (JSON array form). Omit for default order.
takeintegernonullNumber of records to take (clamped to 100).

[ImmyBot] Resolve a download URL for a GLOBAL media asset's file by id (from immy_list_media_global). Returns a JSON body containing the URL string — this is a normal passthrough read, not a binary blob export. Fetch the URL out-of-band to retrieve the file bytes.

ParamTypeRequiredDefaultDescription
idstringyesThe global media asset id whose download URL to resolve (from immy_list_media_global).

[ImmyBot] List LOCAL media assets (owned by a single tenant) via the DevExtreme grid feed. Despite the plain path this endpoint pages with skip/take, not Sieve. Optionally narrow to a media `category` (e.g. "SoftwareIcon"). Returns the raw DevExtreme envelope {data, totalCount}. See immy_list_media_global for instance-shared assets.

ParamTypeRequiredDefaultDescription
categorystringnonullMedia category discriminator to filter by (e.g. "None", "SoftwareIcon"). Omit for all categories.
filterstringnonullDevExtreme filter expression (JSON array form). Omit for no filter.
requireTotalCountbooleannonullIf true, the response includes totalCount. Omit to let the server decide.
skipintegernonullNumber of records to skip (DevExtreme paging offset). Omit for 0.
sortstringnonullDevExtreme sort expression (JSON array form). Omit for default order.
takeintegernonullNumber of records to take (clamped to 100).

[ImmyBot] Get the authorization/access scope for a LOCAL media asset by id (from immy_list_media_local) — which tenants/roles may use it. Returns the raw ImmyBot authorization JSON. Change it with immy_media_local_authorization.

ParamTypeRequiredDefaultDescription
idstringyesThe local media asset id whose authorization to read (from immy_list_media_local).

[ImmyBot] Resolve a download URL for a LOCAL media asset's file by id (from immy_list_media_local). Returns a JSON body containing the URL string — this is a normal passthrough read, not a binary blob export. Fetch the URL out-of-band to retrieve the file bytes.

ParamTypeRequiredDefaultDescription
idstringyesThe local media asset id whose download URL to resolve (from immy_list_media_local).

[ImmyBot] Search media assets with a Sieve page window (Page/pageSize/Filters/Sorts), optionally restricted to global-scope assets via globalOnly. Unlike the DevExtreme grid feeds (immy_list_media_global / immy_list_media_local) this spans both scopes by default. Returns raw ImmyBot JSON.

ParamTypeRequiredDefaultDescription
filtersstringnonullSieve filter expression, e.g. "name@=logo" (contains). Omit for no filter.
globalOnlybooleannonullIf true, restrict results to GLOBAL-scope media only. Omit to include local assets too.
pageintegernonull1-based page number. Omit for the first page.
pageSizeintegernonullResults per page (clamped to 100).
sortsstringnonullSieve sort expression, e.g. "name" or "-createdDate" (leading - = descending). Omit for default order.

[ImmyBot] Update a GLOBAL media asset's metadata by id (from immy_list_media_global). Provide a JSON object body (fieldsJson) with the fields to set (e.g. name, category). Returns the updated media JSON. This updates metadata only — replace the file bytes with immy_media_global_upload.

ParamTypeRequiredDefaultDescription
fieldsJsonstringyesJSON object body with the media metadata to set.
idstringyesThe global media asset id to update (from immy_list_media_global).

[ImmyBot] Upload a GLOBAL media asset (multipart/form-data) — shared across every tenant on the instance. Provide the file bytes base64-encoded (base64Content) and a fileName; the file is decoded and posted as the `file` form part. Optionally forward the endpoint's `mediaId` form field (an existing media record id); omit it for a standard new upload. Returns the raw ImmyBot upload result JSON (including the new media id). Use immy_media_global to update an asset's metadata afterward.

ParamTypeRequiredDefaultDescription
base64ContentstringyesThe media file, base64-encoded.
fileNamestringyesThe original file name (e.g. "chrome-icon.png").
mediaIdintegernonullOptional. Forwards the endpoint's optional `mediaId` form field (an existing media record id). Omit for a standard new upload.

[ImmyBot] Update a LOCAL media asset's metadata by id (from immy_list_media_local). Provide a JSON object body (fieldsJson) with the fields to set (e.g. name, category). Returns the updated media JSON. This updates metadata only — replace the file bytes with immy_media_local_upload.

ParamTypeRequiredDefaultDescription
fieldsJsonstringyesJSON object body with the media metadata to set.
idstringyesThe local media asset id to update (from immy_list_media_local).

[ImmyBot] Set the authorization/access scope for a LOCAL media asset by id (from immy_list_media_local) — which tenants/roles may use it. Provide a JSON object body (fieldsJson) describing the desired authorization. Returns the raw ImmyBot result. Inspect the current scope first with immy_list_media_local_authorization.

ParamTypeRequiredDefaultDescription
fieldsJsonstringyesJSON object body describing the authorization scope to apply.
idstringyesThe local media asset id whose authorization to set (from immy_list_media_local).

[ImmyBot] Upload a LOCAL media asset (multipart/form-data) — owned by a single tenant. Provide the file bytes base64-encoded (base64Content) and a fileName; the file is decoded and posted as the `file` form part. Optionally forward the endpoint's `mediaId` form field (an existing media record id); omit it for a standard new upload. Returns the raw ImmyBot upload result JSON (including the new media id). Update its metadata with immy_media_local.

ParamTypeRequiredDefaultDescription
base64ContentstringyesThe media file, base64-encoded.
fileNamestringyesThe original file name (e.g. "client-logo.png").
mediaIdintegernonullOptional. Forwards the endpoint's optional `mediaId` form field (an existing media record id). Omit for a standard new upload.

[ImmyBot] Request a download URL for a media file (POST-as-read). Provide a JSON object body (fieldsJson) identifying the file (e.g. a media/file reference). Returns a JSON body containing the URL string — normal passthrough, not a binary export. This is a read despite the POST verb.

ParamTypeRequiredDefaultDescription
fieldsJsonstringyesJSON object body identifying the media file whose download URL to request.

[ImmyBot] Upload a SUPPORT media file (multipart/form-data) — e.g. a screenshot or log attached to an ImmyBot support request. Provide the file bytes base64-encoded (base64Content) and a fileName; the file is decoded and posted as the `file` form part. Returns the raw ImmyBot upload result JSON.

ParamTypeRequiredDefaultDescription
base64ContentstringyesThe support file, base64-encoded.
fileNamestringyesThe original file name (e.g. "error-screenshot.png").

Schedules

ToolPlanAccessSummary
immy_cancel_scheduleProDestructiveCancel a running maintenance schedule by id (from immy_list_schedules or immy_list_schedules_running_schedule_ids), stopping its in-flight maintenance session.
immy_delete_schedulesProDestructiveDelete a maintenance schedule by id (from immy_list_schedules).
immy_get_schedulesFreeRead-onlyGet a single maintenance schedule by id (from immy_list_schedules).
immy_list_schedulesFreeRead-onlyList maintenance schedules, optionally filtered to a single tenant.
immy_list_schedules_running_schedule_idsFreeRead-onlyList the ids of schedules that are currently executing (have a maintenance session in flight).
immy_patch_schedules_bulk_update_statusProWriteBulk enable/disable schedules.
immy_schedulesProWriteCreate a maintenance schedule.
immy_schedules_bulk_cancelProDestructiveBulk-cancel running maintenance schedules, stopping their in-flight maintenance sessions.
immy_schedules_bulk_deleteProDestructiveBulk-delete maintenance schedules.
immy_schedules_bulk_run_nowProDestructiveTrigger multiple maintenance schedules to run immediately.
immy_schedules_duplicateProWriteDuplicate a maintenance schedule by id (from immy_list_schedules), creating a new schedule copied from it.
immy_schedules_run_nowProDestructiveTrigger a maintenance schedule to run immediately by id (from immy_list_schedules), starting its maintenance session now instead of at the next scheduled time.
immy_update_schedulesProDestructiveUpdate (full replace) a maintenance schedule by id (from immy_list_schedules).

[ImmyBot] Cancel a running maintenance schedule by id (from immy_list_schedules or immy_list_schedules_running_schedule_ids), stopping its in-flight maintenance session. This interrupts automation mid-run and cannot be undone. This endpoint takes no parameters — leave fieldsJson as ``. Returns the raw ImmyBot result.

ParamTypeRequiredDefaultDescription
fieldsJsonstringno""JSON object body. This endpoint takes no parameters — leave as `` (the default).
scheduleIdstringyesThe schedule id to cancel (from immy_list_schedules_running_schedule_ids).

[ImmyBot] Delete a maintenance schedule by id (from immy_list_schedules). This permanently removes the schedule and its future automation; running sessions are not rolled back. Cannot be undone. To only pause it, disable it via immy_patch_schedules_bulk_update_status instead. Returns the raw ImmyBot result.

ParamTypeRequiredDefaultDescription
scheduleIdstringyesThe schedule id to delete (from immy_list_schedules).

[ImmyBot] Get a single maintenance schedule by id (from immy_list_schedules). Returns the raw ImmyBot schedule JSON (target, trigger/recurrence, maintenance items). Update it with immy_update_schedules.

ParamTypeRequiredDefaultDescription
scheduleIdstringyesThe schedule id (from immy_list_schedules).

[ImmyBot] List maintenance schedules, optionally filtered to a single tenant. Each schedule declares when a maintenance session runs against a target. Returns raw ImmyBot JSON. Use immy_list_schedules_running_schedule_ids to see which are executing right now, or immy_get_schedules for one schedule's detail.

ParamTypeRequiredDefaultDescription
tenantIdstringnonullOptional tenant id to filter schedules to one tenant (from immy_list_tenants). Omit for all tenants.

[ImmyBot] List the ids of schedules that are currently executing (have a maintenance session in flight). Returns raw ImmyBot JSON (an id array). Cross-reference with immy_list_schedules; use immy_cancel_schedule to stop one.

[ImmyBot] Bulk enable/disable schedules. Provide a JSON object body (fieldsJson) with the target schedule ids and the desired status (e.g. enabled/disabled). Disabling stops future runs without deleting the schedule. Returns the raw ImmyBot result.

ParamTypeRequiredDefaultDescription
fieldsJsonstringyesJSON object body with the schedule ids and the status to apply.

[ImmyBot] Create a maintenance schedule. Provide a JSON object body (fieldsJson) — typically name, the target (tenant/computer/tag), the trigger/recurrence, and the maintenance items to run. Returns the created schedule JSON. Duplicate an existing one instead with immy_schedules_duplicate.

ParamTypeRequiredDefaultDescription
fieldsJsonstringyesJSON object body describing the schedule (name, target, trigger/recurrence, maintenance items).

[ImmyBot] Bulk-cancel running maintenance schedules, stopping their in-flight maintenance sessions. Provide a JSON object body (fieldsJson) naming the target schedule ids. This interrupts automation mid-run and cannot be undone. Returns the raw ImmyBot result.

ParamTypeRequiredDefaultDescription
fieldsJsonstringyesJSON object body naming the schedule ids to cancel.

[ImmyBot] Bulk-delete maintenance schedules. Provide a JSON object body (fieldsJson) naming the target schedule ids. This permanently removes the schedules and their future automation; cannot be undone. To only pause them, use immy_patch_schedules_bulk_update_status. Returns the raw ImmyBot result.

ParamTypeRequiredDefaultDescription
fieldsJsonstringyesJSON object body naming the schedule ids to delete.

[ImmyBot] Trigger multiple maintenance schedules to run immediately. Provide a JSON object body (fieldsJson) naming the target schedule ids. Each starts its maintenance session now. Returns the raw ImmyBot result. Single-schedule variant: immy_schedules_run_now.

ParamTypeRequiredDefaultDescription
fieldsJsonstringyesJSON object body naming the schedule ids to run now.

[ImmyBot] Duplicate a maintenance schedule by id (from immy_list_schedules), creating a new schedule copied from it. This endpoint takes no parameters — leave fieldsJson as `` unless overrides are supported. Returns the new schedule JSON.

ParamTypeRequiredDefaultDescription
fieldsJsonstringno""JSON object body. This endpoint takes no parameters — leave as `` (the default).
scheduleIdstringyesThe schedule id to duplicate (from immy_list_schedules).

[ImmyBot] Trigger a maintenance schedule to run immediately by id (from immy_list_schedules), starting its maintenance session now instead of at the next scheduled time. This endpoint takes no parameters — leave fieldsJson as ``. Returns the raw ImmyBot result. Bulk variant: immy_schedules_bulk_run_now.

ParamTypeRequiredDefaultDescription
fieldsJsonstringno""JSON object body. This endpoint takes no parameters — leave as `` (the default).
scheduleIdstringyesThe schedule id to run now (from immy_list_schedules).

[ImmyBot] Update (full replace) a maintenance schedule by id (from immy_list_schedules). Provide the complete JSON object body (fieldsJson) — omitted fields are cleared, so fetch with immy_get_schedules first and send the merged object. Returns the updated schedule JSON.

ParamTypeRequiredDefaultDescription
fieldsJsonstringyesComplete JSON object body for the schedule (full replace).
scheduleIdstringyesThe schedule id to update (from immy_list_schedules).

Dynamic Provider Types

ToolPlanAccessSummary
immy_create_global_dynamic_provider_typeProWriteCreate a new GLOBAL (cross-tenant) dynamic provider type.
immy_create_local_dynamic_provider_typeProWriteCreate a new LOCAL (tenant-scoped) dynamic provider type.
immy_delete_dynamic_provider_types_globalProDestructivePermanently delete the GLOBAL dynamic provider type identified by id — this cannot be undone and any provider link built on it will break.
immy_delete_dynamic_provider_types_localProDestructivePermanently delete the LOCAL dynamic provider type identified by id — this cannot be undone and any provider link built on it will break.
immy_delete_dynamic_provider_types_test_environmentProDestructiveTear down (dispose) the interactive terminal test environment identified by terminalId, releasing its terminal/session resources.
immy_dynamic_provider_type_test_bind_config_formFreeRead-onlyBind (render/evaluate) the configuration form for a dynamic provider type inside an interactive terminal test environment.
immy_dynamic_provider_types_global_reloadProWriteReload (recompile/re-evaluate) the GLOBAL dynamic provider type identified by id so running provider links pick up its latest definition.
immy_dynamic_provider_types_local_reloadProWriteReload (recompile/re-evaluate) the LOCAL dynamic provider type identified by id so running provider links pick up its latest definition.
immy_dynamic_provider_types_reloadProWriteReload ALL dynamic provider types on the instance (recompile/re-evaluate every dynamic integration definition).
immy_dynamic_provider_types_test_environmentProWriteStart (provision) an interactive terminal test environment for developing/debugging a dynamic provider type, and get back its terminalId.
immy_dynamic_provider_types_test_environment_execute_methodProDestructiveInvoke a named provider method inside the interactive terminal test environment while developing a dynamic provider type.
immy_get_dynamic_provider_types_globalFreeRead-onlyGet a single GLOBAL (cross-tenant) dynamic provider type by id (from immy_list_dynamic_provider_types), including its definition/script and configuration schema.
immy_get_dynamic_provider_types_localFreeRead-onlyGet a single LOCAL (tenant-scoped) dynamic provider type by id (from immy_list_dynamic_provider_types), including its definition/script and configuration schema.
immy_list_dynamic_provider_typesFreeRead-onlyList the dynamic (code-defined) integration provider types configured on the instance (both global and local).
immy_update_global_dynamic_provider_typeProDestructiveUpdate the GLOBAL dynamic provider type identified by id (from immy_list_dynamic_provider_types).
immy_update_local_dynamic_provider_typeProDestructiveUpdate the LOCAL dynamic provider type identified by id (from immy_list_dynamic_provider_types).

[ImmyBot] Create a new GLOBAL (cross-tenant) dynamic provider type. Body (fieldsJson) is the provider-type definition — typically name, the provider script/definition, and its configuration-form schema. Returns the created provider type JSON (including its assigned id).

ParamTypeRequiredDefaultDescription
fieldsJsonstringyesDynamic-provider-type definition JSON (name, provider script/definition, configuration schema, ...).

[ImmyBot] Create a new LOCAL (tenant-scoped) dynamic provider type. Body (fieldsJson) is the provider-type definition — typically name, the provider script/definition, and its configuration-form schema. Returns the created provider type JSON (including its assigned id).

ParamTypeRequiredDefaultDescription
fieldsJsonstringyesDynamic-provider-type definition JSON (name, provider script/definition, configuration schema, ...).

[ImmyBot] Permanently delete the GLOBAL dynamic provider type identified by id — this cannot be undone and any provider link built on it will break. Confirm nothing depends on it first (check immy_list_provider_links). id comes from immy_list_dynamic_provider_types.

ParamTypeRequiredDefaultDescription
idstringyesGlobal dynamic-provider-type id to delete (from immy_list_dynamic_provider_types).

[ImmyBot] Permanently delete the LOCAL dynamic provider type identified by id — this cannot be undone and any provider link built on it will break. Confirm nothing depends on it first (check immy_list_provider_links). id comes from immy_list_dynamic_provider_types.

ParamTypeRequiredDefaultDescription
idstringyesLocal dynamic-provider-type id to delete (from immy_list_dynamic_provider_types).

[ImmyBot] Tear down (dispose) the interactive terminal test environment identified by terminalId, releasing its terminal/session resources. This ends any in-progress test session on that terminal. terminalId comes from immy_dynamic_provider_types_test_environment.

ParamTypeRequiredDefaultDescription
terminalIdstringyesThe test-environment terminal id to tear down (from immy_dynamic_provider_types_test_environment).

[ImmyBot] Bind (render/evaluate) the configuration form for a dynamic provider type inside an interactive terminal test environment. This is a POST-as-read (read-only) — it evaluates the form against the supplied values without persisting anything. Pass the terminalId (from immy_dynamic_provider_types_test_environment) and a JSON object body with the current form values/parameters. Returns raw ImmyBot JSON (the bound form model).

ParamTypeRequiredDefaultDescription
fieldsJsonstringyesJSON object body — the current configuration-form values/parameters to bind against.
terminalIdstringyesThe test-environment terminal id (from immy_dynamic_provider_types_test_environment).

[ImmyBot] Reload (recompile/re-evaluate) the GLOBAL dynamic provider type identified by id so running provider links pick up its latest definition. id comes from immy_list_dynamic_provider_types. Body (fieldsJson) carries any reload options — pass `` for a plain reload. Returns raw ImmyBot JSON.

ParamTypeRequiredDefaultDescription
fieldsJsonstringyesJSON object body with reload options; pass `` for a plain reload.
idstringyesGlobal dynamic-provider-type id (from immy_list_dynamic_provider_types).

[ImmyBot] Reload (recompile/re-evaluate) the LOCAL dynamic provider type identified by id so running provider links pick up its latest definition. id comes from immy_list_dynamic_provider_types. Body (fieldsJson) carries any reload options — pass `` for a plain reload. Returns raw ImmyBot JSON.

ParamTypeRequiredDefaultDescription
fieldsJsonstringyesJSON object body with reload options; pass `` for a plain reload.
idstringyesLocal dynamic-provider-type id (from immy_list_dynamic_provider_types).

[ImmyBot] Reload ALL dynamic provider types on the instance (recompile/re-evaluate every dynamic integration definition). Use after bulk edits. Body (fieldsJson) carries any reload options — pass `` for a plain reload-all. Returns raw ImmyBot JSON.

ParamTypeRequiredDefaultDescription
fieldsJsonstringyesJSON object body with reload options; pass `` for a plain reload-all.

[ImmyBot] Start (provision) an interactive terminal test environment for developing/debugging a dynamic provider type, and get back its terminalId. Pass a JSON object body describing the environment to spin up (typically the provider-type definition/reference and any bootstrap parameters). Use the returned terminalId with immy_dynamic_provider_type_test_bind_config_form and immy_dynamic_provider_types_test_environment_execute_method, then tear it down with immy_delete_dynamic_provider_types_test_environment. Returns raw ImmyBot JSON.

ParamTypeRequiredDefaultDescription
fieldsJsonstringyesJSON object body describing the test environment to provision (provider-type definition/reference, bootstrap parameters, ...).
terminalIdstringyesThe test-environment terminal id to (re)initialize. Use immy_delete_dynamic_provider_types_test_environment to tear it down when done.

[ImmyBot] Invoke a named provider method inside the interactive terminal test environment while developing a dynamic provider type. Pass the terminalId (from immy_dynamic_provider_types_test_environment), the method name to execute, and a JSON object body with the method arguments. Runs provider code in the test terminal — get user approval before executing. Returns raw ImmyBot JSON (the method result).

ParamTypeRequiredDefaultDescription
fieldsJsonstringyesJSON object body with the method arguments.
methodstringyesThe provider method name to execute in the test environment.
terminalIdstringyesThe test-environment terminal id (from immy_dynamic_provider_types_test_environment).

[ImmyBot] Get a single GLOBAL (cross-tenant) dynamic provider type by id (from immy_list_dynamic_provider_types), including its definition/script and configuration schema. Returns raw ImmyBot JSON.

ParamTypeRequiredDefaultDescription
idstringyesGlobal dynamic-provider-type id (from immy_list_dynamic_provider_types).

[ImmyBot] Get a single LOCAL (tenant-scoped) dynamic provider type by id (from immy_list_dynamic_provider_types), including its definition/script and configuration schema. Returns raw ImmyBot JSON.

ParamTypeRequiredDefaultDescription
idstringyesLocal dynamic-provider-type id (from immy_list_dynamic_provider_types).

[ImmyBot] List the dynamic (code-defined) integration provider types configured on the instance (both global and local). Sieve-paginated: Page + pageSize (max 100) + optional Filters/Sorts. Use the returned ids with immy_get_dynamic_provider_types_global / immy_get_dynamic_provider_types_local. Returns raw ImmyBot JSON.

ParamTypeRequiredDefaultDescription
filtersstringnonullOptional Sieve filter expression (e.g. `name@=connectwise`).
pageintegernonull1-based page number (Sieve Page). Optional.
pageSizeintegernonullRecords per page (Sieve pageSize, max 100). Optional.
sortsstringnonullOptional Sieve sort expression (e.g. `-updatedDate`).

[ImmyBot] Update the GLOBAL dynamic provider type identified by id (from immy_list_dynamic_provider_types). Body (fieldsJson) is the full provider-type definition (replace semantics, not a partial patch). Editing a provider type affects every provider link built on it — reload afterwards with immy_dynamic_provider_types_global_reload so running links pick up the change. Returns the updated provider type JSON.

ParamTypeRequiredDefaultDescription
fieldsJsonstringyesFull dynamic-provider-type definition JSON (replace semantics).
idstringyesGlobal dynamic-provider-type id (from immy_list_dynamic_provider_types).

[ImmyBot] Update the LOCAL dynamic provider type identified by id (from immy_list_dynamic_provider_types). Body (fieldsJson) is the full provider-type definition (replace semantics, not a partial patch). Reload afterwards with immy_dynamic_provider_types_local_reload so running links pick up the change. Returns the updated provider type JSON.

ParamTypeRequiredDefaultDescription
fieldsJsonstringyesFull dynamic-provider-type definition JSON (replace semantics).
idstringyesLocal dynamic-provider-type id (from immy_list_dynamic_provider_types).

Diagnostics & Metrics

ToolPlanAccessSummary
immy_application_locks_request_cancellationProWriteRequest cancellation of the operation holding an application lock (a cooperative cancel — it signals the running operation to stop, releasing its lock).
immy_application_logs_source_contextProWriteSet (override) the minimum log level for one application-log source context — raise verbosity on a subsystem while diagnosing, e.g. to Debug/Verbose.
immy_application_logs_source_context_clearProWriteClear the log-level override for a single application-log source context, returning it to the instance default.
immy_application_logs_source_context_clear_allProWriteClear ALL application-log source-context level overrides at once, returning every subsystem to the instance default log level.
immy_application_logs_streamingProWriteStart/stop or configure live application-log streaming (the diagnostic log tail the ImmyBot UI opens).
immy_list_application_locksFreeRead-onlyList the currently held application locks (the concurrency guards ImmyBot uses to serialize instance-level operations).
immy_list_application_locks_realtime_event_streamFreeRead-onlyGet the realtime event-stream snapshot for application locks — the feed the ImmyBot UI subscribes to for live lock acquire/release events.
immy_list_application_logs_source_contextsFreeRead-onlyList the known application-log source contexts (the logger source-context categories, e.g. per subsystem) and their current log-level overrides.
immy_list_audits_global_dxFreeRead-onlyDevExtreme grid feed of GLOBAL (instance-wide) audit records — who changed what across the instance.
immy_list_audits_local_dxFreeRead-onlyDevExtreme grid feed of LOCAL (tenant-scoped) audit records — who changed what within the current tenant scope.
immy_list_metrics_circuit_breakersFreeRead-onlyList the provider-link circuit breakers and their current state (closed/open/half-open) — ImmyBot opens a breaker to stop hammering a failing integration.
immy_list_metrics_provider_linksFreeRead-onlyList per-provider-link metrics (throughput, error, and rate-limit health for each integration link).
immy_list_metrics_provider_links_rate_limit_statisticsFreeRead-onlyGet the rate-limit statistics for a single provider link (requests, throttles, and backoff windows) by providerLinkId (from immy_list_provider_links or immy_list_metrics_provider_links).
immy_metrics_circuit_breakers_isolateProDestructiveForce a provider-link circuit breaker OPEN (isolate it), immediately halting all traffic to that integration until it is reset.
immy_metrics_circuit_breakers_resetProWriteReset a provider-link circuit breaker back to closed (healthy), resuming traffic to the integration — the counterpart to immy_metrics_circuit_breakers_isolate and the recovery for a breaker that…

[ImmyBot] Request cancellation of the operation holding an application lock (a cooperative cancel — it signals the running operation to stop, releasing its lock). Pass a JSON object body identifying the lock/operation to cancel (typically the lock key/id from immy_list_application_locks). Returns raw ImmyBot JSON.

ParamTypeRequiredDefaultDescription
fieldsJsonstringyesJSON object body identifying the lock/operation to cancel (e.g. its key/id from immy_list_application_locks).

[ImmyBot] Set (override) the minimum log level for one application-log source context — raise verbosity on a subsystem while diagnosing, e.g. to Debug/Verbose. Pass a JSON object body with the source context and desired level (see immy_list_application_logs_source_contexts for valid contexts). Clear it later with immy_application_logs_source_context_clear. Returns raw ImmyBot JSON.

ParamTypeRequiredDefaultDescription
fieldsJsonstringyesJSON object body — the source context and the log level to apply (from immy_list_application_logs_source_contexts).

[ImmyBot] Clear the log-level override for a single application-log source context, returning it to the instance default. Pass a JSON object body identifying the source context to clear (from immy_list_application_logs_source_contexts). Returns raw ImmyBot JSON.

ParamTypeRequiredDefaultDescription
fieldsJsonstringyesJSON object body identifying the source context to clear (from immy_list_application_logs_source_contexts).

[ImmyBot] Clear ALL application-log source-context level overrides at once, returning every subsystem to the instance default log level. Body (fieldsJson) carries any options — pass `` for a plain clear-all. Returns raw ImmyBot JSON.

ParamTypeRequiredDefaultDescription
fieldsJsonstringyesJSON object body with options; pass `` to clear all overrides.

[ImmyBot] Start/stop or configure live application-log streaming (the diagnostic log tail the ImmyBot UI opens). Pass a JSON object body with the streaming options (e.g. enable/disable, minimum level, source-context filter). Returns raw ImmyBot JSON.

ParamTypeRequiredDefaultDescription
fieldsJsonstringyesJSON object body with streaming options (enable/disable, level, source-context filter, ...).

[ImmyBot] List the currently held application locks (the concurrency guards ImmyBot uses to serialize instance-level operations). Useful for diagnosing why an operation is queued/blocked. Sieve-paginated: Page + pageSize (max 100) + optional Filters/Sorts. Returns raw ImmyBot JSON.

ParamTypeRequiredDefaultDescription
filtersstringnonullOptional Sieve filter expression.
pageintegernonull1-based page number (Sieve Page). Optional.
pageSizeintegernonullRecords per page (Sieve pageSize, max 100). Optional.
sortsstringnonullOptional Sieve sort expression.

[ImmyBot] Get the realtime event-stream snapshot for application locks — the feed the ImmyBot UI subscribes to for live lock acquire/release events. Read-only diagnostic. Returns raw ImmyBot JSON.

[ImmyBot] List the known application-log source contexts (the logger source-context categories, e.g. per subsystem) and their current log-level overrides. Use these values with immy_application_logs_source_context to raise/lower verbosity. Sieve-paginated: Page + pageSize (max 100) + optional Filters/Sorts. Returns raw ImmyBot JSON.

ParamTypeRequiredDefaultDescription
filtersstringnonullOptional Sieve filter expression.
pageintegernonull1-based page number (Sieve Page). Optional.
pageSizeintegernonullRecords per page (Sieve pageSize, max 100). Optional.
sortsstringnonullOptional Sieve sort expression.

[ImmyBot] DevExtreme grid feed of GLOBAL (instance-wide) audit records — who changed what across the instance. Uses skip/take paging (take max 100) plus optional DevExtreme filter/sort JSON and requireTotalCount. Returns raw ImmyBot JSON.

ParamTypeRequiredDefaultDescription
filterstringnonullOptional DevExtreme filter expression (JSON array string).
requireTotalCountbooleannonullWhen true, include the total record count in the response.
skipintegernonullNumber of records to skip (DevExtreme skip). Optional.
sortstringnonullOptional DevExtreme sort expression (JSON array string).
takeintegernonullNumber of records to return (DevExtreme take, max 100). Optional.

[ImmyBot] DevExtreme grid feed of LOCAL (tenant-scoped) audit records — who changed what within the current tenant scope. Uses skip/take paging (take max 100) plus optional DevExtreme filter/sort JSON and requireTotalCount. Returns raw ImmyBot JSON.

ParamTypeRequiredDefaultDescription
filterstringnonullOptional DevExtreme filter expression (JSON array string).
requireTotalCountbooleannonullWhen true, include the total record count in the response.
skipintegernonullNumber of records to skip (DevExtreme skip). Optional.
sortstringnonullOptional DevExtreme sort expression (JSON array string).
takeintegernonullNumber of records to return (DevExtreme take, max 100). Optional.

[ImmyBot] List the provider-link circuit breakers and their current state (closed/open/half-open) — ImmyBot opens a breaker to stop hammering a failing integration. Use this to spot degraded provider links before isolating/resetting one. Sieve-paginated: Page + pageSize (max 100) + optional Filters/Sorts. Returns raw ImmyBot JSON.

ParamTypeRequiredDefaultDescription
filtersstringnonullOptional Sieve filter expression.
pageintegernonull1-based page number (Sieve Page). Optional.
pageSizeintegernonullRecords per page (Sieve pageSize, max 100). Optional.
sortsstringnonullOptional Sieve sort expression.

[ImmyBot] Force a provider-link circuit breaker OPEN (isolate it), immediately halting all traffic to that integration until it is reset. Destructive — it takes the integration offline; get user approval first. Pass a JSON object body identifying the breaker/provider link to isolate (from immy_list_metrics_circuit_breakers). Undo with immy_metrics_circuit_breakers_reset. Returns raw ImmyBot JSON.

ParamTypeRequiredDefaultDescription
fieldsJsonstringyesJSON object body identifying the circuit breaker / provider link to isolate (from immy_list_metrics_circuit_breakers).

[ImmyBot] Reset a provider-link circuit breaker back to closed (healthy), resuming traffic to the integration — the counterpart to immy_metrics_circuit_breakers_isolate and the recovery for a breaker that tripped on failures. Pass a JSON object body identifying the breaker/provider link to reset (from immy_list_metrics_circuit_breakers). Returns raw ImmyBot JSON.

ParamTypeRequiredDefaultDescription
fieldsJsonstringyesJSON object body identifying the circuit breaker / provider link to reset (from immy_list_metrics_circuit_breakers).

Brandings

ToolPlanAccessSummary
immy_brandingsProWriteCreate a new branding profile.
immy_brandings_global_defaultProWritePromote a branding profile (by id, from immy_list_brandings) to the system-wide default used when no more-specific branding applies.
immy_brandings_send_test_emailProDestructiveSend a preview email using the supplied branding values WITHOUT persisting them — useful to visually verify a branding before creating/updating it.
immy_brandings_validate_time_formatFreeRead-onlyValidate a .NET date-time format string by formatting the current time with it, and return the formatted result.
immy_delete_brandingsProDestructivePermanently delete a branding profile by id (from immy_list_brandings).
immy_get_brandingsFreeRead-onlyFetch a single branding profile by id (from immy_list_brandings).
immy_list_brandingsFreeRead-onlyList all branding profiles visible to the caller.
immy_list_brandings_support_brandingFreeRead-onlyFetch the support-sidebar branding override published by the active dynamic provider (the branding shown to end users in the support experience).
immy_update_brandingsProDestructiveReplace a branding profile by id (from immy_list_brandings).

[ImmyBot] Create a new branding profile. Provide a JSON object body describing the branding (typically name, logo references, colors, support contact, date/time format). Preview it first with immy_brandings_send_test_email.

ParamTypeRequiredDefaultDescription
fieldsJsonstringyesJSON object body for the new branding profile.

[ImmyBot] Promote a branding profile (by id, from immy_list_brandings) to the system-wide default used when no more-specific branding applies. Takes only the branding id in the path; no body.

ParamTypeRequiredDefaultDescription
idstringyesThe id of the branding profile to make the system-wide default (from immy_list_brandings).

[ImmyBot] Send a preview email using the supplied branding values WITHOUT persisting them — useful to visually verify a branding before creating/updating it. Provide a JSON object body with the branding values plus the recipient/preview details. To test SMTP connectivity instead, use immy_smtp_configs_send_test_email.

ParamTypeRequiredDefaultDescription
fieldsJsonstringyesJSON object body with the branding values and preview recipient details.

[ImmyBot] Validate a .NET date-time format string by formatting the current time with it, and return the formatted result. Read-only despite being an HTTP POST — nothing is persisted. The format string travels in the URL path (e.g. timeFormat="yyyy-MM-dd HH:mm"). Use before saving a branding profile's date/time format.

ParamTypeRequiredDefaultDescription
timeFormatstringyesThe .NET date-time format string to validate, e.g. "yyyy-MM-dd HH:mm:ss".

[ImmyBot] Permanently delete a branding profile by id (from immy_list_brandings). Cannot be undone. If the profile is the global default or referenced by tenants, reassign those first (immy_brandings_global_default).

ParamTypeRequiredDefaultDescription
idstringyesThe id of the branding profile to delete (from immy_list_brandings).

[ImmyBot] Fetch a single branding profile by id (from immy_list_brandings). Returns the full branding configuration (name, logos, colors, support contact, date/time format).

ParamTypeRequiredDefaultDescription
idstringyesThe id of the branding profile (from immy_list_brandings).

[ImmyBot] List all branding profiles visible to the caller. Paginated via Sieve: page (1-based) + pageSize (max 100); filters/sorts accept Sieve expressions. Feed a branding id to immy_get_brandings / immy_update_brandings / immy_delete_brandings, or promote one with immy_brandings_global_default.

ParamTypeRequiredDefaultDescription
filtersstringnonullSieve filter expression, e.g. "Name@=support". Omit for no filter.
pageintegernonull1-based page number (Sieve Page). Omit for the first page.
pageSizeintegernonullRecords per page (Sieve pageSize). Max 100; omit for the server default.
sortsstringnonullSieve sort expression, e.g. "Name" or "-Name" (descending). Omit for the default order.

[ImmyBot] Fetch the support-sidebar branding override published by the active dynamic provider (the branding shown to end users in the support experience). Takes no parameters.

[ImmyBot] Replace a branding profile by id (from immy_list_brandings). Provide the full JSON object body — ImmyBot replaces the profile (HTTP PUT), so include all fields, not just the ones you are changing. Read the current profile with immy_get_brandings first.

ParamTypeRequiredDefaultDescription
fieldsJsonstringyesFull JSON object body for the branding profile (replaces the existing profile).
idstringyesThe id of the branding profile to replace (from immy_list_brandings).

Maintenance Email Jobs

ToolPlanAccessSummary
immy_maintenance_email_reboot_nowProDestructiveReboot the target computer immediately for a maintenance email (the 'reboot now' link recipients click).
immy_postpone_maintenance_email_jobProWritePostpone the scheduled maintenance linked to a maintenance email (the 'postpone' link recipients click).
immy_run_maintenance_email_job_nowProDestructiveTrigger the scheduled maintenance action linked to a maintenance email to run immediately (the 'run now' link recipients click).

[ImmyBot] Reboot the target computer immediately for a maintenance email (the 'reboot now' link recipients click). DESTRUCTIVE — it forces an immediate reboot of the end user's machine, despite being an HTTP GET. Identify the email by its GUID.

ParamTypeRequiredDefaultDescription
emailGuidstringyesThe maintenance email GUID whose target computer should reboot now.

[ImmyBot] Postpone the scheduled maintenance linked to a maintenance email (the 'postpone' link recipients click). An ACTION despite being an HTTP GET — it reschedules the job. Identify the email by its GUID.

ParamTypeRequiredDefaultDescription
emailGuidstringyesThe maintenance email GUID whose job should be postponed.

[ImmyBot] Trigger the scheduled maintenance action linked to a maintenance email to run immediately (the 'run now' link recipients click). This is an ACTION, not a read, despite being an HTTP GET — it starts maintenance on the target computer. Identify the email by its GUID (from a maintenance-email record).

ParamTypeRequiredDefaultDescription
emailGuidstringyesThe maintenance email GUID whose job should run now.

Notifications

ToolPlanAccessSummary
immy_delete_notifications_unsilenceProDestructiveRemove one of the current user's notification silences by its silence id (from immy_list_notifications) — future notifications of that type/object will alert again.
immy_list_notificationsFreeRead-onlyList the current user's ACTIVE notification silences (the notification types/objects currently muted).
immy_list_notifications_dxFreeRead-onlyList notifications visible to the current user, formatted for the DevExtreme data grid.
immy_list_notifications_unacknowledgedFreeRead-onlyList the current user's unacknowledged, unresolved notifications, newest first.
immy_notifications_acknowledgeProWriteAcknowledge a batch of notifications on behalf of the current user.
immy_notifications_silenceProWriteSilence future notifications of a given type for the current user, optionally narrowed to a specific object.

[ImmyBot] Remove one of the current user's notification silences by its silence id (from immy_list_notifications) — future notifications of that type/object will alert again. Flagged destructive as it deletes the silence record. To create a silence use immy_notifications_silence.

ParamTypeRequiredDefaultDescription
idstringyesThe id of the notification silence to remove (from immy_list_notifications).

[ImmyBot] List the current user's ACTIVE notification silences (the notification types/objects currently muted). Paginated via Sieve: page + pageSize (max 100), filters/sorts. To list the notifications themselves use immy_list_notifications_dx or immy_list_notifications_unacknowledged; add a silence with immy_notifications_silence and remove one with immy_delete_notifications_unsilence.

ParamTypeRequiredDefaultDescription
filtersstringnonullSieve filter expression. Omit for no filter.
pageintegernonull1-based page number (Sieve Page). Omit for the first page.
pageSizeintegernonullRecords per page (Sieve pageSize). Max 100; omit for the server default.
sortsstringnonullSieve sort expression, e.g. "-CreatedAt". Omit for the default order.

[ImmyBot] List notifications visible to the current user, formatted for the DevExtreme data grid. Paginated via DevExtreme skip + take (take max 100); filter/sort accept DevExtreme expressions; requireTotalCount adds a total. This is the primary read for the notification feed itself.

ParamTypeRequiredDefaultDescription
filterstringnonullDevExtreme filter expression (JSON array form). Omit for no filter.
requireTotalCountbooleannonullSet true to include a total record count in the response.
skipintegernonullRecords to skip (DevExtreme skip). Omit for 0.
sortstringnonullDevExtreme sort expression (JSON array form). Omit for the default order.
takeintegernonullRecords to take (DevExtreme take). Max 100; omit for the server default.

[ImmyBot] List the current user's unacknowledged, unresolved notifications, newest first. Optionally cap the result count with limit. Acknowledge them with immy_notifications_acknowledge.

ParamTypeRequiredDefaultDescription
limitintegernonullMaximum number of notifications to return (newest first). Omit for the server default.

[ImmyBot] Acknowledge a batch of notifications on behalf of the current user. Provide a JSON body identifying the notifications to acknowledge (typically an array of notification ids or an object wrapping one). List candidates with immy_list_notifications_unacknowledged.

ParamTypeRequiredDefaultDescription
fieldsJsonstringyesJSON body identifying the notifications to acknowledge (e.g. { "notificationIds": [1,2,3] }).

[ImmyBot] Silence future notifications of a given type for the current user, optionally narrowed to a specific object. type is the notification type (path). Provide objectId to silence only notifications for that object, or omit it to silence the whole type. Remove a silence with immy_delete_notifications_unsilence.

ParamTypeRequiredDefaultDescription
objectIdstringnonullOptional object id to narrow the silence to a single object. Omit to silence the whole type.
typestringyesThe notification type to silence (path segment).

Notification Preferences

ToolPlanAccessSummary
immy_get_preferences_tenantsFreeRead-onlyFetch the preferences for a specific tenant by tenant id (from immy_list_tenants).
immy_list_preferencesFreeRead-onlyFetch the bundled application, tenant, and user preferences for the current user.
immy_patch_preferences_applicationProWriteApply a JSON Patch document to the application-wide (instance) preferences.
immy_patch_preferences_myProWriteApply a JSON Patch document to the calling user's own preferences.
immy_patch_preferences_tenantsProWriteApply a JSON Patch document to a specific tenant's preferences (tenant id from immy_list_tenants).

[ImmyBot] Fetch the preferences for a specific tenant by tenant id (from immy_list_tenants). Update them with immy_patch_preferences_tenants.

ParamTypeRequiredDefaultDescription
tenantIdstringyesThe tenant id whose preferences to fetch (from immy_list_tenants).

[ImmyBot] Fetch the bundled application, tenant, and user preferences for the current user. Paginated via Sieve params where applicable. Update scopes with immy_patch_preferences_application / immy_patch_preferences_my / immy_patch_preferences_tenants.

ParamTypeRequiredDefaultDescription
filtersstringnonullSieve filter expression. Omit for no filter.
pageintegernonull1-based page number (Sieve Page). Omit for the first page.
pageSizeintegernonullRecords per page (Sieve pageSize). Max 100; omit for the server default.
sortsstringnonullSieve sort expression. Omit for the default order.

[ImmyBot] Apply a JSON Patch document to the application-wide (instance) preferences. Provide a JSON Patch array, e.g. [{"op":"replace","path":"/someSetting","value":true}]. Read the current values with immy_list_preferences first.

ParamTypeRequiredDefaultDescription
patchJsonstringyesJSON Patch document (array of operations) for the application-wide preferences.

[ImmyBot] Apply a JSON Patch document to the calling user's own preferences. Provide a JSON Patch array, e.g. [{"op":"replace","path":"/emailNotifications","value":false}].

ParamTypeRequiredDefaultDescription
patchJsonstringyesJSON Patch document (array of operations) for the current user's preferences.

[ImmyBot] Apply a JSON Patch document to a specific tenant's preferences (tenant id from immy_list_tenants). Provide a JSON Patch array, e.g. [{"op":"replace","path":"/someSetting","value":123}]. Read the current values with immy_get_preferences_tenants first.

ParamTypeRequiredDefaultDescription
patchJsonstringyesJSON Patch document (array of operations) for the tenant's preferences.
tenantIdstringyesThe tenant id whose preferences to patch (from immy_list_tenants).

SMTP Configuration

ToolPlanAccessSummary
immy_create_smtp_configProWriteCreate the SMTP configuration for a tenant.
immy_delete_smtp_configsProDestructiveRemove the SMTP configuration for a specific tenant (by tenant id from immy_list_tenants).
immy_get_smtp_configsFreeRead-onlyFetch the SMTP configuration for a specific tenant by tenant id (from immy_list_tenants).
immy_list_smtp_configsFreeRead-onlyList all SMTP configurations visible to the caller (per-tenant outbound mail settings).
immy_list_smtp_configs_delivery_logs_dxFreeRead-onlyList SMTP delivery logs for a specific tenant (by tenant id from immy_list_tenants), formatted for the DevExtreme data grid.
immy_replace_tenant_smtp_configProDestructiveReplace the SMTP configuration for a specific tenant (by tenant id from immy_list_tenants).
immy_smtp_configs_send_test_emailProDestructiveSend a test email using the supplied SMTP settings to verify connectivity — settings are used for the test only.

[ImmyBot] Create the SMTP configuration for a tenant. Provide a JSON object body with the outbound mail settings (host, port, credentials, from-address, TLS, and the tenant id). Verify it first with immy_smtp_configs_send_test_email.

ParamTypeRequiredDefaultDescription
fieldsJsonstringyesJSON object body for the new SMTP configuration.

[ImmyBot] Remove the SMTP configuration for a specific tenant (by tenant id from immy_list_tenants). Destructive — after removal that tenant falls back to inherited/default mail settings until a new config is created.

ParamTypeRequiredDefaultDescription
tenantIdstringyesThe tenant id whose SMTP configuration to remove (from immy_list_tenants).

[ImmyBot] Fetch the SMTP configuration for a specific tenant by tenant id (from immy_list_tenants). Returns the outbound mail settings for that tenant.

ParamTypeRequiredDefaultDescription
tenantIdstringyesThe tenant id whose SMTP configuration to fetch (from immy_list_tenants).

[ImmyBot] List all SMTP configurations visible to the caller (per-tenant outbound mail settings). Paginated via Sieve: page + pageSize (max 100), filters/sorts. Fetch one with immy_get_smtp_configs and test connectivity with immy_smtp_configs_send_test_email.

ParamTypeRequiredDefaultDescription
filtersstringnonullSieve filter expression. Omit for no filter.
pageintegernonull1-based page number (Sieve Page). Omit for the first page.
pageSizeintegernonullRecords per page (Sieve pageSize). Max 100; omit for the server default.
sortsstringnonullSieve sort expression. Omit for the default order.

[ImmyBot] List SMTP delivery logs for a specific tenant (by tenant id from immy_list_tenants), formatted for the DevExtreme data grid. Paginated via DevExtreme skip + take (take max 100); filter/sort accept DevExtreme expressions; requireTotalCount adds a total. Use to diagnose failed/queued outbound mail.

ParamTypeRequiredDefaultDescription
filterstringnonullDevExtreme filter expression (JSON array form). Omit for no filter.
requireTotalCountbooleannonullSet true to include a total record count in the response.
skipintegernonullRecords to skip (DevExtreme skip). Omit for 0.
sortstringnonullDevExtreme sort expression (JSON array form). Omit for the default order.
takeintegernonullRecords to take (DevExtreme take). Max 100; omit for the server default.
tenantIdstringyesThe tenant id whose delivery logs to list (from immy_list_tenants).

[ImmyBot] Replace the SMTP configuration for a specific tenant (by tenant id from immy_list_tenants). Provide the full JSON object body with the outbound mail settings — this replaces the tenant's existing configuration. Read the current one with immy_get_smtp_configs first.

ParamTypeRequiredDefaultDescription
fieldsJsonstringyesFull JSON object body with the SMTP settings (replaces the existing config).
tenantIdstringyesThe tenant id whose SMTP configuration to replace (from immy_list_tenants).

[ImmyBot] Send a test email using the supplied SMTP settings to verify connectivity — settings are used for the test only. Provide a JSON object body with the SMTP settings and the test recipient. To preview branding instead, use immy_brandings_send_test_email.

ParamTypeRequiredDefaultDescription
fieldsJsonstringyesJSON object body with the SMTP settings and test recipient details.

Billing

ToolPlanAccessSummary
immy_billing_billing_informationProWriteUpdate the billing contact/account information for this ImmyBot instance (billing address, contact, tax details).
immy_billing_cancel_subscriptionProDestructiveCancel this ImmyBot instance's subscription — a billing state change that can end service at the term boundary or immediately depending on the options.
immy_billing_reactivate_subscriptionProDestructiveReactivate a cancelled/paused subscription for this ImmyBot instance.
immy_billing_update_addonProDestructiveAdd, remove, or change the quantity of a subscription add-on for this ImmyBot instance.
immy_billing_update_subscriptionProDestructiveChange this ImmyBot instance's subscription (plan/term/quantities).
immy_delete_billing_payment_sourcesProDestructivePermanently remove a payment source (credit card) from this ImmyBot instance's billing account, by payment-source id (from immy_list_billing_credit_cards).
immy_list_billing_billing_platform_detailsFreeRead-onlyGet the billing-platform details for this ImmyBot instance (which billing provider/platform backs the subscription and its configuration).
immy_list_billing_credit_cardsFreeRead-onlyList the credit cards / payment sources on file for this ImmyBot instance's subscription.
immy_list_billing_download_invoiceFreeRead-onlyGet a download reference for a billing invoice.
immy_list_billing_feature_usage_countsFreeRead-onlyGet the metered feature-usage counts for this ImmyBot instance (the quantities that drive add-on / subscription billing).
immy_list_billing_informationFreeRead-onlyGet the billing contact/account information on file for this ImmyBot instance (billing address, contact, tax details).
immy_list_billing_product_catalogFreeRead-onlyGet the billing product catalog — the plans/products available for this ImmyBot instance's subscription.
immy_list_billing_product_catalog_itemsFreeRead-onlyList the individual items in the billing product catalog (the purchasable products/add-ons and their pricing).
immy_list_billing_subscription_detailsFreeRead-onlyGet the current subscription details for this ImmyBot instance (plan, status, term, add-ons, renewal).

[ImmyBot] Update the billing contact/account information for this ImmyBot instance (billing address, contact, tax details). Provide a JSON object body with the fields to set. Read the current values first with immy_list_billing_information.

ParamTypeRequiredDefaultDescription
fieldsJsonstringyesJSON object body with the billing information fields to set.

[ImmyBot] Cancel this ImmyBot instance's subscription — a billing state change that can end service at the term boundary or immediately depending on the options. The body is usually empty (); pass a JSON object only if the endpoint accepts cancellation options. Reverse with immy_billing_reactivate_subscription.

ParamTypeRequiredDefaultDescription
fieldsJsonstringno""JSON object body of cancellation options. Defaults to an empty object ().

[ImmyBot] Reactivate a cancelled/paused subscription for this ImmyBot instance. The body is usually empty (); pass a JSON object only if the endpoint accepts reactivation options. Inverse of immy_billing_cancel_subscription.

ParamTypeRequiredDefaultDescription
fieldsJsonstringno""JSON object body of reactivation options. Defaults to an empty object ().

[ImmyBot] Add, remove, or change the quantity of a subscription add-on for this ImmyBot instance. Provide a JSON object body identifying the add-on and its target quantity/state. Review current usage with immy_list_billing_feature_usage_counts and the plan with immy_list_billing_subscription_details.

ParamTypeRequiredDefaultDescription
fieldsJsonstringyesJSON object body describing the add-on change (add-on id and target quantity/state).

[ImmyBot] Change this ImmyBot instance's subscription (plan/term/quantities). Provide a JSON object body describing the target subscription. Read the current state with immy_list_billing_subscription_details first; to remove the subscription entirely use immy_billing_cancel_subscription.

ParamTypeRequiredDefaultDescription
fieldsJsonstringyesJSON object body describing the target subscription (plan/term/quantities).

[ImmyBot] Permanently remove a payment source (credit card) from this ImmyBot instance's billing account, by payment-source id (from immy_list_billing_credit_cards). Irreversible — removing the only active payment source may interrupt renewal.

ParamTypeRequiredDefaultDescription
paymentSourceIdstringyesThe id of the payment source to delete (from immy_list_billing_credit_cards).

[ImmyBot] Get the billing-platform details for this ImmyBot instance (which billing provider/platform backs the subscription and its configuration). Read-only. See also immy_list_billing_information and immy_list_billing_subscription_details.

[ImmyBot] List the credit cards / payment sources on file for this ImmyBot instance's subscription. Paginated via Sieve: page (1-based) + pageSize (max 100), plus optional filters/sorts. Remove a payment source with immy_delete_billing_payment_sources.

ParamTypeRequiredDefaultDescription
filtersstringnonullSieve filter expression. Omit for no filter.
pageintegernonull1-based page number (Sieve Page). Omit for the first page.
pageSizeintegernonullRecords per page (Sieve pageSize). Max 100; omit for the server default.
sortsstringnonullSieve sort expression. Omit for the default order.

[ImmyBot] Get a download reference for a billing invoice. Optionally pass invoiceId to target a specific invoice; omit it for the default/latest. Returns a JSON payload (e.g. a download URL / invoice metadata) — this is a normal JSON read, not a binary stream.

ParamTypeRequiredDefaultDescription
invoiceIdstringnonullThe id of the invoice to download (from the billing/subscription reads). Omit for the default/latest invoice.

[ImmyBot] Get the metered feature-usage counts for this ImmyBot instance (the quantities that drive add-on / subscription billing). Read-only. Adjust add-ons with immy_billing_update_addon.

[ImmyBot] Get the billing contact/account information on file for this ImmyBot instance (billing address, contact, tax details). Read-only. Update it with immy_billing_billing_information.

[ImmyBot] Get the billing product catalog — the plans/products available for this ImmyBot instance's subscription. Read-only. For the individual line items use immy_list_billing_product_catalog_items.

[ImmyBot] List the individual items in the billing product catalog (the purchasable products/add-ons and their pricing). Paginated via Sieve: page + pageSize (max 100), plus optional filters/sorts. For the catalog summary use immy_list_billing_product_catalog.

ParamTypeRequiredDefaultDescription
filtersstringnonullSieve filter expression. Omit for no filter.
pageintegernonull1-based page number (Sieve Page). Omit for the first page.
pageSizeintegernonullRecords per page (Sieve pageSize). Max 100; omit for the server default.
sortsstringnonullSieve sort expression. Omit for the default order.

[ImmyBot] Get the current subscription details for this ImmyBot instance (plan, status, term, add-ons, renewal). Read-only. Change it with immy_billing_update_subscription / immy_billing_update_addon, or cancel with immy_billing_cancel_subscription.

System

ToolPlanAccessSummary
immy_change_requests_approveProWriteApprove a deployment change-request by id (from immy_list_change_requests_dx), applying the proposed target-assignment edit.
immy_change_requests_commentProWriteAdd a comment to a deployment change-request by id (from immy_list_change_requests_dx) without changing its approval state.
immy_change_requests_denyProWriteDeny (reject) a deployment change-request by id (from immy_list_change_requests_dx), declining to apply the proposed edit.
immy_change_requests_require_changesProWriteSend a deployment change-request back for revision by id (from immy_list_change_requests_dx) — neither approving nor denying, but requesting changes from the submitter.
immy_delete_change_requestsProDestructivePermanently delete a deployment change-request by id (from immy_list_change_requests_dx), discarding the proposed change without applying it.
immy_get_ephemeral_sessionFreeRead-onlyGet the state of a specific ephemeral-agent session, keyed by ephemeral-session id, agent-instance id, and provider-agent id (all from the ephemeral-agent launch flow — see immy_launch_ephemeral_agent…
immy_get_webhooksFreeRead-onlyGet a webhook configuration by id.
immy_list_change_requests_dxFreeRead-onlyList deployment change-requests (proposed edits to target-assignments awaiting approval) as a DevExtreme grid feed.
immy_list_change_requests_open_countFreeRead-onlyGet the count of open (pending) deployment change-requests.
immy_list_ephemeral_session_development_latest_ephemeral_binaryFreeRead-onlyGet metadata for the latest development ephemeral-agent binary (version/hash/reference used to launch ephemeral agents).
immy_list_immy_agent_metadata_agent_hashFreeRead-onlyGet the current Immy-agent binary hash/metadata (the version fingerprint managed endpoints are expected to run).
immy_list_system_immy_support_access_grant_detailsFreeRead-onlyGet the details of any current Immy (vendor) support-access grant on this instance — who was granted access and until when.
immy_list_system_releasesFreeRead-onlyList the available ImmyBot platform releases (versions on the update channels).
immy_list_system_timezonesFreeRead-onlyList the timezones known to this ImmyBot instance (the valid identifiers used by schedules and maintenance windows).
immy_system_disable_immy_support_accessProWriteRevoke Immy (vendor) support access to this instance.
immy_system_enable_immy_support_accessProWriteGrant Immy (vendor) support access to this instance, letting ImmyBot support staff assist.
immy_system_is_immy_support_access_grantedFreeRead-onlyCheck whether Immy (vendor) support access is currently granted on this instance (a read-only status check, sent as an HTTP POST — it makes no changes).
immy_system_pull_updateProDestructiveTrigger this ImmyBot instance to pull and apply a platform update — a disruptive maintenance action that can restart backend services and briefly interrupt the instance.
immy_system_request_form_supportProDestructiveSubmit a support request via the in-product support form.
immy_system_request_session_supportProDestructiveRequest a live support session (interactive assistance) from ImmyBot support.
immy_system_restart_backendProDestructiveRestart this ImmyBot instance's backend services — disruptive: in-flight maintenance sessions and API calls can be interrupted while services cycle.
immy_system_update_release_channelProWriteChange which release channel this ImmyBot instance follows (e.g. stable vs preview).
immy_webhooksProWriteUpdate a webhook configuration by id (sent as an HTTP POST to /webhooks/).

[ImmyBot] Approve a deployment change-request by id (from immy_list_change_requests_dx), applying the proposed target-assignment edit. The body is usually empty (); pass a JSON object only if the endpoint accepts approval options.

ParamTypeRequiredDefaultDescription
fieldsJsonstringno""JSON object body of approval options. Defaults to an empty object ().
idstringyesThe id of the change-request to approve (from immy_list_change_requests_dx).

[ImmyBot] Add a comment to a deployment change-request by id (from immy_list_change_requests_dx) without changing its approval state. Provide a JSON object body with the comment text.

ParamTypeRequiredDefaultDescription
fieldsJsonstringyesJSON object body with the comment (e.g. { "comment": "..." }).
idstringyesThe id of the change-request to comment on (from immy_list_change_requests_dx).

[ImmyBot] Deny (reject) a deployment change-request by id (from immy_list_change_requests_dx), declining to apply the proposed edit. The body is usually empty (); pass a JSON object only if the endpoint accepts a denial reason. To request revisions instead use immy_change_requests_require_changes.

ParamTypeRequiredDefaultDescription
fieldsJsonstringno""JSON object body of denial options (e.g. a reason). Defaults to an empty object ().
idstringyesThe id of the change-request to deny (from immy_list_change_requests_dx).

[ImmyBot] Send a deployment change-request back for revision by id (from immy_list_change_requests_dx) — neither approving nor denying, but requesting changes from the submitter. The body is usually empty (); pass a JSON object only if the endpoint accepts requested-change details.

ParamTypeRequiredDefaultDescription
fieldsJsonstringno""JSON object body describing the requested changes. Defaults to an empty object ().
idstringyesThe id of the change-request to send back for changes (from immy_list_change_requests_dx).

[ImmyBot] Permanently delete a deployment change-request by id (from immy_list_change_requests_dx), discarding the proposed change without applying it. Irreversible. To reject-but-keep for revision use immy_change_requests_deny or immy_change_requests_require_changes.

ParamTypeRequiredDefaultDescription
idstringyesThe id of the change-request to delete (from immy_list_change_requests_dx).

[ImmyBot] Get the state of a specific ephemeral-agent session, keyed by ephemeral-session id, agent-instance id, and provider-agent id (all from the ephemeral-agent launch flow — see immy_launch_ephemeral_agent / immy_list_computers_ephemeral_agent). Read-only.

ParamTypeRequiredDefaultDescription
agentInstanceIdstringyesThe agent-instance id for this ephemeral session.
ephemeralSessionIdstringyesThe ephemeral-session id.
providerAgentIdstringyesThe provider-agent id for this ephemeral session.

[ImmyBot] Get a webhook configuration by id. Returns the webhook's target URL, events, and settings. Update it with immy_webhooks.

ParamTypeRequiredDefaultDescription
idstringyesThe id of the webhook.

[ImmyBot] List deployment change-requests (proposed edits to target-assignments awaiting approval) as a DevExtreme grid feed. Uses DevExtreme paging: skip + take (take max 100), with optional filter/sort (DevExtreme JSON expressions) and requireTotalCount. Act on a change-request with immy_change_requests_approve / immy_change_requests_deny / immy_change_requests_require_changes / immy_change_requests_comment.

ParamTypeRequiredDefaultDescription
filterstringnonullDevExtreme filter expression (JSON). Omit for no filter.
requireTotalCountbooleannonullSet true to include a total record count in the response. Omit to skip counting.
skipintegernonullNumber of records to skip (DevExtreme skip). Omit to start at 0.
sortstringnonullDevExtreme sort expression (JSON). Omit for the default order.
takeintegernonullNumber of records to take (DevExtreme take). Max 100; omit for the server default.

[ImmyBot] Get the count of open (pending) deployment change-requests. Read-only — a quick badge/summary value. List the requests themselves with immy_list_change_requests_dx.

[ImmyBot] Get metadata for the latest development ephemeral-agent binary (version/hash/reference used to launch ephemeral agents). Read-only JSON — not a binary stream. Related: immy_launch_ephemeral_agent, immy_get_ephemeral_session.

[ImmyBot] Get the current Immy-agent binary hash/metadata (the version fingerprint managed endpoints are expected to run). Read-only — useful for verifying agent currency across the fleet.

[ImmyBot] Get the details of any current Immy (vendor) support-access grant on this instance — who was granted access and until when. Read-only. Toggle access with immy_system_enable_immy_support_access / immy_system_disable_immy_support_access.

[ImmyBot] List the available ImmyBot platform releases (versions on the update channels). Paginated via Sieve: page + pageSize (max 100), plus optional filters/sorts. Change which channel this instance follows with immy_system_update_release_channel; apply an update with immy_system_pull_update.

ParamTypeRequiredDefaultDescription
filtersstringnonullSieve filter expression. Omit for no filter.
pageintegernonull1-based page number (Sieve Page). Omit for the first page.
pageSizeintegernonullRecords per page (Sieve pageSize). Max 100; omit for the server default.
sortsstringnonullSieve sort expression. Omit for the default order.

[ImmyBot] List the timezones known to this ImmyBot instance (the valid identifiers used by schedules and maintenance windows). Read-only reference lookup.

[ImmyBot] Revoke Immy (vendor) support access to this instance. The body is usually empty (); pass a JSON object only if the endpoint accepts options. Re-grant with immy_system_enable_immy_support_access; inspect current state with immy_list_system_immy_support_access_grant_details.

ParamTypeRequiredDefaultDescription
fieldsJsonstringno""JSON object body of options. Defaults to an empty object ().

[ImmyBot] Grant Immy (vendor) support access to this instance, letting ImmyBot support staff assist. Provide a JSON object body if the endpoint accepts grant options (e.g. a duration); otherwise send an empty object (). Revoke with immy_system_disable_immy_support_access.

ParamTypeRequiredDefaultDescription
fieldsJsonstringno""JSON object body of grant options (e.g. duration). Defaults to an empty object ().

[ImmyBot] Check whether Immy (vendor) support access is currently granted on this instance (a read-only status check, sent as an HTTP POST — it makes no changes). The body is usually empty (); pass a JSON object only if the endpoint accepts query options. For the full grant record use immy_list_system_immy_support_access_grant_details.

ParamTypeRequiredDefaultDescription
fieldsJsonstringno""JSON object body of query options. Defaults to an empty object ().

[ImmyBot] Trigger this ImmyBot instance to pull and apply a platform update — a disruptive maintenance action that can restart backend services and briefly interrupt the instance. The body is usually empty (); pass a JSON object only to target a specific release. Review available releases with immy_list_system_releases first.

ParamTypeRequiredDefaultDescription
fieldsJsonstringno""JSON object body (e.g. a target release). Defaults to an empty object ().

[ImmyBot] Submit a support request via the in-product support form. Provide a JSON object body with the request details (subject/description/contact). Sends the request to ImmyBot support.

ParamTypeRequiredDefaultDescription
fieldsJsonstringyesJSON object body with the support-request details (subject, description, contact).

[ImmyBot] Request a live support session (interactive assistance) from ImmyBot support. Provide a JSON object body with the session-request details. Often paired with immy_system_enable_immy_support_access so support staff can connect.

ParamTypeRequiredDefaultDescription
fieldsJsonstringyesJSON object body with the session-support request details.

[ImmyBot] Restart this ImmyBot instance's backend services — disruptive: in-flight maintenance sessions and API calls can be interrupted while services cycle. The body is usually empty (); pass a JSON object only if the endpoint accepts restart options. Use with care.

ParamTypeRequiredDefaultDescription
fieldsJsonstringno""JSON object body of restart options. Defaults to an empty object ().

[ImmyBot] Change which release channel this ImmyBot instance follows (e.g. stable vs preview). Provide a JSON object body naming the target channel. This governs which releases immy_system_pull_update will offer; list releases with immy_list_system_releases.

ParamTypeRequiredDefaultDescription
fieldsJsonstringyesJSON object body naming the target release channel (e.g. { "channel": "stable" }).

[ImmyBot] Update a webhook configuration by id (sent as an HTTP POST to /webhooks/). Provide a JSON object body with the webhook fields to set (target URL, subscribed events, settings). Read the current state first with immy_get_webhooks.

ParamTypeRequiredDefaultDescription
fieldsJsonstringyesJSON object body with the webhook fields to set.
idstringyesThe id of the webhook to update.