Microsoft 365 · Schema

microsoft.graph.device

ProductivityCollaborationEmailCalendarFileIdentityMicrosoftMicrosoft Graph

Properties

Name Type Description
id string The unique identifier for an entity. Read-only.
deletedDateTime stringnull Date and time when this object was deleted. Always null when the object hasn't been deleted.
accountEnabled booleannull true if the account is enabled; otherwise, false. Required. Default is true. Supports $filter (eq, ne, not, in). Only callers with at least the Cloud Device Administrator role can set this property.
alternativeSecurityIds array For internal use only. Not nullable. Supports $filter (eq, not, ge, le).
approximateLastSignInDateTime stringnull The timestamp type represents date and time information using ISO 8601 format and is always in UTC time. For example, midnight UTC on Jan 1, 2014 is 2014-01-01T00:00:00Z. Read-only. Supports $filter (
complianceExpirationDateTime stringnull The timestamp when the device is no longer deemed compliant. The timestamp type represents date and time information using ISO 8601 format and is always in UTC time. For example, midnight UTC on Jan 1
deviceCategory stringnull User-defined property set by Intune to automatically add devices to groups and simplify managing devices.
deviceId stringnull Unique identifier set by Azure Device Registration Service at the time of registration. This alternate key can be used to reference the device object. Supports $filter (eq, ne, not, startsWith).
deviceMetadata stringnull For internal use only. Set to null.
deviceOwnership stringnull Ownership of the device. Intune sets this property. The possible values are: unknown, company, personal.
deviceVersion numbernull For internal use only.
displayName stringnull The display name for the device. Maximum length is 256 characters. Required. Supports $filter (eq, ne, not, ge, le, in, startsWith, and eq on null values), $search, and $orderby.
enrollmentProfileName stringnull Enrollment profile applied to the device. For example, Apple Device Enrollment Profile, Device enrollment - Corporate device identifiers, or Windows Autopilot profile name. This property is set by Int
enrollmentType stringnull Enrollment type of the device. Intune sets this property. The possible values are: unknown, userEnrollment, deviceEnrollmentManager, appleBulkWithUser, appleBulkWithoutUser, windowsAzureADJoin, window
isCompliant booleannull true if the device complies with Mobile Device Management (MDM) policies; otherwise, false. Read-only. This can only be updated by Intune for any device OS type or by an approved MDM app for Windows O
isManaged booleannull true if the device is managed by a Mobile Device Management (MDM) app; otherwise, false. This can only be updated by Intune for any device OS type or by an approved MDM app for Windows OS devices. Sup
isManagementRestricted booleannull Indicates whether the device is a member of a restricted management administrative unit. If not set, the default value is null and the default behavior is false. Read-only. To manage a device that's a
isRooted booleannull true if the device is rooted or jail-broken. This property can only be updated by Intune.
managementType stringnull The management channel of the device. This property is set by Intune. The possible values are: eas, mdm, easMdm, intuneClient, easIntuneClient, configurationManagerClient, configurationManagerClientMd
manufacturer stringnull Manufacturer of the device. Read-only.
mdmAppId stringnull Application identifier used to register device into MDM. Read-only. Supports $filter (eq, ne, not, startsWith).
model stringnull Model of the device. Read-only.
onPremisesLastSyncDateTime stringnull The last time at which the object was synced with the on-premises directory. The Timestamp type represents date and time information using ISO 8601 format and is always in UTC time. For example, midni
onPremisesSecurityIdentifier stringnull The on-premises security identifier (SID) for the user who was synchronized from on-premises to the cloud. Read-only. Requires $select to retrieve. Supports $filter (eq).
onPremisesSyncEnabled booleannull true if this object is synced from an on-premises directory; false if this object was originally synced from an on-premises directory but is no longer synced; null if this object has never been synced
operatingSystem stringnull The type of operating system on the device. Required. Supports $filter (eq, ne, not, ge, le, startsWith, and eq on null values).
operatingSystemVersion stringnull The version of the operating system on the device. Required. Supports $filter (eq, ne, not, ge, le, startsWith, and eq on null values).
physicalIds array For internal use only. Not nullable. Supports $filter (eq, not, ge, le, startsWith,/$count eq 0, /$count ne 0).
profileType stringnull The profile type of the device. Possible values: RegisteredDevice (default), SecureVM, Printer, Shared, IoT.
registrationDateTime stringnull Date and time of when the device was registered. The timestamp type represents date and time information using ISO 8601 format and is always in UTC time. For example, midnight UTC on Jan 1, 2014 is 20
systemLabels array List of labels applied to the device by the system. Supports $filter (/$count eq 0, /$count ne 0).
trustType stringnull Type of trust for the joined device. Read-only. Possible values: Workplace (indicates bring your own personal devices), AzureAd (Cloud-only joined devices), ServerAd (on-premises domain joined devices
extensions array The collection of open extensions defined for the device. Read-only. Nullable.
memberOf array Groups and administrative units that this device is a member of. Read-only. Nullable. Supports $expand.
registeredOwners array The user that cloud joined the device or registered their personal device. The registered owner is set at the time of registration. Read-only. Nullable. Supports $expand.
registeredUsers array Collection of registered users of the device. For cloud joined devices and registered personal devices, registered users are set to the same value as registered owners at the time of registration. Rea
transitiveMemberOf array Groups and administrative units that the device is a member of. This operation is transitive. Supports $expand.
View JSON Schema on GitHub

JSON Schema

microsoft-365-microsoft-graph-device-schema.json Raw ↑
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://artifacts.apis.io/microsoft-365/json-schema/microsoft-365-microsoft-graph-device-schema.json",
  "title": "microsoft.graph.device",
  "x-generated": "2026-11-04",
  "x-method": "derived",
  "x-generator": "derive-json-schema.py",
  "x-source": "openapi/microsoft-365-groups-api-openapi.yml#/components/schemas/microsoft.graph.device",
  "allOf": [
    {
      "$ref": "#/$defs/microsoft.graph.directoryObject"
    },
    {
      "title": "device",
      "type": "object",
      "properties": {
        "accountEnabled": {
          "type": [
            "boolean",
            "null"
          ],
          "description": "true if the account is enabled; otherwise, false. Required. Default is true.  Supports $filter (eq, ne, not, in). Only callers with at least the Cloud Device Administrator role can set this property."
        },
        "alternativeSecurityIds": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/microsoft.graph.alternativeSecurityId"
          },
          "description": "For internal use only. Not nullable. Supports $filter (eq, not, ge, le)."
        },
        "approximateLastSignInDateTime": {
          "pattern": "^[0-9]{4,}-(0[1-9]|1[012])-(0[1-9]|[12][0-9]|3[01])T([01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9]([.][0-9]{1,12})?(Z|[+-][0-9][0-9]:[0-9][0-9])$",
          "type": [
            "string",
            "null"
          ],
          "description": "The timestamp type represents date and time information using ISO 8601 format and is always in UTC time. For example, midnight UTC on Jan 1, 2014 is 2014-01-01T00:00:00Z. Read-only. Supports $filter (eq, ne, not, ge, le, and eq on null values) and $orderby.",
          "format": "date-time"
        },
        "complianceExpirationDateTime": {
          "pattern": "^[0-9]{4,}-(0[1-9]|1[012])-(0[1-9]|[12][0-9]|3[01])T([01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9]([.][0-9]{1,12})?(Z|[+-][0-9][0-9]:[0-9][0-9])$",
          "type": [
            "string",
            "null"
          ],
          "description": "The timestamp when the device is no longer deemed compliant. The timestamp type represents date and time information using ISO 8601 format and is always in UTC time. For example, midnight UTC on Jan 1, 2014 is 2014-01-01T00:00:00Z. Read-only.",
          "format": "date-time"
        },
        "deviceCategory": {
          "type": [
            "string",
            "null"
          ],
          "description": "User-defined property set by Intune to automatically add devices to groups and simplify managing devices."
        },
        "deviceId": {
          "type": [
            "string",
            "null"
          ],
          "description": "Unique identifier set by Azure Device Registration Service at the time of registration. This alternate key can be used to reference the device object. Supports $filter (eq, ne, not, startsWith)."
        },
        "deviceMetadata": {
          "type": [
            "string",
            "null"
          ],
          "description": "For internal use only. Set to null."
        },
        "deviceOwnership": {
          "type": [
            "string",
            "null"
          ],
          "description": "Ownership of the device. Intune sets this property. The possible values are: unknown, company, personal."
        },
        "deviceVersion": {
          "maximum": 2147483647,
          "minimum": -2147483648,
          "type": [
            "number",
            "null"
          ],
          "description": "For internal use only.",
          "format": "int32"
        },
        "displayName": {
          "type": [
            "string",
            "null"
          ],
          "description": "The display name for the device. Maximum length is 256 characters. Required. Supports $filter (eq, ne, not, ge, le, in, startsWith, and eq on null values), $search, and $orderby."
        },
        "enrollmentProfileName": {
          "type": [
            "string",
            "null"
          ],
          "description": "Enrollment profile applied to the device. For example, Apple Device Enrollment Profile, Device enrollment - Corporate device identifiers, or Windows Autopilot profile name. This property is set by Intune."
        },
        "enrollmentType": {
          "type": [
            "string",
            "null"
          ],
          "description": "Enrollment type of the device. Intune sets this property. The possible values are: unknown, userEnrollment, deviceEnrollmentManager, appleBulkWithUser, appleBulkWithoutUser, windowsAzureADJoin, windowsBulkUserless, windowsAutoEnrollment, windowsBulkAzureDomainJoin, windowsCoManagement, windowsAzureADJoinUsingDeviceAuth,appleUserEnrollment, appleUserEnrollmentWithServiceAccount. NOTE: This property might return other values apart from those listed."
        },
        "isCompliant": {
          "type": [
            "boolean",
            "null"
          ],
          "description": "true if the device complies with Mobile Device Management (MDM) policies; otherwise, false. Read-only. This can only be updated by Intune for any device OS type or by an approved MDM app for Windows OS devices. Supports $filter (eq, ne, not)."
        },
        "isManaged": {
          "type": [
            "boolean",
            "null"
          ],
          "description": "true if the device is managed by a Mobile Device Management (MDM) app; otherwise, false. This can only be updated by Intune for any device OS type or by an approved MDM app for Windows OS devices. Supports $filter (eq, ne, not)."
        },
        "isManagementRestricted": {
          "type": [
            "boolean",
            "null"
          ],
          "description": "Indicates whether the device is a member of a restricted management administrative unit. If not set, the default value is null and the default behavior is false. Read-only.  To manage a device that's a member of a restricted management administrative unit, the administrator or calling app must be assigned a Microsoft Entra role at the scope of the restricted management administrative unit. Requires $select to retrieve."
        },
        "isRooted": {
          "type": [
            "boolean",
            "null"
          ],
          "description": "true if the device is rooted or jail-broken. This property can only be updated by Intune."
        },
        "managementType": {
          "type": [
            "string",
            "null"
          ],
          "description": "The management channel of the device. This property is set by Intune. The possible values are: eas, mdm, easMdm, intuneClient, easIntuneClient, configurationManagerClient, configurationManagerClientMdm, configurationManagerClientMdmEas, unknown, jamf, googleCloudDevicePolicyController."
        },
        "manufacturer": {
          "type": [
            "string",
            "null"
          ],
          "description": "Manufacturer of the device. Read-only."
        },
        "mdmAppId": {
          "type": [
            "string",
            "null"
          ],
          "description": "Application identifier used to register device into MDM. Read-only. Supports $filter (eq, ne, not, startsWith)."
        },
        "model": {
          "type": [
            "string",
            "null"
          ],
          "description": "Model of the device. Read-only."
        },
        "onPremisesLastSyncDateTime": {
          "pattern": "^[0-9]{4,}-(0[1-9]|1[012])-(0[1-9]|[12][0-9]|3[01])T([01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9]([.][0-9]{1,12})?(Z|[+-][0-9][0-9]:[0-9][0-9])$",
          "type": [
            "string",
            "null"
          ],
          "description": "The last time at which the object was synced with the on-premises directory. The Timestamp type represents date and time information using ISO 8601 format and is always in UTC time. For example, midnight UTC on Jan 1, 2014 is 2014-01-01T00:00:00Z Read-only. Supports $filter (eq, ne, not, ge, le, in).",
          "format": "date-time"
        },
        "onPremisesSecurityIdentifier": {
          "type": [
            "string",
            "null"
          ],
          "description": "The on-premises security identifier (SID) for the user who was synchronized from on-premises to the cloud. Read-only. Requires $select to retrieve. Supports $filter (eq)."
        },
        "onPremisesSyncEnabled": {
          "type": [
            "boolean",
            "null"
          ],
          "description": "true if this object is synced from an on-premises directory; false if this object was originally synced from an on-premises directory but is no longer synced; null if this object has never been synced from an on-premises directory (default). Read-only. Supports $filter (eq, ne, not, in, and eq on null values)."
        },
        "operatingSystem": {
          "type": [
            "string",
            "null"
          ],
          "description": "The type of operating system on the device. Required. Supports $filter (eq, ne, not, ge, le, startsWith, and eq on null values)."
        },
        "operatingSystemVersion": {
          "type": [
            "string",
            "null"
          ],
          "description": "The version of the operating system on the device. Required. Supports $filter (eq, ne, not, ge, le, startsWith, and eq on null values)."
        },
        "physicalIds": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "For internal use only. Not nullable. Supports $filter (eq, not, ge, le, startsWith,/$count eq 0, /$count ne 0)."
        },
        "profileType": {
          "type": [
            "string",
            "null"
          ],
          "description": "The profile type of the device. Possible values: RegisteredDevice (default), SecureVM, Printer, Shared, IoT."
        },
        "registrationDateTime": {
          "pattern": "^[0-9]{4,}-(0[1-9]|1[012])-(0[1-9]|[12][0-9]|3[01])T([01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9]([.][0-9]{1,12})?(Z|[+-][0-9][0-9]:[0-9][0-9])$",
          "type": [
            "string",
            "null"
          ],
          "description": "Date and time of when the device was registered. The timestamp type represents date and time information using ISO 8601 format and is always in UTC time. For example, midnight UTC on Jan 1, 2014 is 2014-01-01T00:00:00Z. Read-only.",
          "format": "date-time"
        },
        "systemLabels": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "List of labels applied to the device by the system. Supports $filter (/$count eq 0, /$count ne 0)."
        },
        "trustType": {
          "type": [
            "string",
            "null"
          ],
          "description": "Type of trust for the joined device. Read-only. Possible values:  Workplace (indicates bring your own personal devices), AzureAd (Cloud-only joined devices), ServerAd (on-premises domain joined devices joined to Microsoft Entra ID). For more information, see Introduction to device management in Microsoft Entra ID. Supports $filter (eq, ne, not, in)."
        },
        "extensions": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/microsoft.graph.extension"
          },
          "description": "The collection of open extensions defined for the device. Read-only. Nullable.",
          "x-ms-navigationProperty": true
        },
        "memberOf": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/microsoft.graph.directoryObject"
          },
          "description": "Groups and administrative units that this device is a member of. Read-only. Nullable. Supports $expand.",
          "x-ms-navigationProperty": true
        },
        "registeredOwners": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/microsoft.graph.directoryObject"
          },
          "description": "The user that cloud joined the device or registered their personal device. The registered owner is set at the time of registration. Read-only. Nullable. Supports $expand.",
          "x-ms-navigationProperty": true
        },
        "registeredUsers": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/microsoft.graph.directoryObject"
          },
          "description": "Collection of registered users of the device. For cloud joined devices and registered personal devices, registered users are set to the same value as registered owners at the time of registration. Read-only. Nullable. Supports $expand.",
          "x-ms-navigationProperty": true
        },
        "transitiveMemberOf": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/microsoft.graph.directoryObject"
          },
          "description": "Groups and administrative units that the device is a member of. This operation is transitive. Supports $expand.",
          "x-ms-navigationProperty": true
        }
      },
      "additionalProperties": {
        "type": "object"
      }
    }
  ],
  "$defs": {
    "microsoft.graph.alternativeSecurityId": {
      "title": "alternativeSecurityId",
      "type": "object",
      "properties": {
        "identityProvider": {
          "type": [
            "string",
            "null"
          ],
          "description": "For internal use only."
        },
        "key": {
          "type": [
            "string",
            "null"
          ],
          "description": "For internal use only.",
          "format": "base64url"
        },
        "type": {
          "maximum": 2147483647,
          "minimum": -2147483648,
          "type": [
            "number",
            "null"
          ],
          "description": "For internal use only.",
          "format": "int32"
        }
      },
      "additionalProperties": {
        "type": "object"
      }
    },
    "microsoft.graph.directoryObject": {
      "allOf": [
        {
          "$ref": "#/$defs/microsoft.graph.entity"
        },
        {
          "title": "directoryObject",
          "type": "object",
          "properties": {
            "deletedDateTime": {
              "pattern": "^[0-9]{4,}-(0[1-9]|1[012])-(0[1-9]|[12][0-9]|3[01])T([01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9]([.][0-9]{1,12})?(Z|[+-][0-9][0-9]:[0-9][0-9])$",
              "type": [
                "string",
                "null"
              ],
              "description": "Date and time when this object was deleted. Always null when the object hasn't been deleted.",
              "format": "date-time"
            }
          },
          "additionalProperties": {
            "type": "object"
          }
        }
      ]
    },
    "microsoft.graph.entity": {
      "title": "entity",
      "type": "object",
      "properties": {
        "id": {
          "type": "string",
          "description": "The unique identifier for an entity. Read-only."
        }
      },
      "additionalProperties": {
        "type": "object"
      }
    },
    "microsoft.graph.extension": {
      "allOf": [
        {
          "$ref": "#/$defs/microsoft.graph.entity"
        },
        {
          "title": "extension",
          "type": "object",
          "additionalProperties": {
            "type": "object"
          }
        }
      ]
    }
  }
}

Work with this as data

Every JSON Schema here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for schemas

4 MCP tools reach this
  • find_json_schemasBrowse and filter every JSON Schema in the catalog.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This JSON Schema
curl "https://apis.io/api/v1/json-schemas/microsoft-365-microsoft-graph-device"
All schemas
curl "https://apis.io/api/v1/json-schemas?limit=25"

Calls without X-API-Key need no key. Calls with it need a paid plan — get a key.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.