Skip to content

Cesivi Server - SOAP Web Services

HomeDocumentationFeatures → SOAP Services


Overview

Cesivi Server implements 26 SOAP web services compatible with SharePoint Server Subscription Edition. These services provide legacy API compatibility for .NET Framework applications and classic SharePoint solutions.

Status:PRODUCTION READY (100% core coverage) Endpoint Base: /_vti_bin/ Protocol: SOAP 1.1/1.2 Services: 26 FULL implementations (all fully implemented since v77.0)


Quick Start

Basic SOAP Request

<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
  <soap:Body>
    <GetListCollection xmlns="http://schemas.microsoft.com/sharepoint/soap/" />
  </soap:Body>
</soap:Envelope>

C# Example

// Add service reference to http://localhost:5000/_vti_bin/lists.asmx
var listsSvc = new ListsService();
listsSvc.Url = "http://localhost:5000/_vti_bin/lists.asmx";
listsSvc.Credentials = new NetworkCredential("admin", "password");

var lists = listsSvc.GetListCollection();

PowerShell Example

$svc = New-WebServiceProxy -Uri "http://localhost:5000/_vti_bin/lists.asmx?WSDL"
$svc.Credentials = Get-Credential
$lists = $svc.GetListCollection()

Service Categories

FULL Implementation Services (26)

These services provide complete CRUD operations with data persistence:

Service Endpoint Methods Coverage
Lists lists.asmx 20+ 100%
UserGroup usergroup.asmx 10+ 100%
Webs webs.asmx 8 100%
Copy copy.asmx 3 100%
Permissions permissions.asmx 8 100%
Views views.asmx 8 100%
Versions versions.asmx 5 100%
SiteData sitedata.asmx 10+ 100%
Taxonomy taxonomyinternalservice.asmx 12+ 100%
Search search.asmx 3 100%
People people.asmx 6 100%
UserProfile userprofileservice.asmx 15+ 100%
Alerts alerts.asmx 4 100%
DWS dws.asmx 5+ 100%
Meetings meetings.asmx 5+ 100%
WebPartPages webpartpages.asmx 2 100%
Workflow workflow.asmx 4 100%
SocialData socialdataservice.asmx 2 100%
Authentication authentication.asmx 2 100%
BusinessDataCatalog businessdatacatalog.asmx 6 Tier 1

Additional Services (Reclassified to FULL in v77.0)

A v77.0 audit confirmed all 26 services are fully wired to real storage/services:

Service Endpoint Status Operations
Imaging imaging.asmx FULL 6 operations (ListPictureLibrary, GetItems, Download, Upload, CheckSubweb)
Forms forms.asmx FULL GetFormCollection with real list data
Publishing publishedlinksservice.asmx FULL GetLinks + GetPublishingPages with real storage
Admin admin.asmx FULL CreateSite/DeleteSite (real storage), GetLanguages, RefreshConfigCache
Sites sites.asmx FULL GetUpdatedFormDigest (real), GetSiteTemplates
Diagnostics diagnostics.asmx FULL 4 operations: SendClientScriptErrorReport, GetServerDiagnostics, RecordTrace, SetLoggingLevel (expanded in PLAN-463, v77.0)

Lists Service (lists.asmx)

Status: ✅ FULL Implementation Methods: 20+

GetListCollection

Returns all lists in the current web.

Request:

<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
  <soap:Body>
    <GetListCollection xmlns="http://schemas.microsoft.com/sharepoint/soap/" />
  </soap:Body>
</soap:Envelope>

Response:

<GetListCollectionResponse xmlns="http://schemas.microsoft.com/sharepoint/soap/">
  <GetListCollectionResult>
    <Lists>
      <List ID="{abc-123}" Title="Documents" BaseType="1" BaseTemplate="101" />
      <List ID="{def-456}" Title="Tasks" BaseType="0" BaseTemplate="107" />
    </Lists>
  </GetListCollectionResult>
</GetListCollectionResponse>

GetList

Returns metadata for a specific list.

Request:

<GetList xmlns="http://schemas.microsoft.com/sharepoint/soap/">
  <listName>Documents</listName>
</GetList>

GetListItems

Query list items with CAML.

Request:

<GetListItems xmlns="http://schemas.microsoft.com/sharepoint/soap/">
  <listName>Documents</listName>
  <query>
    <Query>
      <Where>
        <Eq>
          <FieldRef Name="Title"/>
          <Value Type="Text">Example</Value>
        </Eq>
      </Where>
    </Query>
  </query>
  <viewFields>
    <ViewFields>
      <FieldRef Name="Title"/>
      <FieldRef Name="Modified"/>
    </ViewFields>
  </viewFields>
  <rowLimit>100</rowLimit>
</GetListItems>

UpdateListItems

CRUD operations on list items (New, Update, Delete).

Request:

<UpdateListItems xmlns="http://schemas.microsoft.com/sharepoint/soap/">
  <listName>Documents</listName>
  <updates>
    <Batch OnError="Continue">
      <Method ID="1" Cmd="New">
        <Field Name="Title">New Document</Field>
        <Field Name="FileLeafRef">document.docx</Field>
      </Method>
      <Method ID="2" Cmd="Update">
        <Field Name="ID">1</Field>
        <Field Name="Title">Updated Title</Field>
      </Method>
      <Method ID="3" Cmd="Delete">
        <Field Name="ID">2</Field>
      </Method>
    </Batch>
  </updates>
</UpdateListItems>

Additional Methods

  • AddList - Create new list
  • DeleteList - Delete list
  • UpdateList - Update list properties
  • GetListItemChanges - Get changes since token
  • GetVersionCollection - Get file versions
  • AddAttachment - Upload attachment
  • GetAttachmentCollection - List attachments
  • DeleteAttachment - Remove attachment
  • CheckOutFile - Mark file checked out
  • CheckInFile - Check in file
  • UndoCheckOut - Revert checkout

UserGroup Service (usergroup.asmx)

Status: ✅ FULL Implementation Methods: 10+

GetUserCollectionFromWeb

Returns all users.

Request:

<GetUserCollectionFromWeb xmlns="http://schemas.microsoft.com/sharepoint/soap/" />

GetGroupCollectionFromWeb

Returns all groups.

Request:

<GetGroupCollectionFromWeb xmlns="http://schemas.microsoft.com/sharepoint/soap/" />

AddUserToGroup

Add user to group.

Request:

<AddUserToGroup xmlns="http://schemas.microsoft.com/sharepoint/soap/">
  <groupName>Site Members</groupName>
  <userName>domain\user</userName>
  <userLoginName>domain\user</userLoginName>
  <userEmail>user@domain.com</userEmail>
  <userNotes>User notes</userNotes>
</AddUserToGroup>

Additional Methods

  • GetUserInfo - Single user
  • GetGroupInfo - Single group
  • GetCurrentUserInfo - Current user
  • AddGroup - Create group
  • RemoveUserFromGroup - Remove user
  • UpdateGroupInfo - Update group properties
  • RemoveGroup - Delete group

Webs Service (webs.asmx)

Status: ✅ FULL Implementation Methods: 8

GetWeb

Returns web metadata.

Request:

<GetWeb xmlns="http://schemas.microsoft.com/sharepoint/soap/">
  <webUrl>/</webUrl>
</GetWeb>

GetWebCollection

Returns child webs.

Request:

<GetWebCollection xmlns="http://schemas.microsoft.com/sharepoint/soap/" />

CreateContentType

Create content type at web level.

Request:

<CreateContentType xmlns="http://schemas.microsoft.com/sharepoint/soap/">
  <displayName>Custom Content Type</displayName>
  <parentType>0x01</parentType>
  <newFields>
    <Fields>
      <Field Type="Text" Name="CustomField" DisplayName="Custom Field" />
    </Fields>
  </newFields>
  <contentTypeProperties>
    <ContentTypeProperties>
      <Description>My custom content type</Description>
    </ContentTypeProperties>
  </contentTypeProperties>
</CreateContentType>

Additional Methods

  • DeleteWeb - Delete subweb
  • GetAllSubWebCollection - All descendant webs
  • WebUrlFromPageUrl - Parse web URL from page
  • UpdateContentType - Update content type
  • DeleteContentType - Remove content type

Copy Service (copy.asmx)

Status: ✅ FULL Implementation Methods: 3

CopyIntoItems

Copy file to multiple destinations.

Request:

<CopyIntoItems xmlns="http://schemas.microsoft.com/sharepoint/soap/">
  <SourceUrl>http://localhost/Documents/source.docx</SourceUrl>
  <DestinationUrls>
    <string>http://localhost/Archive/dest1.docx</string>
    <string>http://localhost/Backup/dest2.docx</string>
  </DestinationUrls>
  <Fields>
    <FieldInformation Type="Text" DisplayName="Title" InternalName="Title" Value="Copied Document" />
  </Fields>
</CopyIntoItems>

Additional Methods

  • CopyIntoItemsLocal - Copy within same site
  • GetItem - Get file metadata

Permissions Service (permissions.asmx)

Status: ✅ FULL Implementation Methods: 8

GetPermissionCollection

Get role assignments for object.

Request:

<GetPermissionCollection xmlns="http://schemas.microsoft.com/sharepoint/soap/">
  <objectName>Documents</objectName>
  <objectType>List</objectType>
</GetPermissionCollection>

AddPermission

Grant permissions.

Request:

<AddPermission xmlns="http://schemas.microsoft.com/sharepoint/soap/">
  <objectName>Documents</objectName>
  <objectType>List</objectType>
  <permissionIdentifier>domain\user</permissionIdentifier>
  <permissionType>User</permissionType>
  <permissionMask>1073741827</permissionMask>
</AddPermission>

Common Permission Masks: - 1073741827 - Full Control - 1073741826 - Design - 1073741825 - Contribute - 1073741824 - Read

Additional Methods

  • RemovePermission - Revoke permissions
  • UpdatePermission - Modify permissions
  • GetPermissionInfo - Permission details
  • GetRoleDefinitions - Available roles

Views Service (views.asmx)

Status: ✅ FULL Implementation Methods: 8

GetViewCollection

Get all views for a list.

Request:

<GetViewCollection xmlns="http://schemas.microsoft.com/sharepoint/soap/">
  <listName>Documents</listName>
</GetViewCollection>

AddView

Create new view.

Request:

<AddView xmlns="http://schemas.microsoft.com/sharepoint/soap/">
  <listName>Documents</listName>
  <viewName>Custom View</viewName>
  <viewFields>
    <ViewFields>
      <FieldRef Name="Title"/>
      <FieldRef Name="Modified"/>
    </ViewFields>
  </viewFields>
  <query>
    <Query>
      <OrderBy>
        <FieldRef Name="Modified" Ascending="FALSE"/>
      </OrderBy>
    </Query>
  </query>
  <rowLimit>50</rowLimit>
</AddView>

Additional Methods

  • GetView - Get single view
  • UpdateView - Modify view
  • DeleteView - Remove view
  • GetViewHtml - Get view HTML rendering
  • UpdateViewHtml - Update view HTML

Versions Service (versions.asmx)

Status: ✅ FULL Implementation Methods: 5

GetVersions

Get version history for a file.

Request:

<GetVersions xmlns="http://schemas.microsoft.com/sharepoint/soap/">
  <fileName>http://localhost/Documents/file.docx</fileName>
</GetVersions>

RestoreVersion

Restore file to previous version.

Request:

<RestoreVersion xmlns="http://schemas.microsoft.com/sharepoint/soap/">
  <fileName>http://localhost/Documents/file.docx</fileName>
  <fileVersion>1.0</fileVersion>
</RestoreVersion>

Additional Methods

  • DeleteVersion - Delete specific version
  • DeleteAllVersions - Delete all versions
  • GetVersionCollection - Get version metadata

SiteData Service (sitedata.asmx)

Status: ✅ FULL Implementation Methods: 10+

GetSite

Returns site collection metadata.

Request:

<GetSite xmlns="http://schemas.microsoft.com/sharepoint/soap/" />

GetWeb

Returns web metadata.

Request:

<GetWeb xmlns="http://schemas.microsoft.com/sharepoint/soap/" />

GetList

Returns list metadata with fields.

Request:

<GetList xmlns="http://schemas.microsoft.com/sharepoint/soap/">
  <strListName>Documents</strListName>
</GetList>

Additional Methods

  • GetListItems - Query items
  • GetSiteAndWeb - Combined site+web metadata
  • GetContent - Get content metadata
  • GetChanges - Get change log
  • EnumerateFolder - List folder contents

Taxonomy Service (taxonomyinternalservice.asmx)

Status: ✅ FULL Implementation Methods: 12+

GetTermStores

Get all term stores.

Request:

<GetTermStores xmlns="http://schemas.microsoft.com/sharepoint/soap/" />

GetTermSets

Get term sets for a store.

Request:

<GetTermSets xmlns="http://schemas.microsoft.com/sharepoint/soap/">
  <termStoreId>{guid}</termStoreId>
</GetTermSets>

Additional Methods

  • GetTerms - Get terms in term set
  • GetChildTermsInTermSet - Get child terms
  • AddTerm - Create term
  • UpdateTerm - Modify term
  • DeleteTerm - Remove term
  • GetTermSetsByName - Search term sets

Search Service (search.asmx)

Status: ✅ FULL Implementation Methods: 3

Query

Execute keyword search.

Request:

<Query xmlns="http://schemas.microsoft.com/sharepoint/soap/">
  <queryXml>
    <QueryPacket>
      <Query>
        <QueryText>test</QueryText>
      </Query>
    </QueryPacket>
  </queryXml>
</Query>

QueryEx

Extended search with filters.

Request:

<QueryEx xmlns="http://schemas.microsoft.com/sharepoint/soap/">
  <queryXml>
    <QueryPacket>
      <Query>
        <QueryText>test</QueryText>
        <Refiners>Author,FileExtension</Refiners>
      </Query>
    </QueryPacket>
  </queryXml>
</QueryEx>


People Service (people.asmx)

Status: ✅ FULL Implementation Methods: 6

SearchPrincipals

Search for users/groups (people picker).

Request:

<SearchPrincipals xmlns="http://schemas.microsoft.com/sharepoint/soap/">
  <searchText>john</searchText>
  <maxResults>10</maxResults>
  <principalType>User</principalType>
</SearchPrincipals>

ResolvePrincipals

Resolve user/group by login name.

Request:

<ResolvePrincipals xmlns="http://schemas.microsoft.com/sharepoint/soap/">
  <principalKeys>
    <string>domain\user</string>
  </principalKeys>
  <principalType>User</principalType>
</ResolvePrincipals>


Error Handling

SOAP Fault Format

<soap:Fault>
  <faultcode>soap:Server</faultcode>
  <faultstring>List 'InvalidList' does not exist</faultstring>
  <detail>
    <errorcode xmlns="">0x81020015</errorcode>
  </detail>
</soap:Fault>

Common Error Codes

Code Description
0x81020015 List not found
0x81020014 Item not found
0x80070005 Access denied
0x81020089 Invalid CAML query
0x8102009a Field not found

Best Practices

1. Use CAML for Complex Queries

CAML queries are more powerful than REST API filters:

<Query>
  <Where>
    <And>
      <Eq>
        <FieldRef Name="Status"/>
        <Value Type="Choice">Active</Value>
      </Eq>
      <Geq>
        <FieldRef Name="Created"/>
        <Value Type="DateTime">2025-01-01T00:00:00Z</Value>
      </Geq>
    </And>
  </Where>
  <OrderBy>
    <FieldRef Name="Title" Ascending="TRUE"/>
  </OrderBy>
</Query>

2. Batch Updates for Performance

Use UpdateListItems batch operations:

<Batch OnError="Continue">
  <Method ID="1" Cmd="New">...</Method>
  <Method ID="2" Cmd="New">...</Method>
  <Method ID="3" Cmd="Update">...</Method>
</Batch>

3. Specify ViewFields to Reduce Payload

Only request needed fields:

<viewFields>
  <ViewFields>
    <FieldRef Name="Title"/>
    <FieldRef Name="Modified"/>
  </ViewFields>
</viewFields>

4. Handle OnError Appropriately

OnError Options: - Continue - Process remaining items on error - Return - Stop and return error immediately


Migration to REST API

For new development, consider using REST API instead of SOAP:

SOAP Operation REST Equivalent
GetListCollection GET /_api/web/lists
GetList GET /_api/web/lists/getbytitle('Name')
GetListItems GET /_api/web/lists/getbytitle('Name')/items
UpdateListItems (New) POST /_api/web/lists/getbytitle('Name')/items
UpdateListItems (Update) POST /_api/web/lists/getbytitle('Name')/items(id) with X-HTTP-Method: MERGE
UpdateListItems (Delete) DELETE /_api/web/lists/getbytitle('Name')/items(id)

REST API Guide for complete REST documentation


See Also


Last Updated: February 20, 2026 Protocol: SOAP 1.1/1.2 Compatibility: SharePoint 2013, 2016, 2019, Subscription Edition

Navigation: Home | Documentation | Features | SOAP Services