# SharePoint

SharePoint is a Microsoft platform for document management and intranets, enabling teams to collaborate, store, and organize content securely and effectively

- **Category:** documents
- **Auth:** OAUTH2
- **Composio Managed App Available?** Yes
- **Tools:** 86
- **Triggers:** 0
- **Slug:** `SHARE_POINT`
- **Version:** 20260316_00

## Tools

### Add Attachment to List Item

**Slug:** `SHARE_POINT_ADD_ATTACHMENT_TO_LIST_ITEM`

Tool to add an attachment to a SharePoint list item. Use when you need to upload a binary file as an attachment to a specified list item.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `item_id` | integer | Yes | ID of the list item to which the file will be attached. |
| `file_name` | string | Yes | Name to assign to the attachment file in SharePoint. |
| `site_name` | string | No | The subsite name to scope the request to (e.g., 'composio-test'). If omitted, the root site is used. When provided, the API base URL becomes https://{tenant}.sharepoint.com/sites/{site}. |
| `list_title` | string | Yes | The display title of the SharePoint list containing the target item. |
| `content_text` | string | No | Optional raw text content to upload (UTF-8 encoded). Use when not passing file_content. |
| `file_content` | object | No | File to attach. Alternatively, omit this and provide either 'content_text' for UTF-8 text or 'content_base64' for arbitrary bytes. |
| `content_base64` | string | No | Optional base64-encoded bytes to upload. Use for binary content when not passing file_content. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Add Field Link to Content Type

**Slug:** `SHARE_POINT_ADD_FIELD_LINK_TO_CONTENT_TYPE`

Tool to add a field link to a list content type. Use when you want to associate an existing list field with a content type.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `hidden` | boolean | No | Whether the field link should be hidden in forms. Defaults to False. |
| `listid` | string | Yes | GUID of the SharePoint list in canonical format, e.g., '01234567-89ab-cdef-0123-456789abcdef'. |
| `required` | boolean | No | Whether the field link should be required. Defaults to False. |
| `site_name` | string | No | The subsite name to scope the request to (e.g., 'composio-test'). If omitted, the root site is used. When provided, the API base URL becomes https://{tenant}.sharepoint.com/sites/{site}. |
| `contenttypeid` | string | Yes | The content type ID (StringValue) within the list, e.g., '0x0100CC8BDE8AF72FC745A823106B7E8CD1FF'. |
| `field_internal_name` | string | Yes | The internal name of the existing field to link (e.g., 'Title'). |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Add Role Assignment to List Item

**Slug:** `SHARE_POINT_ADD_ROLE_ASSIGNMENT_TO_ITEM`

Tool to add a role assignment to a list item. Use when granting specific permissions to a user or group after breaking inheritance if needed. This action is externally visible and permanently alters item permissions; obtain explicit human approval for the target item and `role_definition_id` before executing.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `item_id` | integer | Yes | ID of the list item to which to add the role assignment. |
| `site_name` | string | No | The subsite name to scope the request to (e.g., 'composio-test'). If omitted, the root site is used. When provided, the API base URL becomes https://{tenant}.sharepoint.com/sites/{site}. |
| `list_title` | string | Yes | Title of the SharePoint list containing the target item. Must exactly match the list's display name. |
| `principal_id` | integer | Yes | ID of the user or group to grant permissions. |
| `role_definition_id` | integer | Yes | ID of the permission level (role definition) to assign. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Add Role Assignment to SharePoint List

**Slug:** `SHARE_POINT_ADD_ROLE_ASSIGNMENT_TO_LIST`

Tool to add a role assignment to a SharePoint list. Requires the list to have broken role inheritance first via SHARE_POINT_BREAK_ROLE_INHERITANCE_ON_LIST; inheriting lists will reject unique role assignments. Use when granting permissions to a user or group on a specific list.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `site_name` | string | No | The subsite name to scope the request to (e.g., 'composio-test'). If omitted, the root site is used. When provided, the API base URL becomes https://{tenant}.sharepoint.com/sites/{site}. |
| `list_title` | string | Yes | The title of the SharePoint list to grant permissions on. |
| `principal_id` | integer | Yes | The ID of the user or group principal to which the role will be assigned. Must be a site-collection-registered ID; use the Id returned by SHARE_POINT_ENSURE_USER to avoid invalid-principal errors. |
| `role_definition_id` | integer | Yes | The ID of the role definition to assign (e.g., 1073741827 for Contribute). |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Break Role Inheritance on List Item

**Slug:** `SHARE_POINT_BREAK_ROLE_INHERITANCE_ON_ITEM`

Tool to break permission inheritance on a list item. Call this before adding new role assignments; adding assignments prior leaves the item still inheriting parent permissions, causing unexpected access behavior. Use when you need to uniquely set permissions on an item after copying or clearing parent assignments.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `item_id` | integer | Yes | ID of the list item whose permissions inheritance will be broken |
| `site_name` | string | No | The subsite name to scope the request to (e.g., 'composio-test'). If omitted, the root site is used. When provided, the API base URL becomes https://{tenant}.sharepoint.com/sites/{site}. |
| `list_title` | string | Yes | Title of the list containing the item Must be the exact display name as shown in SharePoint UI, not the URL segment or internal name. |
| `clear_subscopes` | boolean | No | Whether to clear unique permissions on any child scopes of the item |
| `copy_role_assignments` | boolean | No | Whether to copy existing parent role assignments to the item before breaking inheritance |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Break Role Inheritance on List

**Slug:** `SHARE_POINT_BREAK_ROLE_INHERITANCE_ON_LIST`

Breaks permission inheritance on a SharePoint list, allowing you to set unique permissions. When you break inheritance, you can choose to: - Copy parent permissions as a starting point (copy_role_assignments=true) - Start fresh with no inherited permissions (copy_role_assignments=false) - Clear unique permissions on child items to re-inherit from this list (clear_subscopes=true) Use this when you need to manage list-level permissions independently from the site. Must be called before SHARE_POINT_ADD_ROLE_ASSIGNMENT_TO_LIST, which fails on lists still inheriting from the parent site.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `site_name` | string | No | The subsite name to scope the request to (e.g., 'composio-test'). If omitted, the root site is used. When provided, the API base URL becomes https://{tenant}.sharepoint.com/sites/{site}. |
| `list_title` | string | Yes | The title of the SharePoint list to break permission inheritance on. |
| `clear_subscopes` | boolean | Yes | Whether to reset unique permissions on child items (folders, documents) to inherit from this list. Set true to remove all item-level custom permissions and force inheritance from the list. Set false to preserve existing item-level unique permissions. |
| `copy_role_assignments` | boolean | Yes | Whether to copy parent permissions when breaking inheritance. Set true to start with a copy of the parent site's permissions (recommended for most cases). Set false to start with empty permissions where only the current user has access. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Check In SharePoint File

**Slug:** `SHARE_POINT_CHECK_IN_FILE`

Tool to check in a file. Use after uploading or editing a document and you're ready to finalize changes.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `comment` | string | No | Check-in comment to describe this version of the file. Defaults to empty string if not provided. |
| `site_name` | string | No | The subsite name to scope the request to (e.g., 'composio-test'). If omitted, the root site is used. When provided, the API base URL becomes https://{tenant}.sharepoint.com/sites/{site}. |
| `checkintype` | integer ("0" | "1" | "2") | No | Check-in type: 0=MinorCheckIn (draft/minor version), 1=MajorCheckIn (published/major version), 2=OverwriteCheckIn (overwrite current version without creating new version). Defaults to 1 (Major version). |
| `server_relative_path` | string | Yes | Server-relative URL of the file to check in, including library and folders. E.g., '/Shared Documents/example.docx'. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Create Content Type

**Slug:** `SHARE_POINT_CREATE_CONTENT_TYPE`

Tool to create a new content type in SharePoint. Use when you need to define a custom content type with specific metadata structure for lists or libraries.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | object | No | Model for the content type ID value object. |
| `name` | string | Yes | The name of the content type to create. |
| `group` | string | No | The group category for the content type, e.g., 'Custom Content Types', 'Document Content Types'. |
| `site_name` | string | No | The subsite name to scope the request to (e.g., 'composio-test'). If omitted, the root site is used. When provided, the API base URL becomes https://{tenant}.sharepoint.com/sites/{site}. |
| `description` | string | No | Description of the content type. Provides context about the purpose and usage of this content type. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Create Drive Item Sharing Link

**Slug:** `SHARE_POINT_CREATE_DRIVE_ITEM_SHARING_LINK`

Tool to create a sharing link for a drive item in SharePoint or OneDrive. Use when you need to generate a shareable link with specific permissions (view/edit/embed) and scope (anonymous/organization/users). The link can optionally include password protection and expiration date.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `type` | string ("view" | "edit" | "embed") | Yes | The type of sharing link to create. 'view' creates read-only access, 'edit' creates read-write access, 'embed' creates embeddable link (OneDrive Personal only). |
| `scope` | string ("anonymous" | "organization" | "users") | No | Scope of the sharing link. |
| `drive_id` | string | Yes | The unique identifier of the drive containing the item. |
| `password` | string | No | The password for the sharing link. Optional and OneDrive Personal only. |
| `driveItem_id` | string | Yes | The unique identifier of the drive item to create a link for. |
| `expirationDateTime` | string | No | The expiration time of the sharing link in ISO 8601 format (yyyy-MM-ddTHH:mm:ssZ). If not specified, the link does not expire unless a default expiration policy is enforced. |
| `retainInheritedPermissions` | boolean | No | If true (default), any existing inherited permissions are retained on the shared item. If false, all existing permissions are removed when sharing for the first time. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Create SharePoint List Field

**Slug:** `SHARE_POINT_CREATE_LIST_FIELD`

Tool to create a new field (column) in a SharePoint list. Use when you need to programmatically add a column after confirming the list GUID.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `title` | string | Yes | Display name of the new list field. |
| `required` | boolean | No | Whether the field is required (non-nullable). |
| `list_guid` | string | Yes | GUID of the SharePoint list where the new field will be created. Obtain via SHARE_POINT_SHAREPOINT_CREATE_LIST or SHARE_POINT_GET_LIST_BY_TITLE before calling this tool. |
| `site_name` | string | No | The subsite name to scope the request to (e.g., 'composio-test'). If omitted, the root site is used. When provided, the API base URL becomes https://{tenant}.sharepoint.com/sites/{site}. |
| `static_name` | string | Yes | Internal name of the field (no spaces). |
| `field_type_kind` | integer | Yes | Numeric value from SP.FieldType enumeration specifying the type of the field. Common values: 1=Counter, 2=Text (single line), 3=Note (multiple lines), 6=Choice, 8=Boolean, 9=Number (decimal), 11=URL, 20=User. |
| `enforce_unique_values` | boolean | No | Whether values in this field must be unique. Note: Fields with enforce_unique_values=True must be indexed (which is a separate operation not included in this action). If the field is not indexed, the API will return an error. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Create SharePoint List Item by GUID

**Slug:** `SHARE_POINT_CREATE_LIST_ITEM_BY_ID`

Tool to create a new item in a SharePoint list using the list's GUID. Use when you have the list GUID rather than the list title.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `fields` | object | Yes | Dictionary mapping internal field names to their values for the new list item. Example: {'Title': 'New Item', 'Description': 'Item details'}. At minimum, provide 'Title' field for most lists. |
| `list_id` | string | Yes | The unique identifier (GUID) of the SharePoint list where the item will be created. Format: '12345678-1234-1234-1234-123456789abc' |
| `site_name` | string | No | The subsite name to scope the request to (e.g., 'composio-test'). If omitted, the root site is used. When provided, the API base URL becomes 'https://{tenant}.sharepoint.com/sites/{site}'. |
| `metadata_type` | string | Yes | The ListItemEntityTypeFullName required for __metadata.type in the request body. Format: 'SP.Data.{ListName}ListItem' (e.g., 'SP.Data.TasksListItem' or 'SP.Data.AbcListItem'). Use GET_LIST_ITEM_ENTITY_TYPE_FULL_NAME to retrieve this value if unknown. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Create List Item in Folder

**Slug:** `SHARE_POINT_CREATE_LIST_ITEM_IN_FOLDER`

Tool to create a list item in a specific folder within a SharePoint list. IMPORTANT: This action works ONLY with SharePoint lists (not document libraries). The folder_url can be either a server-relative URL (e.g., '/Lists/MyList') or an absolute URL (e.g., 'https://site.sharepoint.com/sites/sitename/Lists/MyList'). To create files in document libraries, use a different action like upload_file.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `values` | array | Yes | List of field name/value pairs to set on the new item. |
| `site_name` | string | No | The subsite name to scope the request to (e.g., 'composio-test'). If omitted, the root site is used. When provided, the tenant is derived from the connected account's base URL. |
| `folder_url` | string | Yes | URL of the target folder within the list where the item will be created. Accepts both server-relative URLs (e.g., '/Lists/MyList') and absolute URLs (e.g., 'https://site.sharepoint.com/sites/sitename/Lists/MyList'). For the list root folder, use '/Lists/<ListName>' or the full absolute URL. For a subfolder within the list, append the subfolder path. You can obtain this URL from the list's RootFolder.ServerRelativeUrl property. This parameter works with SharePoint lists only, NOT document libraries. |
| `list_title` | string | Yes | The title of the SharePoint list where the item will be created. Must be an existing list (not a document library). |
| `check_in_comment` | string | No | Optional check-in comment if the item is checked out. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Create SharePoint Subsite

**Slug:** `SHARE_POINT_CREATE_WEB`

Tool to create a new SharePoint subsite under the current site. Use when you need to create a new subsite with specific settings for permissions, language, and template.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `url` | string | Yes | The URL segment for the new subsite (e.g., 'TestSubWeb'). This becomes part of the site URL path. Must contain only letters, numbers, hyphens, and underscores. |
| `title` | string | Yes | The display title for the new subsite. |
| `language` | integer | No | Language code for the subsite. Default is 1033 (English - United States). Examples: 1031 (German), 1033 (English), 1036 (French), 1040 (Italian), 1041 (Japanese), 1042 (Korean), 1043 (Dutch), 2052 (Chinese - Simplified), 3082 (Spanish). |
| `site_name` | string | No | The subsite name to scope the request to. You can find this in your SharePoint URL after /sites/ (e.g., https://tenant.sharepoint.com/sites/<subsite-name>). If omitted, the root site is used. |
| `description` | string | No | A description of the new subsite (optional). |
| `web_template` | string | No | Web template to use for the subsite. Use 'sts' for modern team site homepage or 'sts#0' for classic team site. Other options include 'blog', 'wiki', etc. |
| `use_unique_permissions` | boolean | No | If true, the subsite will have unique permissions separate from the parent site. If false, it inherits permissions from the parent site. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Delete Drive Item Version Content

**Slug:** `SHARE_POINT_DELETE_DRIVE_ITEM_VERSION_CONTENT`

Tool to delete content for a specific version of a drive item in SharePoint. Use when you need to remove the binary content associated with a particular version of a file while keeping the version metadata.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `drive_id` | string | Yes | The unique identifier of the drive. This is the ID of the document library or drive where the item is stored. You can get this from drive listing endpoints. |
| `driveitem_id` | string | Yes | The unique identifier of the drive item (file or folder). This is the ID of the specific item whose version content you want to delete. |
| `driveitemversion_id` | string | Yes | The unique identifier of the version. Version IDs are typically numeric strings like '1.0', '2.0', '24.0', etc. You can retrieve version IDs by listing versions for a drive item. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Delete SharePoint Folder

**Slug:** `SHARE_POINT_DELETE_FOLDER`

Deletes a folder from a SharePoint document library. This action permanently removes the specified folder and moves it to the site's recycle bin. Use this when you need to remove folders that are no longer needed. The operation is idempotent - attempting to delete a non-existent folder will succeed without error. Requires the server-relative path of the folder (e.g., '/Shared Documents/FolderName').

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `etag` | string | No | ETag for conditional deletion. Use '*' (default) to delete regardless of version. Provide a specific ETag value to delete only if the folder hasn't been modified since that version. |
| `site_name` | string | No | The subsite name to scope the request to (e.g., composio-test). If omitted, the root site is used. When provided, the API base URL becomes https://{tenant}.sharepoint.com/sites/{site}. |
| `server_relative_url` | string | Yes | The server-relative path of the folder to delete. This is the full path from the site root, including the document library and any parent folders. Format: '/DocumentLibrary/ParentFolder/FolderName'. Examples: '/Shared Documents/Reports', '/Documents/2024/Q1'. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Delete SharePoint List

**Slug:** `SHARE_POINT_DELETE_LIST`

Tool to delete a SharePoint list. Use when you need to remove a list by its GUID after confirming the correct list identifier.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `if_match` | string | No | ETag for concurrency control; use '*' to delete regardless of version. |
| `list_guid` | string | Yes | The GUID of the SharePoint list to delete (format: 'xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx'). |
| `site_name` | string | No | The subsite name to scope the request to (e.g., 'composio-test'). If omitted, the root site is used. When provided, the API base URL becomes 'https://{tenant}.sharepoint.com/sites/{site}'. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Delete SharePoint List By Title

**Slug:** `SHARE_POINT_DELETE_LIST_BY_TITLE`

Tool to delete a SharePoint list by its title. Use when you need to permanently remove a list and all its contents by specifying the list name.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `if_match` | string | No | ETag for concurrency control. Use '*' to force delete regardless of version, or provide a specific ETag value for version checking. |
| `site_name` | string | No | The subsite name to scope the request to (e.g., 'composio-test'). If omitted, the root site is used. When provided, the API base URL becomes https://{tenant}.sharepoint.com/sites/{site}. |
| `list_title` | string | Yes | The title of the SharePoint list to delete. This is a destructive operation that permanently removes the list and all its contents. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Delete SharePoint List Item

**Slug:** `SHARE_POINT_DELETE_LIST_ITEM`

Tool to delete a SharePoint list item. Use when you need to permanently remove an item by its ID. Use after obtaining the item's ETag to ensure concurrency control.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `item_id` | integer | Yes | Numeric ID of the list item to delete |
| `site_name` | string | No | The subsite name to scope the request to (e.g., 'composio-test'). If omitted, the root site is used. When provided, the API base URL becomes https://{tenant}.sharepoint.com/sites/{site}. |
| `list_title` | string | Yes | The exact title of the SharePoint list containing the item to delete |
| `match_etag` | string | No | ETag value for concurrency control. Use '*' to force delete regardless of version. If providing a specific ETag, use the full quoted value returned by GET_LIST_ITEM_ETAG (e.g., '"guid,version"' format like '"c7a93369-bda8-4da1-b1a3-3d87d2e207fc,1"'). Simple version numbers like '1' are not valid ETags. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Delete Recycle Bin Item Permanently

**Slug:** `SHARE_POINT_DELETE_RECYCLE_BIN_ITEM_PERMANENT`

Tool to permanently delete a SharePoint Recycle Bin item. Use after confirming the item's GUID to remove it irrevocably.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `site_name` | string | No | The subsite name to scope the request to (e.g., 'composio-test'). If omitted, the root site is used. When provided, the API base URL becomes https://{tenant}.sharepoint.com/sites/{site}. |
| `recyclebinitemid` | string | Yes | GUID of the Recycle Bin item to delete permanently. Must not be empty. Retrieve this GUID by querying the recycle bin and cross-referencing item name, original path, and deletion timestamp to confirm the correct item before deletion. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Download File by Server-relative URL

**Slug:** `SHARE_POINT_DOWNLOAD_FILE_BY_SERVER_RELATIVE_URL`

Tool to download a file by server-relative URL. Use when you need to fetch the raw bytes of a SharePoint file by its server-relative path.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `site_name` | string | No | Optional SharePoint site name to scope the file download. If provided, the file path is resolved relative to this site. If not provided, the site is auto-extracted from paths starting with /sites/. If not provided and no /sites/ prefix, the file path is resolved relative to the tenant root site. E.g., 'testcomposio' for a site at /sites/testcomposio. |
| `server_relative_url` | string | Yes | Server-relative URL of the file to download, starting with '/'. Can be either URL-encoded or unencoded. E.g., '/Shared Documents/report.pdf' for root site, '/sites/CustomerDocs/Documents/file.pdf' for subsites, or '/personal/username_domain/Documents/file.docx' for personal OneDrive sites. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Ensure SharePoint User

**Slug:** `SHARE_POINT_ENSURE_USER`

Ensures a user exists in a SharePoint site by their login name. If the user already exists, returns their info; if not, adds them to the site — this is a write operation with a provisioning side effect, not a read-only presence check. Use when you need to add a user or get their user ID for permissions. The login name must be in SharePoint claims format (e.g., 'i:0#.f|membership|user@domain.com'). This action only registers the user in the site collection and does not grant any permissions. To assign list-level access, pass the returned Id field as principal_id to SHARE_POINT_ADD_ROLE_ASSIGNMENT_TO_LIST.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `email` | string | No | Email address of the user to add to SharePoint. Automatically converted to claims format 'i:0#.f\|membership\|{email}'. Either email or login_name must be provided. |
| `title` | string | No | Optional display name/title for the user in SharePoint. If provided, the user's title will be updated after ensuring them. |
| `site_name` | string | No | The subsite name to scope the request to (e.g., 'composio-test'). If omitted, the root site is used. When provided, the API base URL becomes 'https://{tenant}.sharepoint.com/sites/{site}'. |
| `login_name` | string | No | Login name of the user in SharePoint claims format (e.g., 'i:0#.f\|membership\|user@domain.com'). Either login_name or email must be provided. If both are given, login_name takes priority. Throws an exception if login_name does not map to a real directory user; in batch operations, handle each user individually to prevent one failure from halting the batch. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Follow SharePoint Actor

**Slug:** `SHARE_POINT_FOLLOW`

Follow a SharePoint user, document, site, or tag. Use to make the authenticated user follow a specified actor. Supports following users (actor_type=0), documents (actor_type=1), sites (actor_type=2), or tags (actor_type=3).

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `tag_guid` | string | No | GUID of the tag when actor_type=3. |
| `site_name` | string | No | The subsite name to scope the request to (e.g., 'composio-test'). If omitted, the root site is used. When provided, the API base URL becomes https://{tenant}.sharepoint.com/sites/{site}. |
| `actor_type` | integer ("0" | "1" | "2" | "3") | Yes | Type of the actor to follow: 0=user, 1=document, 2=site, 3=tag. |
| `content_uri` | string | No | URI of the document or site when actor_type=1 or 2, e.g., 'http://server/site'. |
| `account_name` | string | No | Account name for a user when actor_type=0, in claims format, e.g., 'i:0#.f\|membership\|user@domain.com'. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get All SharePoint Folders

**Slug:** `SHARE_POINT_GET_ALL_FOLDERS`

Tool to retrieve all folders in the SharePoint web. Use when you need to discover all available folders across the site. Supports OData query parameters for filtering, selecting specific fields, sorting, and pagination.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `top` | integer | No | OData $top to limit the number of folders returned. |
| `expand` | string | No | OData $expand to include related entities such as 'Files,Folders,ListItemAllFields'. |
| `filter` | string | No | OData $filter to narrow results based on folder properties. |
| `select` | string | No | OData $select to specify which folder fields to return (comma-separated), e.g., 'Name,ServerRelativeUrl,ItemCount'. |
| `tenant` | string | No | The SharePoint tenant name (e.g., 'composio2024' for composio2024.sharepoint.com). This parameter is not used; tenant information is derived from the authenticated connection. |
| `orderby` | string | No | OData $orderby to sort results, e.g., 'Name asc' or 'TimeCreated desc'. |
| `site_name` | string | No | The subsite name to scope the request to (e.g., 'composio-test'). If omitted, the root site is used. When provided, the API base URL becomes https://{tenant}.sharepoint.com/sites/{site}. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get SharePoint List Changes

**Slug:** `SHARE_POINT_GET_CHANGES`

Tool to retrieve changes from SharePoint list change log. Use when processing webhook notifications to get actual changes that occurred. Set boolean flags in query (Add, Item, Update, etc.) to filter change types. Store the ChangeToken from the last change and use as ChangeTokenStart in subsequent calls to track only new changes.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `query` | object | Yes | Change query parameters specifying which types of changes to retrieve. Set boolean properties to True to include specific change types (e.g., Add=True, Item=True for new items). |
| `list_id` | string | Yes | GUID of the SharePoint list to get changes for, in canonical format, e.g., 'a12e3d6e-9414-462d-bd53-cf06f3982ad3'. |
| `site_name` | string | No | The subsite name to scope the request to (e.g., 'composio-test'). If omitted, the root site is used. When provided, the API base URL becomes https://{tenant}.sharepoint.com/sites/{site}. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get Content Type

**Slug:** `SHARE_POINT_GET_CONTENT_TYPE`

Tool to retrieve a single SharePoint content type by its ID. Use when you need detailed information about a specific content type including its fields, forms, and metadata.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `site_name` | string | No | The subsite name to scope the request to (e.g., 'composio-test'). If omitted, the root site is used. When provided, the API base URL becomes https://{tenant}.sharepoint.com/sites/{site}. |
| `content_type_id` | string | Yes | The unique identifier of the content type to retrieve. This can be the hexadecimal content type ID (e.g., '0x01' for Item, '0x0101' for Document) or the string representation. Common IDs: '0x01' (Item), '0x0101' (Document), '0x0120' (Folder). |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get Site Content Types

**Slug:** `SHARE_POINT_GET_CONTENT_TYPES`

Retrieves all content types from the current SharePoint site. Use this action to discover available content types on a SharePoint site. Returns metadata for each content type including Id, Name, Description, Group, and other properties. Supports OData query parameters for filtering, selecting specific fields, sorting, and pagination.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `top` | integer | No | OData $top to limit the number of results. |
| `expand` | string | No | OData $expand to include related entities. |
| `filter` | string | No | OData $filter to narrow results, e.g., 'Hidden eq false'. |
| `select` | string | No | OData $select to specify which content type fields to return, e.g., 'Name,Id,Description'. |
| `orderby` | string | No | OData $orderby to sort results, e.g., 'Name asc'. |
| `site_name` | string | No | The subsite name to scope the request to (e.g., 'composio-test'). If omitted, the root site is used. When provided, the API base URL becomes https://{tenant}.sharepoint.com/sites/{site}. |
| `skiptoken` | string | No | OData $skiptoken for paging through results. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get Content Types for List

**Slug:** `SHARE_POINT_GET_CONTENT_TYPES_FOR_LIST`

Tool to retrieve all content types for a specific SharePoint list by GUID. Use when you need the content type IDs, names, and descriptions of every content type in a list.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `list_guid` | string | Yes | GUID of the SharePoint list to retrieve content types for, in canonical format, e.g., '01234567-89ab-cdef-0123-456789abcdef'. |
| `site_name` | string | No | The subsite name to scope the request to (e.g., 'composio-test'). If omitted, the root site is used. When provided, the API base URL becomes 'https://{tenant}.sharepoint.com/sites/{site}'. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get SharePoint Context Info

**Slug:** `SHARE_POINT_GET_CONTEXT_INFO`

Tool to retrieve SharePoint context information including the form digest value. Use when you need a form digest token for write operations (POST, PUT, DELETE).

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `site_name` | string | No | The subsite name to scope the request to (e.g., `composio-test`). If omitted, the root site is used. When provided, the API base URL becomes `https://{tenant}.sharepoint.com/sites/{site}`. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get Current SharePoint User

**Slug:** `SHARE_POINT_GET_CURRENT_USER`

Tool to retrieve the current user for the site. Use after authenticating to get the current SharePoint user. A successful response confirms authentication only; access to specific sites, lists, or libraries depends on separate scopes and item-level permissions.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `site_name` | string | No | The subsite name to scope the request to (e.g., `composio-test`). If omitted, the root site is used. When provided, the API base URL becomes `https://{tenant}.sharepoint.com/sites/{site}`. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get Drive Item Analytics

**Slug:** `SHARE_POINT_GET_DRIVE_ITEM_ANALYTICS`

Tool to get analytics for a SharePoint drive item. Use when you need to retrieve access statistics (view counts, unique viewers) for files or folders in SharePoint/OneDrive.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `drive_id` | string | Yes | The unique identifier of the drive containing the item. |
| `site_name` | string | No | The subsite name to scope the request to (e.g., 'composio-test'). If omitted, the root site is used. When provided, the API base URL becomes https://{tenant}.sharepoint.com/sites/{site}. |
| `time_range` | string ("allTime" | "lastSevenDays") | No | Time range for analytics data. Use 'allTime' for all-time statistics or 'lastSevenDays' for the last seven days. |
| `driveItem_id` | string | Yes | The unique identifier of the drive item to get analytics for. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get File Metadata by Server Relative URL (Deprecated)

**Slug:** `SHARE_POINT_GET_FILE_BY_SERVER_RELATIVE_URL`

DEPRECATED: Use GetSiteDriveItemByPath instead. Tool to fetch SharePoint file metadata (exists/permissions/URLs/UniqueId) given a server-relative path, using the more robust ServerRelativePath API for special characters. Use after SHARE_POINT_SEARCH_QUERY returns a Path and you need to confirm the canonical working path or retrieve file properties without downloading bytes.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `expand` | string | No | OData $expand query option. Comma-separated list of related entities to expand, such as 'ListItemAllFields' to include list item metadata. |
| `select` | string | No | OData $select query option. Comma-separated list of fields to return. E.g., 'ServerRelativeUrl,UniqueId,Name,Length,TimeLastModified,LinkingUri'. |
| `site_name` | string | No | Optional SharePoint site name to scope the file retrieval. Required when accessing files in a subsite (e.g., when the path starts with /sites/). If the file path is '/sites/Workshopsubmissions/Shared Documents/file.pdf', set site_name='Workshopsubmissions'. If not provided, the file is resolved from the tenant root site context. This parameter is auto-extracted from paths starting with /sites/ if not explicitly provided. |
| `server_relative_path_decoded` | string | Yes | Decoded server-relative path of the file, starting with '/'. E.g., '/sites/Finance/Shared Documents/W-9.pdf' or '/Shared Documents/report.pdf'. Do not URL-encode; provide the path with spaces and special characters as-is. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get SharePoint Folder by Server Relative URL (Deprecated)

**Slug:** `SHARE_POINT_GET_FOLDER_BY_SERVER_RELATIVE_URL`

DEPRECATED: Use SHARE_POINT_GET_SITE_DRIVE_ITEM_BY_PATH instead. Tool to retrieve a folder by its server-relative URL. Use when you need to fetch folder metadata by path before further operations. Returns only the immediate folder; to traverse nested structures, iterate `Folders.results` and call this tool recursively for each subfolder.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `expand` | string | No | OData $expand query option. Comma-separated list of related entities to expand, such as 'Files,Folders,ListItemAllFields'. Expanding Files or Folders can produce large responses; access nested data via `Files.results` and `Folders.results` arrays. |
| `select` | string | No | OData $select query option. Comma-separated list of fields to return. E.g., 'Name,ServerRelativeUrl,ItemCount'. |
| `site_name` | string | No | The subsite name to scope the request to (e.g., 'composio-test'). If omitted, the root site is used. When provided, the API base URL becomes https://{tenant}.sharepoint.com/sites/{site_name}. |
| `server_relative_url` | string | Yes | Server-relative URL of the folder to retrieve, including library and any parent folders. Can be provided as a plain path (e.g., '/Shared Documents/MyFolder') or as a pre-encoded URL (e.g., '/Shared%20Documents/MyFolder'). Both formats are accepted and handled correctly. Path must exactly match the real SharePoint library name (e.g., '/Shared Documents' not '/Documents'); extra or missing slashes cause resolution failures. Prefer reusing the `server_relative_url` returned by this tool for downstream calls rather than constructing paths manually. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get Group Users

**Slug:** `SHARE_POINT_GET_GROUP_USERS`

Retrieves all users who are members of a specified SharePoint group. This action returns user information including IDs, names, email addresses, login names, and permission details. Supports OData query parameters for filtering, sorting, field selection, and pagination. Use this when you need to audit group membership, check user permissions, or list members of a specific group.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `top` | integer | No | OData $top parameter to limit the number of returned users. Must be a positive integer. |
| `expand` | string | No | OData $expand parameter to expand related navigation properties. Use 'Groups' to get the user's group memberships. |
| `filter` | string | No | OData $filter parameter to filter the returned users. Use OData filter syntax (e.g., 'PrincipalType eq 1' for regular users). |
| `select` | string | No | OData $select parameter to return only specific user fields. Comma-separated field names (e.g., 'Id,Title,Email,LoginName'). |
| `orderby` | string | No | OData $orderby parameter to sort the returned users. Specify field name and optional 'asc' or 'desc' (e.g., 'Title desc'). |
| `site_name` | string | No | The subsite name to scope the request to (e.g., 'composio-test'). If omitted, the root site is used. When provided, the API base URL becomes https://{tenant}.sharepoint.com/sites/{site}. |
| `skiptoken` | string | No | OData $skiptoken parameter for pagination. Use the skiptoken value from a previous response's __next link to get the next page of results. |
| `group_name` | string | Yes | Name of the SharePoint group to retrieve users from. Use the LoginName or Title of the group (e.g., 'Communication site Members', 'Site Owners'). |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get Group Users By ID

**Slug:** `SHARE_POINT_GET_GROUP_USERS_BY_ID`

Tool to retrieve all users in a specific SharePoint site group by group ID. Use when you have the numeric group ID and need to list all members of that group, including their IDs, names, email addresses, and permission details. Supports OData query parameters for filtering, sorting, field selection, and pagination.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `top` | integer | No | OData $top parameter to limit the number of returned users. Must be a positive integer. |
| `expand` | string | No | OData $expand parameter to expand related navigation properties. Use 'Groups' to get the user's group memberships. |
| `filter` | string | No | OData $filter parameter to filter the returned users. Use OData filter syntax (e.g., 'PrincipalType eq 1' for regular users). |
| `select` | string | No | OData $select parameter to return only specific user fields. Comma-separated field names (e.g., 'Id,Title,Email,LoginName'). |
| `orderby` | string | No | OData $orderby parameter to sort the returned users. Specify field name and optional 'asc' or 'desc' (e.g., 'Title desc'). |
| `group_id` | integer | Yes | Numeric ID of the SharePoint site group to retrieve users from. Use list_site_groups action to get available group IDs. |
| `site_name` | string | No | The subsite name to scope the request to (e.g., 'composio-test'). If omitted, the root site is used. When provided, the API base URL becomes https://{tenant}.sharepoint.com/sites/{site}. |
| `skiptoken` | string | No | OData $skiptoken parameter for pagination. Use the skiptoken value from a previous response's __next link to get the next page of results. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Download List Item Attachment

**Slug:** `SHARE_POINT_GET_ITEM_ATTACHMENT_CONTENT`

Tool to download an attachment from a SharePoint list item. Use when retrieving the binary contents of a specific attachment after confirming the list title, item ID, and filename.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `item_id` | integer | Yes | ID of the list item to retrieve the attachment from (must be non-negative). |
| `file_name` | string | Yes | Exact name of the attachment file, including extension. |
| `site_name` | string | No | The subsite name to scope the request to (e.g., 'composio-test'). If omitted, the root site is used. When provided, the API base URL becomes https://{tenant}.sharepoint.com/sites/{site}. |
| `list_title` | string | Yes | Title of the SharePoint list containing the target item. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get SharePoint List by GUID

**Slug:** `SHARE_POINT_GET_LIST_BY_GUID`

Tool to retrieve a SharePoint list by its GUID. Use when you need to fetch list metadata by its unique identifier. Prefer over name-based lookup tools when the GUID is known, as names may collide across similarly named lists.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `expand` | string | No | Comma-separated list of related entities to include in the response. Common values: Fields (list fields/columns), RootFolder (folder information), ContentTypes, Views. Example: 'Fields' or 'RootFolder' |
| `select` | string | No | Comma-separated list of fields to return. Limits the response to only specified fields. Common fields: Title, Id, Description, ItemCount, BaseType, BaseTemplate, Created, Hidden, EntityTypeName, ListItemEntityTypeFullName. Example: 'Title,Id,ItemCount' |
| `list_guid` | string | Yes | GUID of the SharePoint list to retrieve, in canonical format, e.g., '01234567-89ab-cdef-0123-456789abcdef'. |
| `site_name` | string | No | The subsite name to scope the request to (e.g., 'composio-test'). If omitted, the root site is used. When provided, the API base URL becomes https://{tenant}.sharepoint.com/sites/{site}. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get SharePoint List By Title

**Slug:** `SHARE_POINT_GET_LIST_BY_TITLE`

Tool to retrieve a SharePoint list by its title. Use when you need to fetch list metadata by title.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `expand` | string | No | Comma-separated list of related entities to include in the response. Common values: Fields (list fields/columns), RootFolder (folder information), ContentTypes, Views. Example: 'Fields' or 'RootFolder' Expanding Fields includes system and hidden fields; check the Hidden metadata flag to identify user-facing columns. |
| `select` | string | No | Comma-separated list of fields to return. Limits the response to only specified fields. Common fields: Title, Id, Description, ItemCount, BaseType, BaseTemplate, Created, Hidden, EntityTypeName, ListItemEntityTypeFullName. Example: 'Title,Id,ItemCount' Include 'Id' when the list GUID is needed as `list_guid`/`list_id` for downstream calls like SHARE_POINT_CREATE_LIST_FIELD. |
| `site_name` | string | No | Optional SharePoint site name to scope the list retrieval. If provided, the list is fetched from /sites/{site}. If not provided, the list is fetched from the tenant root site. E.g., 'testcomposio' for a site at /sites/testcomposio. |
| `list_title` | string | Yes | Title of the SharePoint list to retrieve. Will be URL-encoded and enclosed in single quotes in the endpoint. Must be an exact case-sensitive match to the list's display title; typos or renamed lists will cause lookup failures. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get Content Type by ID

**Slug:** `SHARE_POINT_GET_LIST_CONTENT_TYPE_BY_ID`

Tool to retrieve a specific content type from a SharePoint list by its ID. Use when you need detailed information about a particular content type including its fields, schema, and metadata.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `list_id` | string | Yes | GUID of the SharePoint list containing the content type, in canonical format (e.g., '0e0f0c3b-e23e-4aaf-8e22-803a3b572315'). |
| `site_name` | string | No | The subsite name to scope the request to (e.g., 'composio-test'). If omitted, the root site is used. When provided, the API base URL becomes https://{tenant}.sharepoint.com/sites/{site}. |
| `content_type_id` | string | Yes | The content type identifier, a hexadecimal string (e.g., '0x010100EAADC19ECD09234BAD136AAD68B38066'). This is the unique ID of the content type within SharePoint. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get List Item by ID

**Slug:** `SHARE_POINT_GET_LIST_ITEM_BY_ID`

Tool to retrieve a SharePoint list item by ID. Use when you need to fetch a specific item after knowing its ID.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `expand` | string | No | OData $expand to expand related entities, e.g., 'Author,Editor'. Must be used together with select parameter that includes the expanded fields. |
| `select` | string | No | OData $select to specify which fields to return, e.g., 'Title,Created'. Required when using expand parameter. |
| `item_id` | integer | Yes | Numeric ID of the list item to retrieve. |
| `site_name` | string | No | The subsite name to scope the request to (e.g., 'composio-test'). If omitted, the root site is used. When provided, the API base URL becomes https://{tenant}.sharepoint.com/sites/{site}. |
| `list_title` | string | Yes | Display title of the target SharePoint list. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get SharePoint List Items

**Slug:** `SHARE_POINT_GET_LIST_ITEMS`

Tool to retrieve items from a SharePoint list. Use when you need to fetch list entries with optional OData parameters.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `top` | integer | No | Maximum number of items to return. |
| `expand` | string | No | Comma-separated list of navigation properties to expand for lookup fields. |
| `filter` | string | No | OData filter expression to limit results (e.g., Title eq 'Test'). |
| `select` | string | No | Comma-separated list of internal field names to return. Use '*' to retrieve all available fields, which is recommended when you don't know the exact field names. SharePoint uses internal field names, not display names - spaces are hex-encoded as '_x0020_' (e.g., 'File_x0020_Size' for 'File Size'). Common system fields: Id, Title, Created, Modified, AuthorId, EditorId, GUID, FileLeafRef (file name), FileDirRef (folder path), FileRef (server-relative URL). Field availability varies by list type: document libraries include file-specific fields like File_x0020_Size, while custom lists have their own schema. To discover available fields for a specific list, either: (1) use select='*' first to see all fields returned in items, or (2) use SHARE_POINT_GET_LIST_BY_TITLE with expand='Fields' to get field metadata including InternalName. |
| `orderby` | string | No | OData orderby expression to sort results (e.g., Created desc). |
| `site_name` | string | No | Optional SharePoint site name to scope the list retrieval. If provided, the list is fetched from /sites/{site}. If not provided, the list is fetched from the tenant root site. E.g., 'testcomposio' for a site at /sites/testcomposio. |
| `skiptoken` | string | No | Token for paging through results. |
| `list_title` | string | Yes | Exact Title property value of the SharePoint list to query. The Title property value varies by site configuration and localization - for example, the default document library's Title may be 'Documents', 'Shared Documents', or a localized name. To find the exact Title property value, use SHARE_POINT_LIST_ALL_LISTS which returns all lists with their Title properties. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get SharePoint List Items by GUID

**Slug:** `SHARE_POINT_GET_LIST_ITEMS_BY_GUID`

Tool to retrieve items from a SharePoint list using its GUID. Use when you have the list's unique identifier and need to fetch list entries with optional OData parameters.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `top` | integer | No | Maximum number of items to return. |
| `expand` | string | No | Comma-separated list of navigation properties to expand for lookup fields. |
| `filter` | string | No | OData filter expression to limit results (e.g., Title eq 'Test'). |
| `select` | string | No | Comma-separated list of internal field names to return. Use '*' to retrieve all available fields, which is recommended when you don't know the exact field names. SharePoint uses internal field names, not display names - spaces are hex-encoded as '_x0020_' (e.g., 'File_x0020_Size' for 'File Size'). Common system fields: Id, Title, Created, Modified, AuthorId, EditorId, GUID, FileLeafRef (file name), FileDirRef (folder path), FileRef (server-relative URL). Field availability varies by list type: document libraries include file-specific fields like File_x0020_Size, while custom lists have their own schema. To discover available fields for a specific list, either: (1) use select='*' first to see all fields returned in items, or (2) use SHARE_POINT_GET_LIST_BY_GUID with expand='Fields' to get field metadata including InternalName. |
| `orderby` | string | No | OData orderby expression to sort results (e.g., Created desc). |
| `list_guid` | string | Yes | GUID of the SharePoint list to retrieve items from, in canonical format. The GUID uniquely identifies a list across the SharePoint site. To find list GUIDs, use SHARE_POINT_LIST_ALL_LISTS which returns all lists with their Id (GUID) properties. |
| `site_name` | string | No | The subsite name to scope the request to (e.g., 'composio-test'). If omitted, the root site is used. When provided, the API base URL becomes https://{tenant}.sharepoint.com/sites/{site}. |
| `skiptoken` | string | No | Token for paging through results. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get List Item Version

**Slug:** `SHARE_POINT_GET_LIST_ITEM_VERSION`

Tool to retrieve a specific version of a SharePoint list item. Use when you need to access historical versions of list items.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `item_id` | integer | Yes | Numeric ID of the list item whose version to retrieve. |
| `list_guid` | string | Yes | GUID of the SharePoint list in canonical format, e.g., '01234567-89ab-cdef-0123-456789abcdef'. |
| `site_name` | string | No | The subsite name to scope the request to (e.g., 'composio-test'). If omitted, the root site is used. When provided, the API base URL becomes https://{tenant}.sharepoint.com/sites/{site}. |
| `version_id` | integer | Yes | Version ID of the specific list item version to retrieve. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get Followed Entities

**Slug:** `SHARE_POINT_GET_MY_FOLLOWED`

Tool to get entities the current user is following. Use when you need to retrieve followed users, documents, sites, or tags after authentication.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `types` | integer | Yes | Bitmask of actor types to include. Users=1, Documents=2, Sites=4, Tags=8. Combine values with bitwise OR (e.g., 15 for all). |
| `site_name` | string | No | The subsite name to scope the request to (e.g., 'composio-test'). If omitted, the root site is used. When provided, the API base URL becomes https://{tenant}.sharepoint.com/sites/{site}. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get My Followers

**Slug:** `SHARE_POINT_GET_MY_FOLLOWERS`

Retrieves the list of users who are following the authenticated user in SharePoint. Returns an array of SocialActor objects containing follower details like name, email, account name, and personal site URI. No parameters required - automatically retrieves followers for the current authenticated user.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `site_name` | string | No | The subsite name to scope the request to (e.g., `composio-test`). If omitted, the root site is used. When provided, the API base URL becomes `https://{tenant}.sharepoint.com/sites/{site}`. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get Role Definitions

**Slug:** `SHARE_POINT_GET_ROLE_DEFINITIONS`

Tool to list role definitions at the web level. Role definition IDs and names are scoped per web/site collection — never hard-code them, as admins can modify role sets and IDs differ across site collections. Always resolve current values dynamically via this tool.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `top` | integer | No | OData top: Maximum number of items to return, must be ≥ 1. |
| `expand` | string | No | OData expand: Expand related entities (bulk expansion not supported). |
| `filter` | string | No | OData filter: Expression to filter returned role definitions (e.g., "Name eq 'Read'"). Name-based filters may be case-sensitive or locale-sensitive; normalize role names before constructing filter expressions to avoid empty results. |
| `select` | string | No | OData select: Comma-separated list of properties to return (e.g., 'Name,Id'). |
| `orderby` | string | No | OData orderby: Sort order (e.g., 'Name desc'). |
| `site_name` | string | No | The subsite name to scope the request to (e.g., 'composio-test'). If omitted, the root site is used. When provided, the API base URL becomes https://{tenant}.sharepoint.com/sites/{site}. |
| `skiptoken` | string | No | OData skiptoken: Pagination token for continuing a prior query. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get SharePoint Site Collection Info

**Slug:** `SHARE_POINT_GET_SITE_COLLECTION_INFO`

Tool to fetch site collection metadata (URL, ID, root web URI) only—not list item or document-level details. Use before subsequent calls to resolve correct API names. Requires SharePoint connection with site-collection-level scopes; may fail even when user-level tools succeed. Verify site_id before use—an incorrect site_id can silently return data for an unrelated site.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `expand` | string | No | OData $expand to expand navigation properties, e.g., 'Owner,RootWeb'. |
| `select` | string | No | OData $select to specify fields to return, e.g., 'Id,Url,ServerRelativeUrl'. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get Site Drive Item by Path

**Slug:** `SHARE_POINT_GET_SITE_DRIVE_ITEM_BY_PATH`

Tool to retrieve a file or folder by its server-relative path in a SharePoint site. Use when you need to get metadata for an item (file or folder) by path.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `expand` | string | No | OData $expand query option. Comma-separated list of related entities to expand. E.g., 'ListItemAllFields' for files, or 'Files,Folders' for folders. |
| `select` | string | No | OData $select query option. Comma-separated list of fields to return. E.g., 'Name,ServerRelativeUrl,UniqueId,Length,TimeLastModified'. |
| `item_path` | string | Yes | Server-relative path of the file or folder to retrieve, starting with '/'. E.g., '/Shared Documents/file.pdf' for files or '/Shared Documents/MyFolder' for folders. Can be provided as a plain path or pre-encoded. Both formats are accepted. |
| `site_name` | string | No | Optional SharePoint site name to scope the retrieval. Required when accessing items in a subsite (e.g., when the path starts with /sites/). If the path is '/sites/Workshopsubmissions/Shared Documents/file.pdf', set site_name='Workshopsubmissions'. If not provided, the item is resolved from the tenant root site context. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get SharePoint Site Page Content

**Slug:** `SHARE_POINT_GET_SITE_PAGE_CONTENT`

Tool to retrieve modern SharePoint Site Pages content by reading list item fields. Use when a .aspx page result cannot be downloaded as a file or when you need the structured content (CanvasContent1, LayoutWebpartsContent) of modern pages.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `item_id` | integer | No | List item ID of the page in the Site Pages library. Either page_file_name or item_id must be provided. |
| `render_as` | string ("raw" | "text" | "html") | No | Format for retrieving content fields. 'raw' returns direct field values (CanvasContent1, LayoutWebpartsContent). 'text' uses FieldValuesAsText endpoint for plain text rendering. 'html' uses FieldValuesAsHtml endpoint for HTML rendering. |
| `site_name` | string | No | Optional SharePoint site name to scope the page retrieval. If provided, the page is retrieved from /sites/{site}. If not provided, the page is retrieved from the tenant root site. E.g., 'testcomposio' for a site at /sites/testcomposio. |
| `page_file_name` | string | No | File name of the modern SharePoint page to retrieve (e.g., 'Formed-LLC-&-Received-EIN.aspx'). Must include the .aspx extension. Either page_file_name or item_id must be provided. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get User Effective Permissions on Web

**Slug:** `SHARE_POINT_GET_USER_EFFECTIVE_PERMISSIONS_ON_WEB`

Get a user's effective permissions on the current SharePoint site (Web). This action retrieves the combined permissions a user has on the site, taking into account direct permissions, group memberships, and permission inheritance. Use this when you need to verify what permissions a user or group has before performing operations. The response contains permission masks as 64-bit integers split into high and low 32-bit values. A value of "0" for both means no permissions. Returns site-level permissions only; list-level or item-level grants and restrictions are not reflected.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `site_name` | string | No | The subsite name to scope the request to (e.g., 'composio-test'). If omitted, the root site is used. When provided, the API base URL becomes https://{tenant}.sharepoint.com/sites/{site}. |
| `login_name` | string | Yes | Claims-based login name of the user or group whose permissions to retrieve. Provide the unencoded login; the action will URL-encode it automatically. Use list_site_users or get_current_user to obtain valid login names. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get SharePoint Webhook Subscription

**Slug:** `SHARE_POINT_GET_WEBHOOK_SUBSCRIPTION`

Tool to retrieve a specific webhook subscription by ID from a SharePoint list. Use when you need to check subscription details like expiration date or notification URL.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `list_id` | string | Yes | GUID of the SharePoint list containing the subscription, in canonical format, e.g., '01234567-89ab-cdef-0123-456789abcdef'. |
| `site_name` | string | No | The subsite name to scope the request to (e.g., 'composio-test'). If omitted, the root site is used. When provided, the API base URL becomes 'https://{tenant}.sharepoint.com/sites/{site}'. |
| `subscription_id` | string | Yes | GUID of the webhook subscription to retrieve, in canonical format, e.g., '01234567-89ab-cdef-0123-456789abcdef'. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get SharePoint Webhook Subscriptions

**Slug:** `SHARE_POINT_GET_WEBHOOK_SUBSCRIPTIONS`

Tool to retrieve all webhook subscriptions on a SharePoint list. Use when you need to view existing webhook configurations for a list.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `list_id` | string | Yes | The GUID of the SharePoint list to retrieve subscriptions for, in canonical format (e.g., '01234567-89ab-cdef-0123-456789abcdef'). |
| `site_name` | string | No | The subsite name to scope the request to (e.g., 'composio-test'). If omitted, the root site is used. When provided, the API base URL becomes https://{tenant}.sharepoint.com/sites/{site}. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get SharePoint Web Info

**Slug:** `SHARE_POINT_GET_WEB_INFO`

Tool to retrieve information about the current SharePoint web (site) using REST API. Use when you need web metadata such as title, URL, language, or template information.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `expand` | string | No | OData $expand to expand navigation properties, e.g., 'CurrentUser,Lists,Webs'. |
| `select` | string | No | OData $select to specify fields to return, e.g., 'Id,Title,Url,ServerRelativeUrl'. |
| `site_name` | string | No | The subsite name to scope the request to (e.g., 'composio-test'). If omitted, the root site is used. When provided, the API base URL becomes https://{tenant}.sharepoint.com/sites/{site}. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Check Follow Status

**Slug:** `SHARE_POINT_IS_FOLLOWED`

Tool to check if the current user is following a specified actor. Use when verifying follow status before performing follow or unfollow operations.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `tag_guid` | string | No | GUID of the tag when actor_type=3. |
| `site_name` | string | No | The subsite name to scope the request to (e.g., 'composio-test'). If omitted, the root site is used. When provided, the API base URL becomes 'https://{tenant}.sharepoint.com/sites/{site}'. |
| `actor_type` | integer ("0" | "1" | "2" | "3") | Yes | Type of the actor to check: 0=user, 1=document, 2=site, 3=tag. |
| `content_uri` | string | No | URI of the document or site when actor_type=1 or 2, e.g., 'http://server/site'. |
| `account_name` | string | No | Account name for a user when actor_type=0, in claims format, e.g., 'i:0#.f\|membership\|user@domain.com'. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List SharePoint Lists

**Slug:** `SHARE_POINT_LIST_ALL_LISTS`

Retrieves all lists in the current SharePoint web/site. Use this action to discover available lists and document libraries on a SharePoint site, or to pre-check for existing lists before creation (duplicate list names will fail). Returns metadata for each list including Title, Id, BaseType, ItemCount, and other properties. Supports OData query parameters for filtering, selecting specific fields, sorting, and pagination.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `top` | integer | No | OData $top to limit the number of results. |
| `expand` | string | No | OData $expand to include related entities. |
| `filter` | string | No | OData $filter to narrow results. |
| `select` | string | No | OData $select to specify which list fields to return, e.g., 'Title,Id'. |
| `orderby` | string | No | OData $orderby to sort results, e.g., 'Title desc'. |
| `site_name` | string | No | The subsite name to scope the request to (e.g., 'composio-test'). If omitted, the root site is used. When provided, the API base URL becomes https://{tenant}.sharepoint.com/sites/{site}. |
| `skiptoken` | string | No | OData $skiptoken for paging through results. The token value is returned in the previous response when more results exist; pass it unchanged to retrieve the next page. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List Drive Children

**Slug:** `SHARE_POINT_LIST_DRIVE_CHILDREN`

Tool to list children (files and folders) in a SharePoint drive using REST API v2.0. Use when you need to enumerate items in a drive's root folder or a specific folder within the drive.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `top` | integer | No | Number of items to return (OData $top parameter). Default is 200. |
| `filter` | string | No | OData filter expression. Common values: 'folder ne null' (only folders), 'file ne null' (only files), or custom filters like "name eq 'document.pdf'". |
| `select` | string | No | Comma-separated properties to return (e.g., 'id,name,size,folder,file,webUrl'). |
| `orderby` | string | No | OData orderby expression (e.g., 'name asc', 'lastModifiedDateTime desc'). |
| `drive_id` | string | Yes | The unique identifier of the drive. This is the drive ID (GUID) that identifies a specific document library or OneDrive. |
| `folder_id` | string | No | The unique identifier of a specific folder within the drive. If not provided, lists root folder children. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List Recently Modified Drive Items

**Slug:** `SHARE_POINT_LIST_DRIVE_RECENT_ITEMS`

Tool to list recently modified items in a SharePoint drive using Microsoft Graph API. Returns files and folders from the root folder sorted by modification time (most recent first). Note: This action uses the /root/children endpoint with $orderby=lastModifiedDateTime desc to retrieve recently modified items from the root folder.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `drive_id` | string | Yes | The unique identifier of the drive. This is the drive ID (GUID) that identifies a specific document library or OneDrive. |
| `row_limit` | integer | No | Maximum number of recently modified items to return. Default is 20. |
| `site_name` | string | No | The subsite name to scope the request to (e.g., 'composio-test'). If omitted, the root site is used. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List Drives via SharePoint REST API

**Slug:** `SHARE_POINT_LIST_DRIVES_REST_API`

Tool to retrieve drives using SharePoint REST API v2.0. Use when you need to list document libraries and drives from a SharePoint site using native SharePoint authentication (not Microsoft Graph).

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `top` | integer | No | OData $top parameter - number of drives to return. Default: 100. |
| `expand` | string | No | OData $expand parameter to expand related entities (e.g., 'root,items'). |
| `select` | string | No | OData $select parameter - comma-separated properties to return (e.g., 'id,name,webUrl,driveType'). |
| `site_name` | string | No | The subsite name to scope the request to (e.g., 'composio-test'). If omitted, the root site is used. When provided, the API base URL becomes 'https://{tenant}.sharepoint.com/sites/{site}'. |
| `site_path` | string | No | Site identifier or path segment (e.g., 'teamsite', 'engineering', or a site ID). Use 'root' for the root site. Do not include 'sites/' prefix as it is added automatically. |
| `sharepoint_site_url` | string | No | Full SharePoint site URL (e.g., 'https://composio2024.sharepoint.com'). If not provided, uses the default site from connection. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List Files in Folder

**Slug:** `SHARE_POINT_LIST_FILES_IN_FOLDER`

Tool to list files within a SharePoint folder (non-recursive; does not enumerate subfolders). Use when you need to enumerate all files in a folder by its server-relative URL. To cover nested structures, call the tool separately for each subfolder.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `top` | integer | No | OData $top to limit the number of files returned. |
| `expand` | string | No | OData $expand to inline related entities (e.g., 'ListItemAllFields'). When expanding 'Files,Folders', access results via `Files.results` and `Folders.results` arrays in the response. |
| `select` | string | No | OData $select to specify which file properties to return (comma-separated). |
| `orderby` | string | No | OData $orderby to sort the results (e.g., 'Name desc'). |
| `site_name` | string | No | The subsite name to scope the request to (e.g., 'composio-test'). If omitted, the root site is used. When provided, the API base URL becomes 'https://{tenant}.sharepoint.com/sites/{site}'. |
| `skiptoken` | string | No | OData $skiptoken for server-side paging. |
| `folder_name` | string | Yes | Server-relative URL of the folder, e.g., '/Shared Documents' or '/sites/MySite/Folder'. Must be a valid path to an existing folder. Near-miss paths (wrong casing, extra/missing slashes, abbreviated names) silently return empty results rather than an error; use server_relative_url values from prior API responses to ensure exact paths. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List Item Attachments

**Slug:** `SHARE_POINT_LIST_ITEM_ATTACHMENTS`

Tool to list all attachments for a SharePoint list item. Use when you need to retrieve filenames and server-relative URLs of each attachment after confirming the list title and item ID.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `item_id` | integer | Yes | ID of the list item to list attachments for (must be ≥ 1). |
| `site_name` | string | No | The subsite name to scope the request to (e.g., 'composio-test'). If omitted, the root site is used. When provided, the API base URL becomes https://{tenant}.sharepoint.com/sites/{site}. |
| `list_title` | string | Yes | Display title of the SharePoint list containing the item. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List SharePoint List Columns

**Slug:** `SHARE_POINT_LIST_LIST_COLUMNS`

Tool to list all column definitions in a SharePoint list. Use when you need to retrieve field metadata including column names, types, and properties.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `top` | integer | No | OData $top to limit the number of results. |
| `filter` | string | No | OData $filter to narrow results, e.g., 'Hidden eq false'. |
| `select` | string | No | OData $select to specify which column fields to return, e.g., 'Title,InternalName,TypeAsString'. |
| `list_id` | string | Yes | GUID of the SharePoint list to retrieve columns for, in canonical format, e.g., '01234567-89ab-cdef-0123-456789abcdef'. |
| `orderby` | string | No | OData $orderby to sort results, e.g., 'Title asc'. |
| `site_name` | string | No | The subsite name to scope the request to (e.g., 'composio-test'). If omitted, the root site is used. When provided, the API base URL becomes https://{tenant}.sharepoint.com/sites/{site}. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List Recycle Bin Items

**Slug:** `SHARE_POINT_LIST_RECYCLE_BIN_ITEMS`

Tool to list items in the SharePoint Recycle Bin. Use when you need to retrieve deleted items and page through results.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `top` | integer | No | Maximum number of items to return. |
| `expand` | string | No | Comma-separated list of navigation properties to expand (e.g., Author,DeletedBy). |
| `filter` | string | No | OData filter expression to filter items (e.g., ItemState eq 1). |
| `select` | string | No | Comma-separated list of fields to include in the response (e.g., Id,Title,DeletedDate). |
| `orderby` | string | No | OData orderby expression to sort results (e.g., DeletedDate desc). |
| `site_name` | string | No | The subsite name to scope the request to (e.g., `composio-test`). If omitted, the root site is used. When provided, the API base URL becomes `https://{tenant}.sharepoint.com/sites/{site}`. |
| `skiptoken` | string | No | Token for server-driven pagination. Extract this value from the `@odata.nextLink` or pagination token in the previous response and pass it into the next call to retrieve subsequent pages. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List Site Groups

**Slug:** `SHARE_POINT_LIST_SITE_GROUPS`

Tool to list SharePoint site groups for a site collection. Use when you need to see all groups and their settings before managing permissions.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `top` | integer | No | OData $top clause to limit the number of returned groups. |
| `skip` | integer | No | OData $skip clause for paging, number of results to skip. |
| `expand` | string | No | OData $expand clause to pull in navigation properties like Users or Owner. |
| `filter` | string | No | OData $filter clause to filter results. Example: "substringof('Owners',Title)" |
| `select` | string | No | OData $select clause to specify which group fields to return. Example: 'Title,Id' |
| `orderby` | string | No | OData $orderby clause to sort results. Example: 'Title desc' |
| `site_name` | string | No | The subsite name to scope the request to (e.g., 'composio-test'). If omitted, the root site is used. When provided, the API base URL becomes https://{tenant}.sharepoint.com/sites/{site}. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List SharePoint Sites

**Slug:** `SHARE_POINT_LIST_SITES`

Tool to retrieve all SharePoint sites accessible to the user. Use when you need to discover available sites before performing site-specific operations.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `top` | integer | No | Number of sites to return. Maximum value is 500. |
| `search` | string | No | Search query to filter sites by name or description. Use '*' to get all sites. |
| `select` | string | No | Comma-separated list of managed property names to return. Common properties: SiteId, SiteName, Title, Path, Description, Created, LastModifiedTime. If not specified, SharePoint returns a default set of properties. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List Site Users

**Slug:** `SHARE_POINT_LIST_SITE_USERS`

Tool to list users in the site collection. Results include person users, groups, and system principals by default; use filter 'PrincipalType eq 1' to restrict to individual users.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `top` | integer | No | OData top to limit the number of results. |
| `expand` | string | No | OData expand to include related entities, e.g., 'Groups'. |
| `filter` | string | No | OData filter to narrow results, e.g., 'PrincipalType eq 1'. substringof filters are case-sensitive; normalize casing in filter values to avoid missing valid matches. |
| `select` | string | No | OData select to specify which user fields to return, e.g., 'Title,Email'. Email can be empty for some users; prefer LoginName or Id for reliable identification. |
| `orderby` | string | No | OData orderby to sort results, e.g., 'Title asc'. |
| `site_name` | string | No | The subsite name to scope the request to (e.g., 'composio-test'). If omitted, the root site is used. When provided, the API base URL becomes 'https://{tenant}.sharepoint.com/sites/{site}'. |
| `skiptoken` | string | No | OData skiptoken for paging through results. Iterate requests following each returned skiptoken until no further skiptoken is returned to retrieve all users. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List Subfolders in Folder

**Slug:** `SHARE_POINT_LIST_SUBFOLDERS_IN_FOLDER`

Tool to list immediate child folders within a SharePoint folder. Use when you need folder navigation or directory discovery by server-relative URL.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `top` | integer | No | OData $top to limit the number of subfolders returned. |
| `select` | string | No | OData $select to specify which folder properties to return (comma-separated). |
| `orderby` | string | No | OData $orderby to sort the results (e.g., 'Name desc'). |
| `site_name` | string | No | The subsite name to scope the request to (e.g., 'composio-test'). If omitted, the root site is used. When provided, the API base URL becomes https://{tenant}.sharepoint.com/sites/{site}. |
| `folder_server_relative_url` | string | Yes | Server-relative URL of the parent folder, e.g., '/Shared Documents' or '/sites/MySite/Folder'. Must be a valid path to an existing folder. For folders with special characters (#, %), the action will automatically use the ResourcePath-based endpoint. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Log SharePoint Event

**Slug:** `SHARE_POINT_LOG_EVENT`

Log custom usage analytics events in SharePoint for tracking user activities. Records usage events (views, edits, custom actions) to SharePoint's analytics system. Use this after performing actions to track usage patterns. The event will be logged to SharePoint's usage analytics database for reporting and analytics purposes. Common use cases: - Track document views or edits - Record custom user interactions - Log application-specific events for analytics Note: Obtain site/web GUIDs from GET /api/site or GET /api/web endpoints. Use consistent item_id, scope_id, and site GUIDs across related events for the same entity to ensure correct analytics grouping and correlation in reports.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `user` | string | Yes | User identifier who triggered the event. Can be email address (user@domain.com), display name, or SharePoint LoginName (i:0#.f\|membership\|user@domain.com). |
| `item_id` | string | Yes | GUID of the item (document, list item, or web) related to this event. Can be a document ID, list item ID, web ID, or site collection ID. |
| `site_id` | string | Yes | GUID of the site collection where the event occurred. Use the site collection ID from GET /api/site. |
| `scope_id` | string | Yes | GUID defining the scope/context of the event. Typically the web ID or site collection ID where the event occurred. |
| `site_name` | string | No | The subsite name to scope the request to (e.g., 'composio-test'). If omitted, the root site is used. When provided, the API base URL becomes 'https://{tenant}.sharepoint.com/sites/{site}'. |
| `event_type_id` | integer | Yes | ID of the usage event type. Valid values are typically 1-4 for different SharePoint event types (e.g., 1=View, 2=Edit, 3=Custom). Use values 1-4 for standard tracking events. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Recycle SharePoint File

**Slug:** `SHARE_POINT_RECYCLE_FILE`

Tool to move a file to the Recycle Bin. Use when you need to recycle a file after confirming its folder and filename paths.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `site_name` | string | No | The subsite name to scope the request to (e.g., 'composio-test'). If omitted, the root site is used. When provided, the API base URL becomes 'https://{tenant}.sharepoint.com/sites/{site}'. |
| `file_relative_url` | string | Yes | Relative URL of the file within the folder to recycle, e.g., 'document.docx'. Do not include a leading '/'. |
| `folder_relative_url` | string | Yes | Server-relative URL of the folder containing the file to recycle, e.g., '/Shared Documents/Folder1'. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Recycle SharePoint List Item

**Slug:** `SHARE_POINT_RECYCLE_LIST_ITEM`

Tool to move a list item to the Recycle Bin. Use when you need to soft-delete an item but preserve the ability to restore it.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `item_id` | integer | Yes | Numeric ID of the list item to recycle. |
| `list_id` | string | Yes | GUID of the SharePoint list containing the target item, in canonical format (e.g., '01234567-89ab-cdef-0123-456789abcdef'). |
| `site_name` | string | No | The subsite name to scope the request to (e.g., 'composio-test'). If omitted, the root site is used. When provided, the API base URL becomes https://{tenant}.sharepoint.com/sites/{site}. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Rename SharePoint Folder

**Slug:** `SHARE_POINT_RENAME_FOLDER`

Renames a SharePoint folder by updating its list item metadata. To use this action: 1. First call GET_FOLDER_BY_SERVER_RELATIVE_URL with expand=ListItemAllFields to get the folder's metadata_type 2. Extract the '__metadata.type' value from the response's ListItemAllFields (e.g., 'SP.Data.Shared_x0020_DocumentsItem') 3. Call this action with the folder path, metadata_type, and new name The rename operation updates both the folder's display name (Title) and actual name (FileLeafRef). Note: This only changes the folder name, not its location in the hierarchy.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `new_name` | string | Yes | New folder name (leaf name only, not full path). This will be used for both the display name (Title) and the actual folder name (FileLeafRef). Do not include path separators (/). |
| `site_name` | string | No | The subsite name to scope the request to (e.g., 'composio-test'). If omitted, the root site is used. When provided, the API base URL becomes https://{tenant}.sharepoint.com/sites/{site}. |
| `match_etag` | string | No | ETag value for concurrency control. Use '*' (default) to overwrite regardless of the current version. To enforce version checking, obtain the ETag from GET_FOLDER_BY_SERVER_RELATIVE_URL with expand=ListItemAllFields, then use the '__metadata.etag' value. |
| `__metadata.type` | string | Yes | OData entity type of the folder's list item. This is required by SharePoint's REST API. To obtain this value, first call GET_FOLDER_BY_SERVER_RELATIVE_URL with expand=ListItemAllFields, then extract the '__metadata.type' field from ListItemAllFields (typically 'SP.Data.Shared_x0020_DocumentsItem' for the 'Shared Documents' library, but varies by library name). |
| `server_relative_folder_url` | string | Yes | Server-relative path of the folder to rename, including library and any parent folders. Must start with '/' and include the document library name. Example: '/Shared Documents/OldFolder' or '/Shared Documents/ParentFolder/OldFolder'. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Render List Data As Stream

**Slug:** `SHARE_POINT_RENDER_LIST_DATA_AS_STREAM`

Retrieve list items from SharePoint with rich metadata and formatting. Returns items in the 'Row' array along with pagination info (FirstRow, LastRow, NextHref). Supports CAML queries via ViewXml for filtering and sorting. Use this when you need list data with properly formatted field values, lookup fields, or managed metadata - more capable than standard OData endpoints.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `site_name` | string | No | Optional SharePoint site name to scope the list data request. If provided, the list path is resolved relative to this site. If not provided and list_server_relative_url starts with '/sites/{site}/', the site is extracted automatically from the path. E.g., 'testcomposio' for a site at /sites/testcomposio. |
| `parameters` | object | No | Body parameters to control rendering options for RenderListDataAsStream. |
| `query_params` | object | No | Optional query string parameters to control view behavior. See documentation for supported keys. |
| `list_server_relative_url` | string | Yes | Server-relative URL of the list. If 'site' parameter is provided, this should be the path relative to that site (e.g., '/Lists/Orders' or '/Shared Documents'). If 'site' is not provided and the path does not start with '/sites/', it's resolved relative to the tenant root. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Restore Drive Item Version

**Slug:** `SHARE_POINT_RESTORE_DRIVE_ITEM_VERSION`

Tool to restore a previous version of a SharePoint drive item. Use when you need to revert a file to an earlier version.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `drive_id` | string | Yes | The unique identifier of the drive containing the item |
| `driveItem_id` | string | Yes | The unique identifier of the drive item (file or folder) to restore |
| `driveItemVersion_id` | string | Yes | The unique identifier or version number of the version to restore (e.g., '23.0', '1.0') |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Restore Recycle Bin Item

**Slug:** `SHARE_POINT_RESTORE_RECYCLE_BIN_ITEM`

Tool to restore a SharePoint Recycle Bin item. Use when you need to recover a deleted item by providing its GUID.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `site_name` | string | No | The subsite name to scope the request to (e.g., 'composio-test'). If omitted, the root site is used. When provided, the API base URL becomes https://{tenant}.sharepoint.com/sites/{site}. |
| `recyclebinitemid` | string | Yes | GUID of the Recycle Bin item to restore. Must be a valid GUID string. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Search SharePoint Site

**Slug:** `SHARE_POINT_SEARCH_QUERY`

Search SharePoint content using Keyword Query Language (KQL). Returns documents, list items, folders, and other content matching your query. Supports filtering by properties (file type, author, date), pagination, and custom property selection. Results are nested under PrimaryQueryResult→RelevantResults→Table→Rows→Cells as Key/Value pairs requiring explicit extraction. Results are security-trimmed: inaccessible content never appears even if it exists. Use contentclass (e.g., STS_Site, STS_Web, STS_ListItem_DocumentLibrary) in querytext to isolate specific item types.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `rowlimit` | integer | No | Maximum number of results to return per request. Default is determined by SharePoint (typically 50). Maximum is 500. |
| `startrow` | integer | No | Zero-based index of the first result to return. Use for pagination (e.g., startrow=0 for page 1, startrow=10 for page 2 with rowlimit=10). Compare TotalRows vs RowCount in the response to determine if additional pages exist; increment startrow by rowlimit until all results are retrieved. |
| `querytext` | string | Yes | The search query using Keyword Query Language (KQL) syntax. Examples: 'project report', 'IsDocument:1', 'FileType:docx', 'Author:"John Doe"'. Broad queries (e.g., '.xlsx' alone) return noisy large result sets; narrow with site paths, Author, date ranges, or other KQL properties. Filter by contentclass to isolate specific item types. |
| `site_name` | string | No | The subsite name to scope the request to (e.g., 'composio-test'). If omitted, the root site is used. When provided, the API base URL becomes 'https://{tenant}.sharepoint.com/sites/{site}'. |
| `selectproperties` | string | No | Comma-separated list of managed property names to return in results. If not specified, SharePoint returns a default set of properties. Common properties: Title, Author, Path, Size, LastModifiedTime, FileType. Include SiteId and WebId alongside Path to disambiguate items sharing the same title across different locations. |
| `refinementfilters` | string | No | Refinement filters to narrow search results. Format: 'PropertyName:value' or use FQL syntax for complex filters. Example: 'FileType:equals("docx")'. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Search Suggest

**Slug:** `SHARE_POINT_SEARCH_SUGGEST`

Tool to get search query suggestions. Use when you need to provide autocomplete options for user search input.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `Culture` | integer | No | Locale ID (LCID) for the query. |
| `querytext` | string | Yes | Text for which to retrieve query suggestions. |
| `site_name` | string | No | The subsite name to scope the request to (e.g., 'composio-test'). If omitted, the root site is used. When provided, the API base URL becomes https://{tenant}.sharepoint.com/sites/{site}. |
| `EnableStemming` | boolean | No | True to enable stemming. |
| `EnableQueryRules` | boolean | No | True to enable query rules. |
| `fHitHighlighting` | boolean | No | True to bold-match terms in suggestions. |
| `fPreQuerySuggestions` | boolean | No | True to get pre-query suggestions; false for post-query. |
| `fPrefixMatchAllTerms` | boolean | No | True to return suggestions matching all query prefixes. |
| `fCapitalizeFirstLetters` | boolean | No | True to capitalize first letters of each term. |
| `ShowPeopleNameSuggestions` | boolean | No | True to include people name suggestions. |
| `iNumberOfQuerySuggestions` | integer | No | Number of query suggestions to retrieve. Must be >= 1. |
| `iNumberOfResultSuggestions` | integer | No | Number of result suggestions to retrieve. Must be >= 1. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Check Out SharePoint File

**Slug:** `SHARE_POINT_SHAREPOINT_CHECK_OUT_FILE`

Tool to check out a file in a document library. Use when you need to lock a file before making changes.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `site_name` | string | No | The subsite name to scope the request to (e.g., 'composio-test'). If omitted, the root site is used. When provided, the API base URL becomes https://{tenant}.sharepoint.com/sites/{site}. |
| `server_relative_path` | string | Yes | The server-relative path to the file that needs to be checked out, e.g., '/Shared Documents/a.txt'. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Create SharePoint Folder

**Slug:** `SHARE_POINT_SHAREPOINT_CREATE_FOLDER`

Creates a new folder in SharePoint using the REST API. Returns `server_relative_url`; use it for downstream operations instead of constructing paths manually. Does not configure sharing or permissions on the created folder.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `site_name` | string | No | The subsite name to scope the request to (e.g., 'composio-test'). If omitted, the root site is used. When provided, the API base URL becomes https://{tenant}.sharepoint.com/sites/{site}. |
| `folder_name` | string | Yes | The name of the folder to create. |
| `relative_path` | string | No | Additional path within the document library (optional). The parent path must already exist; non-existent paths cause creation to fail. Path segments must be correctly encoded (e.g., spaces as %20). |
| `document_library` | string | No | The document library where the folder should be created. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Create SharePoint List

**Slug:** `SHARE_POINT_SHAREPOINT_CREATE_LIST`

Creates a new list in SharePoint using the REST API. Custom columns cannot be added at creation time; use SHARE_POINT_CREATE_LIST_FIELD with the returned `list_id` to add them afterward. Check `success` and `error` fields in the response to confirm creation. Returns a `list_id` used by downstream tools; note SHARE_POINT_SHAREPOINT_CREATE_LIST_ITEM targets lists by `list_name` (title).

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `name` | string | Yes | The name of the list to create. Must be unique per site; duplicate names cause failure. Pre-check with SHARE_POINT_GET_LIST_BY_TITLE or SHARE_POINT_LIST_ALL_LISTS before calling. |
| `template` | string | Yes | The template type for the list (e.g., 'genericList', 'documentLibrary', 'tasks', etc.). |
| `site_name` | string | No | The subsite name to scope the request to (e.g., 'composio-test'). If omitted, the root site is used. When provided, the API base URL becomes https://{tenant}.sharepoint.com/sites/{site}. |
| `description` | string | No | Description of the list (optional). |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Create SharePoint List Item

**Slug:** `SHARE_POINT_SHAREPOINT_CREATE_LIST_ITEM`

Creates a new item in a SharePoint list. Returns an `item_data` object containing `item_id`, `Title`, and timestamps on success.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `list_name` | string | Yes | The name or title of the list where the item will be created. Must exactly match the list's title as it exists in the site; verify the list exists first using SHARE_POINT_SHAREPOINT_CREATE_LIST if uncertain. |
| `site_name` | string | No | The subsite name to scope the request to (e.g., 'composio-test'). If omitted, the root site is used. When provided, the API base URL becomes https://{tenant}.sharepoint.com/sites/{site}. |
| `item_properties` | object | Yes | Dictionary of field names and values for the list item. Example: {'Title': 'New Item', 'Body': 'Content'} Keys must be SharePoint column internal names (not display names); use the SharePoint column settings to find internal names. The example key 'Body' is invalid on default lists — use 'Title' as the minimal valid payload and add fields one at a time to isolate errors. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Add Azure AD User to SharePoint Site (Deprecated)

**Slug:** `SHARE_POINT_SHAREPOINT_CREATE_USER`

DEPRECATED: Use SHARE_POINT_ENSURE_USER instead (supports email param directly). Adds an existing Azure AD user to the SharePoint site collection using the ensureuser endpoint. This action is idempotent - if the user is already in the site, it returns their existing details without error.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `email` | string | Yes | Email address of the Azure AD user to add to SharePoint site. Must be a valid user in your organization's Azure Active Directory. |
| `title` | string | No | Optional display name/title for the user in SharePoint. If not provided, the user's existing display name from Azure AD will be used. |
| `tenant` | string | No | DEPRECATED: This parameter is no longer used. The tenant is now automatically derived from the connected account's base_url in metadata. |
| `site_name` | string | No | The subsite name to scope the request to (e.g., 'composio-test'). If omitted, the root site is used. When provided, the API base URL becomes https://{tenant}.sharepoint.com/sites/{site}. |
| `login_name` | string | No | Optional login name for the user. If not provided, defaults to 'i:0#.f\|membership\|{email}'. This parameter is typically not needed as the email is sufficient. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Find SharePoint User

**Slug:** `SHARE_POINT_SHAREPOINT_FIND_USER`

Searches for a user in the SharePoint site by email address and returns their profile information if found. Response includes `exists_in_graph`, `exists_in_sharepoint`, and `error_details` fields; inspect all three together — `successful=true` can coexist with Graph errors in `error_details`. When the two backends diverge, treat `exists_in_sharepoint` as authoritative for access decisions.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `email` | string | Yes | Email address of the user to find. Must be a complete, valid email address — display names and short names are rejected and return 'User not found'. Use SHARE_POINT_LIST_SITE_USERS to resolve a display name to an email first. |
| `site_name` | string | No | The subsite name to scope the request to (e.g., 'composio-test'). If omitted, the root site is used. When provided, the API base URL becomes https://{tenant}.sharepoint.com/sites/{site}. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Remove SharePoint User

**Slug:** `SHARE_POINT_SHAREPOINT_REMOVE_USER`

Removes a user from SharePoint. Returns success even if user doesn't exist or was never a member; check response fields `was_removed` (bool) and `message` (str) to distinguish an actual removal from a no-op.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `email` | string | Yes | Email address of the user to remove. |
| `site_name` | string | No | The subsite name to scope the request to (e.g., 'composio-test'). If omitted, the root site is used. When provided, the API base URL becomes 'https://{tenant}.sharepoint.com/sites/{site}'. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Undo SharePoint File Checkout

**Slug:** `SHARE_POINT_UNDO_CHECKOUT_FILE`

Tool to undo a file checkout, discarding any changes made while checked out. Use when you need to cancel edits and unlock the file without saving.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `site_name` | string | No | The subsite name to scope the request to (e.g., 'composio-test'). If omitted, the root site is used. When provided, the API base URL becomes https://{tenant}.sharepoint.com/sites/{site}. |
| `server_relative_path` | string | Yes | Server-relative URL of the file to undo checkout, including library and folders. E.g., '/Shared Documents/test_undocheckout.txt'. This will discard any changes made while checked out. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Update SharePoint Content Type

**Slug:** `SHARE_POINT_UPDATE_CONTENT_TYPE`

Tool to update a SharePoint content type's properties such as name, description, group, or hidden status. Use when you need to modify content type metadata.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `name` | string | No | The name of the content type. Use this to rename the content type. |
| `group` | string | No | The group name that this content type belongs to. Use this to change the group classification. |
| `hidden` | boolean | No | Indicates whether the content type is hidden in the list's New menu. Set to true to hide the content type. |
| `site_name` | string | No | The subsite name to scope the request to (e.g., 'composio-test'). If omitted, the root site is used. When provided, the API base URL becomes https://{tenant}.sharepoint.com/sites/{site}. |
| `description` | string | No | The descriptive text for the content type. Use this to update the content type description. |
| `documentSet` | object | No | Model for document set metadata. |
| `contentType_id` | string | Yes | The unique identifier of the content type to update. This can be the content type ID (e.g., '0x01' for Item) or the string ID from the Id.StringValue property. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Update Drive Item

**Slug:** `SHARE_POINT_UPDATE_DRIVE_ITEM`

Tool to update the properties of a drive item (file or folder) in SharePoint using SharePoint REST API. Use when you need to rename files/folders or update their title property.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `name` | string | No | The new name for the item (filename with extension for files, folder name for folders). Use to rename the file or folder. |
| `title` | string | No | The new title for the item. This updates the Title field of the list item. |
| `site_name` | string | No | The subsite name to scope the request to (e.g., 'composio-test'). If omitted, the root site is used. When provided, the API base URL becomes https://{tenant}.sharepoint.com/sites/{site}. |
| `server_relative_url` | string | Yes | The server-relative URL of the file or folder to update (e.g., '/Shared Documents/file.docx' or '/sites/mysite/Shared Documents/folder'). |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Update SharePoint List

**Slug:** `SHARE_POINT_UPDATE_LIST`

Tool to update properties of an existing SharePoint list. Use when you need to modify list metadata such as title, description, or settings like versioning and attachments.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `title` | string | No | New title for the list. Provide this to rename the list. |
| `if_match` | string | No | ETag value for concurrency control. Use '*' to force update regardless of version. Provide a specific ETag to ensure safe concurrent updates. |
| `list_guid` | string | Yes | GUID of the SharePoint list to update, in canonical format (e.g., 'a12e3d6e-9414-462d-bd53-cf06f3982ad3'). |
| `site_name` | string | No | The subsite name to scope the request to (e.g., 'composio-test'). If omitted, the root site is used. When provided, the API base URL becomes https://{tenant}.sharepoint.com/sites/{site}. |
| `description` | string | No | New description for the list. Provide this to update the list description. |
| `enable_versioning` | boolean | No | Whether versioning is enabled for the list. Set to true to enable, false to disable. |
| `enable_attachments` | boolean | No | Whether attachments are enabled for list items. Set to true to enable, false to disable. |
| `content_types_enabled` | boolean | No | Whether content types are enabled for the list. Set to true to enable, false to disable. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Update SharePoint List Item

**Slug:** `SHARE_POINT_UPDATE_LIST_ITEM`

Tool to update fields on an existing SharePoint list item. Use when you need to modify an item's properties with proper ETag concurrency control via MERGE.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `etag` | string | No | ETag value for concurrency control. Use '*' to force update regardless of version. Provide a specific ETag (from GET_LIST_ITEM_ETAG tool) to ensure safe concurrent updates. Format: '"guid,version"' like '"c7a93369-bda8-4da1-b1a3-3d87d2e207fc,1"'. |
| `fields` | object | Yes | Dictionary mapping internal field names to their new values. Example: {'Title': 'Updated Title', 'Status': 'Complete'} |
| `item_id` | integer | Yes | Numeric ID of the list item to update. |
| `site_name` | string | No | The subsite name to scope the request to (e.g., 'composio-test'). If omitted, the root site is used. When provided, the API base URL becomes https://{tenant}.sharepoint.com/sites/{site}. |
| `list_title` | string | Yes | The exact title of the SharePoint list containing the item to update. |
| `entity_type_full_name` | string | No | The ListItemEntityTypeFullName required for __metadata.type in the request body. If not provided, it will be fetched automatically using GET_LIST_ITEM_ENTITY_TYPE_FULL_NAME. Format: 'SP.Data.{ListName}ListItem' like 'SP.Data.TasksListItem'. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Update SharePoint Site

**Slug:** `SHARE_POINT_UPDATE_SITE`

Tool to update properties of the current SharePoint site (web). Use when you need to modify site title, description, or other SP.Web properties via MERGE.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `title` | string | No | The new title for the site. If not provided, the title will not be updated. |
| `site_name` | string | No | The subsite name to scope the request to (e.g., `composio-test`). If omitted, the root site is used. When provided, the API base URL becomes `https://{tenant}.sharepoint.com/sites/{site}`. |
| `description` | string | No | The new description for the site. If not provided, the description will not be updated. |
| `tree_view_enabled` | boolean | No | Whether the tree view is enabled on the site. |
| `quick_launch_enabled` | boolean | No | Whether the Quick Launch navigation is enabled on the site. |
| `enable_minimal_download` | boolean | No | Whether to enable minimal download strategy for the site. |
| `save_site_as_template_enabled` | boolean | No | Whether the 'Save Site as Template' feature is enabled. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Upload File to Folder

**Slug:** `SHARE_POINT_UPLOAD_FILE`

Tool to upload a file to a SharePoint document library or folder. Use when you need to programmatically add or update a file in a document library.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `file` | object | No | File to upload. Alternatively, omit this and provide either 'content_text' for UTF-8 text or 'content_base64' for arbitrary bytes along with 'file_name' to set the filename. |
| `file_name` | string | No | Filename to use when uploading if 'file' is not provided. |
| `overwrite` | boolean | No | Whether to overwrite an existing file with the same name. Defaults to true. |
| `site_name` | string | No | The subsite name to scope the request to (e.g., 'composio-test'). If omitted, the root site is used. When provided, the API base URL becomes https://{tenant}.sharepoint.com/sites/{site}. |
| `content_text` | string | No | Optional raw text content to upload (UTF-8 encoded). Use when not passing 'file'. |
| `content_base64` | string | No | Optional base64-encoded bytes to upload. Use for binary content when not passing 'file'. |
| `folder_relative_url` | string | Yes | Server-relative URL of the destination folder, starting with '/'. E.g., '/Shared Documents'. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Upload File from URL to SharePoint

**Slug:** `SHARE_POINT_UPLOAD_FROM_URL`

Tool to fetch a file from a URL and upload it to SharePoint. Use when you need to upload files directly from external URLs without downloading them to the client first.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `site_id` | string | No | SharePoint site ID (e.g., contoso.sharepoint.com,2C712604-...,2D2244C3-...). If not provided, uses the default site from authentication. |
| `drive_id` | string | No | Drive ID where the file should be uploaded. If not provided, uses the default document library. |
| `file_url` | string | Yes | The URL of the file to download and upload to SharePoint. Must be accessible from the server. |
| `file_name` | string | No | Name for the uploaded file. If not provided, extracts from the URL or Content-Disposition header. |
| `overwrite` | boolean | No | Whether to overwrite the file if it already exists. Default: true. |
| `folder_path` | string | No | Folder path relative to the drive root (e.g., 'Documents/Projects'). Defaults to root of drive. |
| `source_headers` | object | No | Optional HTTP headers to include when downloading from file_url. Use for authentication tokens, signed URLs, or CDN-specific headers. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |
