Web Services




SharePoint 2007: certified SharePoint 2010: works

See individual Web Services for specific certifications


As of version 2013.01, all calls return a jQuery deferred object aka a promise.

As of v0.7.2, the core $().SPServices() function allows for simple caching of the XML results using jQuery promises in a similar manner to that outlined in Scot Hillier's excellent post Utilizing Promises in SharePoint 2013 Apps. See the Caching page for more details.

Supported Web Services

The table below shows the Web Services for which we have implemented at least one operation (or have operations coming in planned releases) with a link to more detailed documentation, indicators for whether the Web Service is available in WSS 3.0 and/or MOSS, and links to the MSDN documentation pages. Note that there are some general syntax instructions below the table.

Web Service WSS 3.0 MOSS MSDN Documentation Foundation SP2010
Alerts Alerts Web Service
Authentication Authentication Web Service
Copy Copy Web Service
Forms Forms Web Service
Lists Lists Web Service
Meetings Meetings Web Service
People People Web Service
Permissions Permissions Web Service
SiteData SiteData Web Service
Sites Sites Web Service 2007 2010
UserGroup (Users and Groups) Users and Groups Web Service
Versions Versions Web Service
Views Views Web Service
WebPartPages Web Part Pages Web Service
Webs Webs Web Service
PublishedLinksService Published Links Web Service
RecordsRepository (Official File) Official File Web Service
QueryService (Search) Search Web Service
SpellChecker SpellChecker Web Service
UserProfileService User Profile Web Service
Workflow Workflow Web Service
Diagnostics Diagnostics Web Service
SocialDataService SocialDataService Web Service
TaxonomyClientService TaxonomyClientService Web Service

General Syntax

    operation: "operationname",
    [webURL: "/sitepath",]
    [option1: value1,]
    [option2: value2,]
    [async: false,]
    completefunc: function (xData, Status) {
        //...do stuff...

operation The name of the Web Service operation (see the SDK documentation links above). Because the Web Services operations are named uniquely, you only need to specify the operation.

webURL For Web Service operations where it makes sense, you can pass in a webURL to change the context for the AJAX call. By default, the current site (as determined by $().SPServices.SPGetCurrentSite) is used.

options The options vary based on which Web Service and operation you are calling. In all instances, the options will take the same names as those described in the SDK.

async By default, all of the Web Service operations are called asynchronously with AJAX. Generally, this will be the desired approach, but to force synchronicity, add the async: false option.

cacheXML If set to true, the result's raw XML will be cached using jQuery promises in a similar manner to that outlined in Scot Hillier's excellent post Utilizing Promises in SharePoint 2013 Apps. See more about how this works on the Caching page.

completefunc A function to call on completion of the AJAX call to the Web Service:

completefunc: function(xData, Status) {
  //...do something...


Example call for GetListItems. This example is taken directly from SPCascadeDropdowns:

    operation: "GetListItems",
    // Force sync so that we have the right values for the child column onchange trigger
    async: false,
    webURL: opt.relationshipWebURL,
    listName: opt.relationshipList,
    // Filter based on the currently selected parent column's value
    CAMLQuery: camlQuery,
    // Only get the parent and child columns
    CAMLViewFields: "<ViewFields><FieldRef Name='" + opt.relationshipListParentColumn + "' /><FieldRef Name='" + opt.relationshipListChildColumn + "' /></ViewFields>",
    // Override the default view rowlimit and get all appropriate rows
    CAMLRowLimit: 0,
    completefunc: function(xData, Status) {
        // ...

Example call for GetUserInfo:

waitMessage = "<table width='100%' align='center'><tr><td align='center'><img src='/_layouts/images/gears_an.gif'/></td></tr></table>";

    operation: "GetUserInfo",
    userLoginName: "SHARE1\\demouser",
    completefunc: function (xData, Status) {
        $("#WSOutput").html("").append("<b>This is the output from the GetUserInfo operation:</b>");
        $(xData.responseXML).find("User").each(function() {
            $("#WSOutput").append("<li>ID: " + $(this).attr("ID") + "</li>");
            $("#WSOutput").append("<li>Sid: " + $(this).attr("Sid") + "</li>");
            $("#WSOutput").append("<li>Name: " + $(this).attr("Name") + "</li>");
            $("#WSOutput").append("<li>LoginName: " + $(this).attr("LoginName") + "</li>");
            $("#WSOutput").append("<li>Email: " + $(this).attr("Email") + "</li>");
            $("#WSOutput").append("<li>Notes: " + $(this).attr("Notes") + "</li>");
            $("#WSOutput").append("<li>IsSiteAdmin: " + $(this).attr("IsSiteAdmin") + "</li>");
            $("#WSOutput").append("<li>IsDomainGroup: " + $(this).attr("IsDomainGroup") + "</li>");

Back to top