JumpCloud API

Directory platform for IT management

docs.jumpcloud.com/api ↗
Version
2.0
OpenAPI
3.0.0
Endpoints
416
Schemas
669
82
Quality
Updated
3 days ago
Identity identity directory it-management
Use this API in your AI agent

Query structured spec data via REST or MCP. Get exactly what your agent needs.

Get API Key

Server URLs

https://console.jumpcloud.com/api/v2

Endpoints

Activedirectory 9 endpoints

GET /activedirectories

This endpoint allows you to list all your Active Directory Instances.

Sample Request

curl -X GET https://console.jumpcloud.com/api/v2/activedirectories/ \
  -H 'accept: application/json' \
  -H 'content-type: application/json' \
  -H 'x-api-key: {API_KEY}'
operationId: activedirectories_list

Parameters

Name In Required Type Description
fields query optional array

The comma separated fields included in the returned records.
If omitted, the default list of fields will be returned.

filter query optional array

A filter to apply to the query.

Filter structure: <field>:<operator>:<value>.

field = Populate with a valid field from an endpoint response.

operator = Supported operators are: eq, ne, gt, ge, lt, le, between, search, in.
Note: v1 operators differ from v2 operators.

value = Populate with the value you want to search for. Is case sensitive. Supports wild cards.

EX: GET /api/v2/groups?filter=name:eq:Test+Group

limit query optional integer

The number of records to return at once. Limited to 100.

skip query optional integer

The offset into the records to return.

sort query optional array

The comma separated fields used to sort the collection.
Default sort is ascending, prefix with - to sort descending.

x-org-id header optional string

Organization identifier that can be obtained from console settings.

Responses

200
GET /activedirectories
POST /activedirectories

This endpoint allows you to create a new Active Directory.

Sample Request

curl -X POST https://console.jumpcloud.com/api/v2/activedirectories/ \
  -H 'accept: application/json' \
  -H 'content-type: application/json' \
  -H 'x-api-key: {API_KEY}' \
  -d '{
    "domain": "{DC=AD_domain_name;DC=com}"
  }'
operationId: activedirectories_post

Parameters

Name In Required Type Description
x-org-id header optional string

Organization identifier that can be obtained from console settings.

Request Body

application/json
schema active-directory
Property Type Required
id string optional
domain string optional
useCase string optional
primaryAgent string optional

Responses

201
POST /activedirectories
GET /activedirectories/{activedirectory_id}/agents

This endpoint allows you to list all your Active Directory Agents for a given Instance.

Sample Request

curl -X GET https://console.jumpcloud.com/api/v2/activedirectories/{activedirectory_id}/agents \
  -H 'accept: application/json' \
  -H 'content-type: application/json' \
  -H 'x-api-key: {API_KEY}'
operationId: activedirectories_agentsList

Parameters

Name In Required Type Description
activedirectory_id path required string
limit query optional integer

The number of records to return at once. Limited to 100.

skip query optional integer

The offset into the records to return.

sort query optional array

The comma separated fields used to sort the collection.
Default sort is ascending, prefix with - to sort descending.

x-org-id header optional string

Organization identifier that can be obtained from console settings.

Responses

200
GET /activedirectories/{activedirectory_id}/agents
POST /activedirectories/{activedirectory_id}/agents

This endpoint allows you to create a new Active Directory Agent.

Sample Request

curl -X POST https://console.jumpcloud.com/api/v2/activedirectories/{activedirectory_id}/agents \
  -H 'accept: application/json' \
  -H 'content-type: application/json' \
  -H 'x-api-key: {API_KEY}' \
  -d '{ "agent_type":"{SYNC}" }'
operationId: activedirectories_agentsPost

Parameters

Name In Required Type Description
activedirectory_id path required string
x-org-id header optional string

Organization identifier that can be obtained from console settings.

Request Body

application/json
schema active-directory-agent
Property Type Required
agentType string optional

Responses

201
POST /activedirectories/{activedirectory_id}/agents
DELETE /activedirectories/{activedirectory_id}/agents/{agent_id}

This endpoint deletes an Active Directory agent.

Sample Request

curl -X DELETE https://console.jumpcloud.com/api/v2/activedirectories/{activedirectory_id}/agents/{agent_id} \
  -H 'accept: application/json' \
  -H 'content-type: application/json' \
  -H 'x-api-key: {API_KEY}'
operationId: activedirectories_agentsDelete

Parameters

Name In Required Type Description
activedirectory_id path required string
agent_id path required string
x-org-id header optional string

Organization identifier that can be obtained from console settings.

Responses

204
DELETE /activedirectories/{activedirectory_id}/agents/{agent_id}
GET /activedirectories/{activedirectory_id}/agents/{agent_id}

This endpoint returns an Active Directory agent.

Sample Request

curl -X GET https://console.jumpcloud.com/api/v2/activedirectories/{activedirectory_id}/agents/{agent_id} \
  -H 'accept: application/json' \
  -H 'content-type: application/json' \
  -H 'x-api-key: {API_KEY}'
operationId: activedirectories_agentsGet

Parameters

Name In Required Type Description
activedirectory_id path required string
agent_id path required string
x-org-id header optional string

Organization identifier that can be obtained from console settings.

Responses

200
GET /activedirectories/{activedirectory_id}/agents/{agent_id}
DELETE /activedirectories/{id}

This endpoint allows you to delete an Active Directory Instance.

Sample Request

curl -X DELETE https://console.jumpcloud.com/api/v2/activedirectories/{ActiveDirectory_ID} \
  -H 'accept: application/json' \
  -H 'content-type: application/json' \
  -H 'x-api-key: {API_KEY}'
operationId: activedirectories_delete

Parameters

Name In Required Type Description
id path required string

ObjectID of this Active Directory instance.

x-org-id header optional string

Organization identifier that can be obtained from console settings.

Responses

200

OK

DELETE /activedirectories/{id}
GET /activedirectories/{id}

This endpoint returns a specific Active Directory.

Sample Request

curl -X GET https://console.jumpcloud.com/api/v2/activedirectories/{ActiveDirectory_ID} \
  -H 'accept: application/json' \
  -H 'content-type: application/json' \
  -H 'x-api-key: {API_KEY}'
operationId: activedirectories_get

Parameters

Name In Required Type Description
id path required string

ObjectID of this Active Directory instance.

x-org-id header optional string

Organization identifier that can be obtained from console settings.

Responses

200
GET /activedirectories/{id}
PATCH /activedirectories/{id}

This endpoint allows you to update Active Directory.

  • AD as Authority - password in AD - 2-way sync use case is selected.
  • JC as Authority - one-way sync from AD.
  • Two way sync - 2-way sync use case is selected

Sample Request

curl -X PATCH https://console.jumpcloud.com/api/v2/activedirectories/{Domain_ID} \
  -H 'accept: application/json' \
  -H 'content-type: application/json' \
  -H 'x-api-key: {API_KEY}' \
  -d '{
        "domain": "{DC=DOMAIN;DC=COM}",
        "use_case": "{ADASAUTHORITY}"
    }' \
operationId: activedirectories_patch

Parameters

Name In Required Type Description
id path required string

ObjectID of this Active Directory instance.

x-org-id header optional string

Organization identifier that can be obtained from console settings.

Request Body

application/json
schema active-directory
Property Type Required
id string optional
domain string optional
useCase string optional
primaryAgent string optional

Responses

200
PATCH /activedirectories/{id}

Administrators 4 endpoints

DELETE /administrators/{administrator_id}/organizationlinks/{id}

This endpoint removes the association link between an Administrator and an Organization.

operationId: administratorOrganizations_removeByAdministrator

Parameters

Name In Required Type Description
administrator_id path required string
id path required string

Responses

204

No Content

400
401
403
404
500
DELETE /administrators/{administrator_id}/organizationlinks/{id}
GET /administrators/{id}/organizationlinks

This endpoint returns the association links between an Administrator and Organizations.

operationId: administratorOrganizations_listByAdministrator

Parameters

Name In Required Type Description
id path required string
limit query optional integer

The number of records to return at once. Limited to 100.

skip query optional integer

The offset into the records to return.

Responses

200

OK

400
401
403
404
500
GET /administrators/{id}/organizationlinks
POST /administrators/{id}/organizationlinks

This endpoint allows you to grant Administrator access to an Organization.

operationId: administratorOrganizations_createByAdministrator

Parameters

Name In Required Type Description
id path required string

Request Body

application/json
schema AdministratorOrganizationLinkReq
Property Type Required
organization string optional

Responses

201

OK

400
401
403
404
500
POST /administrators/{id}/organizationlinks
GET /organizations/{id}/administratorlinks

This endpoint returns the association links between an Organization and Administrators.

operationId: administratorOrganizations_listByOrganization

Parameters

Name In Required Type Description
id path required string
limit query optional integer

The number of records to return at once. Limited to 100.

skip query optional integer

The offset into the records to return.

Responses

200
400
401
403
404
500
GET /organizations/{id}/administratorlinks

Aggregatedpolicystats 1 endpoints

GET /systems/{systemObjectId}/aggregated-policy-stats

Gets the aggregated policy stats for a system.

Sample Request

curl -X GET https://console.jumpcloud.com/api/v2/systems/{system_object_id}/aggregated-policy-stats \
  -H 'Accept: application/json' \
  -H 'Content-Type: application/json' \
  -H 'x-api-key:{API_KEY}'
operationId: AggregatedPolicyResults_Get

Parameters

Name In Required Type Description
systemObjectId path required string
organizationObjectId query optional string

Responses

default

An unexpected error response.

200

A successful response.

GET /systems/{systemObjectId}/aggregated-policy-stats

Applemdm 19 endpoints

GET /applemdms

Get a list of all Apple MDM configurations. An empty topic indicates that a signed certificate from Apple has not been provided to the PUT endpoint yet.

Note: currently only one MDM configuration per organization is supported.

Sample Request

curl https://console.jumpcloud.com/api/v2/applemdms \
  -H 'accept: application/json' \
  -H 'content-type: application/json' \
  -H 'x-api-key: {API_KEY}'
operationId: applemdms_list

Parameters

Name In Required Type Description
x-org-id header optional string

Organization identifier that can be obtained from console settings.

limit query optional integer
skip query optional integer

The offset into the records to return.

filter query optional array

A filter to apply to the query.

Filter structure: <field>:<operator>:<value>.

field = Populate with a valid field from an endpoint response.

operator = Supported operators are: eq, ne, gt, ge, lt, le, between, search, in.
Note: v1 operators differ from v2 operators.

value = Populate with the value you want to search for. Is case sensitive. Supports wild cards.

EX: GET /api/v2/groups?filter=name:eq:Test+Group

Responses

200
GET /applemdms
GET /applemdms/{apple_mdm_id}/csr

Retrieves an Apple MDM signed CSR Plist for an organization. The user must supply the returned plist to Apple for signing, and then provide the certificate provided by Apple back into the PUT API.

Sample Request

  curl -X GET https://console.jumpcloud.com/api/v2/applemdms/{APPLE_MDM_ID}/csr \
  -H 'accept: application/json' \
  -H 'content-type: application/json' \
  -H 'x-api-key: {API_KEY}'
operationId: applemdms_csrget

Parameters

Name In Required Type Description
apple_mdm_id path required string
x-org-id header optional string

Organization identifier that can be obtained from console settings.

Responses

200
400
401
403
404
409
500
GET /applemdms/{apple_mdm_id}/csr
GET /applemdms/{apple_mdm_id}/depkey

Retrieves an Apple MDM DEP Public Key.

Sample Request

curl https://console.jumpcloud.com/api/v2/applemdms/{APPLE_MDM_ID}/depkey \
  -H 'accept: application/x-pem-file' \
  -H 'content-type: application/json' \
  -H 'x-api-key: {API_KEY}'
operationId: applemdms_depkeyget

Parameters

Name In Required Type Description
apple_mdm_id path required string
x-org-id header optional string

Organization identifier that can be obtained from console settings.

Responses

200
400
401
403
404
409
500
GET /applemdms/{apple_mdm_id}/depkey
GET /applemdms/{apple_mdm_id}/devices

Lists all Apple MDM devices.

The filter and sort queries will allow the following fields:
createdAt
depRegistered
enrolled
id
osVersion
serialNumber
udid

Sample Request

  curl -X GET https://console.jumpcloud.com/api/v2/applemdms/{apple_mdm_id}/devices \
  -H 'accept: application/json' \
  -H 'x-api-key: {API_KEY}' \
  -d '{}'
operationId: applemdms_deviceslist

Parameters

Name In Required Type Description
apple_mdm_id path required string
limit query optional integer

The number of records to return at once. Limited to 100.

x-org-id header optional string

Organization identifier that can be obtained from console settings.

skip query optional integer

The offset into the records to return.

filter query optional array

A filter to apply to the query.

Filter structure: <field>:<operator>:<value>.

field = Populate with a valid field from an endpoint response.

operator = Supported operators are: eq, ne, gt, ge, lt, le, between, search, in.
Note: v1 operators differ from v2 operators.

value = Populate with the value you want to search for. Is case sensitive. Supports wild cards.

EX: GET /api/v2/groups?filter=name:eq:Test+Group

sort query optional array

The comma separated fields used to sort the collection.
Default sort is ascending, prefix with - to sort descending.

x-total-count header optional integer

Responses

200

OK

400
401
403
404
409
500
GET /applemdms/{apple_mdm_id}/devices
DELETE /applemdms/{apple_mdm_id}/devices/{device_id}

Remove a single Apple MDM device from MDM enrollment.

Sample Request

  curl -X DELETE https://console.jumpcloud.com/api/v2/applemdms/{apple_mdm_id}/devices/{device_id} \
  -H 'accept: application/json' \
  -H 'x-api-key: {API_KEY}'
operationId: applemdms_deletedevice

Parameters

Name In Required Type Description
x-org-id header optional string

Organization identifier that can be obtained from console settings.

apple_mdm_id path required string
device_id path required string

Responses

200

OK

DELETE /applemdms/{apple_mdm_id}/devices/{device_id}
GET /applemdms/{apple_mdm_id}/devices/{device_id}

Gets a single Apple MDM device.

Sample Request

  curl -X GET https://console.jumpcloud.com/api/v2/applemdms/{apple_mdm_id}/devices/{device_id} \
  -H 'accept: application/json' \
  -H 'x-api-key: {API_KEY}'
operationId: applemdms_getdevice

Parameters

Name In Required Type Description
x-org-id header optional string

Organization identifier that can be obtained from console settings.

apple_mdm_id path required string
device_id path required string

Responses

200

OK

400
401
403
404
409
500
GET /applemdms/{apple_mdm_id}/devices/{device_id}
POST /applemdms/{apple_mdm_id}/devices/{device_id}/clearActivationLock

Clears the activation lock on the specified device.

Sample Request

  curl -X POST https://console.jumpcloud.com/api/v2/applemdms/{apple_mdm_id}/devices/{device_id}/clearActivationLock \
  -H 'accept: application/json' \
  -H 'content-type: application/json' \
  -H 'x-api-key: {API_KEY}' \
  -d '{}'
operationId: applemdms_devicesClearActivationLock

Parameters

Name In Required Type Description
apple_mdm_id path required string
device_id path required string
x-org-id header optional string

Organization identifier that can be obtained from console settings.

Responses

204
400
401
403
404
409
500
POST /applemdms/{apple_mdm_id}/devices/{device_id}/clearActivationLock
POST /applemdms/{apple_mdm_id}/devices/{device_id}/erase

Erases a DEP-enrolled device.

Sample Request

  curl -X POST https://console.jumpcloud.com/api/v2/applemdms/{apple_mdm_id}/devices/{device_id}/erase \
  -H 'accept: application/json' \
  -H 'content-type: application/json' \
  -H 'x-api-key: {API_KEY}' \
  -d '{}'
operationId: applemdms_deviceserase

Parameters

Name In Required Type Description
apple_mdm_id path required string
device_id path required string
x-org-id header optional string

Organization identifier that can be obtained from console settings.

Request Body

application/json
schema ApplemdmsDeviceseraseRequest
Property Type Required
pin string optional

Responses

204
400
401
403
404
409
500
POST /applemdms/{apple_mdm_id}/devices/{device_id}/erase
POST /applemdms/{apple_mdm_id}/devices/{device_id}/lock

Locks a DEP-enrolled device.

Sample Request

  curl -X POST https://console.jumpcloud.com/api/v2/applemdms/{apple_mdm_id}/devices/{device_id}/lock \
  -H 'accept: application/json' \
  -H 'content-type: application/json' \
  -H 'x-api-key: {API_KEY}' \
  -d '{}'
operationId: applemdms_deviceslock

Parameters

Name In Required Type Description
apple_mdm_id path required string
device_id path required string
x-org-id header optional string

Organization identifier that can be obtained from console settings.

Request Body

application/json
schema ApplemdmsDeviceslockRequest
Property Type Required
pin string optional

Responses

204
400
401
403
404
409
500
POST /applemdms/{apple_mdm_id}/devices/{device_id}/lock
POST /applemdms/{apple_mdm_id}/devices/{device_id}/osUpdateStatus

Pass through to request the status of an OS update

Sample Request

curl -X POST https://console.jumpcloud.com/api/v2/applemdms/{apple_mdm_id}/devices/{device_id}/osUpdateStatus \
  -H 'accept: application/json' \
  -H 'content-type: application/json' \
  -H 'x-api-key: {API_KEY}' \
  -d '{}'
operationId: applemdms_devicesOSUpdateStatus

Parameters

Name In Required Type Description
apple_mdm_id path required string
device_id path required string
x-org-id header optional string

Organization identifier that can be obtained from console settings.

Responses

204
400
401
403
404
409
500
POST /applemdms/{apple_mdm_id}/devices/{device_id}/osUpdateStatus
POST /applemdms/{apple_mdm_id}/devices/{device_id}/refreshActivationLockInformation

Refreshes the activation lock information for a device

Sample Request

curl -X POST https://console.jumpcloud.com/api/v2/applemdms/{apple_mdm_id}/devices/{device_id}/refreshActivationLockInformation \
  -H 'accept: application/json' \
  -H 'content-type: application/json' \
  -H 'x-api-key: {API_KEY}' \
  -d '{}'
operationId: applemdms_devicesRefreshActivationLockInformation

Parameters

Name In Required Type Description
apple_mdm_id path required string
device_id path required string
x-org-id header optional string

Organization identifier that can be obtained from console settings.

Responses

204
400
401
403
404
409
500
POST /applemdms/{apple_mdm_id}/devices/{device_id}/refreshActivationLockInformation
POST /applemdms/{apple_mdm_id}/devices/{device_id}/restart

Restarts a DEP-enrolled device.

Sample Request

  curl -X POST https://console.jumpcloud.com/api/v2/applemdms/{apple_mdm_id}/devices/{device_id}/restart \
  -H 'accept: application/json' \
  -H 'content-type: application/json' \
  -H 'x-api-key: {API_KEY}' \
  -d '{"kextPaths": ["Path1", "Path2"]}'
operationId: applemdms_devicesrestart

Parameters

Name In Required Type Description
apple_mdm_id path required string
device_id path required string
x-org-id header optional string

Organization identifier that can be obtained from console settings.

Request Body

application/json
schema ApplemdmsDevicesrestartRequest
Property Type Required
kextPaths array optional

Responses

204
400
401
403
404
409
500
POST /applemdms/{apple_mdm_id}/devices/{device_id}/restart
POST /applemdms/{apple_mdm_id}/devices/{device_id}/scheduleOSUpdate

Schedules an OS update for a device

Sample Request

curl -X POST https://console.jumpcloud.com/api/v2/applemdms/{apple_mdm_id}/devices/{device_id}/scheduleOSUpdate \
  -H 'accept: application/json' \
  -H 'content-type: application/json' \
  -H 'x-api-key: {API_KEY}' \
  -d '{"install_action": "INSTALL_ASAP", "product_key": "key"}'
operationId: applemdms_devicesScheduleOSUpdate

Parameters

Name In Required Type Description
apple_mdm_id path required string
device_id path required string
x-org-id header optional string

Organization identifier that can be obtained from console settings.

Request Body

application/json
schema ScheduleOSUpdate
Property Type Required
product_key string required
install_action string required
max_user_deferrals integer optional

Responses

204
400
401
403
404
409
500
POST /applemdms/{apple_mdm_id}/devices/{device_id}/scheduleOSUpdate
POST /applemdms/{apple_mdm_id}/devices/{device_id}/shutdown

Shuts down a DEP-enrolled device.

Sample Request

  curl -X POST https://console.jumpcloud.com/api/v2/applemdms/{apple_mdm_id}/devices/{device_id}/shutdown \
  -H 'accept: application/json' \
  -H 'content-type: application/json' \
  -H 'x-api-key: {API_KEY}' \
  -d '{}'
operationId: applemdms_devicesshutdown

Parameters

Name In Required Type Description
apple_mdm_id path required string
device_id path required string
x-org-id header optional string

Organization identifier that can be obtained from console settings.

Responses

204
400
401
403
404
409
500
POST /applemdms/{apple_mdm_id}/devices/{device_id}/shutdown
GET /applemdms/{apple_mdm_id}/enrollmentprofiles

Get a list of enrollment profiles for an apple mdm.

Note: currently only one enrollment profile is supported.

Sample Request

 curl https://console.jumpcloud.com/api/v2/applemdms/{APPLE_MDM_ID}/enrollmentprofiles \
  -H 'accept: application/json' \
  -H 'content-type: application/json' \
  -H 'x-api-key: {API_KEY}'
operationId: applemdms_enrollmentprofileslist

Parameters

Name In Required Type Description
apple_mdm_id path required string
x-org-id header optional string

Organization identifier that can be obtained from console settings.

Responses

200
GET /applemdms/{apple_mdm_id}/enrollmentprofiles
GET /applemdms/{apple_mdm_id}/enrollmentprofiles/{id}

Get an enrollment profile

Currently only requesting the mobileconfig is supported.

Sample Request

curl https://console.jumpcloud.com/api/v2/applemdms/{APPLE_MDM_ID}/enrollmentprofiles/{ID} \
  -H 'accept: application/x-apple-aspen-config' \
  -H 'content-type: application/json' \
  -H 'x-api-key: {API_KEY}'
operationId: applemdms_enrollmentprofilesget

Parameters

Name In Required Type Description
apple_mdm_id path required string
id path required string
x-org-id header optional string

Organization identifier that can be obtained from console settings.

Responses

200
GET /applemdms/{apple_mdm_id}/enrollmentprofiles/{id}
POST /applemdms/{apple_mdm_id}/refreshdepdevices

Refreshes the list of devices that a JumpCloud admin has added to their virtual MDM in Apple Business Manager - ABM so that they can be DEP enrolled with JumpCloud.

Sample Request

  curl -X POST https://console.jumpcloud.com/api/v2/applemdms/{apple_mdm_id}/refreshdepdevices \
  -H 'accept: application/json' \
  -H 'content-type: application/json' \
  -H 'x-api-key: {API_KEY}' \
  -d '{}'
operationId: applemdms_refreshdepdevices

Parameters

Name In Required Type Description
apple_mdm_id path required string
x-org-id header optional string

Organization identifier that can be obtained from console settings.

Responses

204
400
401
403
404
409
500
POST /applemdms/{apple_mdm_id}/refreshdepdevices
DELETE /applemdms/{id}

Removes an Apple MDM configuration.

Warning: This is a destructive operation and will remove your Apple Push Certificates. We will no longer be able to manage your devices and the only recovery option is to re-register all devices into MDM.

Sample Request

curl -X DELETE https://console.jumpcloud.com/api/v2/applemdms/{id} \
  -H 'accept: application/json' \
  -H 'content-type: application/json' \
  -H 'x-api-key: {API_KEY}'
operationId: applemdms_delete

Parameters

Name In Required Type Description
id path required string
x-org-id header optional string

Organization identifier that can be obtained from console settings.

Responses

200
400
401
403
404
409
500
DELETE /applemdms/{id}
PUT /applemdms/{id}

Updates an Apple MDM configuration. This endpoint is used to supply JumpCloud with a signed certificate from Apple in order to finalize the setup and allow JumpCloud to manage your devices. It may also be used to update the DEP Settings.

Sample Request

  curl -X PUT https://console.jumpcloud.com/api/v2/applemdms/{ID} \
  -H 'accept: application/json' \
  -H 'content-type: application/json' \
  -H 'x-api-key: {API_KEY}' \
  -d '{
    "name": "MDM name",
    "appleSignedCert": "{CERTIFICATE}",
    "encryptedDepServerToken": "{SERVER_TOKEN}",
    "dep": {
      "welcomeScreen": {
        "title": "Welcome",
        "paragraph": "In just a few steps, you will be working securely from your Mac.",
        "button": "continue",
      },
    },
  }'
operationId: applemdms_put

Parameters

Name In Required Type Description
id path required string
x-org-id header optional string

Organization identifier that can be obtained from console settings.

Request Body

application/json
schema apple-mdm-patch
Property Type Required
dep object optional
welcomeScreen object optional
title string optional
button string optional
paragraph string optional
setupAssistantOptions array optional
option string optional
enableZeroTouchEnrollment boolean optional
ades object optional
ios object optional
setupOptions array optional
welcomeScreen object optional
title string optional
button string optional
paragraph string optional
setupAssistantOptions array optional
option string optional
enableZeroTouchEnrollment boolean optional
defaultDeviceGroupObjectIds array optional
macos object optional
setupOptions array optional
welcomeScreen object optional
title string optional
button string optional
paragraph string optional
setupAssistantOptions array optional
option string optional
enableZeroTouchEnrollment boolean optional
defaultDeviceGroupObjectIds array optional
name string optional
appleSignedCert string optional
defaultSystemGroupID string optional
appleCertCreatorAppleID string optional
encryptedDepServerToken string optional
allowMobileUserEnrollment boolean optional
defaultIosUserEnrollmentDeviceGroupID string optional

Responses

200
400
401
403
404
409
500
PUT /applemdms/{id}

Applications 5 endpoints

GET /applications/{application_id}

The endpoint retrieves an Application.

operationId: applications_get

Parameters

Name In Required Type Description
application_id path required string

ObjectID of the Application.

x-org-id header optional string

Organization identifier that can be obtained from console settings.

Responses

200

OK

GET /applications/{application_id}
POST /applications/{application_id}/import/jobs

This endpoint allows you to create a user import job that will import new users and/or update existing users in JumpCloud from the application. The endpoint can currently only be used for applications that have an active Identity Management custom API integration. The request will fail with a “Not found” error for applications if that type of integration is not configured. To learn more about configuring this type of integration, read Import users from an external identity source using a custom API integration.

Sample Request

curl -X POST https://console.jumpcloud.com/api/v2/applications/{application_id}/import/jobs \
-H 'Accept: application/json' \
-H 'Content-Type: application/json' \
-H 'x-api-key: {API_KEY}' \
-H 'x-org-id: {ORG_ID}' \
-d '{
    "allowUserReactivation": true,
    "operations": [
        "users.create",
        "users.update"
    ]
    "queryString": "location=Chicago&department=IT"
  }'
operationId: import_create

Parameters

Name In Required Type Description
application_id path required string

ObjectID of the Application.

x-org-id header optional string

Organization identifier that can be obtained from console settings.

Request Body

application/json
schema ImportUsersRequest
Property Type Required
operations array optional
queryString string optional
allowUserReactivation boolean optional

Responses

200

OK

400
401
403
404
500
POST /applications/{application_id}/import/jobs
GET /applications/{application_id}/import/users

Get a list of users to import from an Application IdM service provider.

operationId: import_users

Parameters

Name In Required Type Description
application_id path required string

ObjectID of the Application.

filter query optional string

Filter users by a search term

query query optional string

URL query to merge with the service provider request

sort query optional string

Sort users by supported fields

sortOrder query optional string
x-org-id header optional string

Organization identifier that can be obtained from console settings.

limit query optional integer

The number of records to return at once. Limited to 100.

skip query optional integer

The offset into the records to return.

Responses

200

OK

GET /applications/{application_id}/import/users
DELETE /applications/{application_id}/logo

Deletes the specified image from an application

operationId: applications_deleteLogo

Parameters

Name In Required Type Description
application_id path required string
x-org-id header optional string

Organization identifier that can be obtained from console settings.

Responses

204

NO_CONTENT

400
401
403
404
409
500
DELETE /applications/{application_id}/logo
POST /applications/{application_id}/logo

This endpoint sets the logo for an application.

Sample Request

curl -X POST 'https://console.jumpcloud.com/api/v2/applications/{Application_ID}/logo \
  -H 'accept: application/json' \
  -H 'content-type: application/json' \
  -H 'x-api-key: {API_KEY}'
operationId: applications_postLogo

Parameters

Name In Required Type Description
application_id path required string
x-org-id header optional string

Organization identifier that can be obtained from console settings.

Request Body

multipart/form-data
schema ApplicationsPostLogoRequest
Property Type Required
image string optional

Responses

204

NO_CONTENT

400
401
403
404
409
500
POST /applications/{application_id}/logo

Authenticationpolicies 5 endpoints

GET /authn/policies

Get a list of all authentication policies.

Sample Request

curl https://console.jumpcloud.com/api/v2/authn/policies \
  -H 'accept: application/json' \
  -H 'content-type: application/json' \
  -H 'x-api-key: {API_KEY}'
operationId: authnpolicies_list

Parameters

Name In Required Type Description
x-org-id header optional string

Organization identifier that can be obtained from console settings.

x-total-count header optional integer
limit query optional integer

The number of records to return at once. Limited to 100.

skip query optional integer

The offset into the records to return.

filter query optional array

A filter to apply to the query.

Filter structure: <field>:<operator>:<value>.

field = Populate with a valid field from an endpoint response.

operator = Supported operators are: eq, ne, gt, ge, lt, le, between, search, in.
Note: v1 operators differ from v2 operators.

value = Populate with the value you want to search for. Is case sensitive. Supports wild cards.

EX: GET /api/v2/groups?filter=name:eq:Test+Group

sort query optional array

The comma separated fields used to sort the collection.
Default sort is ascending, prefix with - to sort descending.

Responses

200

OK

400
401
403
404
409
500
GET /authn/policies
POST /authn/policies

Create an authentication policy.

Sample Request

curl -X POST https://console.jumpcloud.com/api/v2/authn/policies \
  -H 'accept: application/json' \
  -H 'content-type: application/json' \
  -H 'x-api-key: {API_KEY}' \
  -d '{
    "name": "Sample Policy",
    "disabled": false,
    "effect": {
      "action": "allow"
    },
    "targets": {
      "users": {
        "inclusions": ["ALL"]
      },
      "userGroups": {
        "exclusions": [{USER_GROUP_ID}]
      },
      "resources": [ {"type": "user_portal" } ]
    },
    "conditions":{
      "ipAddressIn": [{IP_LIST_ID}]
    }
  }'
operationId: authnpolicies_post

Parameters

Name In Required Type Description
x-org-id header optional string

Organization identifier that can be obtained from console settings.

Request Body

application/json
schema AuthnPolicy
Property Type Required
id string optional
name string optional
type string optional
effect object optional
action string required
obligations object optional
mfa object optional
required boolean optional
userVerification object optional
requirement string optional
targets object optional
users object optional
inclusions array optional
resources array optional
id string optional
type string required
userGroups object optional
exclusions array optional
inclusions array optional
userAttributes object optional
exclusions array optional
field string optional
value object optional
operator string optional
inclusions array optional
field string optional
value object optional
operator string optional
disabled boolean optional
conditions object optional
description string optional

Responses

201

Created

400
401
403
404
409
500
POST /authn/policies
DELETE /authn/policies/{id}

Delete the specified authentication policy.

Sample Request

curl -X DELETE https://console.jumpcloud.com/api/v2/authn/policies/{id} \
  -H 'accept: application/json' \
  -H 'content-type: application/json' \
  -H 'x-api-key: {API_KEY}'
operationId: authnpolicies_delete

Parameters

Name In Required Type Description
id path required string

Unique identifier of the authentication policy

x-org-id header optional string

Organization identifier that can be obtained from console settings.

Responses

200

OK

400
401
403
404
409
500
DELETE /authn/policies/{id}
GET /authn/policies/{id}

Return a specific authentication policy.

Sample Request

curl https://console.jumpcloud.com/api/v2/authn/policies/{id} \
  -H 'accept: application/json' \
  -H 'content-type: application/json' \
  -H 'x-api-key: {API_KEY}'
operationId: authnpolicies_get

Parameters

Name In Required Type Description
id path required string

Unique identifier of the authentication policy

x-org-id header optional string

Organization identifier that can be obtained from console settings.

Responses

200

OK

400
401
403
404
409
500
GET /authn/policies/{id}
PATCH /authn/policies/{id}

Patch the specified authentication policy.

Sample Request

curl -X PATCH https://console.jumpcloud.com/api/v2/authn/policies/{id} \
  -H 'accept: application/json' \
  -H 'content-type: application/json' \
  -H 'x-api-key: {API_KEY}' \
  -d '{ "disabled": false }'
operationId: authnpolicies_patch

Parameters

Name In Required Type Description
id path required string

Unique identifier of the authentication policy

x-org-id header optional string

Organization identifier that can be obtained from console settings.

Request Body

application/json
schema AuthnPolicy
Property Type Required
id string optional
name string optional
type string optional
effect object optional
action string required
obligations object optional
mfa object optional
required boolean optional
userVerification object optional
requirement string optional
targets object optional
users object optional
inclusions array optional
resources array optional
id string optional
type string required
userGroups object optional
exclusions array optional
inclusions array optional
userAttributes object optional
exclusions array optional
field string optional
value object optional
operator string optional
inclusions array optional
field string optional
value object optional
operator string optional
disabled boolean optional
conditions object optional
description string optional

Responses

200

OK

400
401
403
404
409
500
PATCH /authn/policies/{id}

Bulkjobrequests 7 endpoints

POST /bulk/user/expires

The endpoint allows you to start a bulk job to asynchronously expire users.

operationId: bulk_userExpires

Parameters

Name In Required Type Description
x-org-id header optional string

Organization identifier that can be obtained from console settings.

Request Body

application/json
schema BulkUserExpiresRequest
array of object
Property Type Required
id string optional
attributes array optional
organization string optional

Responses

201

Created

POST /bulk/user/expires
POST /bulk/user/unlocks

The endpoint allows you to start a bulk job to asynchronously unlock users.

operationId: bulk_userUnlocks

Parameters

Name In Required Type Description
x-org-id header optional string

Organization identifier that can be obtained from console settings.

Request Body

application/json
schema BulkUserUnlocksRequest
array of object
Property Type Required
id string optional
attributes array optional
organization string optional

Responses

201

Created

POST /bulk/user/unlocks
PATCH /bulk/users

The endpoint allows you to create a bulk job to asynchronously update users. See Update a System User for full list of attributes.

Sample Request

curl -X PATCH https://console.jumpcloud.com/api/v2/bulk/users \
  -H 'Accept: application/json' \
  -H 'Content-Type: application/json' \
  -H 'x-api-key: {API_KEY}' \
  -d '[
	{
	  "id":"5be9fb4ddb01290001e85109",
		"firstname":"{UPDATED_FIRSTNAME}",
		"department":"{UPDATED_DEPARTMENT}",
		"attributes":[
			{"name":"Custom","value":"{ATTRIBUTE_VALUE}"}
		]
	},
	{
	  "id":"5be9fb4ddb01290001e85109",
		"firstname":"{UPDATED_FIRSTNAME}",
		"costCenter":"{UPDATED_COST_CENTER}",
		"phoneNumbers":[
			{"type":"home","number":"{HOME_PHONE_NUMBER}"},
			{"type":"work","number":"{WORK_PHONE_NUMBER}"}
		]
	}
]
operationId: bulk_usersUpdate

Parameters

Name In Required Type Description
x-org-id header optional string

Organization identifier that can be obtained from console settings.

Request Body

application/json
schema BulkUsersUpdateRequest
array of object
Property Type Required
id string optional
email string optional
lastname string optional
username string optional
firstname string optional
attributes array optional
organization string optional

Responses

201
PATCH /bulk/users
POST /bulk/users

The endpoint allows you to create a bulk job to asynchronously create users.
See Create a System User
for the full list of attributes.

Default User State

The state of each user in the request can be explicitly passed in or
omitted. If state is omitted, then the user will get created
using the value returned from the
Get an Organization
endpoint. The default user state for bulk created users depends on the
creation-source header. For creation-source:jumpcloud:bulk the
default state is stored in settings.newSystemUserStateDefaults.csvImport.
For other creation-source header values, the default state is stored in
settings.newSystemUserStateDefaults.applicationImport

These default state values can be changed in the admin portal settings
or by using the
Update an Organization
endpoint.

Sample Request

curl -X POST https://console.jumpcloud.com/api/v2/bulk/users \
-H 'Accept: application/json' \
-H 'Content-Type: application/json' \
-H 'x-api-key: {API_KEY}' \
-d '[
  {
    "email":"{email}",
    "firstname":"{firstname}",
    "lastname":"{firstname}",
    "username":"{username}",
    "attributes":[
      {
        "name":"EmployeeID",
        "value":"0000"
      },
      {
        "name":"Custom",
        "value":"attribute"
      }
    ]
  }
]'
operationId: bulk_usersCreate

Parameters

Name In Required Type Description
x-org-id header optional string

Organization identifier that can be obtained from console settings.

creation-source header optional string

Defines the creation-source header for gapps, o365 and workdays requests.
If the header isn’t sent, the default value is jumpcloud:bulk, if you send the header with a malformed value you receive a 400 error.

Request Body

application/json
schema BulkUsersCreateRequest
array of object
Property Type Required
email string optional
lastname string optional
username string optional
firstname string optional
attributes array optional

Responses

201
POST /bulk/users
GET /bulk/users/{job_id}/results

This endpoint will return the results of particular user import or update job request.

Sample Request

curl -X GET \
  https://console.jumpcloud.com/api/v2/bulk/users/{ImportJobID}/results \
  -H 'Accept: application/json' \
  -H 'Content-Type: application/json' \
  -H 'x-api-key: {API_KEY}'
operationId: bulk_usersCreateResults

Parameters

Name In Required Type Description
job_id path required string
limit query optional integer

The number of records to return at once. Limited to 100.

skip query optional integer

The offset into the records to return.

x-org-id header optional string

Organization identifier that can be obtained from console settings.

Responses

200
GET /bulk/users/{job_id}/results
GET /bulk/userstates

The endpoint allows you to list scheduled statechange jobs.

Sample Request

curl -X GET "https://console.jumpcloud.com/api/v2/bulk/userstates" \
  -H 'x-api-key: {API_KEY}' \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json'
operationId: bulk_userStatesList

Parameters

Name In Required Type Description
limit query optional integer

The number of records to return at once. Limited to 100.

filter query optional array

A filter to apply to the query.

Filter structure: <field>:<operator>:<value>.

field = Populate with a valid field from an endpoint response.

operator = Supported operators are: eq, ne, gt, ge, lt, le, between, search, in.
Note: v1 operators differ from v2 operators.

value = Populate with the value you want to search for. Is case sensitive. Supports wild cards.

EX: GET /api/v2/groups?filter=name:eq:Test+Group

skip query optional integer

The offset into the records to return.

x-org-id header optional string

Organization identifier that can be obtained from console settings.

userid query optional string

The systemuser id to filter by.

Responses

200

OK

400
401
403
404
409
500
GET /bulk/userstates
POST /bulk/userstates

This endpoint allows you to create scheduled statechange jobs.

Sample Request

curl -X POST "https://console.jumpcloud.com/api/v2/bulk/userstates" \
  -H 'x-api-key: {API_KEY}' \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json' \
  -d '{
    "user_ids": ["{User_ID_1}", "{User_ID_2}", "{User_ID_3}"],
    "state": "SUSPENDED",
    "start_date": "2000-01-01T00:00:00.000Z"
  }'
operationId: bulk_userStatesCreate

Parameters

Name In Required Type Description
x-org-id header optional string

Organization identifier that can be obtained from console settings.

Request Body

application/json
schema bulk-scheduled-statechange-create
Property Type Required
state string required
user_ids array required
start_date string required
send_activation_emails boolean optional
activation_email_override string optional

Responses

201

Created

400

Bad Request

401

Unauthorized

500

Internal Server Error

POST /bulk/userstates

Schemas

object ADE
{
  "type": "object",
  "title": "ADE",
  "properties": {
    "setupOptions": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/SetupAssistantOption"
      },
      "description": "A list of configured setup options for this enrollment."
    },
    "welcomeScreen": {
      "$ref": "#/components/schemas/DEPWelcomeScreen"
    },
    "setupAssistantOptions": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/DEPSetupAssistantOption"
      },
      "description": "A Setup Option wrapped as an object",
      "x-deprecated": true
    },
    "enableZeroTouchEnrollment": {
      "type": "boolean",
      "description": "A toggle to determine if ADE registered devices should go through JumpCloud Zero Touch Enrollment."
    },
    "defaultDeviceGroupObjectIds": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "nullable": true,
      "description": "An array of ObjectIDs identifying the default device groups for this specific type (based on the OS family) of automated device enrollment. Currently, only a single DeviceGroupID is supported."
    }
  }
}
object ADES
{
  "type": "object",
  "title": "ADES",
  "properties": {
    "ios": {
      "$ref": "#/components/schemas/ADE"
    },
    "macos": {
      "$ref": "#/components/schemas/ADE"
    }
  }
}
object AccessRequestApiRevokeAccessRequestResponse
{
  "type": "object",
  "example": {},
  "properties": {}
}
object AccessRequestApiUpdateAccessRequestRequest
{
  "type": "object",
  "properties": {
    "expiry": {
      "type": "string",
      "format": "date-time"
    },
    "remarks": {
      "type": "string"
    },
    "additionalAttributes": {
      "type": "object"
    },
    "organizationObjectId": {
      "type": "string",
      "format": "byte"
    }
  }
}
object AccessRequestApiUpdateAccessRequestResponse
{
  "type": "object",
  "example": {},
  "properties": {}
}
array ActivedirectoriesAgentsListResponse
{
  "type": "array",
  "items": {
    "$ref": "#/components/schemas/active-directory-agent-list"
  }
}
array ActivedirectoriesListResponse
{
  "type": "array",
  "items": {
    "$ref": "#/components/schemas/active-directory"
  }
}
object Address
{
  "type": "object",
  "properties": {
    "id": {
      "type": "string"
    },
    "type": {
      "type": "string",
      "maxLength": 1024
    },
    "poBox": {
      "type": "string",
      "maxLength": 1024
    },
    "region": {
      "type": "string",
      "maxLength": 1024
    },
    "country": {
      "type": "string",
      "maxLength": 1024
    },
    "locality": {
      "type": "string",
      "maxLength": 1024
    },
    "postalCode": {
      "type": "string",
      "maxLength": 1024
    },
    "streetAddress": {
      "type": "string",
      "maxLength": 1024
    },
    "extendedAddress": {
      "type": "string",
      "maxLength": 1024
    }
  }
}
object Administrator
{
  "type": "object",
  "title": "Administrator",
  "example": {
    "id": "0123456789abcdef01234567",
    "email": "joe@example.com",
    "lastname": "Blough",
    "firstname": "Joe",
    "registered": false,
    "enableMultiFactor": true
  },
  "properties": {
    "id": {
      "type": "string"
    },
    "role": {
      "type": "string"
    },
    "email": {
      "type": "string"
    },
    "lastname": {
      "type": "string"
    },
    "roleName": {
      "type": "string"
    },
    "apiKeySet": {
      "type": "boolean"
    },
    "firstname": {
      "type": "string"
    },
    "suspended": {
      "type": "boolean"
    },
    "registered": {
      "type": "boolean"
    },
    "apiKeyAllowed": {
      "type": "boolean"
    },
    "enableMultiFactor": {
      "type": "boolean"
    },
    "organizationAccessTotal": {
      "type": "number"
    }
  }
}
object AdministratorOrganizationLink
{
  "type": "object",
  "title": "AdministratorOrganizationLink",
  "example": {
    "organization": "6230a0d26a4e4bc86c6b36f1",
    "administrator": "6230a0c233a6cbea7c470398"
  },
  "properties": {
    "organization": {
      "type": "string",
      "description": "The identifier for an organization"
    },
    "administrator": {
      "type": "string",
      "description": "The identifier for an administrator"
    }
  }
}
object AdministratorOrganizationLinkReq
{
  "type": "object",
  "title": "AdministratorOrganizationLinkReq",
  "example": {
    "organization": "6230a0d26a4e4bc86c6b36f1"
  },
  "properties": {
    "organization": {
      "type": "string",
      "description": "The identifier for an organization to link this administrator to."
    }
  }
}
array AdministratorOrganizationsListByAdministratorResponse
{
  "type": "array",
  "items": {
    "$ref": "#/components/schemas/AdministratorOrganizationLink"
  }
}
array AdministratorOrganizationsListByOrganizationResponse
{
  "type": "array",
  "items": {
    "$ref": "#/components/schemas/AdministratorOrganizationLink"
  }
}
object AnyValue
{
  "description": "Can be any value - string, number, boolean, array or object."
}
object AppleMDM
{
  "type": "object",
  "title": "AppleMDM",
  "required": [
    "id"
  ],
  "properties": {
    "id": {
      "type": "string",
      "description": "ObjectId uniquely identifying an MDM Enrollment,"
    },
    "dep": {
      "$ref": "#/components/schemas/DEP"
    },
    "ades": {
      "$ref": "#/components/schemas/ADES"
    },
    "name": {
      "type": "string",
      "maxLength": 255,
      "description": "A friendly name to identify this enrollment.  Not required to be unique."
    },
    "organization": {
      "type": "string",
      "description": "The identifier for an organization"
    },
    "apnsPushTopic": {
      "type": "string",
      "description": "The push topic assigned to this enrollment by Apple after uploading the Signed CSR plist."
    },
    "apnsCertExpiry": {
      "type": "string",
      "description": "The expiration date and time for the APNS Certificate."
    },
    "depServerTokenState": {
      "enum": [
        "unknown",
        "missing",
        "valid",
        "expired"
      ],
      "type": "string",
      "description": "The state of the dep server token, presence and expiry."
    },
    "defaultSystemGroupID": {
      "type": "string",
      "description": "ObjectId uniquely identifying the MDM default System Group.",
      "x-deprecated": true
    },
    "depAccessTokenExpiry": {
      "type": "string",
      "description": "The expiration date and time for the DEP Access Token. This aligns with the DEP Server Token State."
    },
    "appleCertSerialNumber": {
      "type": "string",
      "description": "The serial number of the Apple signed certificate associated to the Device Manager."
    },
    "appleCertCreatorAppleID": {
      "type": "string",
      "description": "The Apple ID of the admin who created the Apple signed certificate associated to the Device Manager."
    },
    "allowMobileUserEnrollment": {
      "type": "boolean",
      "description": "A toggle to allow mobile device enrollment for an organization."
    },
    "defaultIosUserEnrollmentDeviceGroupID": {
      "type": "string",
      "description": "ObjectId uniquely identifying the MDM default iOS user enrollment device group."
    }
  }
}
object ApplemdmsDevicesClearActivationLock500Response
{
  "type": "object",
  "properties": {
    "message": {
      "type": "string"
    }
  }
}
object ApplemdmsDevicesClearActivationLockResponse
{
  "type": "object",
  "properties": {
    "message": {
      "type": "string"
    }
  }
}
object ApplemdmsDevicesOsUpdateStatusResponse
{
  "type": "object",
  "properties": {
    "message": {
      "type": "string"
    }
  }
}
object ApplemdmsDevicesRefreshActivationLockInformation500Response
{
  "type": "object",
  "properties": {
    "message": {
      "type": "string"
    }
  }
}
object ApplemdmsDevicesRefreshActivationLockInformationResponse
{
  "type": "object",
  "properties": {
    "message": {
      "type": "string"
    }
  }
}
object ApplemdmsDevicesScheduleOsUpdateResponse
{
  "type": "object",
  "properties": {
    "message": {
      "type": "string"
    }
  }
}
object ApplemdmsDeviceserase500Response
{
  "type": "object",
  "properties": {
    "message": {
      "type": "string"
    }
  }
}
object ApplemdmsDeviceseraseRequest
{
  "type": "object",
  "properties": {
    "pin": {
      "type": "string",
      "example": "123456",
      "pattern": "^[0-9]{6}$",
      "description": "6-digit PIN, required for MacOS, to erase the device"
    }
  }
}
object ApplemdmsDeviceseraseResponse
{
  "type": "object",
  "properties": {
    "message": {
      "type": "string"
    }
  }
}
array ApplemdmsDeviceslistResponse
{
  "type": "array",
  "items": {
    "$ref": "#/components/schemas/apple-mdm-device"
  }
}
object ApplemdmsDeviceslock500Response
{
  "type": "object",
  "properties": {
    "message": {
      "type": "string"
    }
  }
}
object ApplemdmsDeviceslockRequest
{
  "type": "object",
  "properties": {
    "pin": {
      "type": "string",
      "example": "123456",
      "pattern": "^[0-9]{6}$",
      "description": "6-digit PIN, required for MacOS, to lock the device"
    }
  }
}
object ApplemdmsDeviceslockResponse
{
  "type": "object",
  "properties": {
    "message": {
      "type": "string"
    }
  }
}
object ApplemdmsDevicesrestart500Response
{
  "type": "object",
  "properties": {
    "message": {
      "type": "string"
    }
  }
}
object ApplemdmsDevicesrestartRequest
{
  "type": "object",
  "properties": {
    "kextPaths": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "description": "The string to pass when doing a restart and performing a RebuildKernelCache."
    }
  }
}
object ApplemdmsDevicesrestartResponse
{
  "type": "object",
  "properties": {
    "message": {
      "type": "string"
    }
  }
}
object ApplemdmsDevicesshutdown500Response
{
  "type": "object",
  "properties": {
    "message": {
      "type": "string"
    }
  }
}
object ApplemdmsDevicesshutdownResponse
{
  "type": "object",
  "properties": {
    "message": {
      "type": "string"
    }
  }
}
array ApplemdmsEnrollmentprofileslistResponse
{
  "type": "array",
  "items": {
    "$ref": "#/components/schemas/AppleMDM"
  }
}
array ApplemdmsListResponse
{
  "type": "array",
  "items": {
    "$ref": "#/components/schemas/AppleMDM"
  }
}
object ApplemdmsRefreshdepdevices500Response
{
  "type": "object",
  "properties": {
    "message": {
      "type": "string"
    }
  }
}
object ApplemdmsRefreshdepdevicesResponse
{
  "type": "object",
  "properties": {
    "message": {
      "type": "string"
    }
  }
}
object ApplicationsGetResponse
{
  "type": "object",
  "example": {},
  "properties": {}
}
object ApplicationsPostLogoRequest
{
  "type": "object",
  "properties": {
    "image": {
      "type": "string",
      "format": "binary",
      "description": "The file to upload."
    }
  }
}
array Apps
{
  "type": "array",
  "items": {
    "type": "object",
    "properties": {
      "osId": {
        "type": "integer",
        "format": "int32",
        "example": 1
      },
      "appVersion": {
        "type": "string",
        "example": "1.1.1"
      }
    }
  }
}
object AuthnPolicy
{
  "type": "object",
  "title": "AuthnPolicy",
  "properties": {
    "id": {
      "type": "string",
      "readOnly": true
    },
    "name": {
      "type": "string"
    },
    "type": {
      "$ref": "#/components/schemas/AuthnPolicyType"
    },
    "effect": {
      "$ref": "#/components/schemas/AuthnPolicyEffect"
    },
    "targets": {
      "$ref": "#/components/schemas/AuthnPolicyTargets"
    },
    "disabled": {
      "type": "boolean"
    },
    "conditions": {
      "type": "object",
      "description": "Conditions may be added to an authentication policy using the following conditional language:\n\n```\n<conditions> ::= <expression>\n<expression> ::= <deviceEncrypted> | <deviceManaged> | <ipAddressIn> |\n                 <locationIn> | <notExpression> | <allExpression> |\n                 <anyExpression>\n<deviceEncrypted> ::= { \"deviceEncrypted\": <boolean> }\n<deviceManaged> ::= { \"deviceManaged\": <boolean> }\n<ipAddressIn> ::= { \"ipAddressIn\": [ <objectId>, ... ] }\n<locationIn> ::= { \"locationIn\": {\n                     \"countries\": [\n                       <iso_3166_country_code>, ...\n                     ]\n                   }\n                 }\n<notExpression> ::= { \"not\": <expression> }\n<allExpression> ::= { \"all\": [ <expression>, ... ] }\n<anyExpression> ::= { \"any\": [ <expression>, ... ] }\n```\n\nFor example, to add a condition that applies to IP addresses in a given list, the following condition can be added:\n\n```\n{\"ipAddressIn\": [ <ip_list_object_id> ]}\n```\n\nIf you would rather exclude IP addresses in the given lists, the following condition could be added:\n\n```\n{\n  \"not\": {\n    \"ipAddressIn\": [ <ip_list_object_id_1>, <ip_list_object_id_2> ]\n  }\n}\n```\n\nYou may also include more than one condition and choose whether \"all\" or \"any\" of them must be met for the policy to apply:\n\n```\n{\n  \"all\": [\n    {\n      \"ipAddressIn\": [ <ip_list_object_id>, ... ]\n    },\n    {\n      \"deviceManaged\": true\n    },\n    {\n      \"locationIn\": {\n        countries: [ <iso_3166_country_code>, ... ]\n      }\n    }\n  ]\n}\n```"
    },
    "description": {
      "type": "string"
    }
  },
  "description": "This represents an authentication policy.  See the details of each field for valid values and restrictions."
}
object AuthnPolicyEffect
{
  "type": "object",
  "title": "AuthnPolicyEffect",
  "required": [
    "action"
  ],
  "properties": {
    "action": {
      "enum": [
        "allow",
        "deny",
        "unknown"
      ],
      "type": "string"
    },
    "obligations": {
      "$ref": "#/components/schemas/AuthnPolicyObligations"
    }
  },
  "x-examples": {
    "example-deny": {
      "action": "deny"
    },
    "example-allow": {
      "action": "allow"
    },
    "example-allow-with-mfa": {
      "action": "allow",
      "obligations": {
        "mfa": {
          "required": true
        }
      }
    }
  }
}
object AuthnPolicyObligations
{
  "type": "object",
  "title": "AuthnPolicyObligations",
  "properties": {
    "mfa": {
      "type": "object",
      "properties": {
        "required": {
          "type": "boolean"
        }
      }
    },
    "userVerification": {
      "type": "object",
      "properties": {
        "requirement": {
          "enum": [
            "none",
            "optional",
            "required"
          ],
          "type": "string"
        }
      }
    }
  }
}
object AuthnPolicyResourceTarget
{
  "type": "object",
  "title": "AuthnPolicyResourceTarget",
  "required": [
    "type"
  ],
  "properties": {
    "id": {
      "type": "string",
      "description": "Object ID of the resource target. If undefined, then all resources of the given type are targeted."
    },
    "type": {
      "enum": [
        "user_portal",
        "application",
        "ldap"
      ],
      "type": "string"
    }
  }
}
object AuthnPolicyTargets
{
  "type": "object",
  "title": "AuthnPolicyTargets",
  "properties": {
    "users": {
      "$ref": "#/components/schemas/AuthnPolicyUserTarget"
    },
    "resources": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/AuthnPolicyResourceTarget"
      }
    },
    "userGroups": {
      "$ref": "#/components/schemas/AuthnPolicyUserGroupTarget"
    },
    "userAttributes": {
      "$ref": "#/components/schemas/AuthnPolicyUserAttributeTarget"
    }
  }
}
string AuthnPolicyType
{
  "enum": [
    "user_portal",
    "application",
    "ldap"
  ],
  "type": "string",
  "title": "AuthnPolicyType",
  "default": "user_portal"
}
object AuthnPolicyUserAttributeFilter
{
  "type": "object",
  "title": "AuthnPolicyUserAttributeFilter",
  "properties": {
    "field": {
      "type": "string",
      "description": "The only field that is currently supported is ldap_binding_user"
    },
    "value": {
      "$ref": "#/components/schemas/AnyValue"
    },
    "operator": {
      "enum": [
        "EQ"
      ],
      "type": "string"
    }
  }
}
object AuthnPolicyUserAttributeTarget
{
  "type": "object",
  "title": "AuthnPolicyUserAttributeTarget",
  "properties": {
    "exclusions": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/AuthnPolicyUserAttributeFilter"
      }
    },
    "inclusions": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/AuthnPolicyUserAttributeFilter"
      }
    }
  },
  "description": "User attribute targets are currently only supported for LDAP policies."
}
object AuthnPolicyUserGroupTarget
{
  "type": "object",
  "title": "AuthnPolicyUserGroupTarget",
  "properties": {
    "exclusions": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "inclusions": {
      "type": "array",
      "items": {
        "type": "string"
      }
    }
  }
}
object AuthnPolicyUserTarget
{
  "type": "object",
  "title": "AuthnPolicyUserTarget",
  "properties": {
    "inclusions": {
      "type": "array",
      "items": {
        "type": "string"
      }
    }
  }
}

Versions

Version Endpoints Schemas Ingested Status
2.0 416 669 2026-05-11 current
2.0 416 669 2026-04-20
2.0 416 669 2026-04-20
2.0 416 669 2026-04-16