> ## Documentation Index
> Fetch the complete documentation index at: https://nango.dev/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# SharePoint Online (v2)

> Integrate your application with the SharePoint Online (v2) API

## 🚀 Quickstart

Connect to SharePoint Online (v2) with Nango and see data flow in 2 minutes.

<Steps>
  <Step title="Create an integration">
    In Nango ([free signup](https://app.nango.dev)), go to [Integrations](https://app.nango.dev/dev/integrations) -> *Configure New Integration* -> *SharePoint Online (v2)*.
  </Step>

  <Step title="Authorize SharePoint Online (v2)">
    Go to [Connections](https://app.nango.dev/dev/connections) -> *Add Test Connection* -> *Authorize*, then log in to SharePoint Online. Later, you'll let your users do the same directly from your app.
  </Step>

  <Step title="Call the SharePoint Online (v2) API">
    Let's make your first request to the SharePoint Online (Microsoft Graph) API (fetch a list of all available sites in an organization). Replace the placeholders below with your [secret key](https://app.nango.dev/dev/environment-settings), [integration ID](https://app.nango.dev/dev/integrations), and [connection ID](https://app.nango.dev/dev/connections):

    <Tabs>
      <Tab title="cURL">
        ```bash theme={null}
        curl "https://api.nango.dev/proxy/v1.0/sites" \
          -H "Authorization: Bearer <NANGO-SECRET-KEY>" \
          -H "Provider-Config-Key: <INTEGRATION-ID>" \
          -H "Connection-Id: <CONNECTION-ID>"
        ```
      </Tab>

      <Tab title="Node">
        Install Nango's backend SDK with `npm i @nangohq/node`. Then run:

        ```typescript theme={null}
        import { Nango } from '@nangohq/node';

        const nango = new Nango({ secretKey: '<NANGO-SECRET-KEY>' });

        const res = await nango.get({
            endpoint: '/v1.0/sites',
            providerConfigKey: '<INTEGRATION-ID>',
            connectionId: '<CONNECTION-ID>'
        });

        console.log(res.data);
        ```
      </Tab>
    </Tabs>

    Or fetch credentials dynamically via the [Node SDK](/reference/sdks/node#get-a-connection-with-credentials) or [API](/reference/api/connection/get).

    ✅ You're connected! Check the [Logs](https://app.nango.dev/dev/logs) tab in Nango to inspect requests.
  </Step>

  <Step title="Implement Nango in your app">
    Follow our [Auth implementation guide](/guides/primitives/auth) to integrate Nango in your app.

    To obtain your own production credentials, follow the setup guide linked below.
  </Step>
</Steps>

## 📚 SharePoint Online (v2) Integration Guides

Nango maintained guides for common use cases.

* [How to register your own SharePoint Online (v2) OAuth app](/api-integrations/sharepoint-online/how-to-register-your-own-sharepoint-online-api-oauth-app)\
  Register an OAuth app with SharePoint Online (v2) and obtain credentials to connect it to Nango

Official docs: [Microsoft Graph API documentation](https://learn.microsoft.com/en-us/graph/api/resources/sharepoint)

## 🧩 Pre-built syncs & actions for SharePoint Online (v2)

Enable them in your dashboard. Extend and customize to fit your needs.

### Others

| Function name            | Description                                                                                                                                                                      | Type                                           | Source code                                                                                                                            |
| ------------------------ | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------- |
| `fetch-file`             | This action will be used to fetch the latest file download\_url which can be used to download the actual file.                                                                   | [Action](/guides/functions/action-functions)   | [🔗 Github](https://github.com/NangoHQ/integration-templates/blob/main/integrations/sharepoint-online/actions/fetch-file.ts)           |
| `list-shared-sites`      | This action will be used to display a list of sites to the end-user, who will pick the ones he wants to sync. The connection metadata should be set based on the file selection. | [Action](/guides/functions/action-functions)   | [🔗 Github](https://github.com/NangoHQ/integration-templates/blob/main/integrations/sharepoint-online/actions/list-shared-sites.ts)    |
| `shared-sites-selection` | This sync will be used to sync file metadata from SharePoint site based on the ones the user has picked.                                                                         | [Sync](/guides/functions/syncs/sync-functions) | [🔗 Github](https://github.com/NangoHQ/integration-templates/blob/main/integrations/sharepoint-online/syncs/shared-sites-selection.ts) |
| `user-files`             | Fetch all files from the user's drive and sync the metadata for each file.                                                                                                       | [Sync](/guides/functions/syncs/sync-functions) | [🔗 Github](https://github.com/NangoHQ/integration-templates/blob/main/integrations/sharepoint-online/syncs/user-files.ts)             |
| `user-files-selection`   | Fetch all selected files from a user's drive                                                                                                                                     | [Sync](/guides/functions/syncs/sync-functions) | [🔗 Github](https://github.com/NangoHQ/integration-templates/blob/main/integrations/sharepoint-online/syncs/user-files-selection.ts)   |

<Info>
  Questions? Join us in the [Slack community](https://nango.dev/slack).
</Info>

***
