
Documentation
Getting Started
API Reference
Usage
API
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.
Making API Calls: Synchronous vs Asynchronous 
All API methods in this SDK return pplx::task<std::shared_ptr<ResponseType>> from the C++ REST SDK. This gives you flexibility in how you handle API responses.
Synchronous Calls with .get()
Use .get() to block the calling thread until the request completes and retrieve the result synchronously:
auto config = std::make_shared<org::openapitools::client::api::ApiConfiguration>();
config->setBaseUrl(utility::conversions::to_string_t("https://fastcomments.com"));
config->setApiKey(utility::conversions::to_string_t("api_key"),
utility::conversions::to_string_t("YOUR_API_KEY"));
auto apiClient = std::make_shared<org::openapitools::client::api::ApiClient>(config);
org::openapitools::client::api::DefaultApi api(apiClient);
// Call .get() to block and get the result synchronously
auto response = api.getComments(
utility::conversions::to_string_t("your-tenant-id"),
boost::none, // page
boost::none, // limit
boost::none, // skip
boost::none, // asTree
boost::none, // skipChildren
boost::none, // limitChildren
boost::none, // maxTreeDepth
utility::conversions::to_string_t("your-url-id"), // urlId
boost::none, // userId
boost::none, // anonUserId
boost::none, // contextUserId
boost::none, // hashTag
boost::none, // parentId
boost::none // direction
).get(); // Blocks until the HTTP request completes
if (response && response->comments) {
std::cout << "Found " << response->comments->size() << " comments" << std::endl;
}
Asynchronous Calls with .then()
Use .then() for non-blocking asynchronous execution with callbacks:
auto config = std::make_shared<org::openapitools::client::api::ApiConfiguration>();
config->setBaseUrl(utility::conversions::to_string_t("https://fastcomments.com"));
config->setApiKey(utility::conversions::to_string_t("api_key"),
utility::conversions::to_string_t("YOUR_API_KEY"));
auto apiClient = std::make_shared<org::openapitools::client::api::ApiClient>(config);
org::openapitools::client::api::DefaultApi api(apiClient);
// Use .then() for asynchronous callback-based execution
api.getComments(
utility::conversions::to_string_t("your-tenant-id"),
boost::none, boost::none, boost::none, boost::none, boost::none,
boost::none, boost::none,
utility::conversions::to_string_t("your-url-id"),
boost::none, boost::none, boost::none, boost::none, boost::none, boost::none
).then([](std::shared_ptr<GetComments_200_response> response) {
// This runs asynchronously when the request completes
if (response && response->comments) {
std::cout << "Found " << response->comments->size() << " comments" << std::endl;
}
});
// Execution continues immediately without blocking
std::cout << "Request sent, continuing..." << std::endl;
Choosing Between Synchronous and Asynchronous
The choice depends on your runtime environment and application architecture:
.get() (Synchronous blocking)
- Blocks the calling thread until the HTTP request completes
- Simpler code flow, easier to reason about
- Suitable for dedicated worker threads, batch processing, or command-line tools
- Not suitable for event loops, GUI threads, or single-threaded servers
.then() (Asynchronous non-blocking)
- Returns immediately, callback executes when request completes
- Does not block the calling thread
- Required for event-driven architectures, GUI applications, or single-threaded event loops
- Allows chaining multiple operations
- More complex control flow
The SDK's test suite uses .get() exclusively, but this is appropriate for the test environment where blocking is acceptable.
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
- APIAuditLog
- APIComment
- APICommentBase
- 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
- DeletedCommentResultComment
- 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
- PinComment_200_response
- PubSubComment
- PubSubCommentBase
- PubSubVote
- PublicAPIDeleteCommentResponse
- PublicAPIGetCommentTextResponse
- PublicAPISetCommentTextResponse
- PublicBlockFromCommentParams
- PublicComment
- PublicCommentBase
- 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
- SetCommentTextResult
- SetCommentText_200_response
- SizePreset
- SortDirections
- SpamRule
- UnBlockCommentPublic_200_response
- UnBlockFromCommentParams
- UnblockSuccess
- UpdatableCommentParams
- 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
addDomainConfig 
Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| tenantId | string | Yes | |
| addDomainConfigParams | AddDomainConfigParams | Yes |
Response
Returns: AddDomainConfig_200_response
Example

addPage 
Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| tenantId | string | Yes | |
| createAPIPageData | CreateAPIPageData | Yes |
Response
Returns: AddPageAPIResponse
Example

addSSOUser 
Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| tenantId | string | Yes | |
| createAPISSOUserData | CreateAPISSOUserData | Yes |
Response
Returns: AddSSOUserAPIResponse
Example

aggregate 
Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| tenantId | string | Yes | |
| aggregationRequest | AggregationRequest | Yes | |
| parentTenantId | string | No | |
| includeStats | bool | No |
Response
Returns: AggregationResponse
Example

aggregateQuestionResults 
Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| tenantId | string | Yes | |
| questionId | string | No | |
| questionIds | vector<string | No | |
| urlId | string | No | |
| timeBucket | AggregateTimeBucket | No | |
| startDate | datetime | No | |
| forceRecalculate | bool | No |
Response
Returns: AggregateQuestionResults_200_response
Example

blockFromCommentPublic 
Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| tenantId | string | Yes | |
| commentId | string | Yes | |
| publicBlockFromCommentParams | PublicBlockFromCommentParams | Yes | |
| sso | string | No |
Response
Returns: BlockFromCommentPublic_200_response
Example

blockUserFromComment 
Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| tenantId | string | Yes | |
| id | string | Yes | |
| blockFromCommentParams | BlockFromCommentParams | Yes | |
| userId | string | No | |
| anonUserId | string | No |
Response
Returns: BlockFromCommentPublic_200_response
Example

bulkAggregateQuestionResults 
Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| tenantId | string | Yes | |
| bulkAggregateQuestionResultsRequest | BulkAggregateQuestionResultsRequest | Yes | |
| forceRecalculate | bool | No |
Response
Returns: BulkAggregateQuestionResults_200_response
Example

checkedCommentsForBlocked 
Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| tenantId | string | Yes | |
| commentIds | string | Yes | |
| sso | string | No |
Response
Returns: CheckedCommentsForBlocked_200_response
Example

combineCommentsWithQuestionResults 
Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| tenantId | string | Yes | |
| questionId | string | No | |
| questionIds | vector<string | No | |
| urlId | string | No | |
| startDate | datetime | No | |
| forceRecalculate | bool | No | |
| minValue | double | No | |
| maxValue | double | No | |
| limit | double | No |
Response
Returns: CombineCommentsWithQuestionResults_200_response
Example

createCommentPublic 
Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| tenantId | string | Yes | |
| urlId | string | Yes | |
| broadcastId | string | Yes | |
| commentData | CommentData | Yes | |
| sessionId | string | No | |
| sso | string | No |
Response
Returns: CreateCommentPublic_200_response
Example

createFeedPost 
Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| tenantId | string | Yes | |
| createFeedPostParams | CreateFeedPostParams | Yes | |
| broadcastId | string | No | |
| isLive | bool | No | |
| doSpamCheck | bool | No | |
| skipDupCheck | bool | No |
Response
Returns: CreateFeedPost_200_response
Example

createFeedPostPublic 
Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| tenantId | string | Yes | |
| createFeedPostParams | CreateFeedPostParams | Yes | |
| broadcastId | string | No | |
| sso | string | No |
Response
Returns: CreateFeedPostPublic_200_response
Example

createSubscription 
Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| tenantId | string | Yes | |
| createAPIUserSubscriptionData | CreateAPIUserSubscriptionData | Yes |
Response
Returns: CreateSubscriptionAPIResponse
Example

createUserBadge 
Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| tenantId | string | Yes | |
| createUserBadgeParams | CreateUserBadgeParams | Yes |
Response
Returns: CreateUserBadge_200_response
Example

deleteComment 
Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| tenantId | string | Yes | |
| id | string | Yes | |
| contextUserId | string | No | |
| isLive | bool | No |
Response
Returns: DeleteComment_200_response
Example

deleteCommentPublic 
Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| tenantId | string | Yes | |
| commentId | string | Yes | |
| broadcastId | string | Yes | |
| editKey | string | No | |
| sso | string | No |
Response
Returns: DeleteCommentPublic_200_response
Example

deleteCommentVote 
Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| tenantId | string | Yes | |
| commentId | string | Yes | |
| voteId | string | Yes | |
| urlId | string | Yes | |
| broadcastId | string | Yes | |
| editKey | string | No | |
| sso | string | No |
Response
Returns: DeleteCommentVote_200_response
Example

deleteDomainConfig 
Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| tenantId | string | Yes | |
| domain | string | Yes |
Response
Returns: DeleteDomainConfig_200_response
Example

deleteFeedPostPublic 
Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| tenantId | string | Yes | |
| postId | string | Yes | |
| broadcastId | string | No | |
| sso | string | No |
Response
Returns: DeleteFeedPostPublic_200_response
Example

deletePage 
Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| tenantId | string | Yes | |
| id | string | Yes |
Response
Returns: DeletePageAPIResponse
Example

deleteSSOUser 
Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| tenantId | string | Yes | |
| id | string | Yes | |
| deleteComments | bool | No | |
| commentDeleteMode | string | No |
Response
Returns: DeleteSSOUserAPIResponse
Example

deleteSubscription 
Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| tenantId | string | Yes | |
| id | string | Yes | |
| userId | string | No |
Response
Returns: DeleteSubscriptionAPIResponse
Example

deleteUserBadge 
Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| tenantId | string | Yes | |
| id | string | Yes |
Response
Returns: UpdateUserBadge_200_response
Example

flagComment 
Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| tenantId | string | Yes | |
| id | string | Yes | |
| userId | string | No | |
| anonUserId | string | No |
Response
Returns: FlagComment_200_response
Example

flagCommentPublic 
Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| tenantId | string | Yes | |
| commentId | string | Yes | |
| isFlagged | bool | Yes | |
| sso | string | No |
Response
Returns: FlagCommentPublic_200_response
Example

getAuditLogs 
Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| tenantId | string | Yes | |
| limit | double | No | |
| skip | double | No | |
| order | SORT_DIR | No | |
| after | double | No | |
| before | double | No |
Response
Returns: GetAuditLogs_200_response
Example

getComment 
Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| tenantId | string | Yes | |
| id | string | Yes |
Response
Returns: GetComment_200_response
Example

getComments 
Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| tenantId | string | Yes | |
| page | int32_t | No | |
| limit | int32_t | No | |
| skip | int32_t | No | |
| asTree | bool | No | |
| skipChildren | int32_t | No | |
| limitChildren | int32_t | No | |
| maxTreeDepth | int32_t | No | |
| urlId | string | No | |
| userId | string | No | |
| anonUserId | string | No | |
| contextUserId | string | No | |
| hashTag | string | No | |
| parentId | string | No | |
| direction | SortDirections | No |
Response
Returns: GetComments_200_response
Example

getCommentsPublic 
Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| tenantId | string | Yes | |
| urlId | string | Yes | |
| page | int32_t | No | |
| direction | SortDirections | No | |
| sso | string | No | |
| skip | int32_t | No | |
| skipChildren | int32_t | No | |
| limit | int32_t | No | |
| limitChildren | int32_t | No | |
| countChildren | bool | No | |
| fetchPageForCommentId | string | No | |
| includeConfig | bool | No | |
| countAll | bool | No | |
| includei10n | bool | No | |
| locale | string | No | |
| modules | string | No | |
| isCrawler | bool | No | |
| includeNotificationCount | bool | No | |
| asTree | bool | No | |
| maxTreeDepth | int32_t | No | |
| useFullTranslationIds | bool | No | |
| parentId | string | No | |
| searchText | string | No | |
| hashTags | vector<string | No | |
| userId | string | No | |
| customConfigStr | string | No | |
| afterCommentId | string | No | |
| beforeCommentId | string | No |
Response
Returns: GetCommentsPublic_200_response
Example

getCommentText 
Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| tenantId | string | Yes | |
| commentId | string | Yes | |
| editKey | string | No | |
| sso | string | No |
Response
Returns: GetCommentText_200_response
Example

getCommentVoteUserNames 
Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| tenantId | string | Yes | |
| commentId | string | Yes | |
| dir | int32_t | Yes | |
| sso | string | No |
Response
Returns: GetCommentVoteUserNames_200_response
Example

getDomainConfig 
Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| tenantId | string | Yes | |
| domain | string | Yes |
Response
Returns: GetDomainConfig_200_response
Example

getDomainConfigs 
Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| tenantId | string | Yes |
Response
Returns: GetDomainConfigs_200_response
Example

getEventLog 
Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| tenantId | string | Yes | |
| urlId | string | Yes | |
| userIdWS | string | Yes | |
| startTime | int64_t | Yes | |
| endTime | int64_t | Yes |
Response
Returns: GetEventLog_200_response
Example

getFeedPosts 
Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| tenantId | string | Yes | |
| afterId | string | No | |
| limit | int32_t | No | |
| tags | vector<string | No |
Response
Returns: GetFeedPosts_200_response
Example

getFeedPostsPublic 
Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| tenantId | string | Yes | |
| afterId | string | No | |
| limit | int32_t | No | |
| tags | vector<string | No | |
| sso | string | No | |
| isCrawler | bool | No | |
| includeUserInfo | bool | No |
Response
Returns: GetFeedPostsPublic_200_response
Example

getFeedPostsStats 
Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| tenantId | string | Yes | |
| postIds | vector<string | Yes | |
| sso | string | No |
Response
Returns: GetFeedPostsStats_200_response
Example

getGlobalEventLog 
Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| tenantId | string | Yes | |
| urlId | string | Yes | |
| userIdWS | string | Yes | |
| startTime | int64_t | Yes | |
| endTime | int64_t | Yes |
Response
Returns: GetEventLog_200_response
Example

getPageByURLId 
Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| tenantId | string | Yes | |
| urlId | string | Yes |
Response
Returns: GetPageByURLIdAPIResponse
Example

getPages 
Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| tenantId | string | Yes |
Response
Returns: GetPagesAPIResponse
Example

getSSOUserByEmail 
Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| tenantId | string | Yes | |
| string | Yes |
Response
Returns: GetSSOUserByEmailAPIResponse
Example

getSSOUserById 
Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| tenantId | string | Yes | |
| id | string | Yes |
Response
Returns: GetSSOUserByIdAPIResponse
Example

getSSOUsers 
Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| tenantId | string | Yes | |
| skip | int32_t | No |
Response
Returns: GetSSOUsers_200_response
Example

getSubscriptions 
Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| tenantId | string | Yes | |
| userId | string | No |
Response
Returns: GetSubscriptionsAPIResponse
Example

getUserBadge 
Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| tenantId | string | Yes | |
| id | string | Yes |
Response
Returns: GetUserBadge_200_response
Example

getUserBadgeProgressById 
Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| tenantId | string | Yes | |
| id | string | Yes |
Response
Returns: GetUserBadgeProgressById_200_response
Example

getUserBadgeProgressByUserId 
Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| tenantId | string | Yes | |
| userId | string | Yes |
Response
Returns: GetUserBadgeProgressById_200_response
Example

getUserBadgeProgressList 
Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| tenantId | string | Yes | |
| userId | string | No | |
| limit | double | No | |
| skip | double | No |
Response
Returns: GetUserBadgeProgressList_200_response
Example

getUserBadges 
Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| tenantId | string | Yes | |
| userId | string | No | |
| badgeId | string | No | |
| type | double | No | |
| displayedOnComments | bool | No | |
| limit | double | No | |
| skip | double | No |
Response
Returns: GetUserBadges_200_response
Example

getUserNotificationCount 
Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| tenantId | string | Yes | |
| sso | string | No |
Response
Returns: GetUserNotificationCount_200_response
Example

getUserNotifications 
Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| tenantId | string | Yes | |
| pageSize | int32_t | No | |
| afterId | string | No | |
| includeContext | bool | No | |
| afterCreatedAt | int64_t | No | |
| unreadOnly | bool | No | |
| dmOnly | bool | No | |
| noDm | bool | No | |
| includeTranslations | bool | No | |
| sso | string | No |
Response
Returns: GetUserNotifications_200_response
Example

getUserPresenceStatuses 
Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| tenantId | string | Yes | |
| urlIdWS | string | Yes | |
| userIds | string | Yes |
Response
Returns: GetUserPresenceStatuses_200_response
Example

getUserReactsPublic 
Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| tenantId | string | Yes | |
| postIds | vector<string | No | |
| sso | string | No |
Response
Returns: GetUserReactsPublic_200_response
Example

lockComment 
Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| tenantId | string | Yes | |
| commentId | string | Yes | |
| broadcastId | string | Yes | |
| sso | string | No |
Response
Returns: LockComment_200_response
Example

patchDomainConfig 
Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| tenantId | string | Yes | |
| domainToUpdate | string | Yes | |
| patchDomainConfigParams | PatchDomainConfigParams | Yes |
Response
Returns: GetDomainConfig_200_response
Example

patchPage 
Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| tenantId | string | Yes | |
| id | string | Yes | |
| updateAPIPageData | UpdateAPIPageData | Yes |
Response
Returns: PatchPageAPIResponse
Example

patchSSOUser 
Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| tenantId | string | Yes | |
| id | string | Yes | |
| updateAPISSOUserData | UpdateAPISSOUserData | Yes | |
| updateComments | bool | No |
Response
Returns: PatchSSOUserAPIResponse
Example

pinComment 
Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| tenantId | string | Yes | |
| commentId | string | Yes | |
| broadcastId | string | Yes | |
| sso | string | No |
Response
Returns: PinComment_200_response
Example

putDomainConfig 
Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| tenantId | string | Yes | |
| domainToUpdate | string | Yes | |
| updateDomainConfigParams | UpdateDomainConfigParams | Yes |
Response
Returns: GetDomainConfig_200_response
Example

putSSOUser 
Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| tenantId | string | Yes | |
| id | string | Yes | |
| updateAPISSOUserData | UpdateAPISSOUserData | Yes | |
| updateComments | bool | No |
Response
Returns: PutSSOUserAPIResponse
Example

reactFeedPostPublic 
Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| tenantId | string | Yes | |
| postId | string | Yes | |
| reactBodyParams | ReactBodyParams | Yes | |
| isUndo | bool | No | |
| broadcastId | string | No | |
| sso | string | No |
Response
Returns: ReactFeedPostPublic_200_response
Example

resetUserNotificationCount 
Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| tenantId | string | Yes | |
| sso | string | No |
Response
Returns: ResetUserNotifications_200_response
Example

resetUserNotifications 
Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| tenantId | string | Yes | |
| afterId | string | No | |
| afterCreatedAt | int64_t | No | |
| unreadOnly | bool | No | |
| dmOnly | bool | No | |
| noDm | bool | No | |
| sso | string | No |
Response
Returns: ResetUserNotifications_200_response
Example

saveComment 
Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| tenantId | string | Yes | |
| createCommentParams | CreateCommentParams | Yes | |
| isLive | bool | No | |
| doSpamCheck | bool | No | |
| sendEmails | bool | No | |
| populateNotifications | bool | No |
Response
Returns: SaveComment_200_response
Example

searchUsers 
Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| tenantId | string | Yes | |
| urlId | string | Yes | |
| usernameStartsWith | string | Yes | |
| mentionGroupIds | vector<string | No | |
| sso | string | No |
Response
Returns: SearchUsers_200_response
Example

setCommentText 
Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| tenantId | string | Yes | |
| commentId | string | Yes | |
| broadcastId | string | Yes | |
| commentTextUpdateRequest | CommentTextUpdateRequest | Yes | |
| editKey | string | No | |
| sso | string | No |
Response
Returns: SetCommentText_200_response
Example

unBlockCommentPublic 
Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| tenantId | string | Yes | |
| commentId | string | Yes | |
| publicBlockFromCommentParams | PublicBlockFromCommentParams | Yes | |
| sso | string | No |
Response
Returns: UnBlockCommentPublic_200_response
Example

unBlockUserFromComment 
Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| tenantId | string | Yes | |
| id | string | Yes | |
| unBlockFromCommentParams | UnBlockFromCommentParams | Yes | |
| userId | string | No | |
| anonUserId | string | No |
Response
Returns: UnBlockCommentPublic_200_response
Example

unFlagComment 
Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| tenantId | string | Yes | |
| id | string | Yes | |
| userId | string | No | |
| anonUserId | string | No |
Response
Returns: FlagComment_200_response
Example

unLockComment 
Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| tenantId | string | Yes | |
| commentId | string | Yes | |
| broadcastId | string | Yes | |
| sso | string | No |
Response
Returns: LockComment_200_response
Example

unPinComment 
Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| tenantId | string | Yes | |
| commentId | string | Yes | |
| broadcastId | string | Yes | |
| sso | string | No |
Response
Returns: PinComment_200_response
Example

updateComment 
Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| tenantId | string | Yes | |
| id | string | Yes | |
| updatableCommentParams | UpdatableCommentParams | Yes | |
| contextUserId | string | No | |
| doSpamCheck | bool | No | |
| isLive | bool | No |
Response
Returns: FlagCommentPublic_200_response
Example

updateFeedPost 
Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| tenantId | string | Yes | |
| id | string | Yes | |
| feedPost | FeedPost | Yes |
Response
Returns: FlagCommentPublic_200_response
Example

updateFeedPostPublic 
Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| tenantId | string | Yes | |
| postId | string | Yes | |
| updateFeedPostParams | UpdateFeedPostParams | Yes | |
| broadcastId | string | No | |
| sso | string | No |
Response
Returns: CreateFeedPostPublic_200_response
Example

updateUserBadge 
Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| tenantId | string | Yes | |
| id | string | Yes | |
| updateUserBadgeParams | UpdateUserBadgeParams | Yes |
Response
Returns: UpdateUserBadge_200_response
Example

updateUserNotificationCommentSubscriptionStatus 
Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| tenantId | string | Yes | |
| notificationId | string | Yes | |
| optedInOrOut | string | Yes | |
| commentId | string | Yes | |
| sso | string | No |
Response
Returns: UpdateUserNotificationStatus_200_response
Example

updateUserNotificationPageSubscriptionStatus 
Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| tenantId | string | Yes | |
| urlId | string | Yes | |
| url | string | Yes | |
| pageTitle | string | Yes | |
| subscribedOrUnsubscribed | string | Yes | |
| sso | string | No |
Response
Returns: UpdateUserNotificationStatus_200_response
Example

updateUserNotificationStatus 
Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| tenantId | string | Yes | |
| notificationId | string | Yes | |
| newStatus | string | Yes | |
| sso | string | No |
Response
Returns: UpdateUserNotificationStatus_200_response
Example

uploadImage 
Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| tenantId | string | Yes | |
| file | HttpContent | Yes | |
| sizePreset | SizePreset | No | |
| urlId | string | No |
Response
Returns: UploadImageResponse
Example

voteComment 
Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| tenantId | string | Yes | |
| commentId | string | Yes | |
| urlId | string | Yes | |
| broadcastId | string | Yes | |
| voteBodyParams | VoteBodyParams | Yes | |
| sessionId | string | No | |
| sso | string | No |
Response
Returns: VoteComment_200_response
Example

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.