Get Default Master Page URL of a SharePoint Site using REST API

Syntax

REST API Endpoint:

https://SharePointSiteURL/_api/web?$select=MasterUrl

REST API endpoint to use in Add-ins:

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

Embed Code Snippet

The following code snippet can be added to SharePoint page or in content editor web part as a script. This example is used to retrieve the default master page URL of a SharePoint site and this returns the site relative URL. 

  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?$select=masterurl"//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('Default master page URL: ' + data.d.MasterUrl)          
  15.             alert('Default master URL: ' + data.d.MasterUrl);          
  16.       
  17.         }          
  18.     });          
  19. </script>    
Add-in Code Snippet

The following code snippet is used in SharePoint Add-in to get the default master page url of a SharePoint site. This returns a site relative URL of a default master page. 

  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 MasterUrl property using REST we can hit the endpoint:        
  12.     // appweburl/_api/web?select=MasterUrl&@target=hostweburl        
  13.     // The response formats the data in the JSON format.        
  14.     executor.executeAsync(      
  15.     {      
  16.         url: appweburl + "/_api/SP.AppContextSite(@target)/web?$select=masterurl&@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.MasterUrl returns the server relative URL of default master page from the SharePoint site
  31.     console.log('Default master page URL: ' + jsonObject.d.MasterUrl)        
  32.     alert('Default master page URL: ' + jsonObject.d.MasterUrl);  
  33. }      
  34.       
  35. function errorHandler(data, errorCode, errorMessage)      
  36. {      
  37.     console.log("Could not complete cross-domain call: " + errorMessage);      
  38. }