# outlook

Integration endpoints used by the Sheetgo add-in for Microsoft Outlook to connect mailbox data to workflows.

Base URL: `https://dev-api.sheetgo.com`. Start page: https://dev-api.sheetgo.com/rest/reference.md

This page documents every endpoint of the group. Request and response shapes link to model pages; fetch the model pages an endpoint links before building a body.

Guide: [Rate Limiting](https://dev-api.sheetgo.com/rest/guides/rate-limiting.md)

Every endpoint is rate limited; see the guide [Rate Limiting](https://dev-api.sheetgo.com/rest/guides/rate-limiting.md).

<a id="post-rest-beta-outlook-messages-batch"></a>
## POST /rest/beta/outlook/messages/batch

**Batch Messages**

Resolve a list of message ids to message bodies in one shot.

Missing or cross-owner ids come back as ``{id, error: "message_not_found"}``
entries inside ``values.messages`` rather than failing the whole call.

Authentication, any one of: `default`; `Developer Access`; `sheetgo-api-key`.

**Request body**

Content type `application/json`. Required.

Body: [BatchBody](https://dev-api.sheetgo.com/rest/reference/models/BatchBody.md)

**Responses**

- `200` Successful Response
- `401` Auth failed
- `422` Validation Error. Schema: [HTTPValidationError](https://dev-api.sheetgo.com/rest/reference/models/HTTPValidationError.md)

Read next: [BatchBody](https://dev-api.sheetgo.com/rest/reference/models/BatchBody.md), [HTTPValidationError](https://dev-api.sheetgo.com/rest/reference/models/HTTPValidationError.md).

<a id="get-rest-beta-outlook-messages"></a>
## GET /rest/beta/outlook/messages

**List Messages**

Page through messages in a folder.

`folder` is a snake-case name (e.g. "inbox") mapped to a well-known mail
folder; unknown values return 400. `limit` is bounded to [1, 100]; a value
outside the range returns 400 before any upstream call is made.

Authentication, any one of: `default`; `Developer Access`; `sheetgo-api-key`.

**Parameters**

| Name | In | Type | Required | Description | Allowed values / default / constraints |
| --- | --- | --- | --- | --- | --- |
| `folder` | query | string | no | Well-known mail folder to read, snake_case (for example `inbox`, `sent_items`, `drafts`). An unknown name returns 400. | default: `"inbox"` |
| `limit` | query | integer | no | Messages per page, 1-100. Outside that range returns 400 before any call to Microsoft is made. | default: `25` |
| `page_token` | query | string, nullable | no | Opaque token from a previous response's paging cursor. Omit for the first page. |  |

**Responses**

- `200` Successful Response
- `401` Auth failed
- `422` Validation Error. Schema: [HTTPValidationError](https://dev-api.sheetgo.com/rest/reference/models/HTTPValidationError.md)

Read next: [HTTPValidationError](https://dev-api.sheetgo.com/rest/reference/models/HTTPValidationError.md).

<a id="get-rest-beta-outlook-messages-message-id"></a>
## GET /rest/beta/outlook/messages/{message_id}

**Get Message**

Fetch one message by id.

``include_attachments=true`` opts the response into the
``$expand=attachments`` Graph path; the controller enforces the 25 MB
total cap and raises 413 ``AttachmentsTooLarge`` if exceeded. For larger
attachments, fall back to the per-attachment binary endpoint below.

Authentication, any one of: `default`; `Developer Access`; `sheetgo-api-key`.

**Parameters**

| Name | In | Type | Required | Description | Allowed values / default / constraints |
| --- | --- | --- | --- | --- | --- |
| `message_id` | path | string | yes | Id of the message to fetch. |  |
| `include_attachments` | query | boolean | no | Include each attachment's content in the response. Capped at 25 MB in total — a larger message returns 413, so fetch those attachments one at a time instead. | default: `false` |

**Responses**

- `200` Successful Response
- `401` Auth failed
- `422` Validation Error. Schema: [HTTPValidationError](https://dev-api.sheetgo.com/rest/reference/models/HTTPValidationError.md)

Read next: [HTTPValidationError](https://dev-api.sheetgo.com/rest/reference/models/HTTPValidationError.md).

<a id="get-rest-beta-outlook-messages-message-id-attachments-attachment-id"></a>
## GET /rest/beta/outlook/messages/{message_id}/attachments/{attachment_id}

**Get Attachment**

Stream a single attachment as its native bytes (NOT base64-wrapped).

Returns ``application/<original mime>`` with a
``Content-Disposition: attachment; filename="..."`` header. Filenames are
escaped for the ``"`` delimiter — a malicious upload couldn't smuggle
extra header fields via a crafted name.

Authentication, any one of: `default`; `Developer Access`; `sheetgo-api-key`.

**Parameters**

| Name | In | Type | Required | Description | Allowed values / default / constraints |
| --- | --- | --- | --- | --- | --- |
| `message_id` | path | string | yes | Id of the message the attachment belongs to. |  |
| `attachment_id` | path | string | yes | Id of the attachment to download. |  |

**Responses**

- `200` Successful Response
- `401` Auth failed
- `422` Validation Error. Schema: [HTTPValidationError](https://dev-api.sheetgo.com/rest/reference/models/HTTPValidationError.md)

Read next: [HTTPValidationError](https://dev-api.sheetgo.com/rest/reference/models/HTTPValidationError.md).

<a id="post-rest-beta-outlook-send"></a>
## POST /rest/beta/outlook/send

**Send**

Send a message through the connected Microsoft account.

Body validation (recipient count, attachment count, attachment total size)
runs before this handler; invalid input returns 422 with the field-level
reason. An address rejected upstream returns 400.

Defaults: ``save_to_sent_items=True``.

Authentication, any one of: `default`; `Developer Access`; `sheetgo-api-key`.

**Request body**

Content type `application/json`. Required.

Body: [SendBody](https://dev-api.sheetgo.com/rest/reference/models/SendBody.md)

**Responses**

- `202` Successful Response
- `401` Auth failed
- `422` Validation Error. Schema: [HTTPValidationError](https://dev-api.sheetgo.com/rest/reference/models/HTTPValidationError.md)

Read next: [HTTPValidationError](https://dev-api.sheetgo.com/rest/reference/models/HTTPValidationError.md), [SendBody](https://dev-api.sheetgo.com/rest/reference/models/SendBody.md).

---

More: start page https://dev-api.sheetgo.com/rest/reference.md, everything in one file https://dev-api.sheetgo.com/rest/llms-full.txt, OpenAPI https://dev-api.sheetgo.com/rest/openapi.json.
