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. |
JSON Schema
{
"$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.
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.