SharePoint Api - ValidateUpdateFetchListItem
How ValidateUpdateFetchListItem type of update works?
After some tests with customRowAction in column formatting, I have noticed that there is another endpoint similar to /items/(id)/ValidateUpdateListItem
named /items/(id)/ValidateUpdateFetchListItem
, which is used in the setValue
method. Both use the same request body and have the same effect — updating an item.
The difference starts in the request results:
As you can observe, the ValidateUpdateFetchListItem
request also provides full information about the changed item in the UpdatedData
property of the result.
Usage
Example to be used in Power Automate flow:
Replace contoso, TargetSite, and TargetList with your values.
URL:
https://<contoso>.sharepoint.com/sites/<TargetSite>/_api/web/GetList(@a1)/ValidateUpdateFetchListItem()?@a1=%27%2Fsites%2F<TargetSite>%2FLists%2F<TargetList>%27
Body:
{
"formValues": [
{
"FieldName": "Title",
"FieldValue": "TitleValue"
}
],
"bNewDocumentUpdate": false
}
An example of result
{
"d": {
"ValidateUpdateFetchListItem": {
"__metadata": {
"type": "SP.ListItemUpdateResults"
},
"UpdatedData": "{ \"Row\" : \n[{\r\n\"ID\": \"1\",\r\n\"PermMask\": \"0x7ffffffffffbffff\",\r\n\"FSObjType\": \"0\",\r\n\"UniqueId\": \"{1556EB05-0135-469F-8170-48C9802EAA1F}\",\r\n\"Title\": \"TitleValue\",\r\n\"FileLeafRef\": \"1_.000\",\r\n\"FileLeafRef.Name\": \"1_\",\r\n\"FileLeafRef.Suffix\": \"000\",\r\n\"Created_x0020_Date\": \"1;#2024-07-29 10:21:59\",\r\n\"Created_x0020_Date.\": \"2024-07-29T17:21:59Z\",\r\n\"Created_x0020_Date.ifnew\": \"1\",\r\n\"FileRef\": \"\\u002fsites\\u002fSiteName\\u002fLists\\u002fListName\\u002f1_.000\",\r\n\"FileRef.urlencode\": \"%2Fsites%2FSiteName%2FLists%2FListName%2F1%5F%2E000\",\r\n\"FileRef.urlencodeasurl\": \"\\u002fsites\\u002fSiteName\\u002fLists\\u002fListName\\u002f1_.000\",\r\n\"FileRef.urlencoding\": \"\\u002fsites\\u002fSiteName\\u002fLists\\u002fListName\\u002f1_.000\",\r\n\"FileRef.scriptencodeasurl\": \"\\\\u002fsites\\\\u002fSiteName\\\\u002fLists\\\\u002fListName\\\\u002f1_.000\",\r\n\"File_x0020_Type\": \"\",\r\n\"HTML_x0020_File_x0020_Type.File_x0020_Type.mapall\": \"icgen.gif|||\",\r\n\"HTML_x0020_File_x0020_Type.File_x0020_Type.mapcon\": \"\",\r\n\"HTML_x0020_File_x0020_Type.File_x0020_Type.mapico\": \"icgen.gif\",\r\n\"ContentTypeId\": \"0x0100C6346114FCBA5642B737CFEF36E87277005CB6464EE82D9F4190824DA0F156AFD0\",\r\n\"TestColumn2\": \"\",\r\n\"TestColumn\": \"\",\r\n\"ItemChildCount\": \"0\",\r\n\"FolderChildCount\": \"0\",\r\n\"ScopeId\": \"{AC3A9953-2893-4E7E-835E-6C17F9D7B41D}\",\r\n\"owshiddenversion\": \"3\",\r\n\"Restricted\": \"\"\r\n}\r\n],\"FirstRow\" : 1,\r\n\"FolderPermissions\" : \"0x7ffffffffffbffff\"\r\n,\"LastRow\" : 1,\r\n\"RowLimit\" : 30\r\n,\"FilterLink\" : \"?\"\n,\"ForceNoHierarchy\" : \"1\"\n,\"HierarchyHasIndention\" : \"\"\n,\"CurrentFolderPrincipalCount\" : \"0\"\n,\"CurrentFolderSpItemUrl\" : \"\"\n\n}",
"UpdateResults": {
"__metadata": {
"type": "Collection(SP.ListItemFormUpdateValue)"
},
"results": [
{
"ErrorCode": 0,
"ErrorMessage": null,
"FieldName": "Title",
"FieldValue": "TitleValue",
"HasException": false,
"ItemId": 1
}
]
}
}
}
}
The endpoint would be useful when you need to use the updated item data after the update.