
Getting Started
Documentation
API Reference
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 Swift SDK
This is the official Swift SDK for FastComments.
Official Swift SDK for the FastComments API
Repository
Installation 
Swift Package Manager
Add the following to your Package.swift file:
dependencies: [
.package(url: "https://github.com/fastcomments/fastcomments-swift.git", from: "0.0.1")
]
Or in Xcode:
- File > Add Packages...
- Enter the repository URL:
https://github.com/fastcomments/fastcomments-swift.git - Select the version you want to use
Requirements
- Swift 5.9+
- iOS 13.0+ / macOS 10.15+ / tvOS 13.0+ / watchOS 6.0+
Library Contents 
The FastComments Swift SDK consists of several modules:
Client Module - Auto-generated API client for FastComments REST APIs
- Complete type definitions for all API models
- Both authenticated (
DefaultAPI) and public (PublicAPI) endpoints - Full async/await support
- See client/README.md for detailed API documentation
SSO Module - Server-side Single Sign-On utilities
- Secure token generation for user authentication
- Support for both simple and secure SSO modes
- HMAC-SHA256 based token signing using CryptoKit
Quick Start 
Using the Public API
import FastCommentsSwift
// Create API client
let publicApi = PublicAPI()
// Fetch comments for a page
do {
let response = try await publicApi.getCommentsPublic(
tenantId: "your-tenant-id",
urlId: "page-url-id"
)
print("Found \(response.comments?.count ?? 0) comments")
for comment in response.comments ?? [] {
print("Comment: \(comment.comment ?? "")")
}
} catch {
print("Error fetching comments: \(error)")
}
Using the Authenticated API
import FastCommentsSwift
// Create configuration with API key
let defaultApi = DefaultAPI()
defaultApi.apiKey = "your-api-key"
// Fetch comments using authenticated API
do {
let response = try await defaultApi.getComments(
tenantId: "your-tenant-id",
urlId: "page-url-id"
)
print("Total comments: \(response.count ?? 0)")
for comment in response.comments ?? [] {
print("Comment ID: \(comment.id ?? ""), Text: \(comment.comment ?? "")")
}
} catch {
print("Error: \(error)")
}
Using SSO for Authentication
Secure SSO (Recommended for Production)
import FastCommentsSwift
let apiKey = "your-api-key"
// Create secure SSO user data (server-side only!)
let userData = SecureSSOUserData(
id: "user-123", // User ID
email: "user@example.com", // Email
username: "johndoe", // Username
avatar: "https://example.com/avatar.jpg" // Avatar URL
)
// Generate SSO token
do {
let sso = try FastCommentsSSO.createSecure(apiKey: apiKey, secureSSOUserData: userData)
let token = try sso.createToken()
print("SSO Token: \(token ?? "")")
// Pass this token to your frontend for authentication
} catch {
print("Error creating SSO token: \(error)")
}
Simple SSO (For Development/Testing)
import FastCommentsSwift
// Create simple SSO user data (no API key needed)
let userData = SimpleSSOUserData(
username: "johndoe",
email: "user@example.com",
avatar: "https://example.com/avatar.jpg"
)
// Generate simple SSO token
let sso = FastCommentsSSO.createSimple(simpleSSOUserData: userData)
do {
let token = try sso.createToken()
print("Simple SSO Token: \(token ?? "")")
} catch {
print("Error creating SSO token: \(error)")
}
Public vs Secured APIs 
The FastComments SDK provides two types of API endpoints:
PublicAPI - Client-Safe Endpoints
The PublicAPI contains endpoints that are safe to call from client-side code (iOS/macOS apps). These endpoints:
- Do not require an API key
- Can use SSO tokens for authentication
- Are rate-limited per user/device
- Are suitable for end-user facing applications
Example use case: Fetching and creating comments in your iOS app
DefaultAPI - Server-Side Endpoints
The DefaultAPI contains authenticated endpoints that require an API key. These endpoints:
- Require your FastComments API key
- Should ONLY be called from server-side code
- Provide full access to your FastComments data
- Are rate-limited per tenant
Example use case: Administrative operations, bulk data export, moderation tools
IMPORTANT: Never expose your API key in client-side code. API keys should only be used server-side.
Making API Calls 
The Swift SDK uses modern async/await syntax for all API calls:
let response = try await publicApi.getCommentsPublic(
tenantId: "your-tenant-id",
urlId: "page-url-id"
)
Common Issues 
401 Unauthorized Errors
If you're getting 401 errors when using the authenticated API:
- Check your API key: Ensure you're using the correct API key from your FastComments dashboard
- Verify the tenant ID: Make sure the tenant ID matches your account
- API key format: The API key should be set on the API client:
let defaultApi = DefaultAPI()
defaultApi.apiKey = "YOUR_API_KEY"
- Using the wrong API: Make sure you're using
DefaultAPI(notPublicAPI) for authenticated calls
SSO Token Issues
If SSO tokens aren't working:
- Use secure mode for production: Always use
FastCommentsSSO.createSecure()with your API key for production - Server-side only: Generate secure SSO tokens on your server, never expose your API key to clients
- Check user data: Ensure all required fields (id, email, username) are provided
- Token expiration: Secure SSO tokens include a timestamp and may expire. Generate fresh tokens as needed.
SSL/TLS Errors
If you encounter SSL/TLS errors:
- Ensure your app's Info.plist allows HTTPS connections to fastcomments.com
- Check that you're not using App Transport Security exceptions that might block the connection
Testing 
Running Unit Tests
Unit tests cover the SSO functionality:
swift test --filter SSOTests
Running Integration Tests
Integration tests require environment variables to be set:
export FASTCOMMENTS_API_KEY="your-api-key"
export FASTCOMMENTS_TENANT_ID="your-tenant-id"
swift test --filter SSOIntegrationTests
Development 
Regenerating the Client
To regenerate the API client from the latest OpenAPI specification:
- Ensure you have the FastComments server running locally at
http://localhost:3001 - Run the update script:
./update.sh
This will:
- Download the latest OpenAPI spec
- Generate the Swift client code (with API documentation in client/docs)
- Build the package to verify everything works
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 session.
let broadcastId = UUID().uuidString
Support 
For issues, questions, or feature requests:
- GitHub Issues: https://github.com/fastcomments/fastcomments-swift
- Documentation: https://docs.fastcomments.com
- Support: support@fastcomments.com
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
Example

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: GetAuditLogs200Response
Example

blockFromCommentPublic 
Parameters
| Name | Type | Location | Required | Description |
|---|---|---|---|---|
| tenantId | string | query | Yes | |
| commentId | string | path | Yes | |
| sso | string | query | No |
Response
Returns: BlockFromCommentPublic200Response
Example

unBlockCommentPublic 
Parameters
| Name | Type | Location | Required | Description |
|---|---|---|---|---|
| tenantId | string | query | Yes | |
| commentId | string | path | Yes | |
| sso | string | query | No |
Response
Returns: UnBlockCommentPublic200Response
Example

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
Returns: CheckedCommentsForBlocked200Response
Example

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: BlockFromCommentPublic200Response
Example

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: CreateCommentPublic200Response
Example

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: DeleteComment200Response
Example

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: DeleteCommentPublic200Response
Example

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: DeleteCommentVote200Response
Example

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: FlagComment200Response
Example

getComment 
Parameters
| Name | Type | Location | Required | Description |
|---|---|---|---|---|
| tenantId | string | query | Yes | |
| id | string | path | Yes |
Response
Returns: GetComment200Response
Example

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: GetComments200Response
Example

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: GetCommentsPublic200Response
Example

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: GetCommentText200Response
Example

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: GetCommentVoteUserNames200Response
Example

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: LockComment200Response
Example

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: PinComment200Response
Example

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: SaveComment200Response
Example

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: [SaveComment200Response]
Example

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: SetCommentText200Response
Example

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: UnBlockCommentPublic200Response
Example

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: FlagComment200Response
Example

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: LockComment200Response
Example

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: PinComment200Response
Example

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: FlagCommentPublic200Response
Example

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: VoteComment200Response
Example

addDomainConfig 
Parameters
| Name | Type | Location | Required | Description |
|---|---|---|---|---|
| tenantId | string | query | Yes |
Response
Returns: AddDomainConfig200Response
Example

deleteDomainConfig 
Parameters
| Name | Type | Location | Required | Description |
|---|---|---|---|---|
| tenantId | string | query | Yes | |
| domain | string | path | Yes |
Response
Returns: DeleteDomainConfig200Response
Example

getDomainConfig 
Parameters
| Name | Type | Location | Required | Description |
|---|---|---|---|---|
| tenantId | string | query | Yes | |
| domain | string | path | Yes |
Response
Returns: GetDomainConfig200Response
Example

getDomainConfigs 
Parameters
| Name | Type | Location | Required | Description |
|---|---|---|---|---|
| tenantId | string | query | Yes |
Response
Returns: GetDomainConfigs200Response
Example

patchDomainConfig 
Parameters
| Name | Type | Location | Required | Description |
|---|---|---|---|---|
| tenantId | string | query | Yes | |
| domainToUpdate | string | path | Yes |
Response
Returns: GetDomainConfig200Response
Example

putDomainConfig 
Parameters
| Name | Type | Location | Required | Description |
|---|---|---|---|---|
| tenantId | string | query | Yes | |
| domainToUpdate | string | path | Yes |
Response
Returns: GetDomainConfig200Response
Example

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: GetEventLog200Response
Example

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: GetEventLog200Response
Example

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: CreateFeedPost200Response
Example

createFeedPostPublic 
Parameters
| Name | Type | Location | Required | Description |
|---|---|---|---|---|
| tenantId | string | path | Yes | |
| broadcastId | string | query | No | |
| sso | string | query | No |
Response
Returns: CreateFeedPostPublic200Response
Example

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: DeleteFeedPostPublic200Response
Example

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: GetFeedPosts200Response
Example

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: GetFeedPostsPublic200Response
Example

getFeedPostsStats 
Parameters
| Name | Type | Location | Required | Description |
|---|---|---|---|---|
| tenantId | string | path | Yes | |
| postIds | array | query | Yes | |
| sso | string | query | No |
Response
Returns: GetFeedPostsStats200Response
Example

getUserReactsPublic 
Parameters
| Name | Type | Location | Required | Description |
|---|---|---|---|---|
| tenantId | string | path | Yes | |
| postIds | array | query | No | |
| sso | string | query | No |
Response
Returns: GetUserReactsPublic200Response
Example

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: ReactFeedPostPublic200Response
Example

updateFeedPost 
Parameters
| Name | Type | Location | Required | Description |
|---|---|---|---|---|
| tenantId | string | query | Yes | |
| id | string | path | Yes |
Response
Returns: FlagCommentPublic200Response
Example

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: CreateFeedPostPublic200Response
Example

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: FlagCommentPublic200Response
Example

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

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

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

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

patchPage 
Parameters
| Name | Type | Location | Required | Description |
|---|---|---|---|---|
| tenantId | string | query | Yes | |
| id | string | path | Yes |
Response
Returns: PatchPageAPIResponse
Example

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
Returns: AggregateQuestionResults200Response
Example

bulkAggregateQuestionResults 
Parameters
| Name | Type | Location | Required | Description |
|---|---|---|---|---|
| tenantId | string | query | Yes | |
| forceRecalculate | boolean | query | No |
Response
Returns: BulkAggregateQuestionResults200Response
Example

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
Returns: CombineCommentsWithQuestionResults200Response
Example

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

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
Example

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

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

getSSOUsers 
Parameters
| Name | Type | Location | Required | Description |
|---|---|---|---|---|
| tenantId | string | query | Yes | |
| skip | integer | query | No |
Response
Returns: GetSSOUsers200Response
Example

patchSSOUser 
Parameters
| Name | Type | Location | Required | Description |
|---|---|---|---|---|
| tenantId | string | query | Yes | |
| id | string | path | Yes | |
| updateComments | boolean | query | No |
Response
Returns: PatchSSOUserAPIResponse
Example

putSSOUser 
Parameters
| Name | Type | Location | Required | Description |
|---|---|---|---|---|
| tenantId | string | query | Yes | |
| id | string | path | Yes | |
| updateComments | boolean | query | No |
Response
Returns: PutSSOUserAPIResponse
Example

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

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

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

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
Example

getUserBadgeProgressById 
Parameters
| Name | Type | Location | Required | Description |
|---|---|---|---|---|
| tenantId | string | query | Yes | |
| id | string | path | Yes |
Response
Returns: GetUserBadgeProgressById200Response
Example

getUserBadgeProgressByUserId 
Parameters
| Name | Type | Location | Required | Description |
|---|---|---|---|---|
| tenantId | string | query | Yes | |
| userId | string | path | Yes |
Response
Returns: GetUserBadgeProgressById200Response
Example

getUserBadgeProgressList 
Parameters
| Name | Type | Location | Required | Description |
|---|---|---|---|---|
| tenantId | string | query | Yes | |
| userId | string | query | No | |
| limit | number | query | No | |
| skip | number | query | No |
Response
Returns: GetUserBadgeProgressList200Response
Example

createUserBadge 
Parameters
| Name | Type | Location | Required | Description |
|---|---|---|---|---|
| tenantId | string | query | Yes |
Response
Returns: CreateUserBadge200Response
Example

deleteUserBadge 
Parameters
| Name | Type | Location | Required | Description |
|---|---|---|---|---|
| tenantId | string | query | Yes | |
| id | string | path | Yes |
Response
Returns: UpdateUserBadge200Response
Example

getUserBadge 
Parameters
| Name | Type | Location | Required | Description |
|---|---|---|---|---|
| tenantId | string | query | Yes | |
| id | string | path | Yes |
Response
Returns: GetUserBadge200Response
Example

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: GetUserBadges200Response
Example

updateUserBadge 
Parameters
| Name | Type | Location | Required | Description |
|---|---|---|---|---|
| tenantId | string | query | Yes | |
| id | string | path | Yes |
Response
Returns: UpdateUserBadge200Response
Example

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

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: GetUserNotifications200Response
Example

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

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: ResetUserNotifications200Response
Example

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
Returns: UpdateUserNotificationStatus200Response
Example

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
Returns: UpdateUserNotificationStatus200Response
Example

updateUserNotificationStatus 
Parameters
| Name | Type | Location | Required | Description |
|---|---|---|---|---|
| tenantId | string | query | Yes | |
| notificationId | string | path | Yes | |
| newStatus | string | path | Yes | |
| sso | string | query | No |
Response
Returns: UpdateUserNotificationStatus200Response
Example

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

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: SearchUsers200Response
Example

Need Help?
If you encounter any issues or have questions about the Swift SDK, please:
Contributing
Contributions are welcome! Please visit the GitHub repository for contribution guidelines.