# Table of contents:
# Introduction
FindMembership is one of the SOAP actions the Contact Sharing Service provides.
Returns the full list of members with a sharing membership for the specified service(s).
In Official Client terms, this will list members in the Allow List (AL), Block List (BL), Reverse List (RL) and Pending List (PL).
For retrieving information about the Forward List (FL), read the ABFindAll article.
# Client/Request
The template used in this action is described on the Address Book Service main page.
# FindMembershipThis element has only one attribute:
xmlns: This is always set tohttp://www.msn.com/webservices/AddressBook.
This element only contains the <Types> element.
This element contains one or more <ServiceType> elements.
Can be any of the following:
MessengerInvitationSocialNetworkSpaceProfile
Always set to Full.
If set to true, the <lastChange> value is compared against the server
to only provide the updates since the timestamp provided.
This is a ISO 8601 timestamp which denotes the last time you retrieved the memberships,
comes from the response's <LastChange> element inside the <OwnerNamespace> element.
# Server/Response
The template used in this action is described on the Address Book Service main page.
# FindMembershipResponseThis element only contains the <FindMembershipResult> element.
This element only contains both the <Services> and the <OwnerNamespace> element.
This element only contains one or more <Service> elements.
This element contains one or more <Memberships> elements,
and one <Info> element.
This element only contains one or more <Membership> elements.
This element has three children:
<MemberRole>: The role of the<Members>:Allow: The Allow List (AL).Block: The Block List (BL).Reverse: The Reverse List (RL).Pending: The Pending List (PL).AdminAssistantAdminMemberContributorGuestBannedDelegateCalFreeBusyNamespaceQuotaOneWayRelationshipTwoWayRelationshipProfileDatingProfileEducationProfileGamingProfileGeneralProfilePersonalContactProfileProfessionalContactProfileSocialProfileProfessionalProfileExpression
<Members>: Described below.<MembershipIsComplete>: If this is the full list of<Members>in this<Membership>, set totrue, otherwise, set tofalse.
This element only contains one or more <Member> elements.
This element has only one attribute:
xsi:type: The type of this<Member>:PassportMemberEveryoneMemberPhoneMemberEmailMemberGroupMemberGuidMemberRoleMemberServiceMemberCircleMemberDomainMember
This element contains eight children and three optional children:
<MembershipId>: The membership ID.<Type>: The type of this<Member>:PassportEveryonePhoneEmailGroupGuidRoleServiceCircleDomain
<DisplayName>: Optional. The display name for this membership.<State>: The current membership state. Usually set toAccepted:PendingAcceptedDeletedRemovedTentative
<Annotations>: Optional.<NewRole>: Optional. Allows you to change the role of this<Member>:AllowBlockReverse
<Deleted>: Has this member been deleted? (trueorfalse).<LastChanged>: The ISO 8601 timestamp of the time this member was last modified.<JoinedDate>: The ISO 8601 timestamp of the time when this member joined the service.<ExpirationDate>: The ISO 8601 timestamp of the time when this member expires. Set to0001-01-01T00:00:00to disable this behaviour.<Changes>: A space delimited list of elements changed:StateAnnotationsDisplayNameNewRole
This element also contains one of the following mutually exclusive children:
<PassportName>: The user handle associated with this membership.<Email>: The e-mail address associated with this membership.<PhoneNumber>: The phone number associated with this membership.<CircleId>: The integer ID of the circle associated with this membership.<DomainName>: The domain name associated with this membership.<Id>: The related GUID for the group, GUID or role name associated with this membership.<Service>: The service handle associated with this membership.
This element also contains the following four children if the <Type> of this <Member> is set to Passport:
<IsPassportNameHidden>: Are the contents of<PassportName>hidden to the user (trueorfalse)?<PassportId>: This is always set to0.<CID>: The Common ID of this member, which is a signed 64-bit integer.<PassportChanges>: A space delimited list of elements changed:IsPassportNameHidden
<LookedupByCID>: Did we search for this contact using their<CID>(trueorfalse)?
This element also contains the following three children if the <Type> of this <Member> is Role:
<DefiningService>: The service handle associated with this role.<MaxRoleRecursionDepth>: The maximum amount of times this role can recursively contain roles.<MaxDegreesSeparation>: The maximum amount of degrees of seperation allowed for this membership.
This element contains one or more <Annotation> elements.
This element contains two children:
<Name>: The key of this annotation:MSN.IM.BuddyType: The network ID of this relationship, suffixed with a colon (:) character. May be prefixed with a0.
<Value>: The value of this annotation.
This element has four children:
<Handle>: Described below.<InverseRequired>: Always set tofalse.<AuthorizationCriteria>: A colon delimited list of allowed members of this service:Everyone: Everyone.2ndDegreeSocNet: Second-degree social network. (TODO: What does this mean, exactly?)MsgrAllow: The members of the Messenger Allow List (AL).
<IsBot>: Is this membership list provided to a provisioned account? (trueorfalse).
This element has three children:
<Id>: The Network ID of the<Service>.<Type>: The type of this<Service>:Messenger: The<Memberships>of this<Service>are for the Messenger Service.AddressBook: The<Memberships>of this<Service>are for the Address Book Service.Profile: The<Memberships>of this<Service>are for my roaming profile.
<ForeignId>: Unknown, usually empty:MyProfile: The<Memberships>of this<Service>are for my roaming profile.
This element contains four children:
<Info>: Described below.<Changes>: A space delimited list of elements changed in an unknown location.<CreateDate>: The ISO 8601 timestamp of the time this member was created.<LastChange>: The ISO 8601 timestamp of the time a change was last made to the memberships.
This element contains six children:
<Handle>: Described below.<CreatorPuid>: This is always set to0.<CreatorCID>: The Common ID of this member.<CreatorPassportName>: The user handle of this member.<CircleAttributes>: Described below.<MessengerApplicationServiceCreated>: Was this namespace created by the Messenger Service? Usually set totrue.
This element contains three children:
<Id>: The namespace's GUID.<IsPassportNameHidden>: This is always set tofalse.<CID>: This is always set to0.
This element containts two children:
<IsPresenceEnabled>: This is usually set tofalse.<Domain>: UsuallyNone.
# Examples
# Only Messenger service
# Client/Request
POST /abservice/abservice.asmx HTTP/1.1
SOAPAction: http://www.msn.com/webservices/AddressBook/FindMembership
Cache-Control: no-cache
Content-Type: text/xml; charset=utf-8
Content-Length: 1107
<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope
xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/"
>
<soap:Header>
<ABApplicationHeader xmlns="http://www.msn.com/webservices/AddressBook">
<ApplicationID>996CDE1E-AA53-4477-B943-2BE802EA6166</ApplicationID>
<IsMigration>false</IsMigration>
<PartnerScenario>ContactSave</PartnerScenario>
</ABApplicationHeader>
<ABAuthHeader xmlns="http://www.msn.com/webservices/AddressBook">
<ManagedGroupRequest>false</ManagedGroupRequest>
<TicketToken>t=ticket&p=profile</TicketToken>
</ABAuthHeader>
</soap:Header>
<soap:Body>
<FindMembership xmlns="http://www.msn.com/webservices/AddressBook">
<serviceFilter>
<Types>
<ServiceType>Messenger</ServiceType>
</Types>
</serviceFilter>
<View>Full</View>
<deltasOnly>false</deltasOnly>
<lastChange>0001-01-01T00:00:00.0000000-08:00</lastChange>
</FindMembership>
</soap:Body>
</soap:Envelope>
# Server/Response
HTTP/1.1 200 OK
Content-Type: text/xml; charset=utf-8
Content-Length: 4315
<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope
xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
>
<soap:Header>
<ServiceHeader xmlns="http://www.msn.com/webservices/AddressBook">
<Version>12.01.1111.0000</Version>
<CacheKey>12r1;MjAyNC0xMS0yMFQxMToyMDoyNy43MTVa</CacheKey>
<CacheKeyChanged>true</CacheKeyChanged>
<PreferredHostName>contacts.example.com</PreferredHostName>
<SessionId>ecfaf8c7-e388-4571-8641-b061a0ac4bdc</SessionId>
</ServiceHeader>
</soap:Header>
<soap:Body>
<FindMembershipResponse xmlns="http://www.msn.com/webservices/AddressBook">
<FindMembershipResult>
<Services>
<Service>
<Memberships>
<Membership>
<MemberRole>Allow</MemberRole>
<Members>
<Member xsi:type="PassportMember">
<MembershipId>1</MembershipId>
<Type>Passport</Type>
<State>Accepted</State>
<Deleted>false</Deleted>
<LastChanged>2024-11-20T12:58:02.4680000-08:00</LastChanged>
<JoinedDate>2024-10-10T20:38:51.0000000-08:00</JoinedDate>
<ExpirationDate>0001-01-01T00:00:00</ExpirationDate>
<Changes />
<PassportName>anotheruser@hotmail.com</PassportName>
<IsPassportNameHidden>false</IsPassportNameHidden>
<PassportId>0</PassportId>
<CID>4388220788362762</CID>
<PassportChanges />
<LookedupByCID>false</LookedupByCID>
</Member>
<Member xsi:type="PhoneMember">
<MembershipId>3</MembershipId>
<Type>Phone</Type>
<State>Accepted</State>
<Deleted>false</Deleted>
<LastChanged>2024-11-20T12:58:02.4680000-08:00</LastChanged>
<JoinedDate>2024-10-22T21:40:16.0000000-08:00</JoinedDate>
<ExpirationDate>0001-01-01T00:00:00</ExpirationDate>
<Changes />
<PhoneNumber>15551111222</PhoneNumber>
</Member>
</Members>
<MembershipIsComplete>true</MembershipIsComplete>
</Membership>
<Membership>
<MemberRole>Reverse</MemberRole>
<Members>
<Member xsi:type="PassportMember">
<MembershipId>2</MembershipId>
<Type>Passport</Type>
<DisplayName>another user</DisplayName>
<State>Accepted</State>
<Deleted>false</Deleted>
<LastChanged>2024-11-20T12:58:02.4680000-08:00</LastChanged>
<JoinedDate>2024-10-10T20:38:51.0000000-08:00</JoinedDate>
<ExpirationDate>0001-01-01T00:00:00</ExpirationDate>
<Changes />
<PassportName>anotheruser@hotmail.com</PassportName>
<IsPassportNameHidden>false</IsPassportNameHidden>
<PassportId>0</PassportId>
<CID>4388220788362762</CID>
<PassportChanges />
<LookedupByCID>false</LookedupByCID>
</Member>
</Members>
<MembershipIsComplete>true</MembershipIsComplete>
</Membership>
</Memberships>
<Info>
<Handle>
<Id>1</Id>
<Type>Messenger</Type>
<ForeignId />
</Handle>
<InverseRequired>false</InverseRequired>
<AuthorizationCriteria>Everyone</AuthorizationCriteria>
<IsBot>false</IsBot>
</Info>
<Changes />
<LastChange>2024-11-20T12:58:02.4680000-08:00</LastChange>
<Deleted>false</Deleted>
</Service>
</Services>
<OwnerNamespace>
<Info>
<Handle>
<Id>00000000-0000-0000-0000-000000000000</Id>
<IsPassportNameHidden>false</IsPassportNameHidden>
<CID>0</CID>
</Handle>
<CreatorPuid>0</CreatorPuid>
<CreatorCID>4294967298</CreatorCID>
<CreatorPassportName>example@hotmail.com</CreatorPassportName>
<CircleAttributes>
<IsPresenceEnabled>false</IsPresenceEnabled>
<Domain>None</Domain>
</CircleAttributes>
<MessengerApplicationServiceCreated>true</MessengerApplicationServiceCreated>
</Info>
<Changes />
<CreateDate>2024-10-10T20:38:51.0000000-08:00</CreateDate>
<LastChange>2024-11-20T12:58:02.4680000-08:00</LastChange>
</OwnerNamespace>
</FindMembershipResult>
</FindMembershipResponse>
</soap:Body>
</soap:Envelope>
# Messenger, Invitation, SocialNetwork, Space, Profile services
# Client/Request
POST /abservice/abservice.asmx HTTP/1.1
SOAPAction: http://www.msn.com/webservices/AddressBook/FindMembership
Cache-Control: no-cache
Content-Type: text/xml; charset=utf-8
Content-Length: 1274
<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope
xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/"
>
<soap:Header>
<ABApplicationHeader xmlns="http://www.msn.com/webservices/AddressBook">
<ApplicationID>996CDE1E-AA53-4477-B943-2BE802EA6166</ApplicationID>
<IsMigration>false</IsMigration>
<PartnerScenario>ContactSave</PartnerScenario>
</ABApplicationHeader>
<ABAuthHeader xmlns="http://www.msn.com/webservices/AddressBook">
<ManagedGroupRequest>false</ManagedGroupRequest>
<TicketToken>t=ticket&p=profile</TicketToken>
</ABAuthHeader>
</soap:Header>
<soap:Body>
<FindMembership xmlns="http://www.msn.com/webservices/AddressBook">
<serviceFilter>
<Types>
<ServiceType>Messenger</ServiceType>
<ServiceType>Invitation</ServiceType>
<ServiceType>SocialNetwork</ServiceType>
<ServiceType>Space</ServiceType>
<ServiceType>Profile</ServiceType>
</Types>
</serviceFilter>
<View>Full</View>
<deltasOnly>false</deltasOnly>
<lastChange>0001-01-01T00:00:00.0000000-08:00</lastChange>
</FindMembership>
</soap:Body>
</soap:Envelope>
# Server/Response
HTTP/1.1 200 OK
Content-Type: text/xml; charset=utf-8
Content-Length: 5666
<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope
xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
>
<soap:Header>
<ServiceHeader xmlns="http://www.msn.com/webservices/AddressBook">
<Version>12.01.1111.0000</Version>
<CacheKey>12r1;MjAyNC0xMS0yMFQxMToyMDoyNy43MTVa</CacheKey>
<CacheKeyChanged>true</CacheKeyChanged>
<PreferredHostName>contacts.example.com</PreferredHostName>
<SessionId>ecfaf8c7-e388-4571-8641-b061a0ac4bdc</SessionId>
</ServiceHeader>
</soap:Header>
<soap:Body>
<FindMembershipResponse xmlns="http://www.msn.com/webservices/AddressBook">
<FindMembershipResult>
<Services>
<Service>
<Memberships>
<Membership>
<MemberRole>Allow</MemberRole>
<Members>
<Member xsi:type="PassportMember">
<MembershipId>1</MembershipId>
<Type>Passport</Type>
<State>Accepted</State>
<Deleted>false</Deleted>
<LastChanged>2024-11-20T12:58:02.4680000-08:00</LastChanged>
<JoinedDate>2024-10-10T20:38:51.0000000-08:00</JoinedDate>
<ExpirationDate>0001-01-01T00:00:00</ExpirationDate>
<Changes />
<PassportName>anotheruser@hotmail.com</PassportName>
<IsPassportNameHidden>false</IsPassportNameHidden>
<PassportId>0</PassportId>
<CID>4388220788362762</CID>
<PassportChanges />
<LookedupByCID>false</LookedupByCID>
</Member>
<Member xsi:type="PhoneMember">
<MembershipId>3</MembershipId>
<Type>Phone</Type>
<State>Accepted</State>
<Deleted>false</Deleted>
<LastChanged>2024-11-20T12:58:02.4680000-08:00</LastChanged>
<JoinedDate>2024-10-22T21:40:16.0000000-08:00</JoinedDate>
<ExpirationDate>0001-01-01T00:00:00</ExpirationDate>
<Changes />
<PhoneNumber>15551111222</PhoneNumber>
</Member>
</Members>
<MembershipIsComplete>true</MembershipIsComplete>
</Membership>
<Membership>
<MemberRole>Reverse</MemberRole>
<Members>
<Member xsi:type="PassportMember">
<MembershipId>2</MembershipId>
<Type>Passport</Type>
<DisplayName>another user</DisplayName>
<State>Accepted</State>
<Deleted>false</Deleted>
<LastChanged>2024-11-20T12:58:02.4680000-08:00</LastChanged>
<JoinedDate>2024-10-10T20:38:51.0000000-08:00</JoinedDate>
<ExpirationDate>0001-01-01T00:00:00</ExpirationDate>
<Changes />
<PassportName>anotheruser@hotmail.com</PassportName>
<IsPassportNameHidden>false</IsPassportNameHidden>
<PassportId>0</PassportId>
<CID>4388220788362762</CID>
<PassportChanges />
<LookedupByCID>false</LookedupByCID>
</Member>
</Members>
<MembershipIsComplete>true</MembershipIsComplete>
</Membership>
</Memberships>
<Info>
<Handle>
<Id>1</Id>
<Type>Messenger</Type>
<ForeignId />
</Handle>
<InverseRequired>false</InverseRequired>
<AuthorizationCriteria>Everyone</AuthorizationCriteria>
<IsBot>false</IsBot>
</Info>
<Changes />
<LastChange>2024-11-20T12:58:02.4680000-08:00</LastChange>
<Deleted>false</Deleted>
</Service>
<Service>
<Memberships>
<Membership>
<MemberRole>ProfileExpression</MemberRole>
<Members>
<Member xsi:type="RoleMember">
<MembershipId>3</MembershipId>
<Type>Role</Type>
<State>Accepted</State>
<Deleted>false</Deleted>
<LastChanged>2026-10-27T20:15:02.4680000-08:00</LastChanged>
<JoinedDate>2026-10-27T20:15:02.6700000-08:00</JoinedDate>
<ExpirationDate>0001-01-01T00:00:00</ExpirationDate>
<Id>Allow</Id>
<Changes />
<DefiningService>
<Id>0</Id>
<Type>Messenger</Type>
<ForeignId></ForeignId>
</DefiningService>
<MaxRoleRecursionDepth>0</MaxRoleRecursionDepth>
<MaxDegreesSeparationDepth>0</MaxDegreesSeparationDepth>
</Member>
</Members>
</Membership>
<Info>
<Handle>
<Id>2</Id>
<Type>Profile</Type>
<ForeignId>MyProfile</ForeignId>
</Handle>
<DisplayName>ProfileService</DisplayName>
<InverseRequired>true</InverseRequired>
<AuthorizationCriteria>Everyone</AuthorizationCriteria>
<IsBot>false</IsBot>
</Info>
<Changes />
<LastChange>2024-11-20T12:58:02.4680000-08:00</LastChange>
<Deleted>false</Deleted>
</Service>
</Services>
<OwnerNamespace>
<Info>
<Handle>
<Id>00000000-0000-0000-0000-000000000000</Id>
<IsPassportNameHidden>false</IsPassportNameHidden>
<CID>0</CID>
</Handle>
<CreatorPuid>0</CreatorPuid>
<CreatorCID>4294967298</CreatorCID>
<CreatorPassportName>example@hotmail.com</CreatorPassportName>
<CircleAttributes>
<IsPresenceEnabled>false</IsPresenceEnabled>
<Domain>None</Domain>
</CircleAttributes>
<MessengerApplicationServiceCreated>true</MessengerApplicationServiceCreated>
</Info>
<Changes />
<CreateDate>2024-10-10T20:38:51.0000000-08:00</CreateDate>
<LastChange>2024-11-20T12:58:02.4680000-08:00</LastChange>
</OwnerNamespace>
</FindMembershipResult>
</FindMembershipResponse>
</soap:Body>
</soap:Envelope>