Skip to content

SharePoint Sites & Lists

Enumerate sites the token can see, list lists inside a site, and inspect a list's column schema. The column name returned here is the API name you must use in $filter, $orderby, selectFields, and the fields dictionary on create/update — not the human-friendly displayName.

GET/api/access/sharepoint/sitesBearer Token

List Sites

Returns SharePoint sites the connection can see, filtered by token rules.

Query Parameters

ParameterTypeDefaultDescription
qstringSubstring match against the site's display name and URL. Omit to enumerate every visible site.
limitint25Page size.
pageTokenstringOpaque cursor.

Required Operation

Requires read_sites.

Response 200 OK

{
"sites": [
{
"id": "sharepoint:site:contoso.sharepoint.com,11111111-1111-1111-1111-111111111111,22222222-2222-2222-2222-222222222222",
"displayName": "Marketing",
"name": "marketing",
"description": "Marketing department site",
"webUrl": "https://contoso.sharepoint.com/sites/marketing",
"createdDateTime": "2024-09-12T13:00:00Z",
"lastModifiedDateTime": "2026-04-20T11:43:00Z",
"isPersonalSite": false
}
],
"nextPageToken": null,
"hasMore": false,
"accessInfo": null
}
GET/api/access/sharepoint/sites/{siteId}Bearer Token

Get Site

Returns a single site by its prefixed site ID.

Required Operation

Requires read_sites. Returns 404 if missing or rule-blocked.

Response 200 OK

{
"id": "sharepoint:site:contoso.sharepoint.com,1111…,2222…",
"displayName": "Marketing",
"name": "marketing",
"description": "Marketing department site",
"webUrl": "https://contoso.sharepoint.com/sites/marketing",
"createdDateTime": "2024-09-12T13:00:00Z",
"lastModifiedDateTime": "2026-04-20T11:43:00Z",
"isPersonalSite": false
}
GET/api/access/sharepoint/sites/{siteId}/listsBearer Token

List Lists in a Site

Returns lists (including document libraries) inside a site.

Query Parameters

ParameterTypeDefaultDescription
limitint50Page size.
pageTokenstringOpaque cursor.

Required Operation

Requires read_lists. The columns array is omitted on listing responses to keep the page small — fetch a single list to get its columns.

Response 200 OK

{
"lists": [
{
"id": "sharepoint:site:…:list:33333333-3333-3333-3333-333333333333",
"displayName": "Tasks",
"name": "Tasks",
"description": "",
"webUrl": "https://contoso.sharepoint.com/sites/marketing/Lists/Tasks",
"template": "tasks",
"hidden": false,
"createdDateTime": "2024-10-01T09:00:00Z",
"lastModifiedDateTime": "2026-04-25T10:15:00Z",
"columns": null
}
],
"nextPageToken": null,
"hasMore": false,
"accessInfo": null
}

Common template values

templateMeaning
genericListCustom list
documentLibraryDocument library (drives surface here too)
tasksTasks list
eventsCalendar / events list
announcementsAnnouncements list
contactsContacts list
linksLinks list

Treat anything not in this set as opaque.

GET/api/access/sharepoint/sites/{siteId}/lists/{listId}Bearer Token

Get List (with columns)

Returns a single list including its column schema.

Required Operation

Requires read_lists. The columns array is populated on this endpoint.

Response 200 OK

{
"id": "sharepoint:site:…:list:33333333-…",
"displayName": "Tasks",
"template": "tasks",
"columns": [
{ "name": "Title", "displayName": "Task name", "columnType": "text", "hidden": false, "readOnly": false, "required": true, "indexed": true },
{ "name": "AssignedToId", "displayName": "Assigned to", "columnType": "personOrGroup", "hidden": false, "readOnly": false, "required": false, "indexed": false },
{ "name": "DueDate", "displayName": "Due", "columnType": "dateTime", "hidden": false, "readOnly": false, "required": false, "indexed": true }
]
}

Column Fields

FieldTypeDescription
namestring?API name — use in $filter, $orderby, selectFields, and fields dictionary
displayNamestring?Human label
columnTypestring?text, number, choice, dateTime, personOrGroup, lookup, …
hiddenboolWhether the column is hidden in the SharePoint UI
readOnlyboolComputed/system column — cannot be written
requiredboolRequired on create
indexedboolIndexed by SharePoint (cheap to filter on)

Use API names, not display names

When constructing OData queries or building tool schemas, always use columns[].name. displayName is for end-user UI only. Lookup and personOrGroup columns are usually suffixed with Id on the field name (e.g. AssignedToId, not AssignedTo).