Skip to main content
Where the SharePoint and OneDrive connector reads a site’s document libraries as files, this connector reads the site’s SharePoint lists as tables. Every list becomes a catalog table with typed columns, and the agent queries it the way it queries a database — filters, ordering and column selection run server-side through Microsoft Graph, and the rest happens in pandas.
The SharePoint Lists connector is part of the Enterprise Edition.

What the agent sees

The connection points at one site. Every visible list on that site — a site can have many — is discovered as its own table:
  • Columns come from the list’s own schema. Text, choice, number, currency, date, boolean, person and lookup columns are typed accordingly; noise columns (compliance tags, attachments plumbing) are filtered out. ID, Created, Modified, Created By and Modified By are included.
  • Display names, not internal names. A SharePoint column displayed as 2017 may internally be field_2; one displayed as Category may be field_1. The agent sees and filters on the display names it recognizes from the SharePoint UI — the connector translates to internal names on the wire and back in the results.
  • Document libraries and hidden system lists are excluded. Libraries belong to the files connector; hidden lists can be opted back in with include_hidden.
Queries map 1:1 to Graph list-item calls with OData:
The connector sends the Prefer: HonorNonIndexedQueriesWarningMayFailRandomly header so filters work on non-indexed columns, and follows @odata.nextLink paging up to the row cap.

Before you start

The prerequisites are the same as for SharePoint and OneDrive: a Microsoft Entra ID app registration with a client secret, admin consent for the Graph permissions, and your Bag of words base URL for the OAuth redirect URI. If you already registered an app for the SharePoint files connector, reuse it — SharePoint Lists needs only Sites.Read.All, which that app already has.
Unlike Graph file reads, Graph list reads work app-only on standard tenants — so a service-principal-only connection can index and query lists without any user signing in, as long as the application permission is granted. With delegated sign-in, each user sees exactly the lists and items their own account can see.

Connect in Bag of words

Go to Data Sources → Add data source and pick SharePoint Lists.

Config fields

Authentication modes

Identical to the SharePoint files connector, backed by the same Entra app registration:
  • Entra ID App (Service Principal)tenant_id, client_id, client_secret (with optional oauth_client_id / oauth_client_secret overrides). Backs both the app-only path and the per-user sign-in flow.
  • Sign in with Microsoft — each user clicks Connect and completes the authorization-code flow; queries then run as that user. Entra SSO deployments also get OBO auto-provisioning, so users who log in with Microsoft are connected automatically.
See Authentication and access for shared vs per-user policies.

Troubleshooting

SharePoint rejects $filter/$orderby on non-indexed columns once a list crosses the 5,000-item view threshold, even with the Prefer header. Either index the column in SharePoint (List settings → Indexed columns), or drop the filter and let the agent filter in pandas — the connector’s error message tells the agent to do exactly that.
Document libraries are excluded by design — use the SharePoint files connector for those. Hidden lists need include_hidden. If the connection has a lists scope, the list name must match one of the configured names.
With a user-required connection and no Sites.Read.All application permission, the admin-side crawl legitimately finds nothing — the catalog populates per user after each user signs in with Microsoft.
Hidden and read-only system columns are filtered out of the catalog on purpose. Person and lookup columns return display values as strings.