
Documentation
Getting Started
Usage
Aggregate
Audit Logs
Block From Comment
Check Blocked Comments
Comments
Domain Configs
Event Log
Feed Posts
Flag Comment
Pages
Question Results Aggregation
SSO Users
Subscriptions
Upload Image
User Badge Progress
User Badges
User Notifications
User Presence Status
User Search
FastComments C++ SDK
This is the official C++ SDK for FastComments.
Official C++ SDK for the FastComments API
Repository
Requirements 
- C++17 or later
- CMake 3.14 or later
- OpenSSL
- C++ REST SDK (cpprestsdk)
- Boost
- Google Test (automatically downloaded for testing)
Installation 
Install Dependencies
sudo apt install libcpprest-dev libboost-all-dev
Building from Source
mkdir build
cd build
cmake ..
make
Installing
sudo make install
Library Contents
This library contains the generated API client and the SSO utilities to make working with the API easier.
Public vs Secured APIs
For the API client, there are two classes, DefaultAPI and PublicAPI. The DefaultAPI contains methods that require your API key, and PublicAPI contains api calls
that can be made directly from a browser/mobile device/etc without authentication.
Quick Start 
Using Authenticated APIs (DefaultAPI)
Important:
- You must set the base URL (cpp-restsdk generator doesn't read it from the OpenAPI spec)
- You must set your API key on the ApiClient before making authenticated requests. If you don't, requests will fail with a 401 error.
#include <iostream>
#include "FastCommentsClient/api/DefaultApi.h"
#include "FastCommentsClient/ApiClient.h"
#include "FastCommentsClient/ApiConfiguration.h"
int main() {
auto config = std::make_shared<org::openapitools::client::api::ApiConfiguration>();
// REQUIRED: Set the base URL (choose your region)
config->setBaseUrl(utility::conversions::to_string_t("https://fastcomments.com")); // US
// OR: config->setBaseUrl(utility::conversions::to_string_t("https://eu.fastcomments.com")); // EU
// REQUIRED: Set your API key
config->setApiKey(utility::conversions::to_string_t("api_key"), utility::conversions::to_string_t("YOUR_API_KEY_HERE"));
auto apiClient = std::make_shared<org::openapitools::client::api::ApiClient>(config);
org::openapitools::client::api::DefaultApi api(apiClient);
// Now make authenticated API calls
return 0;
}
Using Public APIs (PublicAPI)
Public endpoints don't require authentication:
#include <iostream>
#include "FastCommentsClient/api/PublicApi.h"
#include "FastCommentsClient/ApiClient.h"
#include "FastCommentsClient/ApiConfiguration.h"
int main() {
auto config = std::make_shared<org::openapitools::client::api::ApiConfiguration>();
// REQUIRED: Set the base URL
config->setBaseUrl(utility::conversions::to_string_t("https://fastcomments.com"));
auto apiClient = std::make_shared<org::openapitools::client::api::ApiClient>(config);
org::openapitools::client::api::PublicApi publicApi(apiClient);
// Make public API calls
return 0;
}
Common Issues
- "URI must contain a hostname" error: Make sure you call
config->setBaseUrl(utility::conversions::to_string_t("https://fastcomments.com"))before creating the ApiClient. The cpp-restsdk generator doesn't automatically read the server URL from the OpenAPI spec. - 401 "missing-api-key" error: Make sure you call
config->setApiKey(utility::conversions::to_string_t("api_key"), utility::conversions::to_string_t("YOUR_KEY"))before creating the DefaultAPI instance. - Wrong API class: Use
DefaultAPIfor server-side authenticated requests,PublicAPIfor client-side/public requests.
Notes 
Broadcast Ids
You'll see you're supposed to pass a broadcastId in some API calls. When you receive events, you'll get this ID back, so you know to ignore the event if you plan to optimistically apply changes on the client
(which you'll probably want to do since it offers the best experience). Pass a UUID here. The ID should be unique enough to not occur twice in a browser session.
SSO (Single Sign-On)
For SSO examples, see below.
SSO Usage 
Simple SSO
#include <fastcomments/sso/fastcomments_sso.hpp>
#include <iostream>
using namespace fastcomments::sso;
int main() {
SimpleSSOUserData user("user-123", "user@example.com", "https://example.com/avatar.jpg");
FastCommentsSSO sso = FastCommentsSSO::newSimple(user);
std::string token = sso.createToken();
std::cout << "SSO Token: " << token << std::endl;
return 0;
}
Secure SSO
#include <fastcomments/sso/fastcomments_sso.hpp>
#include <iostream>
using namespace fastcomments::sso;
int main() {
SecureSSOUserData user("user-123", "user@example.com", "johndoe", "https://example.com/avatar.jpg");
std::string apiKey = "your-api-key";
FastCommentsSSO sso = FastCommentsSSO::newSecure(apiKey, user);
std::string token = sso.createToken();
std::cout << "Secure SSO Token: " << token << std::endl;
return 0;
}
Testing 
Set the required environment variables:
export FASTCOMMENTS_API_KEY="your-api-key"
export FASTCOMMENTS_TENANT_ID="your-tenant-id"
Run the tests:
cd build
ctest
Support 
For support, please visit https://fastcomments.com/auth/my-account/help or email support@fastcomments.com
Documentation for fastcomments 
Documentation for fastcomments
Documentation for API Endpoints
All URIs are relative to https://fastcomments.com
| Class | Method | HTTP request | Description |
|---|---|---|---|
| DefaultApi | addDomainConfig | POST /api/v1/domain-configs | |
| DefaultApi | addPage | POST /api/v1/pages | |
| DefaultApi | addSSOUser | POST /api/v1/sso-users | |
| DefaultApi | aggregate | POST /api/v1/aggregate | Aggregates documents by grouping them (if groupBy is provided) and applying multiple operations. Different operations (e.g. sum, countDistinct, avg, etc.) are supported. |
| DefaultApi | aggregateQuestionResults | GET /api/v1/question-results-aggregation | |
| DefaultApi | blockUserFromComment | POST /api/v1/comments/{id}/block | |
| DefaultApi | bulkAggregateQuestionResults | POST /api/v1/question-results-aggregation/bulk | |
| DefaultApi | combineCommentsWithQuestionResults | GET /api/v1/question-results-aggregation/combine/comments | |
| DefaultApi | createFeedPost | POST /api/v1/feed-posts | |
| DefaultApi | createSubscription | POST /api/v1/subscriptions | |
| DefaultApi | createUserBadge | POST /api/v1/user-badges | |
| DefaultApi | deleteComment | DELETE /api/v1/comments/{id} | |
| DefaultApi | deleteDomainConfig | DELETE /api/v1/domain-configs/{domain} | |
| DefaultApi | deletePage | DELETE /api/v1/pages/{id} | |
| DefaultApi | deleteSSOUser | DELETE /api/v1/sso-users/{id} | |
| DefaultApi | deleteSubscription | DELETE /api/v1/subscriptions/{id} | |
| DefaultApi | deleteUserBadge | DELETE /api/v1/user-badges/{id} | |
| DefaultApi | flagComment | POST /api/v1/comments/{id}/flag | |
| DefaultApi | getAuditLogs | GET /api/v1/audit-logs | |
| DefaultApi | getComment | GET /api/v1/comments/{id} | |
| DefaultApi | getComments | GET /api/v1/comments | |
| DefaultApi | getDomainConfig | GET /api/v1/domain-configs/{domain} | |
| DefaultApi | getDomainConfigs | GET /api/v1/domain-configs | |
| DefaultApi | getFeedPosts | GET /api/v1/feed-posts | req tenantId afterId |
| DefaultApi | getPageByURLId | GET /api/v1/pages/by-url-id | |
| DefaultApi | getPages | GET /api/v1/pages | |
| DefaultApi | getSSOUserByEmail | GET /api/v1/sso-users/by-email/{email} | |
| DefaultApi | getSSOUserById | GET /api/v1/sso-users/by-id/{id} | |
| DefaultApi | getSSOUsers | GET /api/v1/sso-users | |
| DefaultApi | getSubscriptions | GET /api/v1/subscriptions | |
| DefaultApi | getUserBadge | GET /api/v1/user-badges/{id} | |
| DefaultApi | getUserBadgeProgressById | GET /api/v1/user-badge-progress/{id} | |
| DefaultApi | getUserBadgeProgressByUserId | GET /api/v1/user-badge-progress/user/{userId} | |
| DefaultApi | getUserBadgeProgressList | GET /api/v1/user-badge-progress | |
| DefaultApi | getUserBadges | GET /api/v1/user-badges | |
| DefaultApi | patchDomainConfig | PATCH /api/v1/domain-configs/{domainToUpdate} | |
| DefaultApi | patchPage | PATCH /api/v1/pages/{id} | |
| DefaultApi | patchSSOUser | PATCH /api/v1/sso-users/{id} | |
| DefaultApi | putDomainConfig | PUT /api/v1/domain-configs/{domainToUpdate} | |
| DefaultApi | putSSOUser | PUT /api/v1/sso-users/{id} | |
| DefaultApi | saveComment | POST /api/v1/comments | |
| DefaultApi | saveCommentsBulk | POST /api/v1/comments/bulk | |
| DefaultApi | unBlockUserFromComment | POST /api/v1/comments/{id}/un-block | |
| DefaultApi | unFlagComment | POST /api/v1/comments/{id}/un-flag | |
| DefaultApi | updateComment | PATCH /api/v1/comments/{id} | |
| DefaultApi | updateFeedPost | PATCH /api/v1/feed-posts/{id} | |
| DefaultApi | updateUserBadge | PUT /api/v1/user-badges/{id} | |
| PublicApi | blockFromCommentPublic | POST /block-from-comment/{commentId} | |
| PublicApi | checkedCommentsForBlocked | GET /check-blocked-comments | |
| PublicApi | createCommentPublic | POST /comments/{tenantId} | |
| PublicApi | createFeedPostPublic | POST /feed-posts/{tenantId} | |
| PublicApi | deleteCommentPublic | DELETE /comments/{tenantId}/{commentId} | |
| PublicApi | deleteCommentVote | DELETE /comments/{tenantId}/{commentId}/vote/{voteId} | |
| PublicApi | deleteFeedPostPublic | DELETE /feed-posts/{tenantId}/{postId} | |
| PublicApi | flagCommentPublic | POST /flag-comment/{commentId} | |
| PublicApi | getCommentText | GET /comments/{tenantId}/{commentId}/text | |
| PublicApi | getCommentVoteUserNames | GET /comments/{tenantId}/{commentId}/votes | |
| PublicApi | getCommentsPublic | GET /comments/{tenantId} | req tenantId urlId |
| PublicApi | getEventLog | GET /event-log/{tenantId} | req tenantId urlId userIdWS |
| PublicApi | getFeedPostsPublic | GET /feed-posts/{tenantId} | req tenantId afterId |
| PublicApi | getFeedPostsStats | GET /feed-posts/{tenantId}/stats | |
| PublicApi | getGlobalEventLog | GET /event-log/global/{tenantId} | req tenantId urlId userIdWS |
| PublicApi | getUserNotificationCount | GET /user-notifications/get-count | |
| PublicApi | getUserNotifications | GET /user-notifications | |
| PublicApi | getUserPresenceStatuses | GET /user-presence-status | |
| PublicApi | getUserReactsPublic | GET /feed-posts/{tenantId}/user-reacts | |
| PublicApi | lockComment | POST /comments/{tenantId}/{commentId}/lock | |
| PublicApi | pinComment | POST /comments/{tenantId}/{commentId}/pin | |
| PublicApi | reactFeedPostPublic | POST /feed-posts/{tenantId}/react/{postId} | |
| PublicApi | resetUserNotificationCount | POST /user-notifications/reset-count | |
| PublicApi | resetUserNotifications | POST /user-notifications/reset | |
| PublicApi | searchUsers | GET /user-search/{tenantId} | |
| PublicApi | setCommentText | POST /comments/{tenantId}/{commentId}/update-text | |
| PublicApi | unBlockCommentPublic | DELETE /block-from-comment/{commentId} | |
| PublicApi | unLockComment | POST /comments/{tenantId}/{commentId}/unlock | |
| PublicApi | unPinComment | POST /comments/{tenantId}/{commentId}/unpin | |
| PublicApi | updateFeedPostPublic | PUT /feed-posts/{tenantId}/{postId} | |
| PublicApi | updateUserNotificationCommentSubscriptionStatus | POST /user-notifications/{notificationId}/mark-opted/{optedInOrOut} | Enable or disable notifications for a specific comment. |
| PublicApi | updateUserNotificationPageSubscriptionStatus | POST /user-notifications/set-subscription-state/{subscribedOrUnsubscribed} | Enable or disable notifications for a page. When users are subscribed to a page, notifications are created for new root comments, and also |
| PublicApi | updateUserNotificationStatus | POST /user-notifications/{notificationId}/mark/{newStatus} | |
| PublicApi | uploadImage | POST /upload-image/{tenantId} | Upload and resize an image |
| PublicApi | voteComment | POST /comments/{tenantId}/{commentId}/vote |
Documentation for Models
- APIComment
- APICreateUserBadgeResponse
- APIEmptyResponse
- APIEmptySuccessResponse
- APIError
- APIGetCommentResponse
- APIGetCommentsResponse
- APIGetUserBadgeProgressListResponse
- APIGetUserBadgeProgressResponse
- APIGetUserBadgeResponse
- APIGetUserBadgesResponse
- APIPage
- APISSOUser
- APIStatus
- APIUserSubscription
- AddDomainConfigParams
- AddDomainConfig_200_response
- AddDomainConfig_200_response_anyOf
- AddPageAPIResponse
- AddSSOUserAPIResponse
- AggregateQuestionResultsResponse
- AggregateQuestionResults_200_response
- AggregateTimeBucket
- AggregationItem
- AggregationOpType
- AggregationOperation
- AggregationRequest
- AggregationRequest_sort
- AggregationResponse
- AggregationResponse_stats
- AggregationValue
- BlockFromCommentParams
- BlockFromCommentPublic_200_response
- BlockSuccess
- BulkAggregateQuestionItem
- BulkAggregateQuestionResultsRequest
- BulkAggregateQuestionResultsResponse
- BulkAggregateQuestionResults_200_response
- ChangeCommentPinStatusResponse
- CheckBlockedCommentsResponse
- CheckedCommentsForBlocked_200_response
- CombineCommentsWithQuestionResults_200_response
- CombineQuestionResultsWithCommentsResponse
- CommentData
- CommentHTMLRenderingMode
- CommentLogData
- CommentLogEntry
- CommentLogType
- CommentQuestionResultsRenderingType
- CommentQuestionsRequired
- CommentTextUpdateRequest
- CommentThreadDeletionMode
- CommentUserBadgeInfo
- CommentUserHashTagInfo
- CommentUserMentionInfo
- CommenterNameFormats
- CreateAPIPageData
- CreateAPISSOUserData
- CreateAPIUserSubscriptionData
- CreateCommentParams
- CreateCommentPublic_200_response
- CreateFeedPostParams
- CreateFeedPostPublic_200_response
- CreateFeedPostResponse
- CreateFeedPost_200_response
- CreateFeedPostsResponse
- CreateSubscriptionAPIResponse
- CreateUserBadgeParams
- CreateUserBadge_200_response
- CustomConfigParameters
- DeleteCommentAction
- DeleteCommentPublic_200_response
- DeleteCommentResult
- DeleteCommentVote_200_response
- DeleteComment_200_response
- DeleteDomainConfig_200_response
- DeleteFeedPostPublic_200_response
- DeleteFeedPostPublic_200_response_anyOf
- DeletePageAPIResponse
- DeleteSSOUserAPIResponse
- DeleteSubscriptionAPIResponse
- EventLogEntry
- FComment
- FComment_meta
- FeedPost
- FeedPostLink
- FeedPostMediaItem
- FeedPostMediaItemAsset
- FeedPostStats
- FeedPostsStatsResponse
- FindCommentsByRangeItem
- FindCommentsByRangeResponse
- FlagCommentPublic_200_response
- FlagCommentResponse
- FlagComment_200_response
- GetAuditLogsResponse
- GetAuditLogs_200_response
- GetCommentText_200_response
- GetCommentVoteUserNamesSuccessResponse
- GetCommentVoteUserNames_200_response
- GetComment_200_response
- GetCommentsPublic_200_response
- GetCommentsResponseWithPresence_PublicComment_
- GetCommentsResponse_PublicComment_
- GetComments_200_response
- GetDomainConfig_200_response
- GetDomainConfigs_200_response
- GetDomainConfigs_200_response_anyOf
- GetDomainConfigs_200_response_anyOf_1
- GetEventLogResponse
- GetEventLog_200_response
- GetFeedPostsPublic_200_response
- GetFeedPostsResponse
- GetFeedPostsStats_200_response
- GetFeedPosts_200_response
- GetMyNotificationsResponse
- GetPageByURLIdAPIResponse
- GetPagesAPIResponse
- GetPublicFeedPostsResponse
- GetSSOUserByEmailAPIResponse
- GetSSOUserByIdAPIResponse
- GetSSOUsers_200_response
- GetSubscriptionsAPIResponse
- GetUserBadgeProgressById_200_response
- GetUserBadgeProgressList_200_response
- GetUserBadge_200_response
- GetUserBadges_200_response
- GetUserNotificationCountResponse
- GetUserNotificationCount_200_response
- GetUserNotifications_200_response
- GetUserPresenceStatusesResponse
- GetUserPresenceStatuses_200_response
- GetUserReactsPublic_200_response
- GifRating
- HeaderState
- IgnoredResponse
- ImageContentProfanityLevel
- LiveEvent
- LiveEventType
- LiveEvent_extraInfo
- LockComment_200_response
- MediaAsset
- MetaItem
- NotificationAndCount
- NotificationObjectType
- NotificationType
- PatchDomainConfigParams
- PatchPageAPIResponse
- PatchSSOUserAPIResponse
- Pick_APIComment.UpdatableCommentFields_
- Pick_FComment.APICommentFieldsKeys_
- Pick_FComment.PublicCommentFieldsKeys_
- Pick_FComment.approved-or-commentHTML_
- Pick_FComment.isDeleted-or-commentHTML-or-commenterName-or-userId_
- Pick_FComment_APICommentFieldsKeys__meta
- Pick_Omit_FComment.date_.PublicCommentPubSubFieldsKeys_
- Pick_TenantAuditLog.TenantAuditLogKeys_
- PinComment_200_response
- PubSubComment
- PubSubVote
- PublicAPIDeleteCommentResponse
- PublicAPIGetCommentTextResponse
- PublicAPISetCommentTextResponse
- PublicBlockFromCommentParams
- PublicComment
- PublicFeedPostsResponse
- PutSSOUserAPIResponse
- QueryPredicate
- QueryPredicate_value
- QuestionDatum
- QuestionRenderingType
- QuestionResult
- QuestionResultAggregationOverall
- QuestionSubQuestionVisibility
- QuestionWhenSave
- ReactBodyParams
- ReactFeedPostPublic_200_response
- ReactFeedPostResponse
- Record_string__before_string_or_null__after_string_or_null___value
- Record_string_string_or_number__value
- RenderableUserNotification
- RepeatCommentCheckIgnoredReason
- RepeatCommentHandlingAction
- ResetUserNotificationsResponse
- ResetUserNotifications_200_response
- SORT_DIR
- SSOSecurityLevel
- SaveCommentResponse
- SaveCommentResponseOptimized
- SaveComment_200_response
- SaveCommentsResponseWithPresence
- SearchUsersResponse
- SearchUsers_200_response
- SetCommentText_200_response
- SizePreset
- SortDirections
- SpamRule
- UnBlockCommentPublic_200_response
- UnBlockFromCommentParams
- UnblockSuccess
- UpdateAPIPageData
- UpdateAPISSOUserData
- UpdateDomainConfigParams
- UpdateFeedPostParams
- UpdateUserBadgeParams
- UpdateUserBadge_200_response
- UpdateUserNotificationStatus_200_response
- UploadImageResponse
- UserBadge
- UserBadgeProgress
- UserNotification
- UserNotificationWriteResponse
- UserPresenceData
- UserReactsResponse
- UserSearchResult
- UserSessionInfo
- VoteBodyParams
- VoteComment_200_response
- VoteDeleteResponse
- VoteResponse
- VoteResponseUser
- VoteStyle
Documentation for Authorization
api_key
- Type: API key
- API key parameter name: x-api-key
- Location: HTTP header
aggregate 
Aggregates documents by grouping them (if groupBy is provided) and applying multiple operations. Different operations (e.g. sum, countDistinct, avg, etc.) are supported.
Parameters
| Name | Type | Location | Required | Description |
|---|---|---|---|---|
| tenantId | string | query | Yes | |
| parentTenantId | string | query | No | |
| includeStats | boolean | query | No |
Response
Returns: AggregationResponse
getAuditLogs 
Parameters
| Name | Type | Location | Required | Description |
|---|---|---|---|---|
| tenantId | string | query | Yes | |
| limit | number | query | No | |
| skip | number | query | No | |
| order | string | query | No | |
| after | number | query | No | |
| before | number | query | No |
Response
Returns: GetAuditLogs_200_response
blockFromCommentPublic 
Parameters
| Name | Type | Location | Required | Description |
|---|---|---|---|---|
| tenantId | string | query | Yes | |
| commentId | string | path | Yes | |
| sso | string | query | No |
Response
Returns: BlockFromCommentPublic_200_response
unBlockCommentPublic 
Parameters
| Name | Type | Location | Required | Description |
|---|---|---|---|---|
| tenantId | string | query | Yes | |
| commentId | string | path | Yes | |
| sso | string | query | No |
Response
Returns: UnBlockCommentPublic_200_response
checkedCommentsForBlocked 
Parameters
| Name | Type | Location | Required | Description |
|---|---|---|---|---|
| tenantId | string | query | Yes | |
| commentIds | string | query | Yes | A comma separated list of comment ids. |
| sso | string | query | No |
Response
blockUserFromComment 
Parameters
| Name | Type | Location | Required | Description |
|---|---|---|---|---|
| tenantId | string | query | Yes | |
| id | string | path | Yes | |
| userId | string | query | No | |
| anonUserId | string | query | No |
Response
Returns: BlockFromCommentPublic_200_response
createCommentPublic 
Parameters
| Name | Type | Location | Required | Description |
|---|---|---|---|---|
| tenantId | string | path | Yes | |
| urlId | string | query | Yes | |
| broadcastId | string | query | Yes | |
| sessionId | string | query | No | |
| sso | string | query | No |
Response
Returns: CreateCommentPublic_200_response
deleteComment 
Parameters
| Name | Type | Location | Required | Description |
|---|---|---|---|---|
| tenantId | string | query | Yes | |
| id | string | path | Yes | |
| contextUserId | string | query | No | |
| isLive | boolean | query | No |
Response
Returns: DeleteComment_200_response
deleteCommentPublic 
Parameters
| Name | Type | Location | Required | Description |
|---|---|---|---|---|
| tenantId | string | path | Yes | |
| commentId | string | path | Yes | |
| broadcastId | string | query | Yes | |
| editKey | string | query | No | |
| sso | string | query | No |
Response
Returns: DeleteCommentPublic_200_response
deleteCommentVote 
Parameters
| Name | Type | Location | Required | Description |
|---|---|---|---|---|
| tenantId | string | path | Yes | |
| commentId | string | path | Yes | |
| voteId | string | path | Yes | |
| urlId | string | query | Yes | |
| broadcastId | string | query | Yes | |
| editKey | string | query | No | |
| sso | string | query | No |
Response
Returns: DeleteCommentVote_200_response
flagComment 
Parameters
| Name | Type | Location | Required | Description |
|---|---|---|---|---|
| tenantId | string | query | Yes | |
| id | string | path | Yes | |
| userId | string | query | No | |
| anonUserId | string | query | No |
Response
Returns: FlagComment_200_response
getComment 
Parameters
| Name | Type | Location | Required | Description |
|---|---|---|---|---|
| tenantId | string | query | Yes | |
| id | string | path | Yes |
Response
Returns: GetComment_200_response
getComments 
Parameters
| Name | Type | Location | Required | Description |
|---|---|---|---|---|
| tenantId | string | query | Yes | |
| page | integer | query | No | |
| limit | integer | query | No | |
| skip | integer | query | No | |
| asTree | boolean | query | No | |
| skipChildren | integer | query | No | |
| limitChildren | integer | query | No | |
| maxTreeDepth | integer | query | No | |
| urlId | string | query | No | |
| userId | string | query | No | |
| anonUserId | string | query | No | |
| contextUserId | string | query | No | |
| hashTag | string | query | No | |
| parentId | string | query | No | |
| direction | string | query | No |
Response
Returns: GetComments_200_response
getCommentsPublic 
req tenantId urlId
Parameters
| Name | Type | Location | Required | Description |
|---|---|---|---|---|
| tenantId | string | path | Yes | |
| urlId | string | query | Yes | |
| page | integer | query | No | |
| direction | string | query | No | |
| sso | string | query | No | |
| skip | integer | query | No | |
| skipChildren | integer | query | No | |
| limit | integer | query | No | |
| limitChildren | integer | query | No | |
| countChildren | boolean | query | No | |
| fetchPageForCommentId | string | query | No | |
| includeConfig | boolean | query | No | |
| countAll | boolean | query | No | |
| includei10n | boolean | query | No | |
| locale | string | query | No | |
| modules | string | query | No | |
| isCrawler | boolean | query | No | |
| includeNotificationCount | boolean | query | No | |
| asTree | boolean | query | No | |
| maxTreeDepth | integer | query | No | |
| useFullTranslationIds | boolean | query | No | |
| parentId | string | query | No | |
| searchText | string | query | No | |
| hashTags | array | query | No | |
| userId | string | query | No | |
| customConfigStr | string | query | No | |
| afterCommentId | string | query | No | |
| beforeCommentId | string | query | No |
Response
Returns: GetCommentsPublic_200_response
getCommentText 
Parameters
| Name | Type | Location | Required | Description |
|---|---|---|---|---|
| tenantId | string | path | Yes | |
| commentId | string | path | Yes | |
| editKey | string | query | No | |
| sso | string | query | No |
Response
Returns: GetCommentText_200_response
getCommentVoteUserNames 
Parameters
| Name | Type | Location | Required | Description |
|---|---|---|---|---|
| tenantId | string | path | Yes | |
| commentId | string | path | Yes | |
| dir | integer | query | Yes | |
| sso | string | query | No |
Response
Returns: GetCommentVoteUserNames_200_response
lockComment 
Parameters
| Name | Type | Location | Required | Description |
|---|---|---|---|---|
| tenantId | string | path | Yes | |
| commentId | string | path | Yes | |
| broadcastId | string | query | Yes | |
| sso | string | query | No |
Response
Returns: LockComment_200_response
pinComment 
Parameters
| Name | Type | Location | Required | Description |
|---|---|---|---|---|
| tenantId | string | path | Yes | |
| commentId | string | path | Yes | |
| broadcastId | string | query | Yes | |
| sso | string | query | No |
Response
Returns: PinComment_200_response
saveComment 
Parameters
| Name | Type | Location | Required | Description |
|---|---|---|---|---|
| tenantId | string | query | Yes | |
| isLive | boolean | query | No | |
| doSpamCheck | boolean | query | No | |
| sendEmails | boolean | query | No | |
| populateNotifications | boolean | query | No |
Response
Returns: SaveComment_200_response
saveCommentsBulk 
Parameters
| Name | Type | Location | Required | Description |
|---|---|---|---|---|
| tenantId | string | query | Yes | |
| isLive | boolean | query | No | |
| doSpamCheck | boolean | query | No | |
| sendEmails | boolean | query | No | |
| populateNotifications | boolean | query | No |
Response
Returns: List
setCommentText 
Parameters
| Name | Type | Location | Required | Description |
|---|---|---|---|---|
| tenantId | string | path | Yes | |
| commentId | string | path | Yes | |
| broadcastId | string | query | Yes | |
| editKey | string | query | No | |
| sso | string | query | No |
Response
Returns: SetCommentText_200_response
unBlockUserFromComment 
Parameters
| Name | Type | Location | Required | Description |
|---|---|---|---|---|
| tenantId | string | query | Yes | |
| id | string | path | Yes | |
| userId | string | query | No | |
| anonUserId | string | query | No |
Response
Returns: UnBlockCommentPublic_200_response
unFlagComment 
Parameters
| Name | Type | Location | Required | Description |
|---|---|---|---|---|
| tenantId | string | query | Yes | |
| id | string | path | Yes | |
| userId | string | query | No | |
| anonUserId | string | query | No |
Response
Returns: FlagComment_200_response
unLockComment 
Parameters
| Name | Type | Location | Required | Description |
|---|---|---|---|---|
| tenantId | string | path | Yes | |
| commentId | string | path | Yes | |
| broadcastId | string | query | Yes | |
| sso | string | query | No |
Response
Returns: LockComment_200_response
unPinComment 
Parameters
| Name | Type | Location | Required | Description |
|---|---|---|---|---|
| tenantId | string | path | Yes | |
| commentId | string | path | Yes | |
| broadcastId | string | query | Yes | |
| sso | string | query | No |
Response
Returns: PinComment_200_response
updateComment 
Parameters
| Name | Type | Location | Required | Description |
|---|---|---|---|---|
| tenantId | string | query | Yes | |
| id | string | path | Yes | |
| contextUserId | string | query | No | |
| doSpamCheck | boolean | query | No | |
| isLive | boolean | query | No |
Response
Returns: FlagCommentPublic_200_response
voteComment 
Parameters
| Name | Type | Location | Required | Description |
|---|---|---|---|---|
| tenantId | string | path | Yes | |
| commentId | string | path | Yes | |
| urlId | string | query | Yes | |
| broadcastId | string | query | Yes | |
| sessionId | string | query | No | |
| sso | string | query | No |
Response
Returns: VoteComment_200_response
addDomainConfig 
Parameters
| Name | Type | Location | Required | Description |
|---|---|---|---|---|
| tenantId | string | query | Yes |
Response
Returns: AddDomainConfig_200_response
deleteDomainConfig 
Parameters
| Name | Type | Location | Required | Description |
|---|---|---|---|---|
| tenantId | string | query | Yes | |
| domain | string | path | Yes |
Response
Returns: DeleteDomainConfig_200_response
getDomainConfig 
Parameters
| Name | Type | Location | Required | Description |
|---|---|---|---|---|
| tenantId | string | query | Yes | |
| domain | string | path | Yes |
Response
Returns: GetDomainConfig_200_response
getDomainConfigs 
Parameters
| Name | Type | Location | Required | Description |
|---|---|---|---|---|
| tenantId | string | query | Yes |
Response
Returns: GetDomainConfigs_200_response
patchDomainConfig 
Parameters
| Name | Type | Location | Required | Description |
|---|---|---|---|---|
| tenantId | string | query | Yes | |
| domainToUpdate | string | path | Yes |
Response
Returns: GetDomainConfig_200_response
putDomainConfig 
Parameters
| Name | Type | Location | Required | Description |
|---|---|---|---|---|
| tenantId | string | query | Yes | |
| domainToUpdate | string | path | Yes |
Response
Returns: GetDomainConfig_200_response
getEventLog 
req tenantId urlId userIdWS
Parameters
| Name | Type | Location | Required | Description |
|---|---|---|---|---|
| tenantId | string | path | Yes | |
| urlId | string | query | Yes | |
| userIdWS | string | query | Yes | |
| startTime | integer | query | Yes | |
| endTime | integer | query | Yes |
Response
Returns: GetEventLog_200_response
getGlobalEventLog 
req tenantId urlId userIdWS
Parameters
| Name | Type | Location | Required | Description |
|---|---|---|---|---|
| tenantId | string | path | Yes | |
| urlId | string | query | Yes | |
| userIdWS | string | query | Yes | |
| startTime | integer | query | Yes | |
| endTime | integer | query | Yes |
Response
Returns: GetEventLog_200_response
createFeedPost 
Parameters
| Name | Type | Location | Required | Description |
|---|---|---|---|---|
| tenantId | string | query | Yes | |
| broadcastId | string | query | No | |
| isLive | boolean | query | No | |
| doSpamCheck | boolean | query | No | |
| skipDupCheck | boolean | query | No |
Response
Returns: CreateFeedPost_200_response
createFeedPostPublic 
Parameters
| Name | Type | Location | Required | Description |
|---|---|---|---|---|
| tenantId | string | path | Yes | |
| broadcastId | string | query | No | |
| sso | string | query | No |
Response
Returns: CreateFeedPostPublic_200_response
deleteFeedPostPublic 
Parameters
| Name | Type | Location | Required | Description |
|---|---|---|---|---|
| tenantId | string | path | Yes | |
| postId | string | path | Yes | |
| broadcastId | string | query | No | |
| sso | string | query | No |
Response
Returns: DeleteFeedPostPublic_200_response
getFeedPosts 
req tenantId afterId
Parameters
| Name | Type | Location | Required | Description |
|---|---|---|---|---|
| tenantId | string | query | Yes | |
| afterId | string | query | No | |
| limit | integer | query | No | |
| tags | array | query | No |
Response
Returns: GetFeedPosts_200_response
getFeedPostsPublic 
req tenantId afterId
Parameters
| Name | Type | Location | Required | Description |
|---|---|---|---|---|
| tenantId | string | path | Yes | |
| afterId | string | query | No | |
| limit | integer | query | No | |
| tags | array | query | No | |
| sso | string | query | No | |
| isCrawler | boolean | query | No | |
| includeUserInfo | boolean | query | No |
Response
Returns: GetFeedPostsPublic_200_response
getFeedPostsStats 
Parameters
| Name | Type | Location | Required | Description |
|---|---|---|---|---|
| tenantId | string | path | Yes | |
| postIds | array | query | Yes | |
| sso | string | query | No |
Response
Returns: GetFeedPostsStats_200_response
getUserReactsPublic 
Parameters
| Name | Type | Location | Required | Description |
|---|---|---|---|---|
| tenantId | string | path | Yes | |
| postIds | array | query | No | |
| sso | string | query | No |
Response
Returns: GetUserReactsPublic_200_response
reactFeedPostPublic 
Parameters
| Name | Type | Location | Required | Description |
|---|---|---|---|---|
| tenantId | string | path | Yes | |
| postId | string | path | Yes | |
| isUndo | boolean | query | No | |
| broadcastId | string | query | No | |
| sso | string | query | No |
Response
Returns: ReactFeedPostPublic_200_response
updateFeedPost 
Parameters
| Name | Type | Location | Required | Description |
|---|---|---|---|---|
| tenantId | string | query | Yes | |
| id | string | path | Yes |
Response
Returns: FlagCommentPublic_200_response
updateFeedPostPublic 
Parameters
| Name | Type | Location | Required | Description |
|---|---|---|---|---|
| tenantId | string | path | Yes | |
| postId | string | path | Yes | |
| broadcastId | string | query | No | |
| sso | string | query | No |
Response
Returns: CreateFeedPostPublic_200_response
flagCommentPublic 
Parameters
| Name | Type | Location | Required | Description |
|---|---|---|---|---|
| tenantId | string | query | Yes | |
| commentId | string | path | Yes | |
| isFlagged | boolean | query | Yes | |
| sso | string | query | No |
Response
Returns: FlagCommentPublic_200_response
addPage 
Parameters
| Name | Type | Location | Required | Description |
|---|---|---|---|---|
| tenantId | string | query | Yes |
Response
Returns: AddPageAPIResponse
deletePage 
Parameters
| Name | Type | Location | Required | Description |
|---|---|---|---|---|
| tenantId | string | query | Yes | |
| id | string | path | Yes |
Response
Returns: DeletePageAPIResponse
getPageByURLId 
Parameters
| Name | Type | Location | Required | Description |
|---|---|---|---|---|
| tenantId | string | query | Yes | |
| urlId | string | query | Yes |
Response
Returns: GetPageByURLIdAPIResponse
getPages 
Parameters
| Name | Type | Location | Required | Description |
|---|---|---|---|---|
| tenantId | string | query | Yes |
Response
Returns: GetPagesAPIResponse
patchPage 
Parameters
| Name | Type | Location | Required | Description |
|---|---|---|---|---|
| tenantId | string | query | Yes | |
| id | string | path | Yes |
Response
Returns: PatchPageAPIResponse
aggregateQuestionResults 
Parameters
| Name | Type | Location | Required | Description |
|---|---|---|---|---|
| tenantId | string | query | Yes | |
| questionId | string | query | No | |
| questionIds | array | query | No | |
| urlId | string | query | No | |
| timeBucket | string | query | No | |
| startDate | string | query | No | |
| forceRecalculate | boolean | query | No |
Response
bulkAggregateQuestionResults 
Parameters
| Name | Type | Location | Required | Description |
|---|---|---|---|---|
| tenantId | string | query | Yes | |
| forceRecalculate | boolean | query | No |
Response
combineCommentsWithQuestionResults 
Parameters
| Name | Type | Location | Required | Description |
|---|---|---|---|---|
| tenantId | string | query | Yes | |
| questionId | string | query | No | |
| questionIds | array | query | No | |
| urlId | string | query | No | |
| startDate | string | query | No | |
| forceRecalculate | boolean | query | No | |
| minValue | number | query | No | |
| maxValue | number | query | No | |
| limit | number | query | No |
Response
addSSOUser 
Parameters
| Name | Type | Location | Required | Description |
|---|---|---|---|---|
| tenantId | string | query | Yes |
Response
Returns: AddSSOUserAPIResponse
deleteSSOUser 
Parameters
| Name | Type | Location | Required | Description |
|---|---|---|---|---|
| tenantId | string | query | Yes | |
| id | string | path | Yes | |
| deleteComments | boolean | query | No | |
| commentDeleteMode | string | query | No |
Response
Returns: DeleteSSOUserAPIResponse
getSSOUserByEmail 
Parameters
| Name | Type | Location | Required | Description |
|---|---|---|---|---|
| tenantId | string | query | Yes | |
| string | path | Yes |
Response
Returns: GetSSOUserByEmailAPIResponse
getSSOUserById 
Parameters
| Name | Type | Location | Required | Description |
|---|---|---|---|---|
| tenantId | string | query | Yes | |
| id | string | path | Yes |
Response
Returns: GetSSOUserByIdAPIResponse
getSSOUsers 
Parameters
| Name | Type | Location | Required | Description |
|---|---|---|---|---|
| tenantId | string | query | Yes | |
| skip | integer | query | No |
Response
Returns: GetSSOUsers_200_response
patchSSOUser 
Parameters
| Name | Type | Location | Required | Description |
|---|---|---|---|---|
| tenantId | string | query | Yes | |
| id | string | path | Yes | |
| updateComments | boolean | query | No |
Response
Returns: PatchSSOUserAPIResponse
putSSOUser 
Parameters
| Name | Type | Location | Required | Description |
|---|---|---|---|---|
| tenantId | string | query | Yes | |
| id | string | path | Yes | |
| updateComments | boolean | query | No |
Response
Returns: PutSSOUserAPIResponse
createSubscription 
Parameters
| Name | Type | Location | Required | Description |
|---|---|---|---|---|
| tenantId | string | query | Yes |
Response
Returns: CreateSubscriptionAPIResponse
deleteSubscription 
Parameters
| Name | Type | Location | Required | Description |
|---|---|---|---|---|
| tenantId | string | query | Yes | |
| id | string | path | Yes | |
| userId | string | query | No |
Response
Returns: DeleteSubscriptionAPIResponse
getSubscriptions 
Parameters
| Name | Type | Location | Required | Description |
|---|---|---|---|---|
| tenantId | string | query | Yes | |
| userId | string | query | No |
Response
Returns: GetSubscriptionsAPIResponse
uploadImage 
Upload and resize an image
Parameters
| Name | Type | Location | Required | Description |
|---|---|---|---|---|
| tenantId | string | path | Yes | |
| sizePreset | string | query | No | Size preset: "Default" (1000x1000px) or "CrossPlatform" (creates sizes for popular devices) |
| urlId | string | query | No | Page id that upload is happening from, to configure |
Response
Returns: UploadImageResponse
getUserBadgeProgressById 
Parameters
| Name | Type | Location | Required | Description |
|---|---|---|---|---|
| tenantId | string | query | Yes | |
| id | string | path | Yes |
Response
getUserBadgeProgressByUserId 
Parameters
| Name | Type | Location | Required | Description |
|---|---|---|---|---|
| tenantId | string | query | Yes | |
| userId | string | path | Yes |
Response
getUserBadgeProgressList 
Parameters
| Name | Type | Location | Required | Description |
|---|---|---|---|---|
| tenantId | string | query | Yes | |
| userId | string | query | No | |
| limit | number | query | No | |
| skip | number | query | No |
Response
createUserBadge 
Parameters
| Name | Type | Location | Required | Description |
|---|---|---|---|---|
| tenantId | string | query | Yes |
Response
Returns: CreateUserBadge_200_response
deleteUserBadge 
Parameters
| Name | Type | Location | Required | Description |
|---|---|---|---|---|
| tenantId | string | query | Yes | |
| id | string | path | Yes |
Response
Returns: UpdateUserBadge_200_response
getUserBadge 
Parameters
| Name | Type | Location | Required | Description |
|---|---|---|---|---|
| tenantId | string | query | Yes | |
| id | string | path | Yes |
Response
Returns: GetUserBadge_200_response
getUserBadges 
Parameters
| Name | Type | Location | Required | Description |
|---|---|---|---|---|
| tenantId | string | query | Yes | |
| userId | string | query | No | |
| badgeId | string | query | No | |
| type | number | query | No | |
| displayedOnComments | boolean | query | No | |
| limit | number | query | No | |
| skip | number | query | No |
Response
Returns: GetUserBadges_200_response
updateUserBadge 
Parameters
| Name | Type | Location | Required | Description |
|---|---|---|---|---|
| tenantId | string | query | Yes | |
| id | string | path | Yes |
Response
Returns: UpdateUserBadge_200_response
getUserNotificationCount 
Parameters
| Name | Type | Location | Required | Description |
|---|---|---|---|---|
| tenantId | string | query | Yes | |
| sso | string | query | No |
Response
getUserNotifications 
Parameters
| Name | Type | Location | Required | Description |
|---|---|---|---|---|
| tenantId | string | query | Yes | |
| pageSize | integer | query | No | |
| afterId | string | query | No | |
| includeContext | boolean | query | No | |
| afterCreatedAt | integer | query | No | |
| unreadOnly | boolean | query | No | |
| dmOnly | boolean | query | No | |
| noDm | boolean | query | No | |
| includeTranslations | boolean | query | No | |
| sso | string | query | No |
Response
Returns: GetUserNotifications_200_response
resetUserNotificationCount 
Parameters
| Name | Type | Location | Required | Description |
|---|---|---|---|---|
| tenantId | string | query | Yes | |
| sso | string | query | No |
Response
Returns: ResetUserNotifications_200_response
resetUserNotifications 
Parameters
| Name | Type | Location | Required | Description |
|---|---|---|---|---|
| tenantId | string | query | Yes | |
| afterId | string | query | No | |
| afterCreatedAt | integer | query | No | |
| unreadOnly | boolean | query | No | |
| dmOnly | boolean | query | No | |
| noDm | boolean | query | No | |
| sso | string | query | No |
Response
Returns: ResetUserNotifications_200_response
updateUserNotificationCommentSubscriptionStatus 
Enable or disable notifications for a specific comment.
Parameters
| Name | Type | Location | Required | Description |
|---|---|---|---|---|
| tenantId | string | query | Yes | |
| notificationId | string | path | Yes | |
| optedInOrOut | string | path | Yes | |
| commentId | string | query | Yes | |
| sso | string | query | No |
Response
updateUserNotificationPageSubscriptionStatus 
Enable or disable notifications for a page. When users are subscribed to a page, notifications are created for new root comments, and also
Parameters
| Name | Type | Location | Required | Description |
|---|---|---|---|---|
| tenantId | string | query | Yes | |
| urlId | string | query | Yes | |
| url | string | query | Yes | |
| pageTitle | string | query | Yes | |
| subscribedOrUnsubscribed | string | path | Yes | |
| sso | string | query | No |
Response
updateUserNotificationStatus 
Parameters
| Name | Type | Location | Required | Description |
|---|---|---|---|---|
| tenantId | string | query | Yes | |
| notificationId | string | path | Yes | |
| newStatus | string | path | Yes | |
| sso | string | query | No |
Response
getUserPresenceStatuses 
Parameters
| Name | Type | Location | Required | Description |
|---|---|---|---|---|
| tenantId | string | query | Yes | |
| urlIdWS | string | query | Yes | |
| userIds | string | query | Yes |
Response
Returns: GetUserPresenceStatuses_200_response
searchUsers 
Parameters
| Name | Type | Location | Required | Description |
|---|---|---|---|---|
| tenantId | string | path | Yes | |
| urlId | string | query | Yes | |
| usernameStartsWith | string | query | Yes | |
| mentionGroupIds | array | query | No | |
| sso | string | query | No |
Response
Returns: SearchUsers_200_response
Need Help?
If you encounter any issues or have questions about the C++ SDK, please:
Contributing
Contributions are welcome! Please visit the GitHub repository for contribution guidelines.