Get Parent Web from Child Site using REST API in SharePoint

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. }