Skip to main content
Tools Reference

ConnectWise Platform (Asio) Tools

Written By Christopher Scaminaci

Last updated 7 days ago

ConnectWise Platform (Asio) Tools

cwp_ · 144 tools · Free 105 · Pro 39 ConnectWise Platform, formerly Asio: endpoint search and inventory, performance and remote sessions; OS and third-party patching; policies and device groups; automation; companies, sites and custom fields; NOC tickets; Security Dashboard cases; Cloud Backup and the Backup Dashboard. Auth is a Client ID and Client Secret from Integrations > API Access plus the account's region (North America, Europe or Australia); the key's ticked scopes decide what it can do, and each tool names its scope. ConnectWise issues one token per key and refuses a new one until it expires, so give StackJack a key no other integration uses. Endpoint, company, patching and backup lists page by a cursor ConnectWise puts in a response header, which an optional switch hands back beside the unchanged body; security lists page by a cursor in the body and tickets by page number. Responses are JSON passed through unchanged.

All connector tools · ConnectWise Platform (Asio) setup guide

ConnectWise Platform (Asio) tool groups

Companies & Sites

ToolPlanAccessSummary
cwp_create_companyProWriteCreate a company.
cwp_create_company_siteProWriteCreate a site under a company.
cwp_get_companyFreeRead-onlyGet one company.
cwp_get_company_siteFreeRead-onlyGet one site of a company.
cwp_get_siteFreeRead-onlyGet one site by ID.
cwp_list_companiesFreeRead-onlyList the partner's companies.
cwp_list_company_sitesFreeRead-onlyList one company's sites.
cwp_list_sitesFreeRead-onlyList every site across all companies.
cwp_replace_companyProDestructiveReplace a company wholesale.
cwp_replace_company_siteProDestructiveReplace a site wholesale.
cwp_update_companyProDestructiveChange a company with a JSON Patch.
cwp_update_company_siteProDestructiveChange a site with a JSON Patch.

[ConnectWise Platform (Asio)] Create a company. POST /api/platform/v1/company/companies. name is required. Send the request body as a JSON object; documented fields: account, acquiredDate, activityStatus, corpContainer, description, externalIds, friendlyName, industryCode, name, ownershipType, primarySite (required: name). ConnectWise publishes no scope for this operation. Returns raw ConnectWise Platform JSON.

ParamTypeRequiredDefaultDescription
bodyJsonstringyesRequired. The request body as a JSON object. Fields: account, acquiredDate, activityStatus, corpContainer, description, externalIds, friendlyName, industryCode, name, ownershipType, primarySite.

[ConnectWise Platform (Asio)] Create a site under a company. POST /api/platform/v1/company/companies//sites. name and timeZone are required. Send the request body as a JSON object; documented fields: activeFlag, description, externalIds, friendlyName, industryCode, name, physicalAddressFlag, primaryAddress, primaryEmail, primaryFlag, primaryPhoneNumber, primarySocialMedia, timeZone, type (required: name, timeZone). Needs the platform.sites.write scope on the API key (from ConnectWise's scope table). Returns raw ConnectWise Platform JSON.

ParamTypeRequiredDefaultDescription
bodyJsonstringnonullOptional. The request body as a JSON object. Fields: activeFlag, description, externalIds, friendlyName, industryCode, name, physicalAddressFlag, primaryAddress, primaryEmail, primaryFlag, primaryPhoneNumber, primarySocialMedia, timeZone, type.
companyIdstringyesRequired. Company id.

[ConnectWise Platform (Asio)] Get one company. GET /api/platform/v1/company/companies/. Needs the platform.companies.read scope on the API key (from ConnectWise's scope table). Returns raw ConnectWise Platform JSON.

ParamTypeRequiredDefaultDescription
companyIdstringyesRequired. Company id.

[ConnectWise Platform (Asio)] Get one site of a company. GET /api/platform/v1/company/companies//sites/. Needs the platform.sites.read scope on the API key (from ConnectWise's scope table). Returns raw ConnectWise Platform JSON.

ParamTypeRequiredDefaultDescription
companyIdstringyesRequired. Company id.
siteIdstringyesRequired. Site id.

[ConnectWise Platform (Asio)] Get one site by ID. GET /api/platform/v1/company/sites/. Needs the platform.sites.read scope on the API key (from ConnectWise's scope table). Returns raw ConnectWise Platform JSON.

ParamTypeRequiredDefaultDescription
siteIdstringyesRequired. Site id.

[ConnectWise Platform (Asio)] List the partner's companies. GET /api/platform/v1/company/companies. The spec declares no parameters here, but the vendor's pagination guide pages this exact route with limit and cursor, and the cursor is opaque - pass back only what nextCursor returned. Paging: limit is 1-500. ConnectWise returns the next page's cursor only in a response header, so set includePaging to true to get {items, nextCursor} and pass nextCursor back as cursor until it is null; left false, the answer is exactly ConnectWise's body. Needs the platform.companies.read scope on the API key (from ConnectWise's scope table). Returns raw ConnectWise Platform JSON.

ParamTypeRequiredDefaultDescription
cursorstringnonullOptional. The nextCursor value from a previous call made with includePaging true. Opaque: pass it back unchanged.
includePagingbooleannofalseOptional. true returns {items, nextCursor}: ConnectWise's body verbatim plus the next page's cursor from its Link header (null on the last page). false (the default) returns ConnectWise's body exactly.
limitintegernonullOptional. Page size, 1-500. Maximum number of companies to return (1-500).

[ConnectWise Platform (Asio)] List one company's sites. GET /api/platform/v1/company/companies//sites. Needs the platform.sites.read scope on the API key (from ConnectWise's scope table). Returns raw ConnectWise Platform JSON.

ParamTypeRequiredDefaultDescription
companyIdstringyesRequired. Company id.

[ConnectWise Platform (Asio)] List every site across all companies. GET /api/platform/v1/company/sites. Needs the platform.sites.read scope on the API key (from ConnectWise's scope table). Returns raw ConnectWise Platform JSON.

[ConnectWise Platform (Asio)] Replace a company wholesale. PUT /api/platform/v1/company/companies/. DESTRUCTIVE: a PUT replaces the whole record - a field you leave out is reset. Prefer cwp_update_company for a partial change. Send the request body as a JSON object; documented fields: account, acquiredDate, activityStatus, corpContainer, description, friendlyName, industryCode, name, ownershipType, parentCompanyId (required: name). ConnectWise publishes no scope for this operation. Returns raw ConnectWise Platform JSON.

ParamTypeRequiredDefaultDescription
bodyJsonstringnonullOptional. The request body as a JSON object. Fields: account, acquiredDate, activityStatus, corpContainer, description, friendlyName, industryCode, name, ownershipType, parentCompanyId.
companyIdstringyesRequired. The companyId value.

[ConnectWise Platform (Asio)] Replace a site wholesale. PUT /api/platform/v1/company/companies//sites/. DESTRUCTIVE: a PUT replaces the whole record - a field you leave out is reset. Prefer cwp_update_company_site for a partial change. Send the request body as a JSON object; documented fields: activeFlag, company, createdBy, createdDate, deleteTxnId, deletedBy, deletedDate, description, externalIds, friendlyName, id, inactiveDate, industryCode, lastLockCreationDate, name, partnerId, physicalAddressFlag, primaryAddress, primaryContact, primaryEmail, primaryFlag, primaryPhoneNumber, primarySocialMedia, subEntityUpdatedBy, subEntityUpdatedDate, timeZone, type, updatedBy, updatedDate. Needs the platform.sites.write scope on the API key (from ConnectWise's scope table). Returns raw ConnectWise Platform JSON.

ParamTypeRequiredDefaultDescription
bodyJsonstringnonullOptional. The request body as a JSON object. Fields: activeFlag, company, createdBy, createdDate, deleteTxnId, deletedBy, deletedDate, description, externalIds, friendlyName, id, inactiveDate, industryCode, lastLockCreationDate, name, partnerId, physicalAddressFlag, primaryAddress, primaryContact, primaryEmail, primaryFlag, primaryPhoneNumber, primarySocialMedia, subEntityUpdatedBy, subEntityUpdatedDate, timeZone, type, updatedBy, updatedDate.
companyIdstringyesRequired. Company id.
siteIdstringyesRequired. Site id.

[ConnectWise Platform (Asio)] Change a company with a JSON Patch. PATCH /api/platform/v1/company/companies/. DESTRUCTIVE: the body is a JSON Patch array and ConnectWise allows remove as well as replace, so an operation can delete a field outright. Send the request body as a JSON array of objects; documented fields: from, op, path, value (required: op, path). ConnectWise publishes no scope for this operation. Returns raw ConnectWise Platform JSON.

ParamTypeRequiredDefaultDescription
bodyJsonstringnonullOptional. The request body as a JSON array. Fields: from, op, path, value.
companyIdstringyesRequired. Company id.

[ConnectWise Platform (Asio)] Change a site with a JSON Patch. PATCH /api/platform/v1/company/companies//sites/. DESTRUCTIVE: the body is a JSON Patch array and ConnectWise allows remove as well as replace, so an operation can delete a field outright. Send the request body as a JSON array of objects; documented fields: from, op, path, value (required: op, path). Needs the platform.sites.write scope on the API key (from ConnectWise's scope table). Returns raw ConnectWise Platform JSON.

ParamTypeRequiredDefaultDescription
bodyJsonstringnonullOptional. The request body as a JSON array. Fields: from, op, path, value.
companyIdstringyesRequired. Company id.
siteIdstringyesRequired. Site id.

Contacts

ToolPlanAccessSummary
cwp_create_contactProWriteCreate a contact.

[ConnectWise Platform (Asio)] Create a contact. POST /api/platform/v1/contact/contacts. firstName and lastName are required. Send the request body as a JSON object; documented fields: activeFlag, addresses, company, description, emails, externalIds, faxNumbers, firstName, lastName, phoneNumbers, salutation, socialMedias, title, type (required: firstName, lastName). ConnectWise publishes no scope for this operation. Returns raw ConnectWise Platform JSON.

ParamTypeRequiredDefaultDescription
bodyJsonstringyesRequired. The request body as a JSON object. Fields: activeFlag, addresses, company, description, emails, externalIds, faxNumbers, firstName, lastName, phoneNumbers, salutation, socialMedias, title, type.

Custom Field Values

ToolPlanAccessSummary
cwp_get_company_custom_fieldsFreeRead-onlyGet the custom field values on one company.
cwp_get_endpoint_custom_fieldsFreeRead-onlyGet the custom field values on one endpoint.
cwp_get_site_custom_fieldsFreeRead-onlyGet the custom field values on one site.
cwp_set_company_custom_fieldsProWriteSet custom field values on one company.
cwp_set_endpoint_custom_fieldsProWriteSet custom field values on one endpoint.
cwp_set_site_custom_fieldsProWriteSet custom field values on one site.

[ConnectWise Platform (Asio)] Get the custom field values on one company. GET /api/platform/v1/company/companies//custom-fields. Needs the platform.custom_fields_values.read scope on the API key (from ConnectWise's scope table). Returns raw ConnectWise Platform JSON.

ParamTypeRequiredDefaultDescription
attributeIdsstringnonullOptional. Comma-separated list of attribute IDs.
companyIdstringyesRequired. Unique identifier for the company.
originTypestringnonullOptional. Origin type for the attribute definitions. Possible values: "partner", "vendor".
ownerIdstringnonullOptional. Unique identifier for the owner.
withDefaultsbooleannonullOptional. Include default values if true.

[ConnectWise Platform (Asio)] Get the custom field values on one endpoint. GET /api/platform/v2/device/endpoints//custom-fields. product is sent as the optional Product header. Needs the platform.custom_fields_values.read scope on the API key (from ConnectWise's scope table). Returns raw ConnectWise Platform JSON.

ParamTypeRequiredDefaultDescription
attributeIdsstringnonullOptional. Comma-separated list of attribute IDs.
endpointIdstringyesRequired. Unique identifier for the endpoint.
originTypestringnonullOptional. Origin type for the attribute definitions. Possible values: "partner", "vendor".
ownerIdstringnonullOptional. Unique identifier for the owner.
productstringnonullOptional. Sent as the Product request header. Product context (command, platform, etc).
withDefaultsbooleannonullOptional. Include default values if true.

[ConnectWise Platform (Asio)] Get the custom field values on one site. GET /api/platform/v1/company/sites//custom-fields. Needs the platform.custom_fields_values.read scope on the API key (from ConnectWise's scope table). Returns raw ConnectWise Platform JSON.

ParamTypeRequiredDefaultDescription
attributeIdsstringnonullOptional. Comma-separated list of attribute IDs.
originTypestringnonullOptional. Origin type for the attribute definitions. Possible values: "partner", "vendor".
ownerIdstringnonullOptional. Unique identifier for the owner.
siteIdstringyesRequired. Unique identifier for the site.
withDefaultsbooleannonullOptional. Include default values if true.

[ConnectWise Platform (Asio)] Set custom field values on one company. PUT /api/platform/v1/company/companies//custom-fields. The body is an array of {entityId, attributeId, value}; ConnectWise documents it as updating the values you list. Send the request body as a JSON array of objects; documented fields: entityId, attributeId, value. Needs the platform.custom_fields_values.write scope on the API key (from ConnectWise's scope table). Returns raw ConnectWise Platform JSON.

ParamTypeRequiredDefaultDescription
bodyJsonstringyesRequired. The request body as a JSON array. Fields: entityId, attributeId, value.
companyIdstringyesRequired. Unique identifier for the company.

[ConnectWise Platform (Asio)] Set custom field values on one endpoint. PUT /api/platform/v2/device/endpoints//custom-fields. The body is an array of {entityId, attributeId, value}; ConnectWise documents it as updating the values you list. Send the request body as a JSON array of objects; documented fields: entityId, attributeId, value. Needs the platform.custom_fields_values.write scope on the API key (from ConnectWise's scope table). Returns raw ConnectWise Platform JSON.

ParamTypeRequiredDefaultDescription
bodyJsonstringyesRequired. The request body as a JSON array. Fields: entityId, attributeId, value.
endpointIdstringyesRequired. Unique identifier for the endpoint.

[ConnectWise Platform (Asio)] Set custom field values on one site. PUT /api/platform/v1/company/sites//custom-fields. The body is an array of {entityId, attributeId, value}; ConnectWise documents it as updating the values you list. Send the request body as a JSON array of objects; documented fields: entityId, attributeId, value. Needs the platform.custom_fields_values.write scope on the API key (from ConnectWise's scope table). Returns raw ConnectWise Platform JSON.

ParamTypeRequiredDefaultDescription
bodyJsonstringyesRequired. The request body as a JSON array. Fields: entityId, attributeId, value.
siteIdstringyesRequired. Unique identifier for the site.

Custom Field Definitions

ToolPlanAccessSummary
cwp_create_custom_field_definitionProWriteCreate a custom field definition.
cwp_delete_custom_field_definitionProDestructiveDelete a custom field definition and every value stored against it.
cwp_get_custom_field_definitionFreeRead-onlyGet one custom field definition.
cwp_list_custom_field_definitionsFreeRead-onlyList the custom field definitions.
cwp_replace_custom_field_definitionProDestructiveReplace a custom field definition wholesale.

[ConnectWise Platform (Asio)] Create a custom field definition. POST /api/platform/v1/custom-field/definitions. entityType is client, site, endpoint, contact, ticket or ticketnote; attributeType is boolean, string, enum, datetime or integer. Send the request body as a JSON object; documented fields: entityType, name, description, attributeType, validationOptions, defaultValue, isEditable, helpText, localizedHelpText, defaultPodMetadata, isHidden, isRequired (required: entityType, name, attributeType). Needs the platform.custom_fields_definitions.write scope on the API key (from ConnectWise's scope table). Returns raw ConnectWise Platform JSON.

ParamTypeRequiredDefaultDescription
bodyJsonstringyesRequired. The request body as a JSON object. Fields: entityType, name, description, attributeType, validationOptions, defaultValue, isEditable, helpText, localizedHelpText, defaultPodMetadata, isHidden, isRequired.

[ConnectWise Platform (Asio)] Delete a custom field definition and every value stored against it. DELETE /api/platform/v1/custom-field/definitions/. DESTRUCTIVE: removes the definition AND all its values on every company, site and endpoint. Nothing in ConnectWise undoes it. Needs the platform.custom_fields_definitions.write scope on the API key (from ConnectWise's scope table). Returns raw ConnectWise Platform JSON.

ParamTypeRequiredDefaultDescription
definitionIdstringyesRequired. Unique identifier for the definition.

[ConnectWise Platform (Asio)] Get one custom field definition. GET /api/platform/v1/custom-field/definitions/. Needs the platform.custom_fields_definitions.read scope on the API key (from ConnectWise's scope table). Returns raw ConnectWise Platform JSON.

ParamTypeRequiredDefaultDescription
definitionIdstringyesRequired. Unique identifier for the definition.

[ConnectWise Platform (Asio)] List the custom field definitions. GET /api/platform/v1/custom-field/definitions. entityType is device, company or site; originType is partner or vendor. Needs the platform.custom_fields_definitions.read scope on the API key (from ConnectWise's scope table). Returns raw ConnectWise Platform JSON.

ParamTypeRequiredDefaultDescription
entityTypestringnonullOptional. Entity type for which the attribute definitions are to be retrieved. Possible values: "device", "company", "site".
originTypestringnonullOptional. Origin type for the attribute definitions. Possible values: "partner", "vendor".

[ConnectWise Platform (Asio)] Replace a custom field definition wholesale. PUT /api/platform/v1/custom-field/definitions/. DESTRUCTIVE: a PUT replaces the whole definition, and changing a field's type or options can orphan the values already stored against it. Send the request body as a JSON object; documented fields: entityType, name, description, attributeType, validationOptions, defaultValue, isEditable, helpText, localizedHelpText, defaultPodMetadata, isHidden, isRequired (required: entityType, name, attributeType). Needs the platform.custom_fields_definitions.write scope on the API key (from ConnectWise's scope table). Returns raw ConnectWise Platform JSON.

ParamTypeRequiredDefaultDescription
bodyJsonstringyesRequired. The request body as a JSON object. Fields: entityType, name, description, attributeType, validationOptions, defaultValue, isEditable, helpText, localizedHelpText, defaultPodMetadata, isHidden, isRequired.
definitionIdstringyesRequired. Unique identifier for the definition.

Devices

ToolPlanAccessSummary
cwp_get_endpointFreeRead-onlyGet the full details of one endpoint.
cwp_get_endpoint_cpu_time_seriesFreeRead-onlyGet processor usage for one endpoint as a time series.
cwp_get_endpoint_cpu_usageFreeRead-onlyGet the recent CPU usage of one endpoint.
cwp_get_endpoint_disk_usageFreeRead-onlyGet the latest disk usage of one endpoint.
cwp_get_endpoint_heartbeatFreeRead-onlyGet endpoint heartbeat (online and offline) data.
cwp_get_endpoint_memory_time_seriesFreeRead-onlyGet memory usage for one endpoint as a time series.
cwp_get_endpoint_memory_usageFreeRead-onlyGet the recent memory usage of one endpoint.
cwp_get_endpoint_relationsFreeRead-onlyGet the relationships between one endpoint and other endpoints of its company and site.
cwp_get_endpoint_system_stateFreeRead-onlyGet the system state of one endpoint.
cwp_list_endpoint_applicationsFreeRead-onlyList the installed applications on endpoints in bulk.
cwp_list_endpoint_servicesFreeRead-onlyList the services on one endpoint.
cwp_list_endpoint_usersFreeRead-onlyList the user details for endpoints in bulk.
cwp_list_endpointsFreeRead-onlyList endpoints by category, with optional filter, projection and sort.
cwp_list_endpoints_system_stateFreeRead-onlyGet the system state of endpoints in bulk.
cwp_list_hypervisor_hostsFreeRead-onlyList the VMware ESXi hypervisor hosts.
cwp_list_partner_servicesFreeRead-onlyList every unique service name seen across the partner's endpoints.
cwp_map_endpoint_idsFreeRead-onlyMap endpoint IDs between their public and private forms.
cwp_move_endpointsProDestructiveMove endpoints in bulk to another company or site.
cwp_rename_endpointProWriteChange the friendly name of one endpoint.
cwp_search_endpointsFreeRead-onlySearch endpoints across every category by attribute.
cwp_uninstall_endpointsProDestructiveUninstall the ConnectWise agent from endpoints in bulk.

[ConnectWise Platform (Asio)] Get the full details of one endpoint. GET /api/platform/v2/device/companies//sites//endpoints/. field projects a comma list of fields. Needs the platform.devices.read scope on the API key. Returns raw ConnectWise Platform JSON.

ParamTypeRequiredDefaultDescription
companyIdstringyesRequired. It is the identifier for the company.
endpointIdstringyesRequired. Endpoint identifier.
fieldstringnonullOptional. Comma separated fields to be projected. For more information on the fields that can be projected please refer to the details in the documentation center.
siteIdstringyesRequired. Site identifier.

[ConnectWise Platform (Asio)] Get processor usage for one endpoint as a time series. GET /api/platform/v2/device/companies//sites//endpoints//metrics/processors/time-series. from and to are RFC 3339 and travel together; the span is at most 15 days and to cannot be in the future. bucketCount is 1-10000. Needs the platform.devices.read scope on the API key. Returns raw ConnectWise Platform JSON.

ParamTypeRequiredDefaultDescription
bucketCountintegernonullOptional. Optional. Omit to return one row per sample. From 1 to 10000, splits the range into that many equal parts and returns one averaged row per part.
companyIdstringyesRequired. Company identifier.
endpointIdstringyesRequired. Endpoint identifier.
filterstringnonullOptional. Comma-separated metric field names. Omit for all fields. Allowed values include totalProcesses, cpuUserPercent, cpuSystemPercent, cpuIdlePercent, cpuUtilizationPercent, cpuInterruptPercent, cpuIOWaitPercent.
fromstringnonullOptional. Start of the time range (RFC3339). Must be provided together with to, or both omitted. When both are omitted, defaults to one hour before the current UTC time. Must not be after to; together with to, the range must be at most 15 days.
indexintegernonullOptional. Optional CPU socket / processor index. Omit to return the combined processor metric.
siteIdstringyesRequired. Site identifier.
tostringnonullOptional. End of the time range (RFC3339). Must be provided together with from, or both omitted. When both are omitted, defaults to the current UTC time. Must not be in the future.

[ConnectWise Platform (Asio)] Get the recent CPU usage of one endpoint. GET /api/platform/v2/device/endpoints//cpu-usage. minutes sets the look-back window. Needs the platform.devices.read scope on the API key. Returns raw ConnectWise Platform JSON.

ParamTypeRequiredDefaultDescription
endpointIdstringyesRequired. Endpoint ID (UUID).
minutesintegernonullOptional. Optional look-back window in minutes. When provided, must be a positive integer.

[ConnectWise Platform (Asio)] Get the latest disk usage of one endpoint. GET /api/platform/v2/device/endpoints//disk-usage. Needs the platform.devices.read scope on the API key. Returns raw ConnectWise Platform JSON.

ParamTypeRequiredDefaultDescription
endpointIdstringyesRequired. Endpoint ID (UUID).

[ConnectWise Platform (Asio)] Get endpoint heartbeat (online and offline) data. GET /api/platform/v2/device/endpoints/heartbeat. resourceType is companies, sites or endpoints and resources a comma list (up to 4, 10 or 500). Send offlineLookback (for example 7d) OR availability, not both. Needs the platform.devices.read scope on the API key. Returns raw ConnectWise Platform JSON.

ParamTypeRequiredDefaultDescription
availabilitystringnonullOptional. Filter by availability status. true = online, false = offline. Cannot be combined with offlineLookback. One of: true, false.
offlineLookbackstringnonullOptional. Return only the endpoints offline for >= N days. Format: Nd (e.g. 7d). N must be a non-negative integer.
resourceTypestringyesRequired. Resource type to query. Supported values: companies, sites, or endpoints. One of: companies, sites, endpoints.
resourcesstringnonullOptional. Comma-separated list of resource IDs. - If resourceType is companies, maximum 4 values are allowed. - If resourceType is sites, maximum 10 values are allowed. - If resourceType is endpoints, maximum 500 values are allowed.

[ConnectWise Platform (Asio)] Get memory usage for one endpoint as a time series. GET /api/platform/v2/device/companies//sites//endpoints//metrics/memory/time-series. from and to are RFC 3339 and travel together; the span is at most 15 days and to cannot be in the future. bucketCount is 1-10000. Needs the platform.devices.read scope on the API key. Returns raw ConnectWise Platform JSON.

ParamTypeRequiredDefaultDescription
bucketCountintegernonullOptional. Optional. Omit to return one row per sample. From 1 to 10000, splits the range into that many equal parts and returns one averaged row per part.
companyIdstringyesRequired. Company identifier.
endpointIdstringyesRequired. Endpoint identifier.
filterstringnonullOptional. Comma-separated metric field names (for example totalPhysicalMemoryBytes, usedPhysicalMemoryBytes). Omit for all fields.
fromstringnonullOptional. Start of the time range (RFC3339). Must be provided together with to, or both omitted. When both are omitted, defaults to one hour before the effective to. Must not be after to; together with to, the span must be at most 15 days.
siteIdstringyesRequired. Site identifier.
tostringnonullOptional. End of the time range (RFC3339). Must be provided together with from, or both omitted. When both are omitted, defaults to the current UTC time. Must not be in the future.

[ConnectWise Platform (Asio)] Get the recent memory usage of one endpoint. GET /api/platform/v2/device/endpoints//memory-usage. minutes sets the look-back window. Needs the platform.devices.read scope on the API key. Returns raw ConnectWise Platform JSON.

ParamTypeRequiredDefaultDescription
endpointIdstringyesRequired. Endpoint ID (UUID).
minutesintegernonullOptional. Optional look-back window in minutes. When provided, must be a positive integer.

[ConnectWise Platform (Asio)] Get the relationships between one endpoint and other endpoints of its company and site. GET /api/platform/v2/device/companies//sites//endpoints//relations. Needs the platform.devices.read scope on the API key. Returns raw ConnectWise Platform JSON.

ParamTypeRequiredDefaultDescription
companyIdstringyesRequired. It is the identifier for the company.
endpointIdstringyesRequired. Endpoint identifier.
siteIdstringyesRequired. Site identifier.

[ConnectWise Platform (Asio)] Get the system state of one endpoint. GET /api/platform/v2/device/endpoints//system-state-info. Needs the platform.devices.read scope on the API key. Returns raw ConnectWise Platform JSON.

ParamTypeRequiredDefaultDescription
endpointIdstringyesRequired. EndpointID of the device for which system state is requested.

[ConnectWise Platform (Asio)] List the installed applications on endpoints in bulk. POST /api/platform/v2/device/endpoints/applications. A POST that only reads: the body is a {"resourceType","resources"} selector. Filter by application name and version. Send the request body as a JSON object; documented fields: resourceType, resources (required: resourceType, resources). Paging: limit is 1-500. ConnectWise returns the next page's cursor only in a response header, so set includePaging to true to get {items, nextCursor} and pass nextCursor back as cursor until it is null; left false, the answer is exactly ConnectWise's body. Needs the platform.devices.read scope on the API key. Returns raw ConnectWise Platform JSON.

ParamTypeRequiredDefaultDescription
bodyJsonstringyesRequired. The request body as a JSON object. Fields: resourceType, resources.
cursorstringnonullOptional. The nextCursor value from a previous call made with includePaging true. Opaque: pass it back unchanged.
fieldstringnonullOptional. Comma separated fields to be projected. For more information on the fields that can be projected please refer to the details in the documentation center.
includePagingbooleannofalseOptional. true returns {items, nextCursor}: ConnectWise's body verbatim plus the next page's cursor from its Link header (null on the last page). false (the default) returns ConnectWise's body exactly.
limitintegernonullOptional. Page size, 1-500. Max endpoints per page (default 50, max 500).
namestringnonullOptional. Filter response on the basis of application name.
versionstringnonullOptional. Filter response on the basis of application version.

[ConnectWise Platform (Asio)] List the services on one endpoint. GET /api/platform/v2/device/companies//sites//endpoints//services. serviceName narrows to one service. Needs the platform.devices.read scope on the API key. Returns raw ConnectWise Platform JSON.

ParamTypeRequiredDefaultDescription
companyIdstringyesRequired. It is the identifier for the company.
endpointIdstringyesRequired. Endpoint identifier.
fieldstringnonullOptional. Comma separated fields to be projected. For more information on the fields that can be projected please refer to the details in the documentation center.
serviceNamestringnonullOptional. Filter response on the basis of the serviceName <i>Example: AJRouter</i> <b>Note: Only single serviceName is allowed</b>.
siteIdstringyesRequired. Site identifier.

[ConnectWise Platform (Asio)] List the user details for endpoints in bulk. POST /api/platform/v2/device/endpoints/users. A POST that only reads: the body is a selector, {"resourceType":"companies|sites|endpoints","resources":[ids]}. Filter by username and project with field. Send the request body as a JSON object; documented fields: resourceType, resources (required: resourceType, resources). Paging: limit is 1-500. ConnectWise returns the next page's cursor only in a response header, so set includePaging to true to get {items, nextCursor} and pass nextCursor back as cursor until it is null; left false, the answer is exactly ConnectWise's body. Needs the platform.devices.read scope on the API key. Returns raw ConnectWise Platform JSON.

ParamTypeRequiredDefaultDescription
bodyJsonstringyesRequired. The request body as a JSON object. Fields: resourceType, resources.
cursorstringnonullOptional. The nextCursor value from a previous call made with includePaging true. Opaque: pass it back unchanged.
fieldstringnonullOptional. Comma separated fields to be projected. For more information on the fields that can be projected please refer to the details in the documentation center.
includePagingbooleannofalseOptional. true returns {items, nextCursor}: ConnectWise's body verbatim plus the next page's cursor from its Link header (null on the last page). false (the default) returns ConnectWise's body exactly.
limitintegernonullOptional. Page size, 1-500. Max endpoints per page (default 50, max 500).
usernamestringnonullOptional. Filter rows to a single endpoint user account by username.

[ConnectWise Platform (Asio)] List endpoints by category, with optional filter, projection and sort. POST /api/platform/v2/device/categories//endpoints. A POST that only reads: the body is a {"resourceType","resources"} selector. category is platform, network, cloud or all. filter is ONE expression of the form endpointType in (a,b) or endpointType not in (a,b); field projects up to 15 fields; sortBy is createdAt or friendlyName. Send the request body as a JSON object; documented fields: resourceType, resources (required: resourceType, resources). Paging: limit is 1-500. ConnectWise returns the next page's cursor only in a response header, so set includePaging to true to get {items, nextCursor} and pass nextCursor back as cursor until it is null; left false, the answer is exactly ConnectWise's body. Needs the platform.devices.read scope on the API key. Returns raw ConnectWise Platform JSON.

ParamTypeRequiredDefaultDescription
bodyJsonstringyesRequired. The request body as a JSON object. Fields: resourceType, resources.
categorystringyesRequired. Category of the endpoint. For more information on the endpoint types supported by each category please refer to the details in the documentation center. <b>Note: Only one category is supported at a time</b> One of: platform, network, cloud, all.
cursorstringnonullOptional. The nextCursor value from a previous call made with includePaging true. Opaque: pass it back unchanged.
fieldstringnonullOptional. Comma separated fields to be projected. For more information on the fields that can be projected please refer to the details in the documentation center. Note: Maximum of 15 fields are allowed.
filterstringnonullOptional. Filter response by endpoint type for the given category. syntax: endpointType + <in/ not in> + (et1,et2) <b>Note: Only one filter is allowed.</b>.
includePagingbooleannofalseOptional. true returns {items, nextCursor}: ConnectWise's body verbatim plus the next page's cursor from its Link header (null on the last page). false (the default) returns ConnectWise's body exactly.
limitintegernonullOptional. Page size, 1-500. Max endpoints per page (default 50, max 500).
sortBystringnonullOptional. Sort the response based on the field. Multiple fields can be supplied and should be comma separated. <b>Note: Currently only supports createdAt and friendlyName fields.</b>.

[ConnectWise Platform (Asio)] Get the system state of endpoints in bulk. GET /api/platform/v2/device/endpoints/systemstate. resourceType and resources are required; resources is a comma list of up to 4 companies, 10 sites or 400 endpoints. A partial_success body is passed through: read failedRecords. Needs the platform.devices.read scope on the API key. Returns raw ConnectWise Platform JSON.

ParamTypeRequiredDefaultDescription
resourceTypestringyesRequired. Resource type to query. Supported values: companies, sites, or endpoints. One of: companies, sites, endpoints.
resourcesstringyesRequired. Comma-separated list of resource IDs (UUIDs for companies, sites, and endpoints). - If resourceType is companies, maximum 4 values are allowed. - If resourceType is sites, maximum 10 values are allowed. - If resourceType is endpoints, maximum 400 values are allowed.

[ConnectWise Platform (Asio)] List the VMware ESXi hypervisor hosts. GET /api/platform/v2/device/hypervisors/hosts. Needs the platform.devices.read scope on the API key. Returns raw ConnectWise Platform JSON.

[ConnectWise Platform (Asio)] List every unique service name seen across the partner's endpoints. GET /api/platform/v2/device/services. Needs the platform.devices.read scope on the API key. Returns raw ConnectWise Platform JSON.

[ConnectWise Platform (Asio)] Map endpoint IDs between their public and private forms. GET /api/platform/v2/device/mappings/. mappingType is public or private; filter is a comma list of the IDs to map. Needs the platform.devices.read scope on the API key. Returns raw ConnectWise Platform JSON.

ParamTypeRequiredDefaultDescription
filterstringyesRequired. - If mappingType is set to private, provide the comma-separated Public IDs. - If mappingType is set to public, provide the comma-separated Private IDs.
mappingTypestringyesRequired. Specifies the direction for ID mapping based on the IDs provided in the filter field. - Set the value to private to map the Public IDs to their corresponding Private IDs. - Set the value to public to map the Private IDs to their corresponding Public IDs. One of: public, private.

[ConnectWise Platform (Asio)] Move endpoints in bulk to another company or site. POST /api/platform/v2/device/endpoints/move. DESTRUCTIVE: re-parents live endpoints, which changes the policies, automation and billing they fall under. Accepted with 202 and takes 15-30 minutes to settle. Send the request body as a JSON object; documented fields: destination, endpoints (required: endpoints, destination). Needs the platform.devices.write scope on the API key. Returns raw ConnectWise Platform JSON.

ParamTypeRequiredDefaultDescription
bodyJsonstringyesRequired. The request body as a JSON object. Fields: destination, endpoints.

[ConnectWise Platform (Asio)] Change the friendly name of one endpoint. PATCH /api/platform/v2/device/companies//sites//endpoints//friendlyName. The body is {"friendlyName":"..."}. Reversible by renaming again. Send the request body as a JSON object; documented fields: friendlyName (required: friendlyName). ConnectWise publishes no scope for this operation. Returns raw ConnectWise Platform JSON.

ParamTypeRequiredDefaultDescription
bodyJsonstringyesRequired. The request body as a JSON object. Fields: friendlyName.
companyIdstringyesRequired. It is the identifier for the company.
endpointIdstringyesRequired. Endpoint identifier.
siteIdstringyesRequired. Site identifier.

[ConnectWise Platform (Asio)] Search endpoints across every category by attribute. GET /api/platform/v2/device/endpoints/search. conditions is required: <field>="<value>" or <field> contains "<value>" (3-128 characters), one value per expression, joined with AND; fields are osType, endpointType, deviceName and friendlyName. Results are grouped by endpoint category. Paging: limit is 1-500. ConnectWise returns the next page's cursor only in a response header, so set includePaging to true to get {items, nextCursor} and pass nextCursor back as cursor until it is null; left false, the answer is exactly ConnectWise's body. Needs the platform.devices.read scope on the API key. Returns raw ConnectWise Platform JSON.

ParamTypeRequiredDefaultDescription
conditionsstringyesRequired. A structured query expression used to filter endpoints. See the endpoint description for allowed fields and operators. Syntax: - Single expression: <field>="<value>" or <field> contains "<value>" - Multiple expressions: <expr1> AND <expr2> AND ...
cursorstringnonullOptional. The nextCursor value from a previous call made with includePaging true. Opaque: pass it back unchanged.
includePagingbooleannofalseOptional. true returns {items, nextCursor}: ConnectWise's body verbatim plus the next page's cursor from its Link header (null on the last page). false (the default) returns ConnectWise's body exactly.
limitintegernonullOptional. Page size, 1-500. Max endpoints per page (default 50, max 500).

[ConnectWise Platform (Asio)] Uninstall the ConnectWise agent from endpoints in bulk. DELETE /api/platform/v2/device/endpoints/uninstall. DESTRUCTIVE: removes the agent from live machines, which then stop reporting and must be re-enrolled by hand. The body is {"reason","feedback","endpoints":[ids]}. A partial_success body is passed through: read each endpoint's uninstallStatus. Send the request body as a JSON object; documented fields: reason, feedback, endpoints (required: reason, endpoints). Needs the platform.devices.delete scope on the API key. Returns raw ConnectWise Platform JSON.

ParamTypeRequiredDefaultDescription
bodyJsonstringyesRequired. The request body as a JSON object. Fields: reason, feedback, endpoints.

Remote Sessions

ToolPlanAccessSummary
cwp_list_endpoint_remote_sessionsFreeRead-onlyList the ScreenConnect remote-access session IDs and details for companies, sites or endpoints.

[ConnectWise Platform (Asio)] List the ScreenConnect remote-access session IDs and details for companies, sites or endpoints. GET /api/platform/v2/device/endpoints/session-details. resourceType is companies, sites or endpoints; resources is a comma list of up to 4 companies, 10 sites or 500 endpoints. A sessionID is an identifier, not a credential. A partial_success body is passed through: read failedRecords for the resources that were not returned. Needs the platform.remote.read scope on the API key. Returns raw ConnectWise Platform JSON.

ParamTypeRequiredDefaultDescription
resourceTypestringyesRequired. Resource type to query. Supported values: companies, sites, or endpoints. One of: companies, sites, endpoints.
resourcesstringnonullOptional. Comma-separated list of resource IDs. - If resourceType is companies, maximum 4 values are allowed. - If resourceType is sites, maximum 10 values are allowed. - If resourceType is endpoints, maximum 500 values are allowed.

Agent Install Tokens

ToolPlanAccessSummary
cwp_get_agent_install_tokenProDestructiveGenerate, or return the existing, agent installation token for a company and site.

[ConnectWise Platform (Asio)] Generate, or return the existing, agent installation token for a company and site. POST /api/platform/v1/device/token. The body is {"companyID","siteID"}. The response is a live credential that enrolls a machine into your ConnectWise account - treat it as a password. The spec lists platform.devices.read for this route while the scope table lists platform.agent-token.read; a key may need either. Send the request body as a JSON object; documented fields: companyID, siteID (required: companyID, siteID). Needs the platform.devices.read scope on the API key. Returns raw ConnectWise Platform JSON.

ParamTypeRequiredDefaultDescription
bodyJsonstringyesRequired. The request body as a JSON object. Fields: companyID, siteID.

Device Groups

ToolPlanAccessSummary
cwp_list_device_group_endpointsFreeRead-onlyList the endpoints in one device group.
cwp_list_device_groupsFreeRead-onlyList every device group.
cwp_list_endpoint_device_groupsFreeRead-onlyList the device groups one endpoint belongs to.

[ConnectWise Platform (Asio)] List the endpoints in one device group. GET /api/platform/v2/device-groups//endpoints. Needs the platform.deviceGroups.read scope on the API key. Returns raw ConnectWise Platform JSON.

ParamTypeRequiredDefaultDescription
deviceGroupIdstringyesRequired. Device Group ID (UUID).

[ConnectWise Platform (Asio)] List every device group. GET /api/platform/v1/device-groups. Needs the platform.deviceGroups.read scope on the API key. Returns raw ConnectWise Platform JSON.

[ConnectWise Platform (Asio)] List the device groups one endpoint belongs to. GET /api/platform/v2/managed-endpoints//device-groups. Needs the platform.deviceGroups.read scope on the API key. Returns raw ConnectWise Platform JSON.

ParamTypeRequiredDefaultDescription
endpointIdstringyesRequired. Endpoint ID (UUID).

Policies

ToolPlanAccessSummary
cwp_get_endpoint_effective_policyFreeRead-onlyGet the effective policy applied to one endpoint.
cwp_get_endpoint_effective_policy_mappingFreeRead-onlyGet which policy supplies each setting of one endpoint's effective policy.
cwp_get_endpoint_policy_overrideFreeRead-onlyGet the policy overrides applied to one endpoint.
cwp_get_policyFreeRead-onlyGet one policy's full definition.
cwp_get_policy_groupFreeRead-onlyGet one policy group.
cwp_get_policy_packageFreeRead-onlyGet one policy package.
cwp_list_policiesFreeRead-onlyList every policy available to the partner.
cwp_list_policy_assignmentsFreeRead-onlyList where one policy is assigned.
cwp_list_policy_categoriesFreeRead-onlyList the policy categories.
cwp_list_policy_groupsFreeRead-onlyList every policy group.
cwp_list_policy_package_assignmentsFreeRead-onlyList where one policy package is assigned.
cwp_list_policy_packagesFreeRead-onlyList every policy package.

[ConnectWise Platform (Asio)] Get the effective policy applied to one endpoint. GET /api/platform/v2/policy/companies//sites//endpoints//effective-policy. Needs the platform.policies.read scope on the API key. Returns raw ConnectWise Platform JSON.

ParamTypeRequiredDefaultDescription
companyIdstringyesRequired. It is the identifier for the company.
endpointIdstringyesRequired. Endpoint identifier.
siteIdstringyesRequired. Site identifier.

[ConnectWise Platform (Asio)] Get which policy supplies each setting of one endpoint's effective policy. GET /api/platform/v2/policy/companies//sites//endpoints//effective-policy/mapping. Needs the platform.policies.read scope on the API key. Returns raw ConnectWise Platform JSON.

ParamTypeRequiredDefaultDescription
companyIdstringyesRequired. It is the identifier for the company.
endpointIdstringyesRequired. Endpoint identifier.
siteIdstringyesRequired. Site identifier.

[ConnectWise Platform (Asio)] Get the policy overrides applied to one endpoint. GET /api/platform/v2/policy/companies//sites//endpoints//effective-policy/override. Needs the platform.policies.read scope on the API key. Returns raw ConnectWise Platform JSON.

ParamTypeRequiredDefaultDescription
companyIdstringyesRequired. It is the identifier for the company.
endpointIdstringyesRequired. Endpoint identifier.
siteIdstringyesRequired. Site identifier.

[ConnectWise Platform (Asio)] Get one policy's full definition. GET /api/platform/v2/policy/policies/. Needs the platform.policies.read scope on the API key. Returns raw ConnectWise Platform JSON.

ParamTypeRequiredDefaultDescription
policyIdstringyesRequired. Policy ID.

[ConnectWise Platform (Asio)] Get one policy group. GET /api/platform/v2/policy/groups/. Needs the platform.policies.read scope on the API key. Returns raw ConnectWise Platform JSON.

ParamTypeRequiredDefaultDescription
groupIdstringyesRequired. Policy Group ID.

[ConnectWise Platform (Asio)] Get one policy package. GET /api/platform/v2/policy/packages/. Needs the platform.policies.read scope on the API key. Returns raw ConnectWise Platform JSON.

ParamTypeRequiredDefaultDescription
packageIdstringyesRequired. Package ID.

[ConnectWise Platform (Asio)] List every policy available to the partner. GET /api/platform/v2/policy/policies. Needs the platform.policies.read scope on the API key. Returns raw ConnectWise Platform JSON.

[ConnectWise Platform (Asio)] List where one policy is assigned. GET /api/platform/v2/policy/policies//assignments. Needs the platform.policies.read scope on the API key. Returns raw ConnectWise Platform JSON.

ParamTypeRequiredDefaultDescription
policyIdstringyesRequired. Policy ID.

[ConnectWise Platform (Asio)] List the policy categories. GET /api/platform/v1/policy/categories. targetType is endpoint or site. Needs the platform.policies.read scope on the API key. Returns raw ConnectWise Platform JSON.

ParamTypeRequiredDefaultDescription
targetTypestringnonullOptional. Specified search type (multi-value). Possible values - endpoint, site.

[ConnectWise Platform (Asio)] List every policy group. GET /api/platform/v2/policy/groups. Needs the platform.policies.read scope on the API key. Returns raw ConnectWise Platform JSON.

[ConnectWise Platform (Asio)] List where one policy package is assigned. GET /api/platform/v2/policy/packages//assignments. Needs the platform.policies.read scope on the API key. Returns raw ConnectWise Platform JSON.

ParamTypeRequiredDefaultDescription
packageIdstringyesRequired. Package ID.

[ConnectWise Platform (Asio)] List every policy package. GET /api/platform/v2/policy/packages. Needs the platform.policies.read scope on the API key. Returns raw ConnectWise Platform JSON.

Automation

ToolPlanAccessSummary
cwp_get_endpoint_tasks_summaryFreeRead-onlyGet a summary of the automation tasks run on one endpoint.
cwp_get_task_instance_resultsFreeRead-onlyGet the execution results of one task instance.
cwp_get_task_instances_summaryFreeRead-onlyGet a summary of one task's instances over a period.
cwp_get_tasks_summaryFreeRead-onlyGet a summary of automation task runs over a period.
cwp_list_scriptsFreeRead-onlyList the automation scripts.
cwp_list_shell_scriptsFreeRead-onlyList the shell scripts.
cwp_list_tasksFreeRead-onlyList the automation tasks.
cwp_schedule_taskProDestructiveSchedule an automation task on endpoints.

[ConnectWise Platform (Asio)] Get a summary of the automation tasks run on one endpoint. GET /api/platform/v2/automation/endpoints//tasks/summary. Needs the platform.automation.read scope on the API key (from ConnectWise's scope table). Returns raw ConnectWise Platform JSON.

ParamTypeRequiredDefaultDescription
endpointIdstringyesRequired. This will contain Endpoint ID.

[ConnectWise Platform (Asio)] Get the execution results of one task instance. GET /api/platform/v2/automation/tasks//instances//results. Needs the platform.automation.read scope on the API key (from ConnectWise's scope table). Returns raw ConnectWise Platform JSON.

ParamTypeRequiredDefaultDescription
instanceIdstringyesRequired. InstanceId - Time UUID.
taskIdstringyesRequired. TaskId - Time UUID.

[ConnectWise Platform (Asio)] Get a summary of one task's instances over a period. GET /api/platform/v1/automation/tasks//instances/summary. taskId is a time-based UUID. Needs the platform.automation.read scope on the API key (from ConnectWise's scope table). Returns raw ConnectWise Platform JSON.

ParamTypeRequiredDefaultDescription
fromstringnonullOptional. The From value.
taskIdstringyesRequired. TaskId - Time UUID.
tostringnonullOptional. The To value.

[ConnectWise Platform (Asio)] Get a summary of automation task runs over a period. GET /api/platform/v1/automation/tasks/summary. Needs the platform.automation.read scope on the API key (from ConnectWise's scope table). Returns raw ConnectWise Platform JSON.

ParamTypeRequiredDefaultDescription
fromstringnonullOptional. The From value.
tostringnonullOptional. The To value.

[ConnectWise Platform (Asio)] List the automation scripts. GET /api/platform/v1/automation/scripts. Needs the platform.automation.read scope on the API key (from ConnectWise's scope table). Returns raw ConnectWise Platform JSON.

[ConnectWise Platform (Asio)] List the shell scripts. GET /api/platform/v1/automation/shellScripts. Needs the platform.automation.read scope on the API key (from ConnectWise's scope table). Returns raw ConnectWise Platform JSON.

[ConnectWise Platform (Asio)] List the automation tasks. GET /api/platform/v1/automation/tasks. Needs the platform.automation.read scope on the API key (from ConnectWise's scope table). Returns raw ConnectWise Platform JSON.

[ConnectWise Platform (Asio)] Schedule an automation task on endpoints. POST /api/platform/v2/automation/endpoints/schedule-tasks. DESTRUCTIVE: dispatches automation to live machines. Check the task and its target list first; a scheduled run executes without further approval. Send the request body as a JSON object; documented fields: templateID, templateType, name, description, resourcesType, parameters, targets, targetType, schedule. Needs the platform.automation.create scope on the API key (from ConnectWise's scope table). Returns raw ConnectWise Platform JSON.

ParamTypeRequiredDefaultDescription
bodyJsonstringnonullOptional. The request body as a JSON object. Fields: templateID, templateType, name, description, resourcesType, parameters, targets, targetType, schedule.

Patching

ToolPlanAccessSummary
cwp_get_os_patch_compliance_summaryFreeRead-onlyGet OS patch compliance summarized by company, site or endpoint.
cwp_get_os_patch_detailsFreeRead-onlyGet OS patch details for up to 25 endpoints.
cwp_get_os_patch_inventoryFreeRead-onlyGet the partner's OS patch inventory.
cwp_get_third_party_patch_complianceFreeRead-onlyGet third-party patch compliance summarized by company, site or endpoint.
cwp_get_third_party_patch_detailsFreeRead-onlyGet third-party patch details.
cwp_list_endpoint_patchesFreeRead-onlyList the OS patches for one endpoint.

[ConnectWise Platform (Asio)] Get OS patch compliance summarized by company, site or endpoint. POST /api/platform/v2/os-patching/compliance/summary. A POST that only reads: the body is a {"resourceType","resources"} selector. Send the request body as a JSON object; documented fields: resourceType, resources (required: resourceType, resources). Paging: limit is 1-500. ConnectWise returns the next page's cursor only in a response header, so set includePaging to true to get {items, nextCursor} and pass nextCursor back as cursor until it is null; left false, the answer is exactly ConnectWise's body. Needs the platform.ospatching.management.read scope on the API key. Returns raw ConnectWise Platform JSON.

ParamTypeRequiredDefaultDescription
bodyJsonstringyesRequired. The request body as a JSON object. Fields: resourceType, resources.
cursorstringnonullOptional. The nextCursor value from a previous call made with includePaging true. Opaque: pass it back unchanged.
fieldstringnonullOptional. Optional comma-separated projection tokens. Omit or leave empty to return all projectable metrics below. Any other token returns 400.
includePagingbooleannofalseOptional. true returns {items, nextCursor}: ConnectWise's body verbatim plus the next page's cursor from its Link header (null on the last page). false (the default) returns ConnectWise's body exactly.
limitintegernonullOptional. Page size, 1-500. Max endpoints per page (default 50, max 500).

[ConnectWise Platform (Asio)] Get OS patch details for up to 25 endpoints. POST /api/platform/v2/os-patching/patches/details. A POST that only reads: the body names the endpoints. It may answer 207 with per-endpoint results; failures are in the body, passed through. Send the request body as a JSON object; documented fields: resourceType, resources (required: resourceType, resources). Needs the platform.ospatching.management.read scope on the API key. Returns raw ConnectWise Platform JSON.

ParamTypeRequiredDefaultDescription
bodyJsonstringyesRequired. The request body as a JSON object. Fields: resourceType, resources.
fieldstringnonullOptional. Optional comma-separated projection tokens. Omit or leave empty to return all projectable patch fields below. Any other token returns 400.

[ConnectWise Platform (Asio)] Get the partner's OS patch inventory. GET /api/platform/v2/os-patching/patches/inventory. Needs the platform.ospatching.management.read scope on the API key. Returns raw ConnectWise Platform JSON.

ParamTypeRequiredDefaultDescription
fieldstringnonullOptional. Optional comma-separated projection tokens. Omit or leave empty to return all projectable item fields below. Any other token returns 400.

[ConnectWise Platform (Asio)] Get third-party patch compliance summarized by company, site or endpoint. POST /api/platform/v2/third-party-patching/compliance/summary. A POST that only reads: the body is a {"resourceType","resources"} selector. Send the request body as a JSON object; documented fields: resourceType, resources (required: resourceType, resources). Paging: limit is 1-500. ConnectWise returns the next page's cursor only in a response header, so set includePaging to true to get {items, nextCursor} and pass nextCursor back as cursor until it is null; left false, the answer is exactly ConnectWise's body. Needs the platform.tppatching.management.read scope on the API key. Returns raw ConnectWise Platform JSON.

ParamTypeRequiredDefaultDescription
bodyJsonstringyesRequired. The request body as a JSON object. Fields: resourceType, resources.
cursorstringnonullOptional. The nextCursor value from a previous call made with includePaging true. Opaque: pass it back unchanged.
fieldstringnonullOptional. Optional comma-separated projection tokens. Omit or leave empty to return all projectable metrics below. Any other token returns 400. Projectable (valid field tokens): assessedAt · complianceScore · updatesPending.
includePagingbooleannofalseOptional. true returns {items, nextCursor}: ConnectWise's body verbatim plus the next page's cursor from its Link header (null on the last page). false (the default) returns ConnectWise's body exactly.
limitintegernonullOptional. Page size, 1-500. Max endpoints per page (default 500, max 500).

[ConnectWise Platform (Asio)] Get third-party patch details. POST /api/platform/v2/third-party-patching/patch/details. A POST that only reads: the body is a {"resourceType","resources"} selector. Send the request body as a JSON object; documented fields: resourceType, resources (required: resourceType, resources). Paging: limit is 1-500. ConnectWise returns the next page's cursor only in a response header, so set includePaging to true to get {items, nextCursor} and pass nextCursor back as cursor until it is null; left false, the answer is exactly ConnectWise's body. Needs the platform.tppatching.management.read scope on the API key. Returns raw ConnectWise Platform JSON.

ParamTypeRequiredDefaultDescription
bodyJsonstringyesRequired. The request body as a JSON object. Fields: resourceType, resources.
cursorstringnonullOptional. The nextCursor value from a previous call made with includePaging true. Opaque: pass it back unchanged.
fieldstringnonullOptional. Optional comma-separated projection tokens. Omit or leave empty to return all projectable application fields below. Any other token returns 400.
includePagingbooleannofalseOptional. true returns {items, nextCursor}: ConnectWise's body verbatim plus the next page's cursor from its Link header (null on the last page). false (the default) returns ConnectWise's body exactly.
limitintegernonullOptional. Page size, 1-500. Max endpoints per page (default 500, max 500).

[ConnectWise Platform (Asio)] List the OS patches for one endpoint. GET /api/platform/v2/patching//patches. Needs the platform.patching.read scope on the API key (from ConnectWise's scope table). Returns raw ConnectWise Platform JSON.

ParamTypeRequiredDefaultDescription
endpointIdstringyesRequired. This will contain Endpoint ID.

Tickets

ToolPlanAccessSummary
cwp_create_ticketProDestructiveCreate a NOC ticket.
cwp_create_ticket_noteProDestructiveAdd a note to a ticket.
cwp_create_ticket_tagProWriteCreate a ticket tag.
cwp_delete_ticket_tagProDestructiveDelete a ticket tag.
cwp_get_ticketFreeRead-onlyGet one ticket.
cwp_get_ticket_countsFreeRead-onlyGet ticket counts.
cwp_get_ticket_noteFreeRead-onlyGet one note on a ticket.
cwp_get_ticket_tagFreeRead-onlyGet one ticket tag.
cwp_list_service_board_teamsFreeRead-onlyList the teams on one service board.
cwp_list_service_boardsFreeRead-onlyList the service boards.
cwp_list_ticket_categoriesFreeRead-onlyList the ticket categories.
cwp_list_ticket_notesFreeRead-onlyList the notes on one ticket.
cwp_list_ticket_prioritiesFreeRead-onlyList the ticket priorities.
cwp_list_ticket_sourcesFreeRead-onlyList the ticket sources.
cwp_list_ticket_statusesFreeRead-onlyList the ticket statuses.
cwp_list_ticket_tagsFreeRead-onlyList the ticket tags.
cwp_list_ticket_typesFreeRead-onlyList the ticket types.
cwp_list_ticketsFreeRead-onlyList NOC tickets with filters.
cwp_replace_ticketProDestructiveReplace a ticket wholesale.
cwp_replace_ticket_noteProDestructiveReplace a ticket note wholesale.
cwp_replace_ticket_tagProDestructiveReplace a ticket tag wholesale.
cwp_update_ticketProWriteChange a ticket with a JSON Patch.
cwp_update_ticket_noteProWriteChange a ticket note with a JSON Patch.
cwp_update_ticket_tagProWriteChange a ticket tag with a JSON Patch.

[ConnectWise Platform (Asio)] Create a NOC ticket. POST /api/platform/v2/service/ticketing/tickets. Marked destructive because a ticket reaches people: it is routed to ConnectWise NOC and Expert Services staff, who act on it. Send the request body as a JSON object; documented fields: assets, assignee, assigneeTeam, category, company, createdAt, createdBy, description, dueDate, extendedAttributes, id, nocTicketId, number, priority, serviceBoard, site, source, status, summary, tags, type, updatedAt, updatedBy, version (required: summary, description, serviceBoard, source). Needs the platform.tickets.create scope on the API key (from ConnectWise's scope table). Returns raw ConnectWise Platform JSON.

ParamTypeRequiredDefaultDescription
bodyJsonstringyesRequired. The request body as a JSON object. Fields: assets, assignee, assigneeTeam, category, company, createdAt, createdBy, description, dueDate, extendedAttributes, id, nocTicketId, number, priority, serviceBoard, site, source, status, summary, tags, type, updatedAt, updatedBy, version.

[ConnectWise Platform (Asio)] Add a note to a ticket. POST /api/platform/v1/service/ticketing/tickets//notes. Marked destructive because a note reaches people: depending on its visibility it is read by ConnectWise NOC and Expert Services staff working the ticket, and it cannot be recalled. Send the request body as a JSON object; documented fields: detail, extendedAttributes, visibility (required: detail, visibility). Needs the platform.tickets.create scope on the API key (from ConnectWise's scope table). Returns raw ConnectWise Platform JSON.

ParamTypeRequiredDefaultDescription
bodyJsonstringyesRequired. The request body as a JSON object. Fields: detail, extendedAttributes, visibility.
idstringyesRequired. The id of the ticket for which notes API is being called.

[ConnectWise Platform (Asio)] Create a ticket tag. POST /api/platform/v1/service/ticketing/tags. Send the request body as a JSON object; documented fields: createdAt, createdBy, id, inactiveFlag, name, updatedAt, updatedBy (required: name). Needs the platform.tickets.create scope on the API key (from ConnectWise's scope table). Returns raw ConnectWise Platform JSON.

ParamTypeRequiredDefaultDescription
bodyJsonstringyesRequired. The request body as a JSON object. Fields: createdAt, createdBy, id, inactiveFlag, name, updatedAt, updatedBy.

[ConnectWise Platform (Asio)] Delete a ticket tag. DELETE /api/platform/v1/service/ticketing/tags/. DESTRUCTIVE: removes the tag from the tag list. ConnectWise publishes no delete scope for tags. Needs the platform.tickets.update scope on the API key (ConnectWise documents none; this is the closest match). Returns raw ConnectWise Platform JSON.

ParamTypeRequiredDefaultDescription
idstringyesRequired. The id of the tag to be deleted.

[ConnectWise Platform (Asio)] Get one ticket. GET /api/platform/v2/service/ticketing/tickets/. Needs the platform.tickets.read scope on the API key (from ConnectWise's scope table). Returns raw ConnectWise Platform JSON.

ParamTypeRequiredDefaultDescription
idstringyesRequired. The id of the ticket to be fetched.

[ConnectWise Platform (Asio)] Get ticket counts. GET /api/platform/v1/service/ticketing/ticket-counts. Needs the platform.tickets.read scope on the API key (from ConnectWise's scope table). Returns raw ConnectWise Platform JSON.

[ConnectWise Platform (Asio)] Get one note on a ticket. GET /api/platform/v1/service/ticketing/tickets//notes/. Needs the platform.tickets.read scope on the API key (from ConnectWise's scope table). Returns raw ConnectWise Platform JSON.

ParamTypeRequiredDefaultDescription
idstringyesRequired. The id of the ticket for which notes API is being called.
noteIdstringyesRequired. The id of the note to be fetched.

[ConnectWise Platform (Asio)] Get one ticket tag. GET /api/platform/v1/service/ticketing/tags/. Needs the platform.tickets.read scope on the API key (from ConnectWise's scope table). Returns raw ConnectWise Platform JSON.

ParamTypeRequiredDefaultDescription
idstringyesRequired. The id of the tag to be fetched.

[ConnectWise Platform (Asio)] List the teams on one service board. GET /api/platform/v1/service/ticketing/service-boards//teams. Needs the platform.tickets.read scope on the API key (from ConnectWise's scope table). Returns raw ConnectWise Platform JSON.

ParamTypeRequiredDefaultDescription
idstringyesRequired. The id of the service-board for which the team associations API is being called.

[ConnectWise Platform (Asio)] List the service boards. GET /api/platform/v1/service/ticketing/service-boards. Filter by companyId, siteId or typeId. ConnectWise Expert Services boards serve only entitled companies and sites. Needs the platform.tickets.read scope on the API key (from ConnectWise's scope table). Returns raw ConnectWise Platform JSON.

ParamTypeRequiredDefaultDescription
companyIdstringnonullOptional. The id of the company of the ticket for which service boards are to be fetched.
siteIdstringnonullOptional. The id of the site of the ticket for which service boards are to be fetched.
typeIdstringnonullOptional. The id of the ticket type which identifies which all service boards are available for ticket of that type to be assgined. If the type is not partner Level, then company and site id should also be provided.

[ConnectWise Platform (Asio)] List the ticket categories. GET /api/platform/v1/service/ticketing/categories. Unpaginated. Needs the platform.tickets.read scope on the API key (from ConnectWise's scope table). Returns raw ConnectWise Platform JSON.

[ConnectWise Platform (Asio)] List the notes on one ticket. GET /api/platform/v1/service/ticketing/tickets//notes. Filter by detail, extendedAttributeIds, visibility (1, 2, 7 or 8), createdBy and a createdAt range. Needs the platform.tickets.read scope on the API key (from ConnectWise's scope table). Returns raw ConnectWise Platform JSON.

ParamTypeRequiredDefaultDescription
createdAtFromstringnonullOptional. Start date and time to filter by createdAt field supports 3 value formats 1. date only - '2019-01-31' 2. date and time '2019-01-31T15:01:02' 3. rfc3339 - '2019-10-12T07:20:50.52+00:00'.
createdAtTostringnonullOptional. End date and time to filter by createdAt field supports 3 value formats 1. date only - '2019-01-31' - in this case actual end date will be '2019-01-31T23:59:59' 2. date and time '2019-01-31T15:01:02' 3. rfc3339 - '2019-10-12T07:20:50.52+00:00'.
createdBystringnonullOptional. A comma separated list of user ids to filter by note createdBy field.
detailstringnonullOptional. Filter by note detail.
extendedAttributeIdsstringnonullOptional. Filter by extendedAttributeIds.
idstringyesRequired. The id of the ticket for which notes API is being called.
visibilitystringnonullOptional. A comma separated list of visibility ids to filter by note visibility field Visibility of the note: * 1 - Visible to all * 2 - Visible to a specific partner * 7 - Expert services,visible to partner and expert service users * 8 - Expert users,visible to expert users.

[ConnectWise Platform (Asio)] List the ticket priorities. GET /api/platform/v1/service/ticketing/priorities. Unpaginated. Needs the platform.tickets.read scope on the API key (from ConnectWise's scope table). Returns raw ConnectWise Platform JSON.

[ConnectWise Platform (Asio)] List the ticket sources. GET /api/platform/v1/service/ticketing/sources. Needs the platform.tickets.read scope on the API key (from ConnectWise's scope table). Returns raw ConnectWise Platform JSON.

[ConnectWise Platform (Asio)] List the ticket statuses. GET /api/platform/v1/service/ticketing/statuses. Needs the platform.tickets.read scope on the API key (from ConnectWise's scope table). Returns raw ConnectWise Platform JSON.

[ConnectWise Platform (Asio)] List the ticket tags. GET /api/platform/v1/service/ticketing/tags. Needs the platform.tickets.read scope on the API key (from ConnectWise's scope table). Returns raw ConnectWise Platform JSON.

[ConnectWise Platform (Asio)] List the ticket types. GET /api/platform/v1/service/ticketing/types. entity=assignment narrows to assignment types. Needs the platform.tickets.read scope on the API key (from ConnectWise's scope table). Returns raw ConnectWise Platform JSON.

ParamTypeRequiredDefaultDescription
entitystringnonullOptional. Fetches the type stored in the system against the provided entity, the possible values is assignment.

[ConnectWise Platform (Asio)] List NOC tickets with filters. GET /api/platform/v2/service/ticketing/tickets. Every filter is AND-ed. Dates are 2019-01-31, 2019-01-31T15:01:02 or RFC 3339; an ID list may start with [notIn] to negate it. For OR, pass orGroupsJson - each object in the array is one alternative group, sent as ConnectWise's numbered suffix filters. Paging: pageSize (at most 200) and pageNum travel together or not at all; start at pageNum 1 and use the body's totalCount for the rest. Needs the platform.tickets.read scope on the API key (from ConnectWise's scope table). Returns raw ConnectWise Platform JSON.

ParamTypeRequiredDefaultDescription
assigneeIdsstringnonullOptional. Defines search condition by list of assigee ids (comma separated). For OR filter numeric filter suffix can be added to name. See API description for filtering strategy.
assigneeTeamIdsstringnonullOptional. In/not in filter, defines search condition by list of assigneeTeam ids (comma separated). For OR filter numeric filter suffix can be added to name. See API description for filtering strategy. examples in - "id1,id2" not in - "[notIn],id1,id2".
assigneeTeamNamesstringnonullOptional. Defines search condition by list of assignee team names (comma separated). For OR filter numeric filter suffix can be added to name. See API description for filtering strategy.examples - "name1,name2", not in - "[notIn],name1,name2".
categoryIdsstringnonullOptional. In/not in filter, defines search condition by list of ticket category ids (comma separated). For OR filter numeric filter suffix can be added to name. See API description for filtering strategy. examples in - "id1,id2" not in - "[notIn],id1,id2".
categoryNamesstringnonullOptional. Defines search condition by list of category names (comma separated). For OR filter numeric filter suffix can be added to name. See API description for filtering strategy. examples - "name1,name2", not in - "[notIn],name1,name2".
companyIdsstringnonullOptional. In/not in filter, defines search condition by list of company ids (comma separated). For OR filter numeric filter suffix can be added to name. See API description for filtering strategy. examples in - "id1,id2" not in - "[notIn],id1,id2".
createdAtFromstringnonullOptional. Start date and time to filter by createdAt field. For OR filter numeric filter suffix can be added to name. See API description for filtering strategy. supports 3 value formats 1. date only - '2019-01-31' 2. date and time '2019-01-31T15:01:02' 3. rfc3339 - '2019-10-12T07:20:50.52+00:00'.
createdAtTostringnonullOptional. End date and time to filter by createdAt field. For OR filter numeric filter suffix can be added to name. See API description for filtering strategy. supports 3 value formats 1. date only - '2019-01-31' - in this case actual end date will be '2019-01-31T23:59:59' 2.
createdByIdsstringnonullOptional. In/not in filter, defines search condition by list of ticket createdBy ids (comma separated). For OR filter numeric filter suffix can be added to name. See API description for filtering strategy. examples in - "id1,id2" not in - "[notIn],id1,id2".
dueDateFromstringnonullOptional. Start date and time to filter by dueDate field. For OR filter numeric filter id can be added to name supports 3 value formats 1. date only - '2019-01-31' 2. date and time '2019-01-31T15:01:02' 3. rfc3339 - '2019-10-12T07:20:50.52+00:00'.
dueDateTostringnonullOptional. End date and time to filter by dueDate field. For OR filter numeric filter suffix can be added to name. See API description for filtering strategy. supports 3 value formats 1. date only - '2019-01-31' - in this case actual end date will be '2019-01-31T23:59:59' 2.
extendedAttributeIdsstringnonullOptional. Defines search condition by list of extendedAttributeIds (comma separated). For OR filter is valid only for the first filter.
numberstringnonullOptional. Defines search condition by ticket number. For OR filter numeric filter suffix can be added to name. See API description for filtering strategy.
orGroupsJsonstringnonullOptional. OR alternatives as a JSON array of filter objects, e.g. [{"statusIds":"id1"},{"number":"123"}]. Each object is one group AND-ed inside and OR-ed with the others (and with the plain filters); keys are this tool's filter names.
pageNumintegernonullOptional. Page number, starting at 1. Must be sent with pageSize.
pageSizeintegernonullOptional. Page size, at most 200 (a StackJack cap). Must be sent with pageNum.
priorityIdsstringnonullOptional. In/not in filter, defines search condition by list of priority ids (comma separated). For OR filter numeric filter suffix can be added to name. See API description for filtering strategy. examples in - "id1,id2" not in - "[notIn],id1,id2".
priorityNamesstringnonullOptional. Defines search condition by list of priority names (comma separated). For OR filter numeric filter suffix can be added to name. See API description for filtering strategy.examples - "name1,name2", not in - "[notIn],name1,name2".
siteIdsstringnonullOptional. In/not in filter, defines search condition by list of site ids (comma separated). For OR filter numeric filter suffix can be added to name. See API description for filtering strategy. examples in - "id1,id2" not in - "[notIn],id1,id2".
sortBystringnonullOptional. The id of field which should be used to sort the result before paginating it. Supported values are 'assignTo', 'number', 'updatedAt', 'createdAt', 'status', 'type', 'priority' , 'summary', 'assignTeam', 'dueDate', 'source' and 'extendedAttributes'. If not present, 'createdAt' is used as default.
sortDirstringnonullOptional. Defines if the paginated records are to be sorted ascending or descending. Only two values are supported viz. 'asc' and 'desc'. In case invalid value is sent, 'desc' is used as default.
sourceIdsstringnonullOptional. Defines search condition by list of source ids (comma separated). For OR filter numeric filter suffix can be added to name. See API description for filtering strategy.
sourceNamesstringnonullOptional. Defines search condition by list of source names (comma separated). For OR filter numeric filter suffix can be added to name. See API description for filtering strategy.
statusIdsstringnonullOptional. In/not in filter, defines search condition by list of status ids (comma separated). For OR filter numeric filter suffix can be added to name. See API description for filtering strategy. examples in - "id1,id2" not in - "[notIn],id1,id2".
statusNamesstringnonullOptional. Defines search condition by list of status names (comma separated). For OR filter numeric filter suffix can be added to name. See API description for filtering strategy.examples - "name1,name2", not in - "[notIn],name1,name2".
summarystringnonullOptional. Defines search condition by ticket summary. For OR filter numeric filter suffix can be added to name. See API description for filtering strategy.
tagIdsstringnonullOptional. Defines search condition by list of tag ids (comma separated). For OR filter numeric filter suffix can be added to name. See API description for filtering strategy.
tagNamesstringnonullOptional. Defines search condition by list of tag names (comma separated). For OR filter numeric filter suffix can be added to name. See API description for filtering strategy.
ticketIdsstringnonullOptional. Defines search condition by list of ticket ids (comma separated). For OR filter numeric filter suffix can be added to name. See API description for filtering strategy.
typeIdsstringnonullOptional. In/not in filter, defines search condition by list of ticket type ids (comma separated). For OR filter numeric filter suffix can be added to name. See API description for filtering strategy. examples in - "id1,id2" not in - "[notIn],id1,id2".
typeNamesstringnonullOptional. Defines search condition by list of type names (comma separated). For OR filter numeric filter suffix can be added to name. See API description for filtering strategy. examples - "name1,name2", not in - "[notIn],name1,name2".
updatedAtFromstringnonullOptional. Start date and time to filter by updatedAt field. For OR filter numeric filter suffix can be added to name. See API description for filtering strategy. supports 3 value formats 1. date only - '2019-01-31' 2. date and time '2019-01-31T15:01:02' 3. rfc3339 - '2019-10-12T07:20:50.52+00:00'.
updatedAtTostringnonullOptional. End date and time to filter by updatedAt field. For OR filter numeric filter suffix can be added to name. See API description for filtering strategy. supports 3 value formats 1. date only - '2019-01-31' - in this case actual end date will be '2019-01-31T23:59:59' 2.
updatedByIdsstringnonullOptional. In/not in filter, defines search condition by list of ticket updatedBy ids (comma separated). For OR filter numeric filter suffix can be added to name. See API description for filtering strategy. examples in - "id1,id2" not in - "[notIn],id1,id2".

[ConnectWise Platform (Asio)] Replace a ticket wholesale. PUT /api/platform/v2/service/ticketing/tickets/. DESTRUCTIVE: a PUT replaces the whole ticket; a field you leave out is reset. Prefer cwp_update_ticket for a partial change. Send the request body as a JSON object; documented fields: assets, assignee, assigneeTeam, category, company, createdAt, createdBy, description, dueDate, extendedAttributes, id, nocTicketId, number, priority, serviceBoard, site, source, status, summary, tags, type, updatedAt, updatedBy, version (required: summary, description, serviceBoard, source). Needs the platform.tickets.update scope on the API key (from ConnectWise's scope table). Returns raw ConnectWise Platform JSON.

ParamTypeRequiredDefaultDescription
bodyJsonstringyesRequired. The request body as a JSON object. Fields: assets, assignee, assigneeTeam, category, company, createdAt, createdBy, description, dueDate, extendedAttributes, id, nocTicketId, number, priority, serviceBoard, site, source, status, summary, tags, type, updatedAt, updatedBy, version.
idstringyesRequired. The id of the ticket to be replaced.

[ConnectWise Platform (Asio)] Replace a ticket note wholesale. PUT /api/platform/v1/service/ticketing/tickets//notes/. DESTRUCTIVE: a PUT replaces the whole note; a field you leave out is reset. Send the request body as a JSON object; documented fields: detail, extendedAttributes, visibility (required: detail, visibility). Needs the platform.tickets.update scope on the API key (from ConnectWise's scope table). Returns raw ConnectWise Platform JSON.

ParamTypeRequiredDefaultDescription
bodyJsonstringyesRequired. The request body as a JSON object. Fields: detail, extendedAttributes, visibility.
idstringyesRequired. The id of the ticket for which notes API is being called.
noteIdstringyesRequired. The id of the note to be fetched.

[ConnectWise Platform (Asio)] Replace a ticket tag wholesale. PUT /api/platform/v1/service/ticketing/tags/. DESTRUCTIVE: a PUT replaces every field; a field you leave out is reset to its default. Send the request body as a JSON object; documented fields: createdAt, createdBy, id, inactiveFlag, name, updatedAt, updatedBy (required: name). Needs the platform.tickets.update scope on the API key (from ConnectWise's scope table). Returns raw ConnectWise Platform JSON.

ParamTypeRequiredDefaultDescription
bodyJsonstringyesRequired. The request body as a JSON object. Fields: createdAt, createdBy, id, inactiveFlag, name, updatedAt, updatedBy.
idstringyesRequired. The id of the tag to be replaced.

[ConnectWise Platform (Asio)] Change a ticket with a JSON Patch. PATCH /api/platform/v2/service/ticketing/tickets/. ConnectWise restricts the patch op to replace. Send the request body as a JSON array of objects; documented fields: op, path, value (required: op, path, value). Needs the platform.tickets.update scope on the API key (from ConnectWise's scope table). Returns raw ConnectWise Platform JSON.

ParamTypeRequiredDefaultDescription
bodyJsonstringyesRequired. The request body as a JSON array. Fields: op, path, value.
idstringyesRequired. The id of the ticket to be updated.

[ConnectWise Platform (Asio)] Change a ticket note with a JSON Patch. PATCH /api/platform/v1/service/ticketing/tickets//notes/. ConnectWise restricts the patch op to replace. Send the request body as a JSON array of objects; documented fields: op, path, value (required: op, path, value). Needs the platform.tickets.update scope on the API key (from ConnectWise's scope table). Returns raw ConnectWise Platform JSON.

ParamTypeRequiredDefaultDescription
bodyJsonstringyesRequired. The request body as a JSON array. Fields: op, path, value.
idstringyesRequired. The id of the ticket for which notes API is being called.
noteIdstringyesRequired. The id of the note to be fetched.

[ConnectWise Platform (Asio)] Change a ticket tag with a JSON Patch. PATCH /api/platform/v1/service/ticketing/tags/. ConnectWise restricts the patch op to replace. Send the request body as a JSON array of objects; documented fields: op, path, value (required: op, path, value). Needs the platform.tickets.update scope on the API key (from ConnectWise's scope table). Returns raw ConnectWise Platform JSON.

ParamTypeRequiredDefaultDescription
bodyJsonstringyesRequired. The request body as a JSON array. Fields: op, path, value.
idstringyesRequired. The id of the tag to be updated.

Alert Suspensions

ToolPlanAccessSummary
cwp_get_alert_suspensionFreeRead-onlyGet one alert suspension rule.
cwp_list_alert_suspensionsFreeRead-onlyList the alert suspension rules.

[ConnectWise Platform (Asio)] Get one alert suspension rule. GET /api/platform/v2/alerting/suspensions/. ConnectWise publishes no scope for this operation. Returns raw ConnectWise Platform JSON.

ParamTypeRequiredDefaultDescription
ruleIdstringyesRequired. This will contain suspension rule ID.

[ConnectWise Platform (Asio)] List the alert suspension rules. GET /api/platform/v2/alerting/suspensions. ConnectWise publishes no scope for this operation. Returns raw ConnectWise Platform JSON.

Vulnerabilities

ToolPlanAccessSummary
cwp_get_endpoint_vulnerabilitiesFreeRead-onlyGet CVE information for up to 300 endpoints.

[ConnectWise Platform (Asio)] Get CVE information for up to 300 endpoints. POST /api/v2/vulnerabilities. A POST that only reads: the body is {"endpointIDs":[ids]}. ConnectWise publishes no scope for this route; security.siem.read is the only candidate on its scope list. Send the request body as a JSON object; documented fields: endpointIDs (required: endpointIDs). ConnectWise publishes no scope for this operation. Returns raw ConnectWise Platform JSON.

ParamTypeRequiredDefaultDescription
bodyJsonstringyesRequired. The request body as a JSON object. Fields: endpointIDs.

Security Cases

ToolPlanAccessSummary
cwp_add_security_case_commentsProDestructiveAdd 1-10 comments to a case.
cwp_get_security_alert_severity_summaryFreeRead-onlyGet Security Dashboard alert counts by severity.
cwp_get_security_alert_source_summaryFreeRead-onlyGet Security Dashboard alert counts by source.
cwp_get_security_caseFreeRead-onlyGet one Security Dashboard case.
cwp_get_security_case_alertFreeRead-onlyGet one alert on a case.
cwp_get_security_case_status_summaryFreeRead-onlyGet Security Dashboard case counts by status.
cwp_list_security_case_alert_entitiesFreeRead-onlyList the entities impacted by one alert of a case.
cwp_list_security_case_alert_eventsFreeRead-onlyList the events behind one alert of a case.
cwp_list_security_case_alert_iocsFreeRead-onlyList the indicators of compromise on one alert of a case.
cwp_list_security_case_alert_mitresFreeRead-onlyList the MITRE ATT&CK techniques on one alert of a case.
cwp_list_security_case_alert_timelineFreeRead-onlyList the timeline of one alert on a case.
cwp_list_security_case_alertsFreeRead-onlyList the alerts on one case.
cwp_list_security_case_commentsFreeRead-onlyList the comments on one case.
cwp_list_security_case_entitiesFreeRead-onlyList the entities impacted by one case.
cwp_list_security_case_iocsFreeRead-onlyList the indicators of compromise on one case.
cwp_list_security_case_mitresFreeRead-onlyList the MITRE ATT&CK techniques on one case.
cwp_list_security_case_timelineFreeRead-onlyList the timeline of one case.
cwp_list_security_casesFreeRead-onlyList Security Dashboard cases.
cwp_update_security_case_statusProWriteChange the status of a Security Dashboard case.

[ConnectWise Platform (Asio)] Add 1-10 comments to a case. POST /api/v1/cases//comments. Marked destructive because comments reach people: they sync to ticketing and are read by ConnectWise SOC staff, and cannot be recalled. A 200 can be a partial success; read the body for the comments that failed. Send the request body as a JSON array of objects; documented fields: comments (required: comments). Needs the security.cases.write scope on the API key. Returns raw ConnectWise Platform JSON.

ParamTypeRequiredDefaultDescription
bodyJsonstringyesRequired. The request body as a JSON array. Fields: comments.
caseIdstringyesRequired. Case identifier in the authenticated partner scope.

[ConnectWise Platform (Asio)] Get Security Dashboard alert counts by severity. GET /api/v1/alerts/summary/severity. Needs the security.cases.read scope on the API key. Returns raw ConnectWise Platform JSON.

ParamTypeRequiredDefaultDescription
companyIdsstringnonullOptional. Comma-separated platform company UUIDs used to filter results.
siteIdsstringnonullOptional. Comma-separated platform site UUIDs used to filter results.

[ConnectWise Platform (Asio)] Get Security Dashboard alert counts by source. GET /api/v1/alerts/summary/source. Needs the security.cases.read scope on the API key. Returns raw ConnectWise Platform JSON.

ParamTypeRequiredDefaultDescription
companyIdsstringnonullOptional. Comma-separated platform company UUIDs used to filter results.
siteIdsstringnonullOptional. Comma-separated platform site UUIDs used to filter results.

[ConnectWise Platform (Asio)] Get one Security Dashboard case. GET /api/v1/cases/. Needs the security.cases.read scope on the API key. Returns raw ConnectWise Platform JSON.

ParamTypeRequiredDefaultDescription
caseIdstringyesRequired. Case identifier in the authenticated partner scope.

[ConnectWise Platform (Asio)] Get one alert on a case. GET /api/v1/cases//alerts/. Needs the security.cases.read scope on the API key. Returns raw ConnectWise Platform JSON.

ParamTypeRequiredDefaultDescription
alertIdstringyesRequired. Alert identifier in the authenticated partner scope.
caseIdstringyesRequired. Case identifier in the authenticated partner scope.

[ConnectWise Platform (Asio)] Get Security Dashboard case counts by status. GET /api/v1/cases/summary/status. Needs the security.cases.read scope on the API key. Returns raw ConnectWise Platform JSON.

ParamTypeRequiredDefaultDescription
companyIdsstringnonullOptional. Comma-separated platform company UUIDs used to filter results.
siteIdsstringnonullOptional. Comma-separated platform site UUIDs used to filter results.

[ConnectWise Platform (Asio)] List the entities impacted by one alert of a case. GET /api/v1/cases//alerts//impacted-entities. Paging: limit is at most 100; pass the response's pagination.next_cursor back as nextCursor (or prev_cursor as prevCursor, never both). Needs the security.cases.read scope on the API key. Returns raw ConnectWise Platform JSON.

ParamTypeRequiredDefaultDescription
alertIdstringyesRequired. Alert identifier in the authenticated partner scope.
caseIdstringyesRequired. Case identifier in the authenticated partner scope.
limitintegernonullOptional. Page size, at most 100. Page size. Default 20 when omitted. Must be at least 1 when provided.
nextCursorstringnonullOptional. The pagination.next_cursor from a previous response. Send at most one of the two.
prevCursorstringnonullOptional. The pagination.prev_cursor from a previous response. Send at most one of the two.

[ConnectWise Platform (Asio)] List the events behind one alert of a case. GET /api/v1/cases//alerts//events. Paging: limit is at most 100; pass the response's pagination.next_cursor back as nextCursor (or prev_cursor as prevCursor, never both). Needs the security.cases.read scope on the API key. Returns raw ConnectWise Platform JSON.

ParamTypeRequiredDefaultDescription
alertIdstringyesRequired. Alert identifier in the authenticated partner scope.
caseIdstringyesRequired. Case identifier in the authenticated partner scope.
limitintegernonullOptional. Page size, at most 100. Page size for cursor-paginated list endpoints. Defaults to 20 when omitted. When provided it must be a positive integer. Per-endpoint maximums are documented on each operation.
nextCursorstringnonullOptional. The pagination.next_cursor from a previous response. Send at most one of the two.
prevCursorstringnonullOptional. The pagination.prev_cursor from a previous response. Send at most one of the two.

[ConnectWise Platform (Asio)] List the indicators of compromise on one alert of a case. GET /api/v1/cases//alerts//iocs. Paging: limit is at most 100; pass the response's pagination.next_cursor back as nextCursor (or prev_cursor as prevCursor, never both). Needs the security.cases.read scope on the API key. Returns raw ConnectWise Platform JSON.

ParamTypeRequiredDefaultDescription
alertIdstringyesRequired. Alert identifier in the authenticated partner scope.
caseIdstringyesRequired. Case identifier in the authenticated partner scope.
limitintegernonullOptional. Page size, at most 100. Page size. Default 20 when omitted. Must be at least 1 when provided.
nextCursorstringnonullOptional. The pagination.next_cursor from a previous response. Send at most one of the two.
prevCursorstringnonullOptional. The pagination.prev_cursor from a previous response. Send at most one of the two.

[ConnectWise Platform (Asio)] List the MITRE ATT&CK techniques on one alert of a case. GET /api/v1/cases//alerts//mitres. Paging: limit is at most 100; pass the response's pagination.next_cursor back as nextCursor (or prev_cursor as prevCursor, never both). Needs the security.cases.read scope on the API key. Returns raw ConnectWise Platform JSON.

ParamTypeRequiredDefaultDescription
alertIdstringyesRequired. Alert identifier in the authenticated partner scope.
caseIdstringyesRequired. Case identifier in the authenticated partner scope.
limitintegernonullOptional. Page size, at most 100. Page size for cursor-paginated list endpoints. Defaults to 20 when omitted. When provided it must be a positive integer. Per-endpoint maximums are documented on each operation.
nextCursorstringnonullOptional. The pagination.next_cursor from a previous response. Send at most one of the two.
prevCursorstringnonullOptional. The pagination.prev_cursor from a previous response. Send at most one of the two.

[ConnectWise Platform (Asio)] List the timeline of one alert on a case. GET /api/v1/cases//alerts//timeline. Paging: limit is at most 100; pass the response's pagination.next_cursor back as nextCursor (or prev_cursor as prevCursor, never both). Needs the security.cases.read scope on the API key. Returns raw ConnectWise Platform JSON.

ParamTypeRequiredDefaultDescription
alertIdstringyesRequired. Alert identifier in the authenticated partner scope.
caseIdstringyesRequired. Case identifier in the authenticated partner scope.
limitintegernonullOptional. Page size, at most 100. Page size for cursor-paginated list endpoints. Defaults to 20 when omitted. When provided it must be a positive integer. Per-endpoint maximums are documented on each operation.
nextCursorstringnonullOptional. The pagination.next_cursor from a previous response. Send at most one of the two.
prevCursorstringnonullOptional. The pagination.prev_cursor from a previous response. Send at most one of the two.

[ConnectWise Platform (Asio)] List the alerts on one case. GET /api/v1/cases//alerts. Paging: limit is at most 100; pass the response's pagination.next_cursor back as nextCursor (or prev_cursor as prevCursor, never both). Needs the security.cases.read scope on the API key. Returns raw ConnectWise Platform JSON.

ParamTypeRequiredDefaultDescription
caseIdstringyesRequired. Case identifier in the authenticated partner scope.
limitintegernonullOptional. Page size, at most 100. Page size for cursor-paginated list endpoints. Defaults to 20 when omitted. When provided it must be a positive integer. Per-endpoint maximums are documented on each operation.
nextCursorstringnonullOptional. The pagination.next_cursor from a previous response. Send at most one of the two.
orderstringnonullOptional. Sort direction. Default desc. One of: asc, desc.
prevCursorstringnonullOptional. The pagination.prev_cursor from a previous response. Send at most one of the two.
searchstringnonullOptional. Substring match on alert title.
sortstringnonullOptional. Sort field. Default created_at. One of: created_at, updated_at, severity, status, title, category.

[ConnectWise Platform (Asio)] List the comments on one case. GET /api/v1/cases//comments. Paging: limit is at most 50; pass the response's pagination.next_cursor back as nextCursor (or prev_cursor as prevCursor, never both). Needs the security.cases.read scope on the API key. Returns raw ConnectWise Platform JSON.

ParamTypeRequiredDefaultDescription
caseIdstringyesRequired. Case identifier in the authenticated partner scope.
limitintegernonullOptional. Page size, at most 50. Page size for cursor-paginated list endpoints. Defaults to 20 when omitted. When provided it must be a positive integer. Per-endpoint maximums are documented on each operation.
nextCursorstringnonullOptional. The pagination.next_cursor from a previous response. Send at most one of the two.
prevCursorstringnonullOptional. The pagination.prev_cursor from a previous response. Send at most one of the two.

[ConnectWise Platform (Asio)] List the entities impacted by one case. GET /api/v1/cases//impacted-entities. Paging: limit is at most 100; pass the response's pagination.next_cursor back as nextCursor (or prev_cursor as prevCursor, never both). Needs the security.cases.read scope on the API key. Returns raw ConnectWise Platform JSON.

ParamTypeRequiredDefaultDescription
caseIdstringyesRequired. Case identifier in the authenticated partner scope.
limitintegernonullOptional. Page size, at most 100. Page size for cursor-paginated list endpoints. Defaults to 20 when omitted. When provided it must be a positive integer. Per-endpoint maximums are documented on each operation.
nextCursorstringnonullOptional. The pagination.next_cursor from a previous response. Send at most one of the two.
prevCursorstringnonullOptional. The pagination.prev_cursor from a previous response. Send at most one of the two.

[ConnectWise Platform (Asio)] List the indicators of compromise on one case. GET /api/v1/cases//iocs. Paging: limit is at most 100; pass the response's pagination.next_cursor back as nextCursor (or prev_cursor as prevCursor, never both). Needs the security.cases.read scope on the API key. Returns raw ConnectWise Platform JSON.

ParamTypeRequiredDefaultDescription
caseIdstringyesRequired. Case identifier in the authenticated partner scope.
limitintegernonullOptional. Page size, at most 100. Page size for cursor-paginated list endpoints. Defaults to 20 when omitted. When provided it must be a positive integer. Per-endpoint maximums are documented on each operation.
nextCursorstringnonullOptional. The pagination.next_cursor from a previous response. Send at most one of the two.
prevCursorstringnonullOptional. The pagination.prev_cursor from a previous response. Send at most one of the two.

[ConnectWise Platform (Asio)] List the MITRE ATT&CK techniques on one case. GET /api/v1/cases//mitres. Paging: limit is at most 100; pass the response's pagination.next_cursor back as nextCursor (or prev_cursor as prevCursor, never both). Needs the security.cases.read scope on the API key. Returns raw ConnectWise Platform JSON.

ParamTypeRequiredDefaultDescription
caseIdstringyesRequired. Case identifier in the authenticated partner scope.
limitintegernonullOptional. Page size, at most 100. Page size for cursor-paginated list endpoints. Defaults to 20 when omitted. When provided it must be a positive integer. Per-endpoint maximums are documented on each operation.
nextCursorstringnonullOptional. The pagination.next_cursor from a previous response. Send at most one of the two.
prevCursorstringnonullOptional. The pagination.prev_cursor from a previous response. Send at most one of the two.

[ConnectWise Platform (Asio)] List the timeline of one case. GET /api/v1/cases//timelines. Paging: limit is at most 100; pass the response's pagination.next_cursor back as nextCursor (or prev_cursor as prevCursor, never both). Needs the security.cases.read scope on the API key. Returns raw ConnectWise Platform JSON.

ParamTypeRequiredDefaultDescription
caseIdstringyesRequired. Case identifier in the authenticated partner scope.
limitintegernonullOptional. Page size, at most 100. Page size for cursor-paginated list endpoints. Defaults to 20 when omitted. When provided it must be a positive integer. Per-endpoint maximums are documented on each operation.
nextCursorstringnonullOptional. The pagination.next_cursor from a previous response. Send at most one of the two.
prevCursorstringnonullOptional. The pagination.prev_cursor from a previous response. Send at most one of the two.

[ConnectWise Platform (Asio)] List Security Dashboard cases. GET /api/v1/cases. Closed cases are omitted. Filter by companyIds, siteIds and search; sort by one of eight fields. ConnectWise answers 404 when nothing matches, which means no cases, not a broken connection. Paging: limit is at most 100; pass the response's pagination.next_cursor back as nextCursor (or prev_cursor as prevCursor, never both). Needs the security.cases.read scope on the API key. Returns raw ConnectWise Platform JSON.

ParamTypeRequiredDefaultDescription
companyIdsstringnonullOptional. Comma-separated platform company UUIDs used to filter results.
limitintegernonullOptional. Page size, at most 100. Page size for cursor-paginated list endpoints. Defaults to 20 when omitted. When provided it must be a positive integer. Per-endpoint maximums are documented on each operation.
nextCursorstringnonullOptional. The pagination.next_cursor from a previous response. Send at most one of the two.
orderstringnonullOptional. Sort direction. Default desc. One of: asc, desc.
prevCursorstringnonullOptional. The pagination.prev_cursor from a previous response. Send at most one of the two.
searchstringnonullOptional. Case-insensitive match on title, category, severity, status, company name, or site name.
siteIdsstringnonullOptional. Comma-separated platform site UUIDs used to filter results.
sortstringnonullOptional. Sort field. Default updated_at. One of: created_at, updated_at, severity, status, title, category, alerts_count, company_type.

[ConnectWise Platform (Asio)] Change the status of a Security Dashboard case. POST /api/v1/cases//update-status. Every transition is reversible, closed back to open included. Cases of a managed company always answer 400, and setting the status a case already has answers 409. Send the request body as a JSON object; documented fields: status (required: status). Needs the security.cases.write scope on the API key. Returns raw ConnectWise Platform JSON.

ParamTypeRequiredDefaultDescription
bodyJsonstringyesRequired. The request body as a JSON object. Fields: status.
caseIdstringyesRequired. Case identifier in the authenticated partner scope.

Cloud Backup

ToolPlanAccessSummary
cwp_complete_cloud_backup_alertProDestructiveMark a Cloud Backup alert complete.
cwp_get_cloud_backup_alerts_healthFreeRead-onlyCheck the health of the Cloud Backup alerts service.
cwp_get_cloud_backup_mailboxFreeRead-onlyGet one backed-up Exchange mailbox.
cwp_get_cloud_backup_retentionFreeRead-onlyGet a subscription's Exchange and SharePoint retention periods.
cwp_get_cloud_backup_storage_settingsFreeRead-onlyGet a subscription's storage settings.
cwp_grant_cloud_backup_customer_accessProDestructiveGrant the customer access to their Cloud Backup portal.
cwp_list_cloud_backup_alertsFreeRead-onlyList the alerts for a Cloud Backup order.
cwp_list_cloud_backup_datacentersFreeRead-onlyList the Cloud Backup data centers.
cwp_list_cloud_backup_mailboxesFreeRead-onlyList the Exchange mailboxes a subscription backs up.
cwp_list_cloud_backup_subscriptionsFreeRead-onlyList Cloud Backup subscriptions.
cwp_revoke_cloud_backup_customer_accessProDestructiveRevoke the customer's access to their Cloud Backup portal.
cwp_update_cloud_backup_storage_settingsProDestructiveChange a subscription's storage settings.

[ConnectWise Platform (Asio)] Mark a Cloud Backup alert complete. POST /alerts/. DESTRUCTIVE: ConnectWise has no operation that reopens a completed alert. Needs the platform.backup.create scope on the API key. Returns raw ConnectWise Platform JSON.

ParamTypeRequiredDefaultDescription
alertIdstringyesRequired. The Alert Id Guid Value.

[ConnectWise Platform (Asio)] Check the health of the Cloud Backup alerts service. GET /alerts/health. Needs the platform.backup.read scope on the API key. Returns raw ConnectWise Platform JSON.

[ConnectWise Platform (Asio)] Get one backed-up Exchange mailbox. GET /backup//mailboxes/. Needs the platform.backup.read scope on the API key. Returns raw ConnectWise Platform JSON.

ParamTypeRequiredDefaultDescription
idstringyesRequired. Backup service ID.
mailboxIdstringyesRequired. Exchange mailbox ID.

[ConnectWise Platform (Asio)] Get a subscription's Exchange and SharePoint retention periods. GET /backup//retentionperiod. The vendor's field name ExchangeRentionPeriodInDays is misspelled in its own API and is returned as sent. Needs the platform.backup.read scope on the API key. Returns raw ConnectWise Platform JSON.

ParamTypeRequiredDefaultDescription
idstringyesRequired. Backup service ID.

[ConnectWise Platform (Asio)] Get a subscription's storage settings. GET /backup//storagesettings. Needs the platform.backup.read scope on the API key. Returns raw ConnectWise Platform JSON.

ParamTypeRequiredDefaultDescription
idstringyesRequired. Backup service ID.

[ConnectWise Platform (Asio)] Grant the customer access to their Cloud Backup portal. POST /backup//grantcustomeraccess. DESTRUCTIVE: grants a person access to backed-up mail and sends a welcome email unless suppressed. Send the request body as a JSON object; documented fields: customerEmail, permissions, suppressWelcomeEmail (required: customerEmail, permissions). Needs the platform.backup.create scope on the API key. Returns raw ConnectWise Platform JSON.

ParamTypeRequiredDefaultDescription
bodyJsonstringnonullOptional. The request body as a JSON object. Fields: customerEmail, permissions, suppressWelcomeEmail.
idstringyesRequired. Backup service ID.

[ConnectWise Platform (Asio)] List the alerts for a Cloud Backup order. GET /alerts/. top is 1-500 (ConnectWise's default is 25). Needs the platform.backup.read scope on the API key. Returns raw ConnectWise Platform JSON.

ParamTypeRequiredDefaultDescription
idstringyesRequired. Either Email Migration Order ID or Backup service ID.
topintegernonullOptional. How many alerts to return (1-500; ConnectWise's default is 25).

[ConnectWise Platform (Asio)] List the Cloud Backup data centers. GET /backup/datacenters. Needs the platform.backup.read scope on the API key. Returns raw ConnectWise Platform JSON.

[ConnectWise Platform (Asio)] List the Exchange mailboxes a subscription backs up. GET /backup//mailboxes. Needs the platform.backup.read scope on the API key. Returns raw ConnectWise Platform JSON.

ParamTypeRequiredDefaultDescription
idstringyesRequired. Backup service ID.

[ConnectWise Platform (Asio)] List Cloud Backup subscriptions. GET /backup. Needs the platform.backup.read scope on the API key. Returns raw ConnectWise Platform JSON.

[ConnectWise Platform (Asio)] Revoke the customer's access to their Cloud Backup portal. POST /backup//revokecustomeraccess. DESTRUCTIVE: removes a person's access. Send the request body as a JSON object; documented fields: customerEmail (required: customerEmail). Needs the platform.backup.delete scope on the API key. Returns raw ConnectWise Platform JSON.

ParamTypeRequiredDefaultDescription
bodyJsonstringnonullOptional. The request body as a JSON object. Fields: customerEmail.
idstringyesRequired. Backup Service ID.

[ConnectWise Platform (Asio)] Change a subscription's storage settings. PUT /backup//storagesettings. DESTRUCTIVE: moves where the customer's backup data lives. A Custom data center needs the customer's Azure storage account key in the body - a live credential. Send the request body as a JSON object; documented fields: datacenterlocation, azurestorageaccountname, azurestorageaccountkey (required: datacenterlocation). Needs the platform.backup.create scope on the API key. Returns raw ConnectWise Platform JSON.

ParamTypeRequiredDefaultDescription
bodyJsonstringnonullOptional. The request body as a JSON object. Fields: datacenterlocation, azurestorageaccountname, azurestorageaccountkey.
idstringyesRequired. Backup service Id.

Cloud Backup Orders

ToolPlanAccessSummary
cwp_activate_cloud_backup_subscriptionProDestructiveReactivate a suspended Cloud Backup subscription.
cwp_cancel_cloud_backup_subscriptionProDestructiveCancel a Cloud Backup subscription.
cwp_create_cloud_backup_subscriptionProDestructiveCreate a Cloud Backup subscription for a customer.
cwp_place_cloud_backup_orderProDestructivePlace the order for a Cloud Backup subscription.
cwp_suspend_cloud_backup_subscriptionProDestructiveSuspend a Cloud Backup subscription.

[ConnectWise Platform (Asio)] Reactivate a suspended Cloud Backup subscription. POST /backup//activate. DESTRUCTIVE: resumes billing for the subscription. Needs the platform.backup.create scope on the API key. Returns raw ConnectWise Platform JSON.

ParamTypeRequiredDefaultDescription
idstringyesRequired. Backup service ID.

[ConnectWise Platform (Asio)] Cancel a Cloud Backup subscription. POST /backup//cancel. DESTRUCTIVE: ends the customer's backup service. Needs the platform.backup.delete scope on the API key. Returns raw ConnectWise Platform JSON.

ParamTypeRequiredDefaultDescription
idstringyesRequired. Backup service ID.

[ConnectWise Platform (Asio)] Create a Cloud Backup subscription for a customer. POST /backup. DESTRUCTIVE: creates an order that can bill you, and may email the customer. A Custom data center needs the customer's Azure storage account key in the body - a live credential. Set testOrder for a trial run. Send the request body as a JSON object; documented fields: PartnerId, companyname, firstname, lastname, primaryemailaddress, phonenumber, o365adminusername, o365tenantid, backupexchangeenabled, backupsharepointenabled, datacenterlocation, azurestorageaccountname, azurestorageaccountkey, exchangeseatlimit, emailmigrationid, sendCustomerConfirmationEmail, testOrder (required: companyname, firstname, lastname, primaryemailaddress, datacenterlocation). Needs the platform.backup.create scope on the API key. Returns raw ConnectWise Platform JSON.

ParamTypeRequiredDefaultDescription
bodyJsonstringnonullOptional. The request body as a JSON object. Fields: PartnerId, companyname, firstname, lastname, primaryemailaddress, phonenumber, o365adminusername, o365tenantid, backupexchangeenabled, backupsharepointenabled, datacenterlocation, azurestorageaccountname, azurestorageaccountkey, exchangeseatlimit, emailmigrationid, sendCustomerConfirmationEmail, testOrder.

[ConnectWise Platform (Asio)] Place the order for a Cloud Backup subscription. POST /backup//placeorder. DESTRUCTIVE: activates billing for the subscription. Needs the platform.backup.create scope on the API key. Returns raw ConnectWise Platform JSON.

ParamTypeRequiredDefaultDescription
idstringyesRequired. Backup service ID.

[ConnectWise Platform (Asio)] Suspend a Cloud Backup subscription. POST /backup//suspend. DESTRUCTIVE: stops the customer's backups until it is activated again. Needs the platform.backup.delete scope on the API key. Returns raw ConnectWise Platform JSON.

ParamTypeRequiredDefaultDescription
idstringyesRequired. Backup service ID.

Backup Dashboard

ToolPlanAccessSummary
cwp_list_backup_alarmsFreeRead-onlyList a company's backup alarms.
cwp_list_backup_jobsFreeRead-onlyList a company's backup jobs from the Backup Dashboard.
cwp_list_dr_readinessFreeRead-onlyList a company's disaster-recovery readiness results.

[ConnectWise Platform (Asio)] List a company's backup alarms. GET /api/backup-dashboard/companies//alarms. severity is Informational (never Info, which answers 400), Warning or Critical; alarmStatus defaults to Open and all is accepted in any case; family and name are case-sensitive substrings. Paging: limit is 1-500. ConnectWise returns the next page's cursor only in a response header, so set includePaging to true to get {items, nextCursor} and pass nextCursor back as cursor until it is null; left false, the answer is exactly ConnectWise's body. Needs the backupdashboard.alarms.read scope on the API key. Returns raw ConnectWise Platform JSON.

ParamTypeRequiredDefaultDescription
alarmStatusstringnonullOptional. Filter by alarm status (exact match, comma-separated, case-sensitive). Valid values: Open, Closed, Suspended. Use the special value all (case-insensitive) to return all statuses. Defaults to Open when omitted.
alarmTimestampAfterintegernonullOptional. Optional inclusive lower bound on alarm_timestamp in unix milliseconds. May be provided alone or with alarm_timestamp_before.
alarmTimestampBeforeintegernonullOptional. Optional inclusive upper bound on alarm_timestamp in unix milliseconds. May be provided alone or with alarm_timestamp_after.
companyIdstringyesRequired. It is the identifier for the company.
cursorstringnonullOptional. The nextCursor value from a previous call made with includePaging true. Opaque: pass it back unchanged.
familystringnonullOptional. Filter by alarm family (case-sensitive substring match, comma-separated). Vendor-supplied free text — not a governed enum. Example values include Backup, Autoverify, Health Status, and Backup agent job state.
includePagingbooleannofalseOptional. true returns {items, nextCursor}: ConnectWise's body verbatim plus the next page's cursor from its Link header (null on the last page). false (the default) returns ConnectWise's body exactly.
limitintegernonullOptional. Page size, 1-500. Maximum number of records per page for Backup Dashboard APIs. Default 500, maximum 500.
namestringnonullOptional. Filter by alarm name (case-sensitive substring match, comma-separated). Vendor-supplied free text — not a governed enum. Example values for Axcient x360Recover include BACKUP, AUTOVERIFY_BASIC, and OFFSITE_STATUS.
productstringnonullOptional. Filter by one or more backup product display names (comma-separated, exact match). Resolved to product IDs via extensibility before querying Cassandra.
severitystringnonullOptional. Filter by severity (exact match, comma-separated, case-sensitive). Valid values: Critical, High, Medium, Low, Informational. Note: use Informational in API requests (stored internally as Info; sending Info returns 400).

[ConnectWise Platform (Asio)] List a company's backup jobs from the Backup Dashboard. GET /api/backup-dashboard/companies//instances. startedAfter and startedBefore are Unix milliseconds and span at most one UTC day. product is an exact comma list of the dashboard's product names; filter by jobStatus and jobType. Paging: limit is 1-500. ConnectWise returns the next page's cursor only in a response header, so set includePaging to true to get {items, nextCursor} and pass nextCursor back as cursor until it is null; left false, the answer is exactly ConnectWise's body. Needs the backupdashboard.jobs.read scope on the API key. Returns raw ConnectWise Platform JSON.

ParamTypeRequiredDefaultDescription
companyIdstringyesRequired. It is the identifier for the company.
cursorstringnonullOptional. The nextCursor value from a previous call made with includePaging true. Opaque: pass it back unchanged.
includePagingbooleannofalseOptional. true returns {items, nextCursor}: ConnectWise's body verbatim plus the next page's cursor from its Link header (null on the last page). false (the default) returns ConnectWise's body exactly.
jobStatusstringnonullOptional. Filter by one or more normalised backup status values (comma-separated, exact match). Maps to the dashboardBackupStatus field in responses. Valid values: Success, Failure, Unknown, Warning, Missed, Running, Paused.
jobTypestringnonullOptional. Filter records whose job type matches any of the provided values (comma-separated, exact match).
limitintegernonullOptional. Page size, 1-500. Maximum number of records per page for Backup Dashboard APIs. Default 500, maximum 500.
productstringnonullOptional. Filter by one or more backup product display names (comma-separated, exact match). Resolved to product IDs via extensibility before querying Cassandra.
startedAfterintegernonullOptional. Inclusive lower bound of the date window in unix milliseconds. Required when started_before is provided.
startedBeforeintegernonullOptional. Exclusive upper bound of the date window in unix milliseconds. Required when started_after is provided.

[ConnectWise Platform (Asio)] List a company's disaster-recovery readiness results. GET /api/backup-dashboard/companies//dr-readiness. startedAfter and startedBefore are Unix milliseconds, span at most one UTC day and cannot be older than two months. Paging: limit is 1-500. ConnectWise returns the next page's cursor only in a response header, so set includePaging to true to get {items, nextCursor} and pass nextCursor back as cursor until it is null; left false, the answer is exactly ConnectWise's body. Needs the backupdashboard.dr-readiness.read scope on the API key. Returns raw ConnectWise Platform JSON.

ParamTypeRequiredDefaultDescription
companyIdstringyesRequired. It is the identifier for the company.
cursorstringnonullOptional. The nextCursor value from a previous call made with includePaging true. Opaque: pass it back unchanged.
drReadinessStatusstringnonullOptional. Filter by one or more DR readiness status values (comma-separated, exact match, max 10). Valid values: Success, Failure, Warning, Missed, Unknown.
drSummaryNamestringnonullOptional. Filter by DR readiness summary (comma-separated, exact match, max 10).
includePagingbooleannofalseOptional. true returns {items, nextCursor}: ConnectWise's body verbatim plus the next page's cursor from its Link header (null on the last page). false (the default) returns ConnectWise's body exactly.
limitintegernonullOptional. Page size, 1-500. Maximum number of records per page for Backup Dashboard APIs. Default 500, maximum 500.
productstringnonullOptional. Filter by one or more backup product display names (comma-separated, exact match, max 10). Resolved to product IDs via extensibility before querying Cassandra.
startedAfterintegernonullOptional. Start of the date window in unix milliseconds, applied to the DR readiness start date. Required when started_before is provided.
startedBeforeintegernonullOptional. End of the date window in unix milliseconds, applied to the DR readiness start date. Required when started_after is provided.

Platform

ToolPlanAccessSummary
cwp_get_rate_limitsFreeRead-onlyGet the current per-resource rate limits and when each resets.
cwp_lookup_mappingsFreeRead-onlyLook up ID mappings between ConnectWise and third-party systems.

[ConnectWise Platform (Asio)] Get the current per-resource rate limits and when each resets. GET /v1/rate_limits. Useful before a large sweep: each bucket shows its limit, what remains and the reset time. No API scope is required. Returns raw ConnectWise Platform JSON.

[ConnectWise Platform (Asio)] Look up ID mappings between ConnectWise and third-party systems. POST /api/platform/v1/mapping/mappings/lookup. A POST that only reads: the body is the mapping criteria. all=true returns every mapping. Send the request body as a JSON object; documented fields: schemas, criteria. Needs the platform.dataMapping.read scope on the API key (from ConnectWise's scope table). Returns raw ConnectWise Platform JSON.

ParamTypeRequiredDefaultDescription
allbooleannonullOptional. Used to fetch ALL the matching records. By default, a single record is returned.
bodyJsonstringyesRequired. The request body as a JSON object. Fields: schemas, criteria.