---
title: "Create an Outlook draft or reply draft with direct multipart workspace attachments"
method: POST
path: "/v1/direct-uploads/microsoft-365/mail-drafts"
tags: ["Direct uploads"]
---

# Create an Outlook draft or reply draft with direct multipart workspace attachments

`POST /v1/direct-uploads/microsoft-365/mail-drafts`

## Request

- Base URL: `https://api.openworklabs.com`
- URL: `https://api.openworklabs.com/v1/direct-uploads/microsoft-365/mail-drafts`
- Auth: HTTP bearer

Authenticated host transport for openwork-cloud-uploads. Creates the draft, attaches each file and never sends it. If a file cannot be attached, the new draft moves to Deleted Items. Attachment bytes are not stored or shown to the model.

## Response `200`

Outlook draft created with its attachments.

- Microsoft365MailDraftWithAttachmentsResponse
  - `ok` true, required
  - `draft` Microsoft365MailMessage, required
    - `id` string, required
    - `conversationId` string, required
    - `subject` string, required
    - `receivedDateTime` string, required
    - `preview` string, required
    - `from` Microsoft365EmailAddress, required
      - `name` string, required
      - `address` string, required
    - `to` Microsoft365EmailAddress[], required
      - `name` string, required
      - `address` string, required
    - `webLink` string, required
    - `hasAttachments` boolean, required
    - `isDraft` boolean, required
    - `isRead` boolean, required
    - `categories` string[], required
    - `parentFolderId` string, required
    - `cc` Microsoft365EmailAddress[], required
      - `name` string, required
      - `address` string, required
    - `body` string, required
    - `bodyContentType` string, required
    - `bodyTruncated` boolean, required
  - `attachments` object[], required
    - `name` string, required
    - `contentType` string, required
    - `size` integer, required

## Other responses

- `400`: The multipart draft request was invalid.
- `401`: The caller must be signed in.
- `409`: The calling member has not connected their Microsoft account or is missing permission.
- `502`: Microsoft Graph rejected the request or the outcome is unknown.

## Changes

- **2026-10-27** `78491ac9c743`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/openworklabs/apis/den-api/changes/v1/direct-uploads/microsoft-365/mail-drafts/post.md)

---

[API](https://skmtc.dev/openworklabs/apis/den-api.md) - [All operations](https://skmtc.dev/openworklabs/apis/den-api/llms.txt) - [OpenAPI document](https://skmtc.dev/openworklabs/apis/den-api/revisions/8117bc7c5626?raw)
