Get Custom Master Page Url of a SharePoint Site using REST API

Syntax

REST API Endpoint:

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

REST API endpoint to use in Add-ins:

<appweburl>/_api/SP.AppContextSite(@target)/web
?$select=CustomMasterUrl&@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 get the custom 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=custommasterurl"//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('Custom Master URL: ' + data.d.CustomMasterUrl)        
  15.             alert('Custom Master URL: ' + data.d.CustomMasterUrl);        
  16.     
  17.         }        
  18.     });        
  19. </script>  
Add-in Code Snippet

The following code snippet is used in SharePoint Add-in to get the custom master page url of a SharePoint site. This returns a site relative url of a custom 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 CustomMasterUrl property using REST we can hit the endpoint:        
  12.     // appweburl/_api/web?select=CustomMasterUrl&@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=custommasterurl&@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.CustomMasterUrl returns the server relative url of custom master page from the SharePoint site       
  31.     console.log('Custom master page URL: ' + jsonObject.d.CustomMasterUrl)        
  32.     alert('Custom master page URL: ' + jsonObject.d.CustomMasterUrl);  
  33. }      
  34.       
  35. function errorHandler(data, errorCode, errorMessage)      
  36. {      
  37.     console.log("Could not complete cross-domain call: " + errorMessage);      
  38. }