Get Parent Web from Child Site using REST API in SharePoint

This blog contains the syntax and code snippet to get the parent web site object and its title from SharePoint using REST API.

Syntax:
  
REST API Endpoint:

https://SharePointSiteURL/_api/web/parentweb?$select=Title

REST API endpoint to use in Add-ins:

<appweburl>/_api/SP.AppContextSite(@target)/web/parentweb
?$select=Title&@target=<hostweburl>

Embed Code Snippet

The following code snippet can be added to a SharePoint page or in the content editor web part as a script. This example used to retrieve the parent website of the current site and its title property. If you are in a top-level site, the REST url returns the empty information.

  1. <script type="text/javascript" src="/SiteAssets/Scripts/jquery.min.js"></script>            
  2. <script type="text/javascript">            
  3.     $.ajax(            
  4.     {            
  5.         url: _spPageContextInfo.webAbsoluteUrl + "/_api/web/parentweb"//THE ENDPOINT              
  6.         method: "GET",            
  7.         headers:            
  8.         {            
  9.             "Accept""application/json; odata=verbose"            
  10.         },            
  11.         success: function(data)            
  12.         {            
  13.             //RESULTS HERE!!              
  14.             console.log('Parent site title: ' + data.d.Title)            
  15.             alert('Parent site title: ' + data.d.Title);   
  16.         }            
  17.     });            
  18. </script>    
Add-in Code Snippet

The following code snippet is used in SharePoint Add-in to retrieve the parent website information and displays the parent website title.

  1. // Load the js files and continue to the successHandler          
  2. $.getScript(scriptbase + "SP.RequestExecutor.js", execCrossDomainRequest);        
  3.       
  4. // Function to prepare and issue the request to get          
  5. // SharePoint data          
  6. function execCrossDomainRequest()        
  7. {        
  8.     // Initialize the RequestExecutor with the add-in web URL.          
  9.     var executor = new SP.RequestExecutor(appweburl);        
  10.     // Issue the call against the add-in web.          
  11.     // To get the parentweb object using REST we can hit the endpoint:          
  12.     // appweburl/_api/web/parentweb?@target=hostweburl          
  13.     // The response formats the data in the JSON format.          
  14.     executor.executeAsync(        
  15.     {        
  16.         url: appweburl + "/_api/SP.AppContextSite(@target)/web/parentweb?@target='" + hostweburl + "'",        
  17.         method: "GET",        
  18.         headers:        
  19.         {        
  20.             "Accept""application/json; odata=verbose"        
  21.         },        
  22.         success: successHandler,        
  23.         error: errorHandler        
  24.     });        
  25. }        
  26. // Function to handle the success event.          
  27. function successHandler(data)        
  28. {        
  29.     var jsonObject = JSON.parse(data.body)        
  30.     //jsonObject.d.Title returns the title of parent website  
  31.     console.log('Parent website title: ' + jsonObject.d.Title)          
  32.     alert('Parent website title: ' + jsonObject.d.Title);    
  33. }        
  34.         
  35. function errorHandler(data, errorCode, errorMessage)        
  36. {        
  37.     console.log("Could not complete cross-domain call: " + errorMessage);        
  38. }