Using Global API Keys

We have added Global API Keys, which allow customers to use our APIs across all organizations under their account, rather than for a single organization.

Note that some API endpoints will continue to accept a regular organization API key, assuming that endpoint is only checking permissions at the account and/or global scopes.

Important: Keep API Keys Secure!

Depending on your role, your API key may be able to modify users, devices, and policies. API keys should be kept secure and not shared to prevent unforeseen changes or potential security issues. Never email or write down your API key.

API Keys Overview

Automox supports two types of API keys: Organization API Keys and Global API Keys.

Organization API Keys

  • Created within a specific organization.
  • Can only be used when making requests to that same organization.
  • The access granted matches the permissions of the user who created the key within that organization.
Some API endpoints will continue to accept a regular organization API key, assuming that endpoint is only checking permissions at the account and/or global scopes.

Global API Keys

  • Valid across all organizations within your Automox account.
  • When used, they inherit the permissions that the key owner has in the organization being targeted by the request.
  • This means your access level will depend on your assigned permissions in whichever organization the API call is directed to.

Quick Example

  • If you create an Organization API Key in Org A, you can always use it for API calls targeting Org A, but not necessarily for API calls targeting Org B.
  • If you create a Global API Key, you can use it to make API calls against Org A, Org B, or any other org in your account. The permissions applied in each case will match your role in the org you are targeting.

Permissions and Scopes

We have various permissions that have scopes associated with them. Some permissions are can only be attached at a specific scope, whereas other permissions can attached at any combination of account, global, organization scopes. Additionally, some permissions have conditions that must be met in order to use the API. We have added information about the required permissions to our API endpoints. See the following table for a listing of permissions and scopes.

Note that devices are the same thing as endpoints. For the purposes of this document, we are listing the permissions as they are listed on the Automox console. API responses will use the term "endpoint" for device permissions.

EndpointRequired PermissionScopeConditionsDocumentation Notes
GET /servers/{id}/queuesdevices:readOrganizationView upcoming commands for a specific device
POST /servers/{id}/queuesdevices:manageOrganizationForce immediate scan/patch/reboot on a device
GET /serversdevices:readOrganizationList all devices in organization
GET /servers/{id}devices:readOrganizationView specific device details
PUT /servers/{id}devices:manageOrganizationUpdate device configuration
DELETE /servers/{id}devices:deleteOrganizationRemove device from organization
POST /servers/batchdevices:manageOrganizationUpdate multiple devices in batch
GET /device-details/orgs/{org_UUID}/devices/{device_UUID}/inventory devices:readOrganizationView device software inventory
GET /device-details/orgs/{org_UUID}/devices/{device_UUID}/categories devices:readOrganizationView device software categories
GET /servers/{id}/packagespackage:readOrganizationView software packages for specific device
GET /orgs/{id}/packagespackage:readOrganizationList all packages for organization
GET /worklet-catalogcustom_policy:readOrganizationView worklet catalog (deprecated feature)
GET /worklet-catalog/{uuid-legacy_id}custom_policy:readOrganizationView specific worklet (deprecated feature)
GET /servergroupsserver_group:readOrganizationList all server groups
POST /servergroupsserver_group:createOrganizationCreate new server group
GET /servergroups/{id}server_group:readOrganizationUser must be affiliated with the groupView specific server group
PUT /servergroups/{id}server_group:modifyOrganizationUser must be affiliated with the groupUpdate server group
DELETE /servergroups/{id}server_group:deleteOrganizationUser must be affiliated with the groupDelete server group
GET /approvalsapproval:readOrganizationList manual approval requests
PUT /approvals/{id}approval:updateOrganizationUpdate manual approval status
GET /eventsorganization:readOrganizationView organization event logs
GET /data-extractsreport:readOrganizationList data export jobs
POST /data-extractsreport:readOrganizationCreate new data export job
GET /data-extracts/{id}report:readOrganizationView specific data export job
GET /data-extracts/{id}/downloadreport:readOrganizationDownload completed data export
GET /orgsorganization:readAccount OR Global OR OrganizationList the organizations in the account that the authenticated user has access to. Note: if a user doesn't have "devices:add" org-scoped permission, the corresponding org data is still returned, but no access key attached. Also, any orgs that the user doesn't have org:read permission in in rbac-cr are filtered out.
GET /policiesMultiple policy types:readOrganizationRequires read permission for patch_policy, required_software_policy, and/or custom_policy depending on policy types
POST /policiesMultiple policy types:createOrganizationRequires create permission for the specific policy type being created
GET /policies/{id}Multiple policy types:readOrganizationRequires read permission for the specific policy type
PUT /policies/{id}Multiple policy types:modifyOrganizationRequires modify permission for the specific policy type
DELETE /policies/{id}Multiple policy types:deleteOrganizationRequires delete permission for the specific policy type
POST /policies/{id}/filesMultiple policy types:modifyOrganizationUpload files to policies
POST /policies/{id}/actionMultiple policy types:executeOrganizationExecute policy immediately
POST /policies/device-filters-previewdevices:readOrganizationPreview devices matching filter criteria
GET /policystatsreport:readOrganizationView policy compliance statistics
GET /orgs/{id}/api_keysall_api_keys:listOrganizationList all API keys for organization
GET /users/{userId}/api_keys/{id}all_api_keys:read OR user_api_key:manageOrganizationall_api_keys:read for admin access, user_api_key:manage for own keys View API key details
PUT /users/{userId}/api_keys/{id}all_api_keys:modify OR user_api_key:manageOrganizationall_api_keys:modify for admin access, user_api_key:manage for own keys Enable/disable API key
POST /users/{userId}/api_keys/{id}/decryptuser_api_key:manageOrganizationUser must own the API keyDecrypt API key value
GET /usersusers:readAccount OR GlobalList users
POST /usersNoneNoneNo authentication requiredPublic user registration
GET /users/{id}users:readAccount OR GlobalNo permission required if viewing own user dataView user details
PUT /users/{userId}users:modify OR NoneOrganization OR Noneusers:modify for admin updates, no permission required for self-updates Update user (full replacement)
PATCH /users/{userId}users:modify OR NoneOrganization OR Noneusers:modify for admin updates, no permission required for self-updates Update user (partial update)
DELETE /users/{id}users:deleteOrganizationCannot delete own accountDelete user
GET /users/selfNoneNoneAuthentication required onlyView own user profile
GET /accounts/{accountId}/rbac-rolesrole:readGlobalList available RBAC roles
GET /accounts/{accountId}account:readAccountView account information
GET /accounts/{accountId}/users/{userId}users:readAccount OR GlobalNo permission required if viewing own dataView account user details
DELETE /accounts/{accountId}/users/{userId}users:deleteRequired at every scope where user has role assignments Remove user from account
POST /accounts/{accountId}/invitationsusers:inviteRequired at every scope where role assignments will be made Invite user to account with zone access
GET /accounts/{accountId}/users/{userId}/zonesorganization:readAccount OR GlobalList zones user has access to
POST /accounts/{accountId}/zonesorganization:createAccountCreate new zone
GET /accounts/{accountId}/zonesorganization:readAccount OR GlobalList account zones
GET /accounts/{accountId}/zones/{zoneId}organization:readOrganizationView specific zone details
GET /accounts/{accountId}/zones/{zoneId}/usersusers:readOrganizationList users in zone
GET /orgs/{orgID}/remediations/action-sets/upload/formats remediation:readOrganizationList supported CSV upload formats
POST /orgs/{orgID}/remediations/action-sets/uploadremediation:createOrganizationUpload vulnerability remediation CSV
GET /orgs/{orgID}/remediations/action-sets/{actionSetID} remediation:readOrganizationView specific action set
DELETE /orgs/{orgID}/remediations/action-sets/{actionSetID} remediation:deleteOrganizationDelete action set
GET /orgs/{orgID}/remediations/action-sets/{actionSetID}/solutions remediation:readOrganizationList solutions in action set
GET /orgs/{orgID}/remediations/action-sets/{actionSetID}/issues remediation:readOrganizationList issues found during import
GET /orgs/{orgID}/remediations/action-setsremediation:readOrganizationList all action sets
DELETE /orgs/{orgID}/remediations/action-setsremediation:deleteOrganizationBulk delete action sets
POST /orgs/{orgID}/remediations/action-sets/{actionSetID}/actions remediation:executeOrganizationExecute remediation actions
GET /reports/prepatchreport:readOrganizationWhen using groupId parameter, user must have report:read permission on the group's organization View pre-patch report
GET /reports/needs-attentionreport:readOrganizationView devices needing attention report
POST /policies/{policyID}/cloneSource policy read permission + target policy create permission Multiple OrganizationsRequires read permission on source policy type and create permission for same policy type in all target organizations Clone policy to multiple organizations
DELETE /users/{userId}/api_keys/{id}all_api_keys:delete OR user_api_key:manageOrganizationall_api_keys:delete for admin access, user_api_key:manage for own keys Delete API key
GET /wis/searchNone (only need to be authenticated)N/ASearch worklets by query
GET /wis/search/{id}None (only need to be authenticated)N/ALoad a worklet by UUID/Legacy id/Alias
POST /config/consent/account/{accountUUID}/org/{orgUUID}/device remote_control_consent:manageOrganizationExclude/include a device from remote consent
DELETE /global/api_keys/{key_id}user_api_key:manage OR all_api_keys:deleteAccount OR GlobalIf the user only has the user_api_key:manage permission, the user must own the key in order to delete it.
GET /global/api_keysuser_api_key:manage OR all_api_keys:listAccount OR GlobalIf a user only has the user_api_key:manage permission, only the keys they own will be returned.
POST /global/api_keysuser_api_key:manageAccount OR Global
POST /global/api_keys/{key_id}/decryptuser_api_key:manageAccount OR GlobalThe user must own the key in order to decrypt it.
PUT /global/api_keys/{key_id}user_api_key:manage OR all_api_keys:modifyAccount OR GlobalIf the user only has the user_api_key:manage permission, the user must own the key in order to delete it.

Related Topics