Sapilon becomes publicly available on 1 December 2026: 42 days to go. The core goes open source the same day →

SharePoint integration

In short

Find sites, read and upload documents, and work with lists. Connect it on the Integrations page; your app then calls SharePoint through Sapilon without ever holding a Microsoft credential.

Lets your app find SharePoint sites the connected account can open, browse and upload files in their document libraries, and read and add items in SharePoint lists.

Connecting

On the Integrations page choose Connect on SharePoint, sign in to Microsoft and allow access. Under Advanced you can use your own Microsoft OAuth app instead of Sapilon’s.

  • Your app can reach every site the connecting account can.
  • Many Microsoft 365 organisations only let an admin approve new apps: if you see “Need admin approval”, ask your Microsoft 365 admin to consent once for the whole organisation.
  • Sapilon’s Microsoft app is being registered. Until it is, Advanced → Bring your own OAuth app (an Entra app registration) connects today.

What your app can do

Only these requests are available; anything else is refused.

  • GET /sites
  • GET /sites/*
  • GET /sites/*/drives
  • GET /sites/*/drive
  • GET /sites/*/lists
  • GET|POST /sites/*/lists/*/items
  • GET|PATCH /sites/*/lists/*/items/*
  • GET /drives/*/root/children
  • GET|POST /drives/*/items/*/children
  • GET|PUT /drives/*/items/*/content
  • GET|PUT /drives/*/root:/**

How the agent uses it

Use integrations.request('sharepoint', …); paths are relative to https://graph.microsoft.com/v1.0.

  • GET /sites with query: { search: 'Finance' } — find sites. GET /sites/acme.sharepoint.com:/sites/finance — one by path (the path is one segment: keep the colon). GET /sites/{siteId}.
  • GET /sites/{siteId}/drives, GET /sites/{siteId}/drive — document libraries.
  • GET /drives/{driveId}/root/children, GET|POST /drives/{driveId}/items/{id}/children, GET|PUT /drives/{driveId}/items/{id}/content, GET|PUT /drives/{driveId}/root:/Folder/file.docx:/content — as in OneDrive.
  • GET /sites/{siteId}/lists, GET|POST /sites/{siteId}/lists/{listId}/items — Example: { method: 'POST', path: '/sites/{siteId}/lists/{listId}/items', body: { fields: { Title: 'New supplier', Status: 'Open' } } }. Add query: { expand: 'fields' } to read columns.
  • GET|PATCH /sites/{siteId}/lists/{listId}/items/{id} — PATCH …/items/{id}/fields is not allowed; send body: { fields: {…} } to the item.

Deleting is not allowed.

More from Microsoft: https://learn.microsoft.com/graph/api/resources/sharepoint

Last updated .

Was this page helpful?