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