REST API end point for deleting specific version of a SharePoint Document

sp13test 281 Reputation points
2021-04-12T12:54:58.043+00:00

trying to delete specific version of SharePoint document by Id. I have retrieved all the SharePoint Document versions by REST call with below code.

  let URL : string = `${this.context.pageContext.web.absoluteUrl}/_api/Web/lists/getById('${listId}')/items(${documentId.Id})/versions`;
  this.context.spHttpClient.get(URL,SPHttpClient.configurations.v1).then(response=>{    
    return response.json();
  }).then(json=>{
    return json.value;
  })

What endpoint should I call to delete specific version by it's version Id?

SharePoint Server Development
SharePoint Server Development
SharePoint Server: A family of Microsoft on-premises document management and storage systems.Development: The process of researching, productizing, and refining new or existing technologies.
1,569 questions
0 comments No comments
{count} votes

Accepted answer
  1. Jerryzy 10,561 Reputation points
    2021-04-13T01:39:15.673+00:00

    Hi @sp13test ,

    The endpoint for deleting the specific version of a file will like this:

    https://Tenant.sharepoint.com/sites/SiteName/_api/web/GetFileByServerRelativeUrl('/sites/SiteName/DocName/code.png')/versions/DeleteByLabel('1.0')  
    

    Need to use GetFileByServerRelativeUrl to get the file object and then use DeleteByLabel for deleting the specific version, here is a complete code demo for your reference:

    function DeleteFileVersionByVersionLabel() {  
       
        var WebServerRelativeUrl = _spPageContextInfo.webServerRelativeUrl;  
       
        // Provide Internal name of the library here  
        var DocuentLibraryInternalName = "Document%20Library";  
       
        // Provide name of the document  
        var DocumentName = "test doc.docx";  
       
        var ServerRelativeUrlofFile = _spPageContextInfo.webAbsoluteUrl + "/_api/web/GetFileByServerRelativeUrl('" + WebServerRelativeUrl + "/" + DocuentLibraryInternalName + "/" + DocumentName + "')"  
       
        $.ajax  
            ({  
                // _spPageContextInfo.webAbsoluteUrl - will give absolute URL of the site where you are running the code.  
                // You can replace this with other site URL where you want to apply the function  
       
                // NOTE: Version Label is nothing but the version number you see in the Version History  
                url: ServerRelativeUrlofFile + "/versions/DeleteByLabel('4.5')",  
                type: "POST",  
                headers:  
            {  
                // Accept header: Specifies the format for response data from the server.  
                "Accept": "application/json;odata=verbose",  
                //Content-Type header: Specifies the format of the data that the client is sending to the server  
                "Content-Type": "application/json;odata=verbose",  
                // IF-MATCH header: Provides a way to verify that the object being changed has not been changed since it was last retrieved.  
                // "IF-MATCH":"*", will overwrite any modification in the object, since it was last retrieved.  
                "IF-MATCH": "*",  
                //X-HTTP-Method:  The MERGE method updates only the properties of the entity , while the PUT method replaces the existing entity with a new one that you supply in the body of the POST  
                "X-HTTP-Method": "DELETE",  
                // X-RequestDigest header: When you send a POST request, it must include the form digest value in X-RequestDigest header  
                "X-RequestDigest": $("#__REQUESTDIGEST").val()  
            },  
                success: function (data, status, xhr) {  
                    console.log("Success");  
                },  
                error: function (xhr, status, error) {  
                    console.log("Failed");  
                }  
            });  
    }  
    

    Reference:

    Delete File Version By Version Label in SharePoint using REST API

    Thanks
    Best Regards


    If the response is helpful, please click "Accept Answer" and upvote it.

    Note: Please follow the steps in our documentation to enable e-mail notifications if you want to receive the related email notification for this thread.

    1 person found this answer helpful.
    0 comments No comments

0 additional answers

Sort by: Most helpful