---
title: "Authorize SharePoint integration"
method: GET
path: "/v1/integrations/sharepoint/oauth/authorize"
tags: ["integrations"]
---

# Authorize SharePoint integration

`GET /v1/integrations/sharepoint/oauth/authorize`

## Request

- Base URL: `https://api.mixedbread.com`
- URL: `https://api.mixedbread.com/v1/integrations/sharepoint/oauth/authorize`
- Auth: HTTP bearer

Start the Microsoft sign-in that connects a work or school account as a new SharePoint installation.

Every call creates an installation, also for an account the organization already connected, e.g. the
same account feeding a second store. To refresh an existing installation's credentials, reconnect it
through `GET /v1/integrations/sharepoint/installations/{installation_id}/oauth/authorize` instead.

After consent the browser returns to the dashboard, or to the return URL of the organization's own
Microsoft Entra app when it registered one, with `provider`, `status`, `installation_id` and
`reference`. A failed connect carries `status=error` and `error`:
`store_in_use` when another installation of the account already feeds the store, `store_exists` when
`new_store` names a store that exists by then, the provider's own error (such as `access_denied`, or
`consent_required` when the account's organization only lets an administrator approve apps),
`sharepoint_not_available` when the account's Microsoft 365 organization has no SharePoint,
`invalid_state`, `token_exchange_failed` or `callback_failed`.

## Query parameters

- `store_name` string, nullable: Ingestion store name. A store that already exists is shared: every data source connected to it ingests into it, except another installation of the same account, which would ingest every item again. Without it, the account's default store, numbered past a store another installation of the account feeds. Rejected with 422 when the connect refreshes an existing installation and names a store other than its own.
- `new_store` boolean: Ingest into a store created for this connection: the connect fails with 409 when `store_name` names a store that already exists, and without `store_name` the default name is numbered past existing stores. Rejected with 422 when the connect refreshes an existing installation, which keeps its store.
- `reference` string, nullable: Opaque value echoed back as `reference` on the return URL, so your app can match the outcome to the user who started the flow
- `metadata_contextualization` boolean: Contextualize chunks with the connector's curated metadata fields
- `file_contextualization` boolean: Generate an LLM context for each chunk situating it within the full document
- `ingestion_mode` 'fast' | 'high_quality': Strategy for adding a file to a store.

## Other responses

- `307`: Redirect to Microsoft sign-in
- `409`: The store already receives data from another installation of the same account, `new_store` names a store that already exists, a Slack workspace bot is already installed by a different Mixedbread organization, or a Notion internal integration that is already connected is asked for a new or different store
- `422`: The request failed validation, the credentials it carries were rejected, or `new_store` is set on a connect that refreshes an existing installation

## Changes

- **2026-11-13** `14da801b32df`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/mixedbread/apis/mxbai-omni/changes/v1/integrations/sharepoint/oauth/authorize/get.md)

---

[API](https://skmtc.dev/mixedbread/apis/mxbai-omni.md) - [All operations](https://skmtc.dev/mixedbread/apis/mxbai-omni/llms.txt) - [OpenAPI document](https://skmtc.dev/mixedbread/apis/mxbai-omni/revisions/14da801b32df?raw)
