# Send large attachments up to 150MB (Beta)

Source: https://developer.nylas.com/docs/changelogs/2026-04-22-large-attachments-beta/

Nylas now supports sending **attachments up to 150MB** on Microsoft (Outlook and Exchange Online) grants, using a new pre-upload flow that's separate from the standard `attachments` array. The existing [Send Message endpoint](/docs/reference/api/messages/send-message/) caps request bodies at 3MB for JSON (or 25MB multipart). For larger files, you can now upload once to Nylas-managed storage, then reference the resulting `attachment_id` in your send request.

## Added

- **`POST /v3/grants/{grant_id}/attachment-uploads`**. [Create an upload session](/docs/reference/api/attachments/create-attachment-upload-session/). Returns a pre-signed Google Cloud Storage URL you `PUT` the file bytes to directly. No Nylas authorization header is required on the upload itself. Set `size` on the request (optional but recommended) so Nylas can verify the uploaded bytes match at completion.

- **`POST /v3/grants/{grant_id}/attachment-uploads/{attachment_id}/complete`**. [Finalize the session](/docs/reference/api/attachments/complete-attachment-upload-session/) after the file is uploaded. Nylas verifies the upload succeeded and marks the attachment `ready`. After this, reference the attachment in a send or draft by passing `{ "id": "<attachment_id>" }` in the `attachments` array.

- **Inline large attachments**. Set `content_id` on the attachment entry and reference it as `cid:{content_id}` in the message body. Nylas treats the attachment as inline when both conditions are met.

- **[Send large attachments guide](/docs/v3/email/send-large-attachments/)**. Full walk-through of the 4-step flow, Exchange Online PowerShell prerequisites, error matrix, and status lifecycle.

## Limits and caveats

- **Maximum file size:** 150MB (`157286400` bytes) per attachment.
- **Session expiry:** 1 hour from creation. The uploaded file is deleted from storage when the session expires, so complete the send inside that window.
- **Providers:** Microsoft only. Google, IMAP, Yahoo, iCloud, and EWS grants are rejected with a `401 Unauthorized`.
- **Microsoft scopes:** At least one of `Mail.Send`, `Mail.ReadWrite`, or `Mail.ReadWrite.Shared`.
- **Exchange Online message size:** Default is 35MB (36MB receive). Raise it to 150MB via `Set-Mailbox -MaxSendSize 150MB -MaxReceiveSize 150MB` or `Set-TransportConfig` before sending large attachments. This limit is enforced by Microsoft, not Nylas. Nylas accepting the upload does not guarantee Exchange will deliver it.
- **SDK support:** REST API only for this beta. The Nylas Node.js, Python, Ruby, Java, and Kotlin SDKs will add helper methods before general availability.

> **Info:** 
> **Beta.** The attachment-uploads endpoints are marked beta. Shapes and semantics may change before general availability.