Corporate Headquarters (972) 407-0688 1 (877) 492-9484
International Headquarters +44 (0)203 178 3010
List
GET /api/groups.ashx/categories/
Status: 200 OK <GroupCategoryList> <GroupCategory> ... </GroupCategory> ...</GroupCategoryList>
GET /api/groups.ashx/categories/{Id}
Status: 200 OK <GroupCategory> ...</GroupCategory>
POST /api/groups.ashx/categories/
<GroupCategory> ...</GroupCategory>
Status: 201 CREATED <GroupCategory> ...</GroupCategory>
PUT /api/groups.ashx/categories/{Id}
DELETE /api/groups.ashx/categories/{Id}
Status: 200 OK
GET /api/groups.ashx/groups/
Status: 200 OK <GroupList PageSize="20" PageIndex="0" TotalCount="2"> <Group> ... </Group> ... </GroupList>
GET /api/groups.ashx/categories/{Id}/groups/
(limited to the groups in the specified category)
Status: 200 OK <GroupList PageSize="20" PageIndex="0" TotalCount="1"> <Group> ... </Group> ... </GroupList>
GET /api/groups.ashx/groups/{Id}
Status: 200 OK <Group> ... </Group>
POST /api/groups.ashx/[categories/{CategoryId}/]groups/
<Group> ... </Group>
Note the GroupCategoryInfo object can be omitted if you pass the desired Group Category Id into the URI Context by posting to /api/groups.ashx/categories/{CategoryId}/groups
Minimum required fields (Name, Key, and GroupCategoryInfo.Id)
Status: 201 CREATED <Group> ... </Group>
PUT /api/groups.ashx/groups/{Id}
DELETE /api/groups.ashx/groups/{Id}
GET /api/groups.ashx/members
Status: 200 OK <MembershipList> <Member> ... </Member> ... </MembershipList>
GET /api/groups.ashx/members/{UserId}
Status: 200 OK <Member> ...</Member>
POST /api/groups.ashx/members
<Member> ...</Member>
Status: 201 CREATED <Member />
PUT /api/groups.ashx/members/{UserId}
DELETE /api/groups.ashx/members/{UserId}
GET /api/groups.ashx/groups/{GroupId}/activitymessages
Status: 200 OK <ActivityMessageList PageSize="20" PageIndex="0" TotalCount="22"> <ActivityMessage> ... </ActivityMessage> ...</ActivityMessageList>
GET /api/groups.ashx/groups/{GroupId}/activitymessages/{paged query parameters}
GET /api/groups.ashx/activitymessages/{Id}
Status: 200 OK <ActivityMessage> ...</ActivityMessage>
GET /api/groups.ashx/groups/{GroupId}/pages
Status: 200 OK <GroupPageList> <GroupPage> ... </GroupPage> ... </GroupPageList>
GET /api/groups.ashx/pages/{Id}
Status: 200 OK <GroupPage> ...</GroupPage>
POST /api/groups.ashx/groups/{GroupId}/pages/
<GroupPage> ...</GroupPage>
Minimum required fields (Title, Body)
Status: 201 CREATED <GroupPage> ...</GroupPage>
PUT /api/groups.ashx/pages/{Id}
DELETE /api/groups.ashx/pages/{Id}
GET /api/groups.ashx/groups/{GroupId}/blog
Status: 200 OK<GroupBlog> ... </GroupBlog>
POST or PUT /api/groups.ashx/groups/{GroupId}/blog
<GroupBlog> ... </GroupBlog>
Status: 200 OK <GroupBlog> ... </GroupBlog>
GET /api/groups.ashx/groups/{GroupId}/blog/posts
Status: 200 OK <BlogPostList PageSize="20" PageIndex="0" TotalCount="1"> <BlogPost> ... </BlogPost> ... </BlogPostList>
GET /api/groups.ashx/groups/{GroupId}/blog/posts/{blog post query parameters}
Returns a list of Blog Posts which match the query parameters provided on the querystring.
GET /api/groups.ashx/blog/posts/{Id}
Status: 200 OK <BlogPost> ...</BlogPost>
POST /api/groups.ashx/[groups/{GroupId}/]blog/posts/
<BlogPost> ...</BlogPost>
Note the GroupInfo object can be omitted if you pass the desired Group Id into the URI Context by posting to /api/groups.ashx/groups/{GroupId}/blog/posts
Minimum required fields (Title, Body, and Date)
Status: 201 CREATED <BlogPost> ...</BlogPost>
PUT /api/groups.ashx/blog/posts/{Id}
DELETE /api/groups.ashx/blog/posts/{Id}
GET /api/groups.ashx/blog/posts/{Id}/comments
Status: 200 OK <BlogCommentList PageSize="20" PageIndex="0" TotalCount="1"> <BlogComment> ... </BlogComment> ... </BlogCommentList>
GET /api/groups.ashx/groups/{GroupId}/blog/comments/{blog comment query parameters}
Returns a list of Blog Comments which match the query parameters provided on the querystring.
GET /api/groups.ashx/blog/comments/{Id}
Status: 200 OK <BlogComment> ...</BlogComment>
POST /api/groups.ashx/blog/[posts/{PostId}/]comments/
<BlogComment> ...</BlogComment>
Note the PostInfo object can be omitted if you pass the desired Post Id into the URI Context by posting to /api/groups.ashx/blog/posts/{PostId}/comments
Status: 201 CREATED <BlogComment> ...</BlogComment>
PUT /api/groups.ashx/blog/comments/{Id}
DELETE /api/groups.ashx/blog/comments/{Id}
GET /api/groups.ashx/posts/{Id}/trackbacks
Status: 200 OK <BlogTrackbackList PageSize="20" PageIndex="0" TotalCount="1"> <BlogTrackback> ... </BlogTrackback> ... </BlogTrackbackList>
GET /api/groups.ashx/groups/{GroupId}/blog/trackbacks/{blog trackback query parameters}
Returns a list of Blog Trackbacks which match the query parameters provided on the querystring.
GET /api/groups.ashx/trackbacks/{Id}
Status: 200 OK <BlogTrackback> ...</BlogTrackback>
DELETE /api/groups.ashx/trackbacks/{Id}
GET /api/groups.ashx/blog/posts/{PostId}/ratings
Status: 200 OK <RatingList Sum="5" Average="5"> <Rating /> ... </RatingList>
GET /api/groups.ashx/blog/posts/{PostId}/ratings/{UserId}
Status: 200 OK <Rating />
POST /api/groups.ashx/blog/posts/{PostId}/ratings/
<int>[value 0-5]</int>
Status: 201 CREATED <Rating />
PUT /api/groups.ashx/blog/posts/{PostId}/ratings/{UserId}
GET /api/groups.ashx/blog/posts/{PostId}/attachment
Status: 302 http://localhost/cs/url/to/attachment
This method is used to create an attachment for an existing post.
POST /api/groups.ashx/blog/posts/{PostId}/attachment
[raw file]
Status: 201 http://localhost/cs/url/to/attachment
This updates an existing attachment. The post must already have an existing attachment to use this method.
PUT /api/groups.ashx/blog/posts/{PostId}/attachment
DELETE /api/groups.ashx/blog/posts/{PostId}/attachment
GET /api/groups.ashx/groups/{GroupId}/forum
Status: 200 OK<GroupForum> ... </GroupForum>
POST or PUT /api/groups.ashx/groups/{GroupId}/forum
<GroupForum> ... </GroupForum>
Status: 200 OK <GroupForum> ... </GroupForum>
GET /api/groups.ashx/groups/{GroupId}/forum/threads
Status: 200 OK <ThreadList PageSize="20" PageIndex="0" TotalCount="1"> <Thread> ... </Thread> ... </ThreadList>
GET /api/groups.ashx/groups/{GroupId}/forum/threads/{thread query parameters}
Returns a list of Threads which match the query parameters provided on the querystring.
GET /api/groups.ashx/threads/{Id}
Status: 200 OK <Thread> ...</Thread>
POST /api/groups.ashx/[groups/{GroupId}/]threads/
<ForumPost> ...</ForumPost>
Note the GroupInfo object can be omitted if you pass the desired Group Id into the URI Context by posting to /api/groups.ashx/groups/{GroupId}/threads
Status: 201 CREATED <Thread> ...</Thread>
PUT /api/groups.ashx/threads/{Id}
<Thread> ...</Thread>
DELETE /api/groups.ashx/threads/{Id}
GET /api/groups.ashx/threads/{Id}/posts
Status: 200 OK <ForumPostList PageSize="20" PageIndex="0" TotalCount="1"> <ForumPost> ... </ForumPost> ... </ForumPostList>
GET /api/groups.ashx/groups/{GroupId}/forum/posts/{forum post query parameters}
Returns a list of Forum Posts which match the query parameters provided on the querystring.
GET /api/groups.ashx/posts/{Id}/replies
(Limitied to posts who are direct replies to the given post)
GET /api/groups.ashx/forum/posts/{Id}
Status: 200 OK <ForumPost> ...</ForumPost>
POST /api/groups.ashx/[threads/{ThreadId}/]posts
POST /api/groups.ashx/[posts/{PostId}/]replies
Note the ThreadInfo object can be omitted if you pass the desired Thread Id into the URI Context by posting to /api/groups.ashx/threads/{ThreadId}/posts or by indicating the proper parent post by posting to /api/groups.ashx/forum/posts/{PostId}/replies
Status: 201 CREATED <ForumPost> ...</ForumPost>
PUT /api/groups.ashx/forum/posts/{Id}
DELETE /api/groups.ashx/forum/posts/{Id}
GET /api/groups.ashx/forum/threads/{Id}/ratings
GET /api/groups.ashx/forum/threads/{PostId}/ratings/{UserId}
POST /api/groups.ashx/forum/threads/{PostId}/ratings/
PUT /api/groups.ashx/forum/threads/{ThreadId}/ratings/{UserId}
GET /api/groups.ashx/forum/posts/{PostId}/attachment
POST /api/groups.ashx/forum/posts/{PostId}/attachment
PUT /api/groups.ashx/forum/posts/{PostId}/attachment
DELETE /api/groups.ashx/forum/posts/{PostId}/attachment
GET /api/groups.ashx/groups/{GroupId}/mediagallery
Status: 200 OK<GroupMediaGallery> ... </GroupMediaGallery>
POST or PUT /api/groups.ashx/groups/{GroupId}/mediagallery
<GroupMediaGallery> ... </GroupMediaGallery>
Status: 200 OK <GroupMediaGallery> ... </GroupMediaGallery>
GET /api/groups.ashx/groups/{GroupId}/mediagallery/posts
Status: 200 OK <MediaGalleryPostList PageSize="20" PageIndex="0" TotalCount="1"> <MediaGalleryPost> ... </MediaGalleryPost> ... </MediaGalleryPostList>
GET /api/groups.ashx/groups/{GroupId}/mediagallery/posts/{mediagallery post query parameters}
Returns a list of MediaGallery Posts which match the query parameters provided on the querystring.
GET /api/groups.ashx/mediagallery/posts/{Id}
Status: 200 OK <MediaGalleryPost> ...</MediaGalleryPost>
POST /api/groups.ashx/[groups/{GroupId}/]mediagallery/posts/
<MediaGalleryPost> ...</MediaGalleryPost>
Note the GroupInfo object can be omitted if you pass the desired Group Id into the URI Context by posting to /api/groups.ashx/groups/{GroupId}/mediagallery/posts
Status: 201 CREATED <MediaGalleryPost> ...</MediaGalleryPost>
PUT /api/groups.ashx/mediagallery/posts/{Id}
DELETE /api/groups.ashx/mediagallery/posts/{Id}
GET /api/groups.ashx/mediagallery/posts/{Id}/comments
Status: 200 OK <CommentList PageSize="20" PageIndex="0" TotalCount="1"> <Comment> ... </Comment> ... </CommentList>
GET /api/groups.ashx/groups/{GroupId}/mediagallery/comments/{mediagallery comment query parameters}
Returns a list of MediaGallery Comments which match the query parameters provided on the querystring.
GET /api/groups.ashx/mediagallery/comments/{Id}
Status: 200 OK <Comment> ...</Comment>
POST /api/groups.ashx/mediagallery/[posts/{PostId}/]comments/
<Comment> ...</Comment>
Note the PostInfo object can be omitted if you pass the desired Post Id into the URI Context by posting to /api/groups.ashx/mediagallery/posts/{PostId}/comments
Status: 201 CREATED <Comment> ...</Comment>
PUT /api/groups.ashx/mediagallery/comments/{Id}
DELETE /api/groups.ashx/mediagallery/comments/{Id}
GET /api/groups.ashx/mediagallery/posts/{Id}/ratings
GET /api/groups.ashx/mediagallery/posts/{PostId}/ratings/{UserId}
POST /api/groups.ashx/mediagallery/posts/{PostId}/ratings/
PUT /api/groups.ashx/mediagallery/posts/{PostId}/ratings/{UserId}
GET /api/groups.ashx/mediagallery/posts/{PostId}/attachment
POST /api/groups.ashx/mediagallery/posts/{PostId}/attachment
PUT /api/groups.ashx/mediagallery/posts/{PostId}/attachment
DELETE /api/groups.ashx/mediagallery/posts/{PostId}/attachment
<GroupCategory Id="2" Endpoint="http://localhost/cs/api/groups.ashx/categories/2"> <Name>Sample Category</Name> <Description/> [<!-- root level categories with children will contain --> <NestedGroupCategoryList> <GroupCategoryInfo Id="16" Endpoint="http://localhost/cs/api/groups.ashx/categories/16"/ </NestedGroupCategoryList>] [<!-- child level categories will contain a reference to their parent --> <ParentGroupCategoryInfo Id="15" Endpoint="http://localhost/cs/api/groups.ashx/categories/15"/>]</GroupCategory>
<Group Id="7" Endpoint="http://localhost/cs/api/groups.ashx/groups/7"> <Name>Sample Group</Name> <Url>http://localhost/cs/groups/sample_group/default.aspx</Url> <Key>sample_group</Key> <GroupCategoryInfo Id="2" Endpoint="http://localhost/cs/api/groups.ashx/categories/2"/> <DateCreated>2008-01-15T05:37:58.823</DateCreated> <Description/> <GroupMembershipType>OpenMembership</GroupMembershipType> <ForumInfo Enabled="false" Endpoint="http://localhost/cs/api/groups.ashx/groups/7/forum"/> <BlogInfo Enabled="false" Endpoint="http://localhost/cs/api/groups.ashx/groups/7/blog"/> <MediaGalleryInfo Enabled="false" Endpoint="http://localhost/cs/api/groups.ashx/groups/7/mediagallery"/> <Theme>hawaii</Theme> <Members Endpoint="http://localhost/cs/api/groups.ashx/groups/7/members/"/> <Pages Endpoint="http://localhost/cs/api/groups.ashx/groups/7/pages"/> <ActivityMessages Endpoint="http://localhost/cs/api/groups.ashx/groups/7/activitymessages/"/> </Group>
<GroupPage Id="52" Endpoint="http://localhost/cs/api/groups.ashx/groups/7/pages/52"> <Title>Introducing Groups</Title> <Body> <p>This is a new feature of CommunityServer 2008</p> </Body></GroupPage>
<Message> <Id>82f5c60f-0ef6-4500-8d42-81c3e0b257e6</Id> <Author Id="2101" Endpoint="http://localhost/cs/api/membership.ashx/users/2101"/> <Subject/> <Body> <a href="/cs/members/Anonymous.aspx">Anonymous</a> added ... </Body> <DateCreated>2008-01-21T13:28:54.633</DateCreated> <Type>NewBlogPost</Type></Message>
<GroupBlog Enabled="true" Endpoint="http://localhost/cs/api/groups.ashx/groups/17/blog"> <GroupInfo Id="17" Endpoint="http://localhost/cs/api/groups.ashx/groups/17"/> <EnableComments>true</EnableComments> <EnableRatings>true</EnableRatings> <DisplayTrackbacks>true</DisplayTrackbacks> <Posts Endpoint="http://localhost/cs/api/groups.ashx/groups/17/blog/posts/"/> <Statistics Posts="1" Pages="0" Comments="0" Trackbacks="0" CommentsToModerate="0" DiskUsage="0"/> </GroupBlog>
<BlogPost Id="22" Endpoint="http://localhost/cs/api/groups.ashx/groups/17/blog/posts/22"> <Title>Introducing Groups</Title> <Body> Groups are a new way for your communities to communicate online. </Body> <Date>2008-01-15T06:49:29.163</Date> <Url>http://localhost/cs/groups/[...].aspx</Url> <Keywords/> <Comments Endpoint="http://localhost/cs/api/groups.ashx/groups/17/blog/posts/22/comments/"/> <Ratings Endpoint="http://localhost/cs/api/groups.ashx/groups/17/blog/posts/22/ratings/"/> <Trackbacks Endpoint="http://localhost/cs/api/groups.ashx/groups/17/blog/posts/22/trackbacks/"/> <ViewCount>0</ViewCount> <BlogInfo Enabled="true" Endpoint="http://localhost/cs/api/groups.ashx/groups/17/blog"/> <GroupInfo Id="17" Endpoint="http://localhost/cs/api/groups.ashx/groups/17"/> <UserInfo Id="2100" Endpoint="http://localhost/cs/api/membership.ashx/users/2100"/> </BlogPost>
<BlogComment Id="54" Endpoint="http://localhost/cs/api/groups.ashx/groups/7/blog/posts/53/comments/54"> <Title>re: Sample Group Blog Post</Title> <Body>this is a sample comment by admin</Body> <Date>2008-01-22T05:51:58.9</Date> <IsPublished>true</IsPublished> <BlogInfo Enabled="true" Endpoint="http://localhost/cs/api/groups.ashx/groups/7/blog"/> <GroupInfo Id="7" Endpoint="http://localhost/cs/api/groups.ashx/groups/7"/> <PostInfo Id="53" Endpoint="http://localhost/cs/api/groups.ashx/groups/7/blog/posts/53"/> <AuthorInfo Id="2100" IsOwner="false"> <Time>2008-01-22T05:51:58.9</Time> <HostAddress>127.0.0.1</HostAddress> <Name>admin</Name> <SubmittedUsername>Administrator</SubmittedUsername> </AuthorInfo></BlogComment>
<BlogTrackback Id="56" Endpoint="http://localhost/cs/api/groups.ashx/groups/17/blog/posts/22/trackbacks/56"> <Title>http://localhost/cs</Title> <Body/> <Date>2008-01-22T06:45:45.233</Date> <Url>http://localhost/cs/groups/communityserver/blog/archive/2008/01/22/56.aspx</Url> <ViewCount xsi:nil="true"/> <BlogInfo Enabled="true" Endpoint="http://localhost/cs/api/groups.ashx/groups/17/blog"/> <GroupInfo Id="17" Endpoint="http://localhost/cs/api/groups.ashx/groups/17"/> <UserInfo Id="2100" Endpoint="http://localhost/cs/api/membership.ashx/users/2100"/> <PostInfo Id="22" Endpoint="http://localhost/cs/api/groups.ashx/groups/17/blog/posts/22"/> </BlogTrackback>
<GroupForum Enabled="true" Endpoint="http://localhost/cs/api/groups.ashx/groups/17/forum"> <GroupInfo Id="17" Endpoint="http://localhost/cs/api/groups.ashx/groups/17"/> <EnableModeration>true</EnableModeration> <MembersCanCreateThreads>true</MembersCanCreateThreads> <Threads Endpoint="http://localhost/cs/api/groups.ashx/groups/17/forum/threads/"/> <Statistics Posts="2" Threads="1" DiskUsage="0" PostsToModerate="0"/></GroupForum>
<Thread Id="24" Endpoint="http://localhost/cs/api/groups.ashx/groups/17/forum/threads/24"> <Url>"http://localhost/cs/groups/communityserver/forum/p/24/30.aspx#30"</Url> <Subject>Sample Forum Post</Subject> <IsPopular>false</IsPopular> <IsSticky>false</IsSticky> <IsAnnouncement>false</IsAnnouncement> <StickyDate>2008-01-18T06:40:21.587</StickyDate> <Date>2008-01-18T06:40:21.587</Date> <ForumInfo Enabled="true" Endpoint="http://localhost/cs/api/groups.ashx/groups/17/forum"/> <PostInfo Id="30" Endpoint="http://localhost/cs/api/groups.ashx/groups/17/forum/threads/24/posts/30"/> <Ratings Endpoint="http://localhost/cs/api/groups.ashx/groups/17/forum/threads/24/ratings/"/></Thread>
<ForumPost Id="30" Endpoint="http://localhost/cs/api/groups.ashx/groups/17/forum/threads/24/posts/30"> <PostTracking> <HasRead>false</HasRead> <IsTracked>false</IsTracked> </PostTracking> <Body> <P mce_keep="true">do you like the thread rating features?</P> </Body> <Url>http://localhost/cs/groups/communityserver/forum/p/24/30.aspx#30</Url> <Subject>How would you rate community server</Subject> <Date>2008-01-17T07:06:21.073</Date> <Keywords> <Keyword>ratings</Keyword> <Keyword>communityserver</Keyword> </Keywords> <RenderedBody> <p>do you like the thread rating features?</p><div style="clear:both;"></div> </RenderedBody> <Excerpt/> <Statistics Replies="1" ViewCount="4" Points="0" Trackbacks="0" AgregatorViews="0"/> <Spam> <Score>0</Score> <Status>Unknown</Status> </Spam> <ForumInfo Enabled="true" Endpoint="http://localhost/cs/api/groups.ashx/groups/17/forum"/> <IsPublished>true</IsPublished> <Settings> <PostType>HTML</PostType> <Approved>true</Approved> <IsLocked>false</IsLocked> <PostMedia>Empty</PostMedia> </Settings> <AuthorInfo Id="2100"/> <Thread Id="24" Index="0" Date="2008-01-18T06:40:21.587"/> <EmoticonId>0</EmoticonId> <PostLevel>1</PostLevel> <SortOrder>1</SortOrder> <ParentPost Id="30" Endpoint="http://localhost/cs/api/groups.ashx/groups/17/forum/threads/24/posts/30"/> </ForumPost>
<GroupMediaGallery Enabled="true" Endpoint="http://localhost/cs/api/groups.ashx/groups/7/mediagallery"> <GroupInfo Id="7" Endpoint="http://localhost/cs/api/groups.ashx/groups/7"/> <EnableModeration>true</EnableModeration> <MembersCanUploadFiles>true</MembersCanUploadFiles></GroupMediaGallery>
<MediaGalleryPost Id="61" Endpoint="http://localhost/cs/api/groups.ashx/groups/7/mediagallery/posts/61"> <Body> <p>Check out these headphones</p> </Body> <Url>http://localhost/cs/groups/sample_group/media/post61.aspx</Url> <Title>CES Vegas</Title> <Date>2008-01-22T06:56:10.28</Date> <Keywords> <Keyword>CES</Keyword> </Keywords> <Ratings Endpoint="http://localhost/cs/api/groups.ashx/groups/7/mediagallery/posts/61/ratings/"/> <Comments Endpoint="http://localhost/cs/api/groups.ashx/groups/7/mediagallery/posts/61/comments/"/> <AttachmentInfo Endpoint="http://localhost/cs/communities/cfs-file.ashx/[...].jpg"/> <GalleryInfo Enabled="true" Endpoint="http://localhost/cs/api/groups.ashx/groups/7/mediagallery"/> <IsPublished>true</IsPublished> <AuthorInfo Id="2100" Endpoint="http://localhost/cs/api/membership.ashx/users/2100"/> </MediaGalleryPost>
<MediaGalleryComment Id="62" Endpoint="http://localhost/cs/api/groups.ashx/groups/7/mediagallery/posts/61/comments/62"> <Title>re: CES Vegas</Title> <Body>Everyone should get a pair of those</Body> <Date>2008-01-22T06:56:43.897</Date> <IsPublished>false</IsPublished> <MediaGalleryInfo Enabled="true" Endpoint="http://localhost/cs/api/groups.ashx/groups/7/mediagallery"/> <PostInfo Id="61" Endpoint="http://localhost/cs/api/groups.ashx/groups/28/mediagallery/posts/61"/> <AuthorInfo Id="2100" IsOwner="false"> <Time>0001-01-01T00:00:00</Time> <HostAddress>127.0.0.1</HostAddress> <Name/> </AuthorInfo></Comment>
<Member Id="2102" Endpoint="http://localhost/cs/api/groups.ashx/groups/17/members/2102" Type="Member" DateAdded="2008-01-15T06:50:19.553"/>
<Rating ItemId="44" UserId="2100" UserUrl="http://localhost/cs/api/membership.ashx/users/2100" Value="5" OldValue="0"/>
Query properties are key value pairs seperated by a semicolon. Arrays should be formatted as comma seperated strings. Group queries require the group to be specified as part of the Uri with /groups/{GroupId} and can only return items from a single group per query