Microsoft 365 · Schema

microsoft.graph.message

ProductivityCollaborationEmailCalendarFileIdentityMicrosoftMicrosoft Graph

Properties

Name Type Description
id string The unique identifier for an entity. Read-only.
categories array The categories associated with the item
changeKey stringnull Identifies the version of the item. Every time the item is changed, changeKey changes as well. This allows Exchange to apply changes to the correct version of the object. Read-only.
createdDateTime 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
lastModifiedDateTime 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
bccRecipients array The Bcc: recipients for the message.
body object
bodyPreview stringnull The first 255 characters of the message body. It is in text format.
ccRecipients array The Cc: recipients for the message.
conversationId stringnull The ID of the conversation the email belongs to.
conversationIndex stringnull Indicates the position of the message within the conversation.
flag object
from object
hasAttachments booleannull Indicates whether the message has attachments. This property doesn't include inline attachments, so if a message contains only inline attachments, this property is false. To verify the existence of in
importance object
inferenceClassification object
internetMessageHeaders array A collection of message headers defined by RFC5322. The set includes message headers indicating the network path taken by a message from the sender to the recipient. It can also contain custom message
internetMessageId stringnull The message ID in the format specified by RFC2822.
isDeliveryReceiptRequested booleannull Indicates whether a read receipt is requested for the message.
isDraft booleannull Indicates whether the message is a draft. A message is a draft if it hasn't been sent yet.
isRead booleannull Indicates whether the message has been read.
isReadReceiptRequested booleannull Indicates whether a read receipt is requested for the message.
parentFolderId stringnull The unique identifier for the message's parent mailFolder.
receivedDateTime stringnull The date and time the message was received. The date and time information uses ISO 8601 format and is always in UTC time. For example, midnight UTC on Jan 1, 2014 is 2014-01-01T00:00:00Z.
replyTo array The email addresses to use when replying.
sender object
sentDateTime stringnull The date and time the message was sent. The date and time information uses ISO 8601 format and is always in UTC time. For example, midnight UTC on Jan 1, 2014 is 2014-01-01T00:00:00Z.
subject stringnull The subject of the message.
toRecipients array The To: recipients for the message.
uniqueBody object
webLink stringnull The URL to open the message in Outlook on the web.You can append an ispopout argument to the end of the URL to change how the message is displayed. If ispopout is not present or if it is set to 1, the
attachments array The fileAttachment and itemAttachment attachments for the message.
extensions array The collection of open extensions defined for the message. Nullable.
multiValueExtendedProperties array The collection of multi-value extended properties defined for the message. Nullable.
singleValueExtendedProperties array The collection of single-value extended properties defined for the message. Nullable.
View JSON Schema on GitHub

JSON Schema

microsoft-365-microsoft-graph-message-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-message-schema.json",
  "title": "microsoft.graph.message",
  "x-generated": "2026-11-04",
  "x-method": "derived",
  "x-generator": "derive-json-schema.py",
  "x-source": "openapi/microsoft-365-mail-api-openapi.yml#/components/schemas/microsoft.graph.message",
  "allOf": [
    {
      "$ref": "#/$defs/microsoft.graph.outlookItem"
    },
    {
      "title": "message",
      "type": "object",
      "properties": {
        "bccRecipients": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/microsoft.graph.recipient"
          },
          "description": "The Bcc: recipients for the message."
        },
        "body": {
          "$ref": "#/$defs/microsoft.graph.itemBody"
        },
        "bodyPreview": {
          "type": [
            "string",
            "null"
          ],
          "description": "The first 255 characters of the message body. It is in text format."
        },
        "ccRecipients": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/microsoft.graph.recipient"
          },
          "description": "The Cc: recipients for the message."
        },
        "conversationId": {
          "type": [
            "string",
            "null"
          ],
          "description": "The ID of the conversation the email belongs to."
        },
        "conversationIndex": {
          "type": [
            "string",
            "null"
          ],
          "description": "Indicates the position of the message within the conversation.",
          "format": "base64url"
        },
        "flag": {
          "$ref": "#/$defs/microsoft.graph.followupFlag"
        },
        "from": {
          "$ref": "#/$defs/microsoft.graph.recipient"
        },
        "hasAttachments": {
          "type": [
            "boolean",
            "null"
          ],
          "description": "Indicates whether the message has attachments. This property doesn't include inline attachments, so if a message contains only inline attachments, this property is false. To verify the existence of inline attachments, parse the body property to look for a src attribute, such as <IMG src='cid:image001.jpg@01D26CD8.6C05F070'>."
        },
        "importance": {
          "$ref": "#/$defs/microsoft.graph.importance"
        },
        "inferenceClassification": {
          "$ref": "#/$defs/microsoft.graph.inferenceClassificationType"
        },
        "internetMessageHeaders": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/microsoft.graph.internetMessageHeader"
          },
          "description": "A collection of message headers defined by RFC5322. The set includes message headers indicating the network path taken by a message from the sender to the recipient. It can also contain custom message headers that hold app data for the message.  Requires $select to retrieve. Read-only."
        },
        "internetMessageId": {
          "type": [
            "string",
            "null"
          ],
          "description": "The message ID in the format specified by RFC2822."
        },
        "isDeliveryReceiptRequested": {
          "type": [
            "boolean",
            "null"
          ],
          "description": "Indicates whether a read receipt is requested for the message."
        },
        "isDraft": {
          "type": [
            "boolean",
            "null"
          ],
          "description": "Indicates whether the message is a draft. A message is a draft if it hasn't been sent yet."
        },
        "isRead": {
          "type": [
            "boolean",
            "null"
          ],
          "description": "Indicates whether the message has been read."
        },
        "isReadReceiptRequested": {
          "type": [
            "boolean",
            "null"
          ],
          "description": "Indicates whether a read receipt is requested for the message."
        },
        "parentFolderId": {
          "type": [
            "string",
            "null"
          ],
          "description": "The unique identifier for the message's parent mailFolder."
        },
        "receivedDateTime": {
          "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 date and time the message was received.  The date and time information uses ISO 8601 format and is always in UTC time. For example, midnight UTC on Jan 1, 2014 is 2014-01-01T00:00:00Z.",
          "format": "date-time"
        },
        "replyTo": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/microsoft.graph.recipient"
          },
          "description": "The email addresses to use when replying."
        },
        "sender": {
          "$ref": "#/$defs/microsoft.graph.recipient"
        },
        "sentDateTime": {
          "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 date and time the message was sent.  The date and time information uses ISO 8601 format and is always in UTC time. For example, midnight UTC on Jan 1, 2014 is 2014-01-01T00:00:00Z.",
          "format": "date-time"
        },
        "subject": {
          "type": [
            "string",
            "null"
          ],
          "description": "The subject of the message."
        },
        "toRecipients": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/microsoft.graph.recipient"
          },
          "description": "The To: recipients for the message."
        },
        "uniqueBody": {
          "$ref": "#/$defs/microsoft.graph.itemBody"
        },
        "webLink": {
          "type": [
            "string",
            "null"
          ],
          "description": "The URL to open the message in Outlook on the web.You can append an ispopout argument to the end of the URL to change how the message is displayed. If ispopout is not present or if it is set to 1, then the message is shown in a popout window. If ispopout is set to 0, the browser shows the message in the Outlook on the web review pane.The message opens in the browser if you are signed in to your mailbox via Outlook on the web. You are prompted to sign in if you are not already signed in with the browser.This URL cannot be accessed from within an iFrame.NOTE: When using this URL to access a message from a mailbox with delegate permissions, both the signed-in user and the target mailbox must be in the same database region. For example, an error is returned when a user with a mailbox in the EUR (Europe) region attempts to access messages from a mailbox in the NAM (North America) region."
        },
        "attachments": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/microsoft.graph.attachment"
          },
          "description": "The fileAttachment and itemAttachment attachments for the message.",
          "x-ms-navigationProperty": true
        },
        "extensions": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/microsoft.graph.extension"
          },
          "description": "The collection of open extensions defined for the message. Nullable.",
          "x-ms-navigationProperty": true
        },
        "multiValueExtendedProperties": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/microsoft.graph.multiValueLegacyExtendedProperty"
          },
          "description": "The collection of multi-value extended properties defined for the message. Nullable.",
          "x-ms-navigationProperty": true
        },
        "singleValueExtendedProperties": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/microsoft.graph.singleValueLegacyExtendedProperty"
          },
          "description": "The collection of single-value extended properties defined for the message. Nullable.",
          "x-ms-navigationProperty": true
        }
      },
      "additionalProperties": {
        "type": "object"
      }
    }
  ],
  "$defs": {
    "microsoft.graph.attachment": {
      "allOf": [
        {
          "$ref": "#/$defs/microsoft.graph.entity"
        },
        {
          "title": "attachment",
          "type": "object",
          "properties": {
            "contentType": {
              "type": [
                "string",
                "null"
              ],
              "description": "The MIME type."
            },
            "isInline": {
              "type": "boolean",
              "description": "true if the attachment is an inline attachment; otherwise, false."
            },
            "lastModifiedDateTime": {
              "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",
              "format": "date-time"
            },
            "name": {
              "type": [
                "string",
                "null"
              ],
              "description": "The attachment's file name."
            },
            "size": {
              "maximum": 2147483647,
              "minimum": -2147483648,
              "type": "number",
              "description": "The length of the attachment in bytes.",
              "format": "int32"
            }
          },
          "additionalProperties": {
            "type": "object"
          }
        }
      ]
    },
    "microsoft.graph.bodyType": {
      "title": "bodyType",
      "enum": [
        "text",
        "html"
      ],
      "type": "string"
    },
    "microsoft.graph.dateTimeTimeZone": {
      "title": "dateTimeTimeZone",
      "type": "object",
      "properties": {
        "dateTime": {
          "type": "string",
          "description": "A single point of time in a combined date and time representation ({date}T{time}; for example, 2017-08-29T04:00:00.0000000)."
        },
        "timeZone": {
          "type": [
            "string",
            "null"
          ],
          "description": "Represents a time zone, for example, 'Pacific Standard Time'. See below for more possible values."
        }
      },
      "additionalProperties": {
        "type": "object"
      }
    },
    "microsoft.graph.emailAddress": {
      "title": "emailAddress",
      "type": "object",
      "properties": {
        "address": {
          "type": [
            "string",
            "null"
          ],
          "description": "The email address of the person or entity."
        },
        "name": {
          "type": [
            "string",
            "null"
          ],
          "description": "The display name of the person or entity."
        }
      },
      "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"
          }
        }
      ]
    },
    "microsoft.graph.followupFlag": {
      "title": "followupFlag",
      "type": "object",
      "properties": {
        "completedDateTime": {
          "$ref": "#/$defs/microsoft.graph.dateTimeTimeZone"
        },
        "dueDateTime": {
          "$ref": "#/$defs/microsoft.graph.dateTimeTimeZone"
        },
        "flagStatus": {
          "$ref": "#/$defs/microsoft.graph.followupFlagStatus"
        },
        "startDateTime": {
          "$ref": "#/$defs/microsoft.graph.dateTimeTimeZone"
        }
      },
      "additionalProperties": {
        "type": "object"
      }
    },
    "microsoft.graph.followupFlagStatus": {
      "title": "followupFlagStatus",
      "enum": [
        "notFlagged",
        "complete",
        "flagged"
      ],
      "type": "string"
    },
    "microsoft.graph.importance": {
      "title": "importance",
      "enum": [
        "low",
        "normal",
        "high"
      ],
      "type": "string"
    },
    "microsoft.graph.inferenceClassificationType": {
      "title": "inferenceClassificationType",
      "enum": [
        "focused",
        "other"
      ],
      "type": "string"
    },
    "microsoft.graph.internetMessageHeader": {
      "title": "internetMessageHeader",
      "type": "object",
      "properties": {
        "name": {
          "type": [
            "string",
            "null"
          ],
          "description": "Represents the key in a key-value pair."
        },
        "value": {
          "type": [
            "string",
            "null"
          ],
          "description": "The value in a key-value pair."
        }
      },
      "additionalProperties": {
        "type": "object"
      }
    },
    "microsoft.graph.itemBody": {
      "title": "itemBody",
      "type": "object",
      "properties": {
        "content": {
          "type": [
            "string",
            "null"
          ],
          "description": "The content of the item."
        },
        "contentType": {
          "$ref": "#/$defs/microsoft.graph.bodyType"
        }
      },
      "additionalProperties": {
        "type": "object"
      }
    },
    "microsoft.graph.multiValueLegacyExtendedProperty": {
      "allOf": [
        {
          "$ref": "#/$defs/microsoft.graph.entity"
        },
        {
          "title": "multiValueLegacyExtendedProperty",
          "type": "object",
          "properties": {
            "value": {
              "type": "array",
              "items": {
                "type": [
                  "string",
                  "null"
                ]
              },
              "description": "A collection of property values."
            }
          },
          "additionalProperties": {
            "type": "object"
          }
        }
      ]
    },
    "microsoft.graph.outlookItem": {
      "allOf": [
        {
          "$ref": "#/$defs/microsoft.graph.entity"
        },
        {
          "title": "outlookItem",
          "type": "object",
          "properties": {
            "categories": {
              "type": "array",
              "items": {
                "type": [
                  "string",
                  "null"
                ]
              },
              "description": "The categories associated with the item"
            },
            "changeKey": {
              "type": [
                "string",
                "null"
              ],
              "description": "Identifies the version of the item. Every time the item is changed, changeKey changes as well. This allows Exchange to apply changes to the correct version of the object. Read-only."
            },
            "createdDateTime": {
              "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",
              "format": "date-time"
            },
            "lastModifiedDateTime": {
              "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",
              "format": "date-time"
            }
          },
          "additionalProperties": {
            "type": "object"
          }
        }
      ]
    },
    "microsoft.graph.recipient": {
      "title": "recipient",
      "type": "object",
      "properties": {
        "emailAddress": {
          "$ref": "#/$defs/microsoft.graph.emailAddress"
        }
      },
      "additionalProperties": {
        "type": "object"
      }
    },
    "microsoft.graph.singleValueLegacyExtendedProperty": {
      "allOf": [
        {
          "$ref": "#/$defs/microsoft.graph.entity"
        },
        {
          "title": "singleValueLegacyExtendedProperty",
          "type": "object",
          "properties": {
            "value": {
              "type": [
                "string",
                "null"
              ],
              "description": "A property value."
            }
          },
          "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-message"
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.