# Get File Contents — Sharepoint

> Retrieves a Microsoft SharePoint file and returns its contents as extracted plain text or markdown. Supports plain text formats, HTML, DOCX, PDF, and other Office documents convertible to PDF (xlsx, pptx, etc.). See the documentation

- Key: `sharepoint-get-file-contents`
- Type: Action (Read-only)
- Version: 0.0.4
- App: Sharepoint (`sharepoint`) — https://pipedream.com/apps/sharepoint.md
- This page (HTML): https://pipedream.com/apps/sharepoint/actions/get-file-contents
- Hints: read-only · open-world
- Source: https://github.com/PipedreamHQ/pipedream/blob/master/components/sharepoint/actions/get-file-contents/get-file-contents.mjs

## Description

Retrieves a Microsoft SharePoint file and returns its contents as extracted plain text or markdown. Supports plain text formats, HTML, DOCX, PDF, and other Office documents convertible to PDF (xlsx, pptx, etc.). [See the documentation](https://learn.microsoft.com/en-us/graph/api/driveitem-get-content?view=graph-rest-1.0&tabs=http)

## Props

| Prop | Type | Required | Description |
|---|---|---|---|
| `siteId` | `string` | Yes | Identifier of a site. This is either the composite ID (e.g. contoso.sharepoint.com,<guid>,<guid> or a server-relative path in the form {hostname}:/{server-relative-path} (e.g. contoso.sharepoint.com:/sites/site-name) Options are loaded from the connected account. |
| `driveId` | `string` | Yes | Identifier of a drive within a site Options are loaded from the connected account. |
| `fileId` | `string` | Yes | The file to download. You can either search for the file here or provide a custom File ID. Options are loaded from the connected account. |
| `maxChars` | `integer` | No | Maximum number of characters of extracted text to return. If the content is longer, it will be truncated and truncated will be set to true. Leave blank to return the full content. |

## Run it

**MCP**

```ts
import { Client } from "@modelcontextprotocol/sdk/client/index.js"
import { StreamableHTTPClientTransport } from "@modelcontextprotocol/sdk/client/streamableHttp.js"
import { PipedreamClient } from "@pipedream/sdk"

const pd = new PipedreamClient({
  projectId: process.env.PIPEDREAM_PROJECT_ID!,
  clientId: process.env.PIPEDREAM_CLIENT_ID!,
  clientSecret: process.env.PIPEDREAM_CLIENT_SECRET!,
  projectEnvironment: "production",
})

const accessToken = await pd.rawAccessToken

const transport = new StreamableHTTPClientTransport(
  new URL("https://remote.mcp.pipedream.net/v3"),
  {
    requestInit: {
      headers: {
        Authorization: `Bearer ${accessToken}`,
        "x-pd-project-id": process.env.PIPEDREAM_PROJECT_ID!,
        "x-pd-environment": "production",
        "x-pd-external-user-id": "{external_user_id}", // any stable ID for this user in your system
        "x-pd-app-slug": "sharepoint",
      },
    },
  },
)

const mcp = new Client({ name: "my-agent", version: "1.0.0" })
await mcp.connect(transport)

const { tools } = await mcp.listTools()

// listTools() hands your model this tool's input schema, so it can
// fill the arguments itself:
const result = await mcp.callTool({
  name: "sharepoint-get-file-contents",
  arguments: {
    siteId: "Site",
    driveId: "Drive ID",
  },
})
```

**TypeScript**

```ts
import { PipedreamClient } from "@pipedream/sdk"

const pd = new PipedreamClient({
  projectId: process.env.PIPEDREAM_PROJECT_ID!,
  clientId: process.env.PIPEDREAM_CLIENT_ID!,
  clientSecret: process.env.PIPEDREAM_CLIENT_SECRET!,
  projectEnvironment: "production",
})

const result = await pd.actions.run({
  id: "sharepoint-get-file-contents",
  externalUserId: "{external_user_id}", // any stable ID for this user in your system
  configuredProps: {
    sharepoint: { authProvisionId: "apn_xxxxxxx" },
    siteId: "Site",
    driveId: "Drive ID",
  },
})

console.log(result)
```

**cURL**

```bash
curl -X POST https://api.pipedream.com/v1/connect/{project_id}/actions/run \
  -H "Content-Type: application/json" \
  -H "X-PD-Environment: production" \
  -H "Authorization: Bearer {access_token}" \
  -d '{
    "external_user_id": "{external_user_id}",
    "id": "sharepoint-get-file-contents",
    "configured_props": {
      "sharepoint": { "authProvisionId": "apn_xxxxxxx" },
      "siteId": "Site",
      "driveId": "Drive ID"
    }
  }'
```

---

- App: https://pipedream.com/apps/sharepoint.md · All apps: https://pipedream.com/apps
