Cesivi Server - SOAP Web Services¶
Home → Documentation → Features → 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 listDeleteList- Delete listUpdateList- Update list propertiesGetListItemChanges- Get changes since tokenGetVersionCollection- Get file versionsAddAttachment- Upload attachmentGetAttachmentCollection- List attachmentsDeleteAttachment- Remove attachmentCheckOutFile- Mark file checked outCheckInFile- Check in fileUndoCheckOut- 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 userGetGroupInfo- Single groupGetCurrentUserInfo- Current userAddGroup- Create groupRemoveUserFromGroup- Remove userUpdateGroupInfo- Update group propertiesRemoveGroup- 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 subwebGetAllSubWebCollection- All descendant websWebUrlFromPageUrl- Parse web URL from pageUpdateContentType- Update content typeDeleteContentType- 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 siteGetItem- 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 permissionsUpdatePermission- Modify permissionsGetPermissionInfo- Permission detailsGetRoleDefinitions- 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 viewUpdateView- Modify viewDeleteView- Remove viewGetViewHtml- Get view HTML renderingUpdateViewHtml- 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 versionDeleteAllVersions- Delete all versionsGetVersionCollection- 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 itemsGetSiteAndWeb- Combined site+web metadataGetContent- Get content metadataGetChanges- Get change logEnumerateFolder- 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 setGetChildTermsInTermSet- Get child termsAddTerm- Create termUpdateTerm- Modify termDeleteTerm- Remove termGetTermSetsByName- 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¶
- REST API - Modern REST endpoints
- CSOM - Client-Side Object Model
- PnP PowerShell - PowerShell cmdlets
- API Reference - Complete API documentation
- Known Limitations - Service constraints
Last Updated: February 20, 2026 Protocol: SOAP 1.1/1.2 Compatibility: SharePoint 2013, 2016, 2019, Subscription Edition
Navigation: Home | Documentation | Features | SOAP Services