FastComments.com

FastComments Nim SDK

This is the official Nim SDK for FastComments.

Manage comments, users, SSO, and moderation from your Nim applications.

Repository

View on GitHub

Requirements Internal Link

  • Nim >= 1.6.0
  • nimcrypto >= 0.5.4

Installation Internal Link

Using Nimble

nimble install fastcomments

Building from Source

nimble build

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 three API modules, api_default, api_public, and api_moderation. The api_default contains methods that require your API key, and api_public contains api calls that can be made directly from a browser/mobile device/etc without authentication. The api_moderation module contains methods for the moderator dashboard.

The api_moderation module provides an extensive suite of live and fast moderation APIs. Every api_moderation method accepts an sso parameter and can authenticate via SSO or a FastComments.com session cookie.

Quick Start Internal Link

Using Authenticated APIs (DefaultAPI)

Important: Authenticated endpoints require your API key to be set as the x-api-key header.

import httpclient
import fastcomments
import fastcomments/apis/api_default
import fastcomments/models/model_comment_data

let client = newHttpClient()
client.headers["x-api-key"] = "your-api-key"

# Make authenticated API calls.
# Required parameters (and the request body) are positional; optional
# parameters are passed via the operation's options object.
let (response, httpResponse) = getComments(
  httpClient = client,
  tenantId = "your-tenant-id",
  options = GetCommentsOptions(
    urlId: "your-url-id",
    direction: SortDirections.DESC
  )
)

if response.isSome:
  let resp = response.get()
  if resp.comments.isSome:
    echo "Found ", resp.comments.get().len, " comments"

Using Public APIs (PublicAPI)

Public endpoints don't require authentication:

import httpclient
import fastcomments
import fastcomments/apis/api_public

let client = newHttpClient()

# Make public API calls.
# tenantId and urlId are required (positional); everything else is optional.
let (response, httpResponse) = getCommentsPublic(
  httpClient = client,
  tenantId = "your-tenant-id",
  urlId = "your-url-id",
  options = GetCommentsPublicOptions(
    direction: SortDirections.DESC
  )
)

if response.isSome:
  let resp = response.get()
  if resp.comments.isSome:
    echo "Found ", resp.comments.get().len, " comments"

Using Moderation APIs (ModerationAPI)

Moderation endpoints power the moderator dashboard and are authenticated with an SSO token for the acting moderator:

import httpclient
import fastcomments
import fastcomments/apis/api_moderation

let client = newHttpClient()

# List comments in the moderation dashboard.
# This operation has no required parameters, so everything is optional.
let (response, httpResponse) = getApiComments(
  httpClient = client,
  options = GetApiCommentsOptions(
    count: 30,
    tenantId: "your-tenant-id",
    sso: "your-sso-token"
  )
)

if response.isSome:
  let resp = response.get()
  echo "Found ", resp.comments.len, " comments"

Common Issues

  1. 401 authentication error: Make sure you set the x-api-key header on your HttpClient before making DefaultAPI requests: client.headers["x-api-key"] = "your-api-key"
  2. Wrong API class: Use api_default for server-side authenticated requests, api_public for client-side/public requests, and api_moderation for moderator dashboard requests.

Making API Calls Internal Link

All API methods in this SDK return tuples of (Option[ResponseType], Response). The first element contains the parsed response if successful, and the second element is the raw HTTP response.

Required parameters and the request body are passed positionally. The remaining optional parameters are collected into a single Api<Operation>Options object, which is the last argument. Operations with no optional parameters take no options object.

Example: Fetching Comments

import httpclient
import options
import fastcomments
import fastcomments/apis/api_default

let client = newHttpClient()
client.headers["x-api-key"] = "your-api-key"

let (response, httpResponse) = getComments(
  httpClient = client,
  tenantId = "your-tenant-id",
  options = GetCommentsOptions(
    urlId: "your-url-id",
    direction: SortDirections.DESC
  )
)

if httpResponse.code == Http200:
  if response.isSome:
    let resp = response.get()
    if resp.comments.isSome:
      echo "Found ", resp.comments.get().len, " comments"

Notes Internal Link

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 Internal Link

Simple SSO

import fastcomments/sso

let user = newSimpleSSOUserData(
  userId = "user-123",
  email = "user@example.com",
  avatar = "https://example.com/avatar.jpg"
)
let sso = newSimple(simpleUserData = user)
let token = sso.createToken()

echo "SSO Token: ", token

Secure SSO

import fastcomments/sso

let user = newSecureSSOUserData(
  userId = "user-123",
  email = "user@example.com",
  username = "johndoe",
  avatar = "https://example.com/avatar.jpg"
)

let apiKey = "your-api-key"
let sso = newSecure(apiKey = apiKey, secureUserData = user)
let token = sso.createToken()

echo "Secure SSO Token: ", token

aggregate Internal Link

Aggregates documents by grouping them (if groupBy is provided) and applying multiple operations. Different operations (e.g. sum, countDistinct, avg, etc.) are supported.

Parameters

NameTypeRequiredDescription
tenantIdstringYes
aggregationRequestAggregationRequestNo
optionsAggregateOptionsNo

Response

Returns: Option[AggregateResponse]

Example

aggregate Example
Copy Copy
1
2let (aggResp, httpResp) = client.aggregate(tenantId = "my-tenant-123", aggregationRequest = AggregationRequest(), options = AggregateOptions())
3if aggResp.isSome:
4 let response = aggResp.get()
5 echo response
6echo httpResp
7

getAuditLogs Internal Link

Parameters

NameTypeRequiredDescription
tenantIdstringYes
optionsGetAuditLogsOptionsNo

Response

Returns: Option[GetAuditLogsResponse]

Example

getAuditLogs Example
Copy Copy
1
2let (auditOpt, httpResp) = client.getAuditLogs(tenantId = "my-tenant-123", options = GetAuditLogsOptions())
3if auditOpt.isSome:
4 let audit = auditOpt.get()
5 echo audit
6

logoutPublic Internal Link

Response

Returns: Option[APIEmptyResponse]

Example

logoutPublic Example
Copy Copy
1
2let (responseOpt, httpResponse) = client.logoutPublic(tenantId = "my-tenant-123", userId = "user-456")
3if responseOpt.isSome:
4 let emptyResponse = responseOpt.get()
5

blockFromCommentPublic Internal Link

Parameters

NameTypeRequiredDescription
tenantIdstringYes
commentIdstringYes
publicBlockFromCommentParamsPublicBlockFromCommentParamsNo
ssostring = ""No

Response

Returns: Option[BlockSuccess]

Example

blockFromCommentPublic Example
Copy Copy
1
2let (blockOpt, httpResp) = client.blockFromCommentPublic(
3 tenantId = "my-tenant-123",
4 commentId = "cmt-456789",
5 publicBlockFromCommentParams = PublicBlockFromCommentParams(),
6 sso = ""
7)
8
9if blockOpt.isSome:
10 let block = blockOpt.get()
11

unBlockCommentPublic Internal Link

Parameters

NameTypeRequiredDescription
tenantIdstringYes
commentIdstringYes
publicBlockFromCommentParamsPublicBlockFromCommentParamsNo
ssostring = ""No

Response

Returns: Option[UnblockSuccess]

Example

unBlockCommentPublic Example
Copy Copy
1
2let (unblockResult, httpResp) = client.unBlockCommentPublic(
3 tenantId = "my-tenant-123",
4 commentId = "comment-7890",
5 publicBlockFromCommentParams = PublicBlockFromCommentParams(),
6 sso = ""
7)
8
9if unblockResult.isSome:
10 let result = unblockResult.get()
11

checkedCommentsForBlocked Internal Link

Parameters

NameTypeRequiredDescription
tenantIdstringYes
commentIdsstringNo
ssostring = ""No

Response

Returns: Option[CheckBlockedCommentsResponse]

Example

checkedCommentsForBlocked Example
Copy Copy
1
2let (maybeResponse, httpResponse) = client.checkedCommentsForBlocked(
3 tenantId = "my-tenant-123",
4 commentIds = "cmt-1,cmt-2",
5 sso = ""
6)
7
8if maybeResponse.isSome:
9 let response = maybeResponse.get()
10 discard response
11

blockUserFromComment Internal Link

Parameters

NameTypeRequiredDescription
tenantIdstringYes
idstringNo
blockFromCommentParamsBlockFromCommentParamsNo
optionsBlockUserFromCommentOptionsNo

Response

Returns: Option[BlockSuccess]

Example

blockUserFromComment Example
Copy Copy
1
2let params = BlockFromCommentParams()
3let opts = BlockUserFromCommentOptions()
4let (blockResult, httpResp) = client.blockUserFromComment(
5 tenantId = "my-tenant-123",
6 id = "comment-456",
7 blockFromCommentParams = params,
8 options = opts
9)
10if blockResult.isSome:
11 let success = blockResult.get()
12 discard success
13

createCommentPublic Internal Link

Parameters

NameTypeRequiredDescription
tenantIdstringYes
urlIdstringYes
broadcastIdstringNo
commentDataCommentDataNo
optionsCreateCommentPublicOptionsNo

Response

Returns: Option[SaveCommentsResponseWithPresence]

Example

createCommentPublic Example
Copy Copy
1
2let
3 tenantId = "my-tenant-123"
4 urlId = "news/article-title"
5 broadcastId = "broadcast-456"
6 commentData = CommentData()
7 options = CreateCommentPublicOptions()
8let (maybeResp, httpResp) = client.createCommentPublic(
9 tenantId = tenantId,
10 urlId = urlId,
11 broadcastId = broadcastId,
12 commentData = commentData,
13 options = options)
14
15if maybeResp.isSome:
16 let resp = maybeResp.get()
17 echo resp
18

deleteComment Internal Link

Parameters

NameTypeRequiredDescription
tenantIdstringYes
idstringNo
optionsDeleteCommentOptionsNo

Response

Returns: Option[DeleteCommentResult]

Example

deleteComment Example
Copy Copy
1
2let (delResult, httpResponse) = client.deleteComment(
3 tenantId = "my-tenant-123",
4 id = "comment-456",
5 options = DeleteCommentOptions()
6)
7
8if delResult.isSome:
9 let result = delResult.get()
10 echo result
11

deleteCommentPublic Internal Link

Parameters

NameTypeRequiredDescription
tenantIdstringYes
commentIdstringYes
broadcastIdstringNo
optionsDeleteCommentPublicOptionsNo

Response

Returns: Option[PublicAPIDeleteCommentResponse]

Example

deleteCommentPublic Example
Copy Copy
1
2let (responseOpt, httpResp) = client.deleteCommentPublic(
3 tenantId = "my-tenant-123",
4 commentId = "cmt-456789",
5 broadcastId = "",
6 options = DeleteCommentPublicOptions())
7if responseOpt.isSome:
8 let resp = responseOpt.get()
9 echo resp
10

deleteCommentVote Internal Link

Parameters

NameTypeRequiredDescription
tenantIdstringYes
commentIdstringYes
voteIdstringNo
urlIdstringYes
broadcastIdstringNo
optionsDeleteCommentVoteOptionsNo

Response

Returns: Option[VoteDeleteResponse]

Example

deleteCommentVote Example
Copy Copy
1
2let (response, httpResponse) = client.deleteCommentVote(
3 tenantId = "my-tenant-123",
4 commentId = "cmt-456",
5 voteId = "vote-789",
6 urlId = "news/article-title",
7 broadcastId = "broadcast-001",
8 options = DeleteCommentVoteOptions()
9)
10
11if response.isSome:
12 let voteDelete = response.get()
13

flagComment Internal Link

Parameters

NameTypeRequiredDescription
tenantIdstringYes
idstringNo
optionsFlagCommentOptionsNo

Response

Returns: Option[FlagCommentResponse]

Example

flagComment Example
Copy Copy
1
2let options = FlagCommentOptions(reason: "spam content", note: "Automated posting detected", isSpam: true, categories: @["spam"])
3let (flagRes, httpRes) = client.flagComment(tenantId = "my-tenant-123", id = "cmt-789", options = options)
4if flagRes.isSome:
5 let res = flagRes.get()
6 discard res
7

getComment Internal Link

Parameters

NameTypeRequiredDescription
tenantIdstringYes
idstringNo

Response

Returns: Option[APIGetCommentResponse]

Example

getComment Example
Copy Copy
1
2let (response, httpResponse) = client.getComment(tenantId = "my-tenant-123", id = "cmt-789")
3if response.isSome:
4 let comment = response.get()
5 discard comment
6

getComments Internal Link

Parameters

NameTypeRequiredDescription
tenantIdstringYes
optionsGetCommentsOptionsNo

Response

Returns: Option[APIGetCommentsResponse]

Example

getComments Example
Copy Copy
1
2let options = GetCommentsOptions(
3 urlId = "news/article-title",
4 page = 0,
5 pageSize = 20,
6 sort = "newest",
7 includeDeleted = false,
8 includeReplies = true,
9 userIds = @[],
10 tags = @[]
11)
12
13let (response, httpResponse) = client.getComments(tenantId = "my-tenant-123", options = options)
14
15if response.isSome:
16 let comments = response.get()
17 discard comments
18

getCommentsPublic Internal Link

req tenantId urlId

Parameters

NameTypeRequiredDescription
tenantIdstringYes
urlIdstringYes
optionsGetCommentsPublicOptionsNo

Response

Returns: Option[GetCommentsResponseWithPresencePublicComment]

Example

getCommentsPublic Example
Copy Copy
1
2let (optResp, httpResp) = client.getCommentsPublic(
3 tenantId = "my-tenant-123",
4 urlId = "news/article-title",
5 options = GetCommentsPublicOptions(
6 page = 0,
7 pageSize = 10,
8 includeDeleted = false,
9 tags = @[]
10 )
11)
12
13if optResp.isSome:
14 let resp = optResp.get()
15 echo resp
16

getCommentText Internal Link

Parameters

NameTypeRequiredDescription
tenantIdstringYes
commentIdstringYes
optionsGetCommentTextOptionsNo

Response

Returns: Option[PublicAPIGetCommentTextResponse]

Example

getCommentText Example
Copy Copy
1
2let (maybeResponse, httpResponse) = client.getCommentText(
3 tenantId = "my-tenant-123",
4 commentId = "comment-456",
5 options = GetCommentTextOptions()
6)
7
8if maybeResponse.isSome:
9 let response = maybeResponse.get()
10

getCommentVoteUserNames Internal Link

Parameters

NameTypeRequiredDescription
tenantIdstringYes
commentIdstringYes
dirintNo
ssostring = ""No

Response

Returns: Option[GetCommentVoteUserNamesSuccessResponse]

Example

getCommentVoteUserNames Example
Copy Copy
1
2let (voteNamesOpt, httpRes) = client.getCommentVoteUserNames(
3 tenantId = "my-tenant-123",
4 commentId = "cmt-987654321",
5 dir = 0,
6 sso = ""
7)
8
9if voteNamesOpt.isSome:
10 let voteNames = voteNamesOpt.get()
11 echo voteNames
12

lockComment Internal Link

Parameters

NameTypeRequiredDescription
tenantIdstringYes
commentIdstringYes
broadcastIdstringNo
ssostring = ""No

Response

Returns: Option[APIEmptyResponse]

Example

lockComment Example
Copy Copy
1
2let (lockResult, httpRes) = client.lockComment(
3 tenantId = "my-tenant-123",
4 commentId = "comment-456",
5 broadcastId = "",
6 sso = "")
7
8if lockResult.isSome:
9 let resp = lockResult.get()
10 discard resp
11

pinComment Internal Link

Parameters

NameTypeRequiredDescription
tenantIdstringYes
commentIdstringYes
broadcastIdstringNo
ssostring = ""No

Response

Returns: Option[ChangeCommentPinStatusResponse]

Example

pinComment Example
Copy Copy
1
2let (pinResult, httpResp) = client.pinComment(
3 tenantId = "my-tenant-123",
4 commentId = "cmt-456789",
5 broadcastId = "broadcast-001",
6 sso = "",
7)
8
9if pinResult.isSome:
10 let response = pinResult.get()
11 echo response
12

saveComment Internal Link

Parameters

NameTypeRequiredDescription
tenantIdstringYes
createCommentParamsCreateCommentParamsNo
optionsSaveCommentOptionsNo

Response

Returns: Option[APISaveCommentResponse]

Example

saveComment Example
Copy Copy
1
2let commentParams = CreateCommentParams(
3 body: "Great read, thanks!",
4 name: "Alice Smith",
5 email: "alice@example.com",
6 parentId: ""
7)
8
9let saveOpts = SaveCommentOptions(
10 isPreview: false,
11 isApproved: true,
12 skipSpamCheck: false
13)
14
15let (apiResponse, httpResponse) = client.saveComment(
16 tenantId = "my-tenant-123",
17 createCommentParams = commentParams,
18 options = saveOpts
19)
20
21if apiResponse.isSome:
22 let saved = apiResponse.get()
23 echo saved
24

saveCommentsBulk Internal Link

Parameters

NameTypeRequiredDescription
tenantIdstringYes
createCommentParamsseq[CreateCommentParams]No
optionsSaveCommentsBulkOptions): (Option[seq[SaveCommentsBulkResponse]]No
idstringNo
fromNamestringNo

Response

Returns: Option[APIEmptyResponse]

Example

saveCommentsBulk Example
Copy Copy
1
2let (response, httpResponse) = client.saveCommentsBulk(
3 tenantId = "my-tenant-123",
4 createCommentParams = @[],
5 options = SaveCommentsBulkOptions(),
6 id = "",
7 fromName = ""
8)
9
10if response.isSome:
11 let result = response.get()
12

setCommentText Internal Link

Parameters

NameTypeRequiredDescription
tenantIdstringYes
commentIdstringYes
broadcastIdstringNo
commentTextUpdateRequestCommentTextUpdateRequestNo
optionsSetCommentTextOptionsNo

Response

Returns: Option[PublicAPISetCommentTextResponse]

Example

setCommentText Example
Copy Copy
1
2let commentUpdate = CommentTextUpdateRequest(text: "Updated comment text")
3let opts = SetCommentTextOptions()
4let (response, httpResponse) = client.setCommentText(
5 tenantId = "my-tenant-123",
6 commentId = "cmt-456",
7 broadcastId = "broadcast-789",
8 commentTextUpdateRequest = commentUpdate,
9 options = opts)
10if response.isSome:
11 let result = response.get()
12

unBlockUserFromComment Internal Link

Parameters

NameTypeRequiredDescription
tenantIdstringYes
idstringNo
unBlockFromCommentParamsUnBlockFromCommentParamsNo
optionsUnBlockUserFromCommentOptionsNo

Response

Returns: Option[UnblockSuccess]

Example

unBlockUserFromComment Example
Copy Copy
1
2let (response, httpResponse) = client.unBlockUserFromComment(
3 tenantId = "my-tenant-123",
4 id = "comment-456",
5 unBlockFromCommentParams = UnBlockFromCommentParams(userId = "user-789", commentId = "cmt-321"),
6 options = UnBlockUserFromCommentOptions(),
7)
8
9if response.isSome:
10 let unblockSuccess = response.get()
11

unFlagComment Internal Link

Parameters

NameTypeRequiredDescription
tenantIdstringYes
idstringNo
optionsUnFlagCommentOptionsNo

Response

Returns: Option[FlagCommentResponse]

Example

unFlagComment Example
Copy Copy
1
2let (flagRespOpt, httpResp) = client.unFlagComment(tenantId = "my-tenant-123", id = "comment-456", options = UnFlagCommentOptions())
3if flagRespOpt.isSome:
4 let flagResp = flagRespOpt.get()
5

unLockComment Internal Link

Parameters

NameTypeRequiredDescription
tenantIdstringYes
commentIdstringYes
broadcastIdstringNo
ssostring = ""No

Response

Returns: Option[APIEmptyResponse]

Example

unLockComment Example
Copy Copy
1
2let (maybeEmpty, httpResp) = client.unLockComment(tenantId = "my-tenant-123", commentId = "comment-456", broadcastId = "", sso = "")
3if maybeEmpty.isSome:
4 let emptyResp = maybeEmpty.get()
5 echo "Comment unlocked"
6else:
7 echo "Failed to unlock comment"
8

unPinComment Internal Link

Parameters

NameTypeRequiredDescription
tenantIdstringYes
commentIdstringYes
broadcastIdstringNo
ssostring = ""No

Response

Returns: Option[ChangeCommentPinStatusResponse]

Example

unPinComment Example
Copy Copy
1
2let (responseOpt, httpResponse) = client.unPinComment(
3 tenantId = "my-tenant-123",
4 commentId = "cmt-456789",
5 broadcastId = "broadcast-001",
6 sso = ""
7)
8
9if responseOpt.isSome:
10 let resp = responseOpt.get()
11 echo resp
12

updateComment Internal Link

Parameters

NameTypeRequiredDescription
tenantIdstringYes
idstringNo
updatableCommentParamsUpdatableCommentParamsNo
optionsUpdateCommentOptionsNo

Response

Returns: Option[APIEmptyResponse]

Example

updateComment Example
Copy Copy
1
2let commentParams = UpdatableCommentParams(content: "Updated comment content")
3let updateOpts = UpdateCommentOptions(force: false)
4
5let (respOpt, httpResp) = client.updateComment(
6 tenantId = "my-tenant-123",
7 id = "comment-456",
8 updatableCommentParams = commentParams,
9 options = updateOpts
10)
11
12if respOpt.isSome:
13 let resp = respOpt.get()
14

voteComment Internal Link

Parameters

NameTypeRequiredDescription
tenantIdstringYes
commentIdstringYes
urlIdstringYes
broadcastIdstringNo
voteBodyParamsVoteBodyParamsNo
optionsVoteCommentOptionsNo

Response

Returns: Option[VoteResponse]

Example

voteComment Example
Copy Copy
1
2let (voteRespOpt, httpResp) = client.voteComment(
3 tenantId = "my-tenant-123",
4 commentId = "comment-98765",
5 urlId = "blog/how-to-code",
6 broadcastId = "",
7 voteBodyParams = VoteBodyParams(),
8 options = VoteCommentOptions()
9)
10
11if voteRespOpt.isSome:
12 let voteResp = voteRespOpt.get()
13

getCommentsForUser Internal Link

Parameters

NameTypeRequiredDescription
optionsGetCommentsForUserOptionsNo

Response

Returns: Option[GetCommentsForUserResponse]

Example

getCommentsForUser Example
Copy Copy
1
2let (maybeResp, httpResp) = client.getCommentsForUser(options = GetCommentsForUserOptions(
3 tenantId = "my-tenant-123",
4 userId = "user-456",
5 page = 0,
6 pageSize = 20,
7 includeDeleted = false,
8 commentIds = @[]
9))
10
11if maybeResp.isSome:
12 let resp = maybeResp.get()
13 discard resp
14

addDomainConfig Internal Link

Parameters

NameTypeRequiredDescription
tenantIdstringYes
addDomainConfigParamsAddDomainConfigParamsNo

Response

Returns: Option[AddDomainConfigResponse]

Example

addDomainConfig Example
Copy Copy
1
2let (respOpt, httpResp) = client.addDomainConfig(
3 tenantId = "my-tenant-123",
4 addDomainConfigParams = default(AddDomainConfigParams)
5)
6
7if respOpt.isSome:
8 let cfg = respOpt.get()
9

deleteDomainConfig Internal Link

Parameters

NameTypeRequiredDescription
tenantIdstringYes
domainstringNo

Response

Returns: Option[DeleteDomainConfigResponse]

Example

deleteDomainConfig Example
Copy Copy
1
2let (optResp, httpResp) = client.deleteDomainConfig(tenantId = "my-tenant-123", domain = "news.example.com")
3if optResp.isSome:
4 let resp = optResp.get()
5 echo resp
6

getDomainConfig Internal Link

Parameters

NameTypeRequiredDescription
tenantIdstringYes
domainstringNo

Response

Returns: Option[GetDomainConfigResponse]

Example

getDomainConfig Example
Copy Copy
1
2let (configOpt, httpResp) = client.getDomainConfig(tenantId = "my-tenant-123", domain = "news.example.com")
3if configOpt.isSome:
4 let cfg = configOpt.get()
5 discard cfg
6

getDomainConfigs Internal Link

Parameters

NameTypeRequiredDescription
tenantIdstringYes

Response

Returns: Option[GetDomainConfigsResponse]

Example

getDomainConfigs Example
Copy Copy
1
2let (domainConfigsOpt, httpResponse) = client.getDomainConfigs(tenantId = "my-tenant-123")
3if domainConfigsOpt.isSome:
4 let domainConfigs = domainConfigsOpt.get()
5 echo domainConfigs
6

patchDomainConfig Internal Link

Parameters

NameTypeRequiredDescription
tenantIdstringYes
domainToUpdatestringNo
patchDomainConfigParamsPatchDomainConfigParamsNo

Response

Returns: Option[PatchDomainConfigResponse]

Example

patchDomainConfig Example
Copy Copy
1
2let (optResp, httpResp) = client.patchDomainConfig(
3 tenantId = "my-tenant-123",
4 domainToUpdate = "news.mywebsite.com",
5 patchDomainConfigParams = PatchDomainConfigParams()
6)
7
8if optResp.isSome:
9 let resp = optResp.get()
10 echo resp
11

putDomainConfig Internal Link

Parameters

NameTypeRequiredDescription
tenantIdstringYes
domainToUpdatestringNo
updateDomainConfigParamsUpdateDomainConfigParamsNo

Response

Returns: Option[PutDomainConfigResponse]

Example

putDomainConfig Example
Copy Copy
1
2let (optResp, httpResp) = client.putDomainConfig(
3 tenantId = "my-tenant-123",
4 domainToUpdate = "example.com",
5 updateDomainConfigParams = UpdateDomainConfigParams()
6)
7
8if optResp.isSome:
9 let resp = optResp.get()
10 echo resp
11

createEmailTemplate Internal Link

Parameters

NameTypeRequiredDescription
tenantIdstringYes
createEmailTemplateBodyCreateEmailTemplateBodyNo

Response

Returns: Option[CreateEmailTemplateResponse]

Example

createEmailTemplate Example
Copy Copy
1
2let createBody = CreateEmailTemplateBody(
3 name: "Welcome Email",
4 subject: "Welcome to FastComments",
5 htmlBody: "<p>Hello, thank you for joining us!</p>",
6 isActive: true,
7 tags: @[]
8)
9
10let (optResp, httpResp) = client.createEmailTemplate(
11 tenantId = "my-tenant-123",
12 createEmailTemplateBody = createBody
13)
14
15if optResp.isSome:
16 let emailTemplate = optResp.get()
17

deleteEmailTemplate Internal Link

Parameters

NameTypeRequiredDescription
tenantIdstringYes
idstringNo

Response

Returns: Option[APIEmptyResponse]

Example

deleteEmailTemplate Example
Copy Copy
1
2let (respOpt, httpResp) = client.deleteEmailTemplate(tenantId = "my-tenant-123", id = "welcome-email")
3if respOpt.isSome:
4 let emptyResp = respOpt.get()
5 echo "Email template deleted"
6else:
7 echo "Failed to delete email template"
8

deleteEmailTemplateRenderError Internal Link

Parameters

NameTypeRequiredDescription
tenantIdstringYes
idstringNo
errorIdstringNo

Response

Returns: Option[APIEmptyResponse]

Example

deleteEmailTemplateRenderError Example
Copy Copy
1
2let (apiRes, httpRes) = client.deleteEmailTemplateRenderError(
3 tenantId = "my-tenant-123",
4 id = "welcome-email",
5 errorId = "render-err-456"
6)
7
8if apiRes.isSome:
9 let empty = apiRes.get()
10

getEmailTemplate Internal Link

Parameters

NameTypeRequiredDescription
tenantIdstringYes
idstringNo

Response

Returns: Option[GetEmailTemplateResponse]

Example

getEmailTemplate Example
Copy Copy
1
2let (response, httpResponse) = client.getEmailTemplate(tenantId = "my-tenant-123", id = "welcome-email")
3if response.isSome:
4 let tmpl = response.get()
5

getEmailTemplateDefinitions Internal Link

Parameters

NameTypeRequiredDescription
tenantIdstringYes

Response

Returns: Option[GetEmailTemplateDefinitionsResponse]

Example

getEmailTemplateDefinitions Example
Copy Copy
1
2let (responseOpt, httpResponse) = client.getEmailTemplateDefinitions(tenantId = "my-tenant-123")
3if responseOpt.isSome:
4 let definitions = responseOpt.get()
5 echo definitions
6

getEmailTemplateRenderErrors Internal Link

Parameters

NameTypeRequiredDescription
tenantIdstringYes
idstringNo
skipfloat64No

Response

Returns: Option[GetEmailTemplateRenderErrorsResponse]

Example

getEmailTemplateRenderErrors Example
Copy Copy
1
2let (optResp, httpResp) = client.getEmailTemplateRenderErrors(
3 tenantId = "my-tenant-123",
4 id = "welcome-template",
5 skip = 0.0
6)
7
8if optResp.isSome:
9 let resp = optResp.get()
10 # use resp as needed
11else:
12 # handle missing response
13 discard
14

getEmailTemplates Internal Link

Parameters

NameTypeRequiredDescription
tenantIdstringYes
skipfloat64No

Response

Returns: Option[GetEmailTemplatesResponse]

Example

getEmailTemplates Example
Copy Copy
1
2let (emailTemplatesOpt, httpResp) = client.getEmailTemplates(tenantId = "my-tenant-123", skip = 0.0)
3if emailTemplatesOpt.isSome:
4 let templates = emailTemplatesOpt.get()
5 echo templates
6

renderEmailTemplate Internal Link

Parameters

NameTypeRequiredDescription
tenantIdstringYes
renderEmailTemplateBodyRenderEmailTemplateBodyNo
localestring = ""No

Response

Returns: Option[RenderEmailTemplateResponse]

Example

renderEmailTemplate Example
Copy Copy
1
2let body = RenderEmailTemplateBody()
3let (responseOpt, httpResponse) = client.renderEmailTemplate(tenantId = "my-tenant-123", renderEmailTemplateBody = body, locale = "en-US")
4if responseOpt.isSome:
5 let response = responseOpt.get()
6 discard response
7discard httpResponse
8

updateEmailTemplate Internal Link

Parameters

NameTypeRequiredDescription
tenantIdstringYes
idstringNo
updateEmailTemplateBodyUpdateEmailTemplateBodyNo

Response

Returns: Option[APIEmptyResponse]

Example

updateEmailTemplate Example
Copy Copy
1
2let updateBody = UpdateEmailTemplateBody(
3 subject: "Welcome to FastComments",
4 body: "Hello \{{user_name}}, thanks for joining!",
5 enabled: true,
6)
7
8let (maybeResp, httpResp) = client.updateEmailTemplate(
9 tenantId = "my-tenant-123",
10 id = "welcome-email",
11 updateEmailTemplateBody = updateBody,
12)
13
14if maybeResp.isSome:
15 let resp = maybeResp.get()
16

getEventLog Internal Link

req tenantId urlId userIdWS

Parameters

NameTypeRequiredDescription
tenantIdstringYes
urlIdstringYes
userIdWSstringNo
startTimeint64No
endTimeint64No

Response

Returns: Option[GetEventLogResponse]

Example

getEventLog Example
Copy Copy
1
2let (eventLogOpt, httpResp) = client.getEventLog(
3 tenantId = "my-tenant-123",
4 urlId = "news/article-title",
5 userIdWS = "",
6 startTime = 0'i64,
7 endTime = 0'i64,
8)
9
10if eventLogOpt.isSome:
11 let eventLog = eventLogOpt.get()
12 echo eventLog
13

getGlobalEventLog Internal Link

req tenantId urlId userIdWS

Parameters

NameTypeRequiredDescription
tenantIdstringYes
urlIdstringYes
userIdWSstringNo
startTimeint64No
endTimeint64No

Response

Returns: Option[GetEventLogResponse]

Example

getGlobalEventLog Example
Copy Copy
1
2let (eventLogOpt, httpResp) = client.getGlobalEventLog(
3 tenantId = "my-tenant-123",
4 urlId = "news/article-title",
5 userIdWS = "user-456",
6 startTime = 1700000000'i64,
7 endTime = 1700003600'i64,
8)
9
10if eventLogOpt.isSome:
11 let eventLog = eventLogOpt.get()
12 echo eventLog
13

createFeedPost Internal Link

Parameters

NameTypeRequiredDescription
tenantIdstringYes
createFeedPostParamsCreateFeedPostParamsNo
optionsCreateFeedPostOptionsNo

Response

Returns: Option[CreateFeedPostsResponse]

Example

createFeedPost Example
Copy Copy
1
2let (respOpt, httpResp) = client.createFeedPost(
3 tenantId = "my-tenant-123",
4 createFeedPostParams = CreateFeedPostParams(),
5 options = CreateFeedPostOptions()
6)
7
8if respOpt.isSome:
9 let feedPost = respOpt.get()
10

createFeedPostPublic Internal Link

Parameters

NameTypeRequiredDescription
tenantIdstringYes
createFeedPostParamsCreateFeedPostParamsNo
optionsCreateFeedPostPublicOptionsNo

Response

Returns: Option[CreateFeedPostResponse]

Example

createFeedPostPublic Example
Copy Copy
1
2let params = CreateFeedPostParams(
3 urlId: "news/big-event",
4 title: "Big Event Happened",
5 content: "Full article content goes here.",
6 tags: @["news", "event"]
7)
8
9let opts = CreateFeedPostPublicOptions(
10 sendNotifications: false,
11 allowComments: true
12)
13
14let (response, httpResponse) = client.createFeedPostPublic(
15 tenantId = "my-tenant-123",
16 createFeedPostParams = params,
17 options = opts
18)
19
20if response.isSome:
21 let post = response.get()
22 echo post
23

deleteFeedPostPublic Internal Link

Parameters

NameTypeRequiredDescription
tenantIdstringYes
postIdstringNo
optionsDeleteFeedPostPublicOptionsNo

Response

Returns: Option[DeleteFeedPostPublicResponse]

Example

deleteFeedPostPublic Example
Copy Copy
1
2let (response, httpResponse) = client.deleteFeedPostPublic(
3 tenantId = "my-tenant-123",
4 postId = "news/article-42",
5 options = DeleteFeedPostPublicOptions()
6)
7
8if response.isSome:
9 let deleteResp = response.get()
10

getFeedPosts Internal Link

req tenantId afterId

Parameters

NameTypeRequiredDescription
tenantIdstringYes
optionsGetFeedPostsOptionsNo

Response

Returns: Option[GetFeedPostsResponse]

Example

getFeedPosts Example
Copy Copy
1
2let (feedResponseOpt, httpResp) = client.getFeedPosts(tenantId = "my-tenant-123", options = GetFeedPostsOptions())
3if feedResponseOpt.isSome:
4 let feedResponse = feedResponseOpt.get()
5 echo feedResponse
6

getFeedPostsPublic Internal Link

req tenantId afterId

Parameters

NameTypeRequiredDescription
tenantIdstringYes
optionsGetFeedPostsPublicOptionsNo

Response

Returns: Option[PublicFeedPostsResponse]

Example

getFeedPostsPublic Example
Copy Copy
1
2let (feedResponseOpt, httpResponse) = client.getFeedPostsPublic(tenantId = "my-tenant-123", options = GetFeedPostsPublicOptions())
3if feedResponseOpt.isSome:
4 let feedResponse = feedResponseOpt.get()
5

getFeedPostsStats Internal Link

Parameters

NameTypeRequiredDescription
tenantIdstringYes
postIdsseq[string]No
ssostring = ""No

Response

Returns: Option[FeedPostsStatsResponse]

Example

getFeedPostsStats Example
Copy Copy
1
2let (statsOpt, httpResponse) = client.getFeedPostsStats(
3 tenantId = "my-tenant-123",
4 postIds = @["post-abc", "post-def"],
5 sso = "sso-token",
6)
7
8if statsOpt.isSome:
9 let stats = statsOpt.get()
10 # use stats as needed
11
12
13

getUserReactsPublic Internal Link

Parameters

NameTypeRequiredDescription
tenantIdstringYes
optionsGetUserReactsPublicOptionsNo

Response

Returns: Option[UserReactsResponse]

Example

getUserReactsPublic Example
Copy Copy
1
2let opts = GetUserReactsPublicOptions(
3 limit = 20,
4 offset = 0,
5 includeDeleted = false
6)
7
8let (response, httpResponse) = client.getUserReactsPublic(
9 tenantId = "my-tenant-123",
10 options = opts
11)
12
13if response.isSome:
14 let userReacts = response.get()
15

reactFeedPostPublic Internal Link

Parameters

NameTypeRequiredDescription
tenantIdstringYes
postIdstringNo
reactBodyParamsReactBodyParamsNo
optionsReactFeedPostPublicOptionsNo

Response

Returns: Option[ReactFeedPostResponse]

Example

reactFeedPostPublic Example
Copy Copy
1
2let reactParams = ReactBodyParams()
3let (optResp, httpResp) = client.reactFeedPostPublic(
4 tenantId = "my-tenant-123",
5 postId = "post-456",
6 reactBodyParams = reactParams,
7 options = ReactFeedPostPublicOptions()
8)
9if optResp.isSome:
10 let resp = optResp.get()
11 echo resp
12

updateFeedPost Internal Link

Parameters

NameTypeRequiredDescription
tenantIdstringYes
idstringNo
feedPostFeedPostNo

Response

Returns: Option[APIEmptyResponse]

Example

updateFeedPost Example
Copy Copy
1
2let feedPost = FeedPost(
3 title: "Breaking News",
4 content: "Updated story content",
5 tags: @["news", "update"]
6)
7
8let (apiRes, httpRes) = client.updateFeedPost(
9 tenantId = "my-tenant-123",
10 id = "post-456",
11 feedPost = feedPost
12)
13
14if apiRes.isSome:
15 let res = apiRes.get()
16

updateFeedPostPublic Internal Link

Parameters

NameTypeRequiredDescription
tenantIdstringYes
postIdstringNo
updateFeedPostParamsUpdateFeedPostParamsNo
optionsUpdateFeedPostPublicOptionsNo

Response

Returns: Option[CreateFeedPostResponse]

Example

updateFeedPostPublic Example
Copy Copy
1
2let (response, httpResponse) = client.updateFeedPostPublic(
3 tenantId = "my-tenant-123",
4 postId = "post-789",
5 updateFeedPostParams = UpdateFeedPostParams(),
6 options = UpdateFeedPostPublicOptions()
7)
8
9if response.isSome:
10 let post = response.get()
11

flagCommentPublic Internal Link

Parameters

NameTypeRequiredDescription
tenantIdstringYes
commentIdstringYes
isFlaggedboolNo
ssostring = ""No

Response

Returns: Option[APIEmptyResponse]

Example

flagCommentPublic Example
Copy Copy
1
2let (optResp, httpResp) = client.flagCommentPublic(
3 tenantId = "my-tenant-123",
4 commentId = "cmt-456789",
5 isFlagged = true,
6 sso = ""
7)
8
9if optResp.isSome:
10 let empty = optResp.get()
11 discard empty
12

getGifLarge Internal Link

Parameters

NameTypeRequiredDescription
tenantIdstringYes
largeInternalURLSanitizedstringNo

Response

Returns: Option[GifGetLargeResponse]

Example

getGifLarge Example
Copy Copy
1
2let (gifOpt, httpResp) = client.getGifLarge(
3 tenantId = "my-tenant-123",
4 largeInternalURLSanitized = "https://cdn.example.com/gifs/large123.gif")
5if gifOpt.isSome:
6 let gif = gifOpt.get()
7 echo gif
8

getGifsSearch Internal Link

Parameters

NameTypeRequiredDescription
tenantIdstringYes
searchstringNo
optionsGetGifsSearchOptionsNo

Response

Returns: Option[GetGifsSearchResponse]

Example

getGifsSearch Example
Copy Copy
1
2let opts = GetGifsSearchOptions(limit = 10, rating = "g")
3let (responseOpt, httpResponse) = client.getGifsSearch(tenantId = "my-tenant-123", search = "funny cats", options = opts)
4if responseOpt.isSome:
5 let resp = responseOpt.get()
6 # use resp as needed
7

getGifsTrending Internal Link

Parameters

NameTypeRequiredDescription
tenantIdstringYes
optionsGetGifsTrendingOptionsNo

Response

Returns: Option[GetGifsTrendingResponse]

Example

getGifsTrending Example
Copy Copy
1
2let (maybeResponse, httpResponse) = client.getGifsTrending(
3 tenantId = "my-tenant-123",
4 options = GetGifsTrendingOptions()
5)
6
7if maybeResponse.isSome:
8 let gifs = maybeResponse.get()
9 echo gifs
10

addHashTag Internal Link

Parameters

NameTypeRequiredDescription
tenantIdstringYes
createHashTagBodyCreateHashTagBodyNo

Response

Returns: Option[CreateHashTagResponse]

Example

addHashTag Example
Copy Copy
1
2let (hashTagOpt, httpResp) = client.addHashTag(
3 tenantId = "my-tenant-123",
4 createHashTagBody = CreateHashTagBody(),
5)
6
7if hashTagOpt.isSome:
8 let tag = hashTagOpt.get()
9

addHashTagsBulk Internal Link

Parameters

NameTypeRequiredDescription
tenantIdstringYes
bulkCreateHashTagsBodyBulkCreateHashTagsBodyNo

Response

Returns: Option[BulkCreateHashTagsResponse]

Example

addHashTagsBulk Example
Copy Copy
1
2let (optResp, httpResp) = client.addHashTagsBulk(
3 tenantId = "my-tenant-123",
4 bulkCreateHashTagsBody = BulkCreateHashTagsBody(
5 hashTags = @["news", "technology"]
6 )
7)
8
9if optResp.isSome:
10 let resp = optResp.get()
11

deleteHashTag Internal Link

Parameters

NameTypeRequiredDescription
tenantIdstringYes
tagstringNo
deleteHashTagRequestBodyDeleteHashTagRequestBodyNo

Response

Returns: Option[APIEmptyResponse]

Example

deleteHashTag Example
Copy Copy
1
2let (apiResp, httpResp) = client.deleteHashTag(tenantId = "my-tenant-123", tag = "sports", deleteHashTagRequestBody = DeleteHashTagRequestBody())
3if apiResp.isSome:
4 let emptyResp = apiResp.get()
5

getHashTags Internal Link

Parameters

NameTypeRequiredDescription
tenantIdstringYes
pagefloat64No

Response

Returns: Option[GetHashTagsResponse]

Example

getHashTags Example
Copy Copy
1
2let (hashTagsOpt, httpResp) = client.getHashTags(tenantId = "my-tenant-123", page = 0.0)
3if hashTagsOpt.isSome:
4 let hashTags = hashTagsOpt.get()
5 echo hashTags
6else:
7 echo "No hashtags found"
8

patchHashTag Internal Link

Parameters

NameTypeRequiredDescription
tenantIdstringYes
tagstringNo
updateHashTagBodyUpdateHashTagBodyNo

Response

Returns: Option[UpdateHashTagResponse]

Example

patchHashTag Example
Copy Copy
1
2let updateBody = UpdateHashTagBody()
3let (optResp, httpResp) = client.patchHashTag(
4 tenantId = "my-tenant-123",
5 tag = "news",
6 updateHashTagBody = updateBody
7)
8if optResp.isSome:
9 let resp = optResp.get()
10 echo resp
11else:
12 echo "No response"
13

deleteModerationVote Internal Link

Parameters

NameTypeRequiredDescription
tenantIdstringYes
commentIdstringYes
voteIdstringNo
optionsDeleteModerationVoteOptionsNo

Response

Returns: Option[VoteDeleteResponse]

Example

deleteModerationVote Example
Copy Copy
1
2let (respOpt, httpResp) = client.deleteModerationVote(
3 tenantId = "my-tenant-123",
4 commentId = "cmt-987654",
5 voteId = "vote-abc123",
6 options = DeleteModerationVoteOptions()
7)
8
9if respOpt.isSome:
10 let resp = respOpt.get()
11

getApiComments Internal Link

Parameters

NameTypeRequiredDescription
tenantIdstringYes
optionsGetApiCommentsOptionsNo

Response

Returns: Option[ModerationAPIGetCommentsResponse]

Example

getApiComments Example
Copy Copy
1
2let (maybeResp, httpResp) = client.getApiComments(tenantId = "my-tenant-123", options = GetApiCommentsOptions())
3if maybeResp.isSome:
4 let resp = maybeResp.get()
5 # further processing can be done with `resp`
6

getApiExportStatus Internal Link

Parameters

NameTypeRequiredDescription
tenantIdstringYes
optionsGetApiExportStatusOptionsNo

Response

Returns: Option[ModerationExportStatusResponse]

Example

getApiExportStatus Example
Copy Copy
1
2let (exportStatusOpt, httpResp) = client.getApiExportStatus(
3 tenantId = "my-tenant-123",
4 options = GetApiExportStatusOptions()
5)
6if exportStatusOpt.isSome:
7 let exportStatus = exportStatusOpt.get()
8 # use exportStatus as needed
9

getApiIds Internal Link

Parameters

NameTypeRequiredDescription
tenantIdstringYes
optionsGetApiIdsOptionsNo

Response

Returns: Option[ModerationAPIGetCommentIdsResponse]

Example

getApiIds Example
Copy Copy
1
2let opts = GetApiIdsOptions()
3let (maybeResponse, httpResponse) = client.getApiIds(tenantId = "my-tenant-123", options = opts)
4if maybeResponse.isSome:
5 let response = maybeResponse.get()
6 echo response
7

getBanUsersFromComment Internal Link

Parameters

NameTypeRequiredDescription
tenantIdstringYes
commentIdstringYes
ssostring = ""No

Response

Returns: Option[GetBannedUsersFromCommentResponse]

Example

getBanUsersFromComment Example
Copy Copy
1
2let (response, httpResponse) = client.getBanUsersFromComment(tenantId = "my-tenant-001", commentId = "cmt-123456", sso = "")
3if response.isSome:
4 let banInfo = response.get()
5 echo banInfo
6

getCommentBanStatus Internal Link

Parameters

NameTypeRequiredDescription
tenantIdstringYes
commentIdstringYes
ssostring = ""No

Response

Returns: Option[GetCommentBanStatusResponse]

Example

getCommentBanStatus Example
Copy Copy
1
2let (banStatusOpt, httpResp) = client.getCommentBanStatus(
3 tenantId = "my-tenant-123",
4 commentId = "cmt-456789",
5 sso = "")
6
7if banStatusOpt.isSome:
8 let banStatus = banStatusOpt.get()
9 echo banStatus
10

getCommentChildren Internal Link

Parameters

NameTypeRequiredDescription
tenantIdstringYes
commentIdstringYes
ssostring = ""No

Response

Returns: Option[ModerationAPIChildCommentsResponse]

Example

getCommentChildren Example
Copy Copy
1
2let (childRespOpt, httpResp) = client.getCommentChildren(tenantId = "my-tenant-123", commentId = "cmt-456789", sso = "")
3if childRespOpt.isSome:
4 let childResp = childRespOpt.get()
5 echo childResp
6

getCount Internal Link

Parameters

NameTypeRequiredDescription
tenantIdstringYes
optionsGetCountOptionsNo

Response

Returns: Option[ModerationAPICountCommentsResponse]

Example

getCount Example
Copy Copy
1
2let (countOpt, httpResponse) = client.getCount(tenantId = "my-tenant-123", options = GetCountOptions())
3if countOpt.isSome:
4 let count = countOpt.get()
5

getCounts Internal Link

Parameters

NameTypeRequiredDescription
tenantIdstringYes
ssostring = ""No

Response

Returns: Option[GetBannedUsersCountResponse]

Example

getCounts Example
Copy Copy
1
2let (maybeCounts, httpRes) = client.getCounts(tenantId = "my-tenant-123", sso = "")
3if maybeCounts.isSome:
4 let counts = maybeCounts.get()
5 echo counts
6else:
7 echo "No counts returned"
8

getLogs Internal Link

Parameters

NameTypeRequiredDescription
tenantIdstringYes
commentIdstringYes
ssostring = ""No

Response

Returns: Option[ModerationAPIGetLogsResponse]

Example

getLogs Example
Copy Copy
1
2let (logsOpt, httpRes) = client.getLogs(tenantId = "my-tenant-123", commentId = "cmt-789", sso = "")
3if logsOpt.isSome:
4 let logs = logsOpt.get()
5 echo logs
6

getManualBadges Internal Link

Parameters

NameTypeRequiredDescription
tenantIdstringYes
ssostring = ""No

Response

Returns: Option[GetTenantManualBadgesResponse]

Example

getManualBadges Example
Copy Copy
1
2let (manualBadgesOpt, httpResponse) = client.getManualBadges(tenantId = "my-tenant-123", sso = "")
3if manualBadgesOpt.isSome:
4 let manualBadges = manualBadgesOpt.get()
5 echo manualBadges
6

getManualBadgesForUser Internal Link

Parameters

NameTypeRequiredDescription
tenantIdstringYes
optionsGetManualBadgesForUserOptionsNo

Response

Returns: Option[GetUserManualBadgesResponse]

Example

getManualBadgesForUser Example
Copy Copy
1
2let (userBadgesOpt, httpResp) = client.getManualBadgesForUser(
3 tenantId = "my-tenant-123",
4 options = GetManualBadgesForUserOptions()
5)
6if userBadgesOpt.isSome:
7 let badges = userBadgesOpt.get()
8 echo badges
9

getModerationComment Internal Link

Parameters

NameTypeRequiredDescription
tenantIdstringYes
commentIdstringYes
optionsGetModerationCommentOptionsNo

Response

Returns: Option[ModerationAPICommentResponse]

Example

getModerationComment Example
Copy Copy
1
2let (maybeComment, httpResponse) = client.getModerationComment(
3 tenantId = "my-tenant-123",
4 commentId = "cmt-456789",
5 options = default(GetModerationCommentOptions)
6)
7
8if maybeComment.isSome:
9 let comment = maybeComment.get()
10 echo comment
11

getModerationCommentText Internal Link

Parameters

NameTypeRequiredDescription
tenantIdstringYes
commentIdstringYes
ssostring = ""No

Response

Returns: Option[GetCommentTextResponse]

Example

getModerationCommentText Example
Copy Copy
1
2let (optResp, httpResp) = client.getModerationCommentText(
3 tenantId = "my-tenant-123",
4 commentId = "comment-456abc",
5 sso = ""
6)
7
8if optResp.isSome:
9 let resp = optResp.get()
10 echo resp
11

getPreBanSummary Internal Link

Parameters

NameTypeRequiredDescription
tenantIdstringYes
commentIdstringYes
optionsGetPreBanSummaryOptionsNo

Response

Returns: Option[PreBanSummary]

Example

getPreBanSummary Example
Copy Copy
1
2let (preBanSummaryOpt, httpResponse) = client.getPreBanSummary(tenantId = "my-tenant-123", commentId = "cmt-456", options = GetPreBanSummaryOptions())
3if preBanSummaryOpt.isSome:
4 let summary = preBanSummaryOpt.get()
5

getSearchCommentsSummary Internal Link

Parameters

NameTypeRequiredDescription
tenantIdstringYes
optionsGetSearchCommentsSummaryOptionsNo

Response

Returns: Option[ModerationCommentSearchResponse]

Example

getSearchCommentsSummary Example
Copy Copy
1
2let (summaryOpt, httpResp) = client.getSearchCommentsSummary(
3 tenantId = "my-tenant-123",
4 options = GetSearchCommentsSummaryOptions()
5)
6
7if summaryOpt.isSome:
8 let summary = summaryOpt.get()
9 echo summary
10

getSearchPages Internal Link

Parameters

NameTypeRequiredDescription
tenantIdstringYes
optionsGetSearchPagesOptionsNo

Response

Returns: Option[ModerationPageSearchResponse]

Example

getSearchPages Example
Copy Copy
1
2let (searchResp, httpResp) = client.getSearchPages(
3 tenantId = "my-tenant-123",
4 options = GetSearchPagesOptions(
5 page: 1,
6 pageSize: 20,
7 query: "spam"
8 )
9)
10
11if searchResp.isSome:
12 let resp = searchResp.get()
13

getSearchSites Internal Link

Parameters

NameTypeRequiredDescription
tenantIdstringYes
optionsGetSearchSitesOptionsNo

Response

Returns: Option[ModerationSiteSearchResponse]

Example

getSearchSites Example
Copy Copy
1
2let (searchResult, httpResp) = client.getSearchSites(tenantId = "my-tenant-123", options = GetSearchSitesOptions())
3if searchResult.isSome:
4 let siteResp = searchResult.get()
5

getSearchSuggest Internal Link

Parameters

NameTypeRequiredDescription
tenantIdstringYes
optionsGetSearchSuggestOptionsNo

Response

Returns: Option[ModerationSuggestResponse]

Example

getSearchSuggest Example
Copy Copy
1
2let (suggestOpt, httpResp) = client.getSearchSuggest(
3 tenantId = "my-tenant-123",
4 options = GetSearchSuggestOptions(),
5)
6
7if suggestOpt.isSome:
8 let suggest = suggestOpt.get()
9 echo suggest
10

getSearchUsers Internal Link

Parameters

NameTypeRequiredDescription
tenantIdstringYes
optionsGetSearchUsersOptionsNo

Response

Returns: Option[ModerationUserSearchResponse]

Example

getSearchUsers Example
Copy Copy
1
2let (searchRes, httpRes) = client.getSearchUsers(tenantId = "my-tenant-123", options = default(GetSearchUsersOptions))
3if searchRes.isSome:
4 let data = searchRes.get()
5 echo data
6

getTrustFactor Internal Link

Parameters

NameTypeRequiredDescription
tenantIdstringYes
optionsGetTrustFactorOptionsNo

Response

Returns: Option[GetUserTrustFactorResponse]

Example

getTrustFactor Example
Copy Copy
1
2let (trustOpt, httpResp) = client.getTrustFactor(tenantId = "my-tenant-123", options = GetTrustFactorOptions())
3if trustOpt.isSome:
4 let trust = trustOpt.get()
5 discard trust
6

getUserBanPreference Internal Link

Parameters

NameTypeRequiredDescription
tenantIdstringYes
ssostring = ""No

Response

Returns: Option[APIModerateGetUserBanPreferencesResponse]

Example

getUserBanPreference Example
Copy Copy
1
2let (maybePref, httpResp) = client.getUserBanPreference(tenantId = "my-tenant-123", sso = "")
3if maybePref.isSome:
4 let pref = maybePref.get()
5 echo pref
6

getUserInternalProfile Internal Link

Parameters

NameTypeRequiredDescription
tenantIdstringYes
optionsGetUserInternalProfileOptionsNo

Response

Returns: Option[GetUserInternalProfileResponse]

Example

getUserInternalProfile Example
Copy Copy
1
2let (profileOpt, httpResp) = client.getUserInternalProfile(
3 tenantId = "my-tenant-123",
4 options = GetUserInternalProfileOptions()
5)
6
7if profileOpt.isSome:
8 let profile = profileOpt.get()
9

postAdjustCommentVotes Internal Link

Parameters

NameTypeRequiredDescription
tenantIdstringYes
commentIdstringYes
adjustCommentVotesParamsAdjustCommentVotesParamsNo
optionsPostAdjustCommentVotesOptionsNo

Response

Returns: Option[AdjustVotesResponse]

Example

postAdjustCommentVotes Example
Copy Copy
1
2let (adjustRespOpt, httpResp) = client.postAdjustCommentVotes(
3 tenantId = "my-tenant-123",
4 commentId = "cmt-789",
5 adjustCommentVotesParams = AdjustCommentVotesParams(),
6 options = PostAdjustCommentVotesOptions()
7)
8
9if adjustRespOpt.isSome:
10 let adjustResp = adjustRespOpt.get()
11

postApiExport Internal Link

Parameters

NameTypeRequiredDescription
tenantIdstringYes
optionsPostApiExportOptionsNo

Response

Returns: Option[ModerationExportResponse]

Example

postApiExport Example
Copy Copy
1
2let (optExport, httpResp) = client.postApiExport(tenantId = "my-tenant-123", options = PostApiExportOptions())
3if optExport.isSome:
4 let export = optExport.get()
5 echo export
6

postBanUserFromComment Internal Link

Parameters

NameTypeRequiredDescription
tenantIdstringYes
commentIdstringYes
optionsPostBanUserFromCommentOptionsNo

Response

Returns: Option[BanUserFromCommentResult]

Example

postBanUserFromComment Example
Copy Copy
1
2let (banResult, httpResp) = client.postBanUserFromComment(
3 tenantId = "my-tenant-123",
4 commentId = "cmt-456",
5 options = PostBanUserFromCommentOptions()
6)
7
8if banResult.isSome:
9 let result = banResult.get()
10 echo result
11

postBanUserUndo Internal Link

Parameters

NameTypeRequiredDescription
tenantIdstringYes
banUserUndoParamsBanUserUndoParamsNo
ssostring = ""No

Response

Returns: Option[APIEmptyResponse]

Example

postBanUserUndo Example
Copy Copy
1
2let (apiResp, httpResp) = client.postBanUserUndo(
3 tenantId = "my-tenant-123",
4 banUserUndoParams = BanUserUndoParams(userId = "user-456"),
5 sso = ""
6)
7
8if apiResp.isSome:
9 let _ = apiResp.get()
10

postBulkPreBanSummary Internal Link

Parameters

NameTypeRequiredDescription
tenantIdstringYes
bulkPreBanParamsBulkPreBanParamsNo
optionsPostBulkPreBanSummaryOptionsNo

Response

Returns: Option[BulkPreBanSummary]

Example

postBulkPreBanSummary Example
Copy Copy
1
2let bulkParams = BulkPreBanParams(emailAddresses: @["spam@example.com"], ipAddresses: @["203.0.113.5"])
3let opt = PostBulkPreBanSummaryOptions(dryRun: false, maxResults: 0)
4let (summaryOpt, httpResp) = client.postBulkPreBanSummary(tenantId = "my-tenant-123", bulkPreBanParams = bulkParams, options = opt)
5if summaryOpt.isSome:
6 let _ = summaryOpt.get()
7

postCommentsByIds Internal Link

Parameters

NameTypeRequiredDescription
tenantIdstringYes
commentsByIdsParamsCommentsByIdsParamsNo
ssostring = ""No

Response

Returns: Option[ModerationAPIChildCommentsResponse]

Example

postCommentsByIds Example
Copy Copy
1
2let tenantId = "my-tenant-123"
3let params = CommentsByIdsParams(commentIds = @["cmt-001", "cmt-002"])
4let (maybeResp, httpResp) = client.postCommentsByIds(tenantId = tenantId, commentsByIdsParams = params, sso = "")
5if maybeResp.isSome:
6 let resp = maybeResp.get()
7 # use resp as needed
8

postFlagComment Internal Link

Parameters

NameTypeRequiredDescription
tenantIdstringYes
commentIdstringYes
optionsPostFlagCommentOptionsNo

Response

Returns: Option[APIEmptyResponse]

Example

postFlagComment Example
Copy Copy
1
2let opts = PostFlagCommentOptions()
3let (response, httpResponse) = client.postFlagComment(
4 tenantId = "my-tenant-123",
5 commentId = "comment-987654",
6 options = opts,
7)
8if response.isSome:
9 let result = response.get()
10

postRemoveComment Internal Link

Parameters

NameTypeRequiredDescription
tenantIdstringYes
commentIdstringYes
optionsPostRemoveCommentOptionsNo

Response

Returns: Option[PostRemoveCommentApiResponse]

Example

postRemoveComment Example
Copy Copy
1
2let (apiResponseOpt, httpResp) = client.postRemoveComment(
3 tenantId = "my-tenant-123",
4 commentId = "comment-987654",
5 options = PostRemoveCommentOptions()
6)
7
8if apiResponseOpt.isSome:
9 let apiResponse = apiResponseOpt.get()
10

postRestoreDeletedComment Internal Link

Parameters

NameTypeRequiredDescription
tenantIdstringYes
commentIdstringYes
optionsPostRestoreDeletedCommentOptionsNo

Response

Returns: Option[APIEmptyResponse]

Example

postRestoreDeletedComment Example
Copy Copy
1
2let (respOpt, httpResp) = client.postRestoreDeletedComment(
3 tenantId = "my-tenant-123",
4 commentId = "comment-456",
5 options = default(PostRestoreDeletedCommentOptions)
6)
7
8if respOpt.isSome:
9 let empty = respOpt.get()
10 echo "Comment restored"
11

postSetCommentApprovalStatus Internal Link

Parameters

NameTypeRequiredDescription
tenantIdstringYes
commentIdstringYes
optionsPostSetCommentApprovalStatusOptionsNo

Response

Returns: Option[SetCommentApprovedResponse]

Example

postSetCommentApprovalStatus Example
Copy Copy
1
2let (approvedOpt, httpResp) = client.postSetCommentApprovalStatus(
3 tenantId = "my-tenant-123",
4 commentId = "comment-7890",
5 options = PostSetCommentApprovalStatusOptions()
6)
7
8if approvedOpt.isSome:
9 let approved = approvedOpt.get()
10 echo approved
11

postSetCommentReviewStatus Internal Link

Parameters

NameTypeRequiredDescription
tenantIdstringYes
commentIdstringYes
optionsPostSetCommentReviewStatusOptionsNo

Response

Returns: Option[APIEmptyResponse]

Example

postSetCommentReviewStatus Example
Copy Copy
1
2let (apiResp, httpResp) = client.postSetCommentReviewStatus(
3 tenantId = "my-tenant-123",
4 commentId = "cmt-7890",
5 options = PostSetCommentReviewStatusOptions()
6)
7
8if apiResp.isSome:
9 let _ = apiResp.get()
10 discard
11else:
12 discard
13

postSetCommentSpamStatus Internal Link

Parameters

NameTypeRequiredDescription
tenantIdstringYes
commentIdstringYes
optionsPostSetCommentSpamStatusOptionsNo

Response

Returns: Option[APIEmptyResponse]

Example

postSetCommentSpamStatus Example
Copy Copy
1
2let defaultOpts = PostSetCommentSpamStatusOptions()
3let (maybeResp, httpResp) = client.postSetCommentSpamStatus(tenantId = "my-tenant-123", commentId = "cmt-456789", options = defaultOpts)
4if maybeResp.isSome:
5 let resp = maybeResp.get()
6

postSetCommentText Internal Link

Parameters

NameTypeRequiredDescription
tenantIdstringYes
commentIdstringYes
setCommentTextParamsSetCommentTextParamsNo
optionsPostSetCommentTextOptionsNo

Response

Returns: Option[SetCommentTextResponse]

Example

postSetCommentText Example
Copy Copy
1
2let (responseOpt, httpResponse) = client.postSetCommentText(
3 tenantId = "my-tenant-123",
4 commentId = "comment-987654",
5 setCommentTextParams = SetCommentTextParams(),
6 options = PostSetCommentTextOptions()
7)
8
9if responseOpt.isSome:
10 let updatedComment = responseOpt.get()
11

postUnFlagComment Internal Link

Parameters

NameTypeRequiredDescription
tenantIdstringYes
commentIdstringYes
optionsPostUnFlagCommentOptionsNo

Response

Returns: Option[APIEmptyResponse]

Example

postUnFlagComment Example
Copy Copy
1
2let (maybeResp, httpResp) = client.postUnFlagComment(
3 tenantId = "my-tenant-123",
4 commentId = "cmt-456789",
5 options = default(PostUnFlagCommentOptions)
6)
7
8if maybeResp.isSome:
9 let emptyResp = maybeResp.get()
10

postVote Internal Link

Parameters

NameTypeRequiredDescription
tenantIdstringYes
commentIdstringYes
optionsPostVoteOptionsNo

Response

Returns: Option[VoteResponse]

Example

postVote Example
Copy Copy
1
2let (voteOpt, httpResp) = client.postVote(
3 tenantId = "my-tenant-123",
4 commentId = "comment-789",
5 options = default(PostVoteOptions)
6)
7
8if voteOpt.isSome:
9 let vote = voteOpt.get()
10

putAwardBadge Internal Link

Parameters

NameTypeRequiredDescription
tenantIdstringYes
badgeIdstringNo
optionsPutAwardBadgeOptionsNo

Response

Returns: Option[AwardUserBadgeResponse]

Example

putAwardBadge Example
Copy Copy
1
2let (response, httpResponse) = client.putAwardBadge(
3 tenantId = "my-tenant-123",
4 badgeId = "gold-badge",
5 options = PutAwardBadgeOptions()
6)
7
8if response.isSome:
9 let award = response.get()
10

putCloseThread Internal Link

Parameters

NameTypeRequiredDescription
tenantIdstringYes
urlIdstringYes
ssostring = ""No

Response

Returns: Option[APIEmptyResponse]

Example

putCloseThread Example
Copy Copy
1
2let (respOpt, httpResp) = client.putCloseThread(tenantId = "my-tenant-123", urlId = "news/fastcomments-integration", sso = "")
3if respOpt.isSome:
4 let empty = respOpt.get()
5 echo "Thread successfully closed"
6

putRemoveBadge Internal Link

Parameters

NameTypeRequiredDescription
tenantIdstringYes
badgeIdstringNo
optionsPutRemoveBadgeOptionsNo

Response

Returns: Option[RemoveUserBadgeResponse]

Example

putRemoveBadge Example
Copy Copy
1
2let (maybeResp, httpResp) = client.putRemoveBadge(
3 tenantId = "my-tenant-123",
4 badgeId = "badge-456",
5 options = PutRemoveBadgeOptions()
6)
7
8if maybeResp.isSome:
9 let badgeResp = maybeResp.get()
10

putReopenThread Internal Link

Parameters

NameTypeRequiredDescription
tenantIdstringYes
urlIdstringYes
ssostring = ""No

Response

Returns: Option[APIEmptyResponse]

Example

putReopenThread Example
Copy Copy
1
2let (apiRespOpt, httpResp) = client.putReopenThread(
3 tenantId = "my-tenant-123",
4 urlId = "news/article-title",
5 sso = ""
6)
7
8if apiRespOpt.isSome:
9 let emptyResp = apiRespOpt.get()
10 discard
11

setTrustFactor Internal Link

Parameters

NameTypeRequiredDescription
tenantIdstringYes
optionsSetTrustFactorOptionsNo

Response

Returns: Option[SetUserTrustFactorResponse]

Example

setTrustFactor Example
Copy Copy
1
2let opts = SetTrustFactorOptions(userId = "user-456", trustFactor = 5, reason = "spam detection")
3let (trustResponse, httpResponse) = client.setTrustFactor(tenantId = "my-tenant-123", options = opts)
4if trustResponse.isSome:
5 let result = trustResponse.get()
6

createModerator Internal Link

Parameters

NameTypeRequiredDescription
tenantIdstringYes
createModeratorBodyCreateModeratorBodyNo

Response

Returns: Option[CreateModeratorResponse]

Example

createModerator Example
Copy Copy
1
2let (moderatorRes, httpResp) = client.createModerator(tenantId = "my-tenant-123", createModeratorBody = CreateModeratorBody())
3if moderatorRes.isSome:
4 let moderator = moderatorRes.get()
5

deleteModerator Internal Link

Parameters

NameTypeRequiredDescription
tenantIdstringYes
idstringNo
sendEmailstring = ""No

Response

Returns: Option[APIEmptyResponse]

Example

deleteModerator Example
Copy Copy
1
2let (apiResp, httpResp) = client.deleteModerator(
3 tenantId = "my-tenant-123",
4 id = "mod-789",
5 sendEmail = "admin@mydomain.com",
6)
7
8if apiResp.isSome:
9 let empty = apiResp.get()
10 echo "Moderator removed"
11

getModerator Internal Link

Parameters

NameTypeRequiredDescription
tenantIdstringYes
idstringNo

Response

Returns: Option[GetModeratorResponse]

Example

getModerator Example
Copy Copy
1
2let (moderatorOpt, httpResponse) = client.getModerator(tenantId = "my-tenant-123", id = "moderator-456")
3if moderatorOpt.isSome:
4 let moderator = moderatorOpt.get()
5 discard moderator
6

getModerators Internal Link

Parameters

NameTypeRequiredDescription
tenantIdstringYes
skipfloat64No

Response

Returns: Option[GetModeratorsResponse]

Example

getModerators Example
Copy Copy
1
2let (moderatorsOpt, httpResp) = client.getModerators(tenantId = "my-tenant-123", skip = 0.0)
3if moderatorsOpt.isSome:
4 let moderators = moderatorsOpt.get()
5 echo moderators
6

updateModerator Internal Link

Parameters

NameTypeRequiredDescription
tenantIdstringYes
idstringNo
updateModeratorBodyUpdateModeratorBodyNo

Response

Returns: Option[APIEmptyResponse]

Example

updateModerator Example
Copy Copy
1
2let body = UpdateModeratorBody(name = "John Doe", email = "john@example.com", isActive = true)
3let (apiResult, httpResp) = client.updateModerator(tenantId = "my-tenant-123", id = "mod-456", updateModeratorBody = body)
4if apiResult.isSome:
5 let result = apiResult.get()
6

deleteNotificationCount Internal Link

Parameters

NameTypeRequiredDescription
tenantIdstringYes
idstringNo

Response

Returns: Option[APIEmptyResponse]

Example

deleteNotificationCount Example
Copy Copy
1
2let (apiRespOpt, httpResp) = client.deleteNotificationCount(tenantId = "my-tenant-123", id = "notif-456")
3if apiRespOpt.isSome:
4 let _ = apiRespOpt.get()
5

getCachedNotificationCount Internal Link

Parameters

NameTypeRequiredDescription
tenantIdstringYes
idstringNo

Response

Returns: Option[GetCachedNotificationCountResponse]

Example

getCachedNotificationCount Example
Copy Copy
1
2let (cachedCountOpt, httpResp) = client.getCachedNotificationCount(tenantId = "my-tenant-123", id = "article-456")
3if cachedCountOpt.isSome:
4 let cachedCount = cachedCountOpt.get()
5 echo cachedCount
6

getNotificationCount Internal Link

Parameters

NameTypeRequiredDescription
tenantIdstringYes
optionsGetNotificationCountOptionsNo

Response

Returns: Option[GetNotificationCountResponse]

Example

getNotificationCount Example
Copy Copy
1
2let (notifOpt, httpResp) = client.getNotificationCount(tenantId = "my-tenant-123", options = GetNotificationCountOptions())
3if notifOpt.isSome:
4 let notif = notifOpt.get()
5 echo notif
6

getNotifications Internal Link

Parameters

NameTypeRequiredDescription
tenantIdstringYes
optionsGetNotificationsOptionsNo

Response

Returns: Option[GetNotificationsResponse]

Example

getNotifications Example
Copy Copy
1
2let (notifOpt, httpResp) = client.getNotifications(tenantId = "my-tenant-123", options = GetNotificationsOptions())
3if notifOpt.isSome:
4 let notifications = notifOpt.get()
5

updateNotification Internal Link

Parameters

NameTypeRequiredDescription
tenantIdstringYes
idstringNo
updateNotificationBodyUpdateNotificationBodyNo
userIdstring = ""No

Response

Returns: Option[APIEmptyResponse]

Example

updateNotification Example
Copy Copy
1
2let body = UpdateNotificationBody(message: "Your comment was approved", isRead: false)
3let (optResp, httpResp) = client.updateNotification(
4 tenantId = "my-tenant-123",
5 id = "notif-789",
6 updateNotificationBody = body,
7 userId = "user-42"
8)
9if optResp.isSome:
10 let _ = optResp.get()
11

createV1PageReact Internal Link

Parameters

NameTypeRequiredDescription
tenantIdstringYes
urlIdstringYes
titlestring = ""No

Response

Returns: Option[CreateV1PageReact]

Example

createV1PageReact Example
Copy Copy
1
2let (pageOpt, httpResp) = client.createV1PageReact(
3 tenantId = "my-tenant-123",
4 urlId = "news/article-456",
5 title = "Breaking News: Nim Takes Over"
6)
7
8if pageOpt.isSome:
9 let page = pageOpt.get()
10 discard page
11 discard httpResp
12

createV2PageReact Internal Link

Parameters

NameTypeRequiredDescription
tenantIdstringYes
urlIdstringYes
idstringNo
titlestring = ""No

Response

Returns: Option[CreateV1PageReact]

Example

createV2PageReact Example
Copy Copy
1
2let (pageResult, httpResponse) = client.createV2PageReact(
3 tenantId = "my-tenant-123",
4 urlId = "news/article-title",
5 id = "page-456",
6 title = "Breaking News",
7)
8
9if pageResult.isSome:
10 let page = pageResult.get()
11 # use `page` as needed
12

deleteV1PageReact Internal Link

Parameters

NameTypeRequiredDescription
tenantIdstringYes
urlIdstringYes

Response

Returns: Option[CreateV1PageReact]

Example

deleteV1PageReact Example
Copy Copy
1
2let (reactOpt, httpResp) = client.deleteV1PageReact(tenantId = "my-tenant-123", urlId = "news/article-title")
3if reactOpt.isSome:
4 let react = reactOpt.get()
5

deleteV2PageReact Internal Link

Parameters

NameTypeRequiredDescription
tenantIdstringYes
urlIdstringYes
idstringNo

Response

Returns: Option[CreateV1PageReact]

Example

deleteV2PageReact Example
Copy Copy
1
2let (maybeReact, httpResp) = client.deleteV2PageReact(
3 tenantId = "my-tenant-123",
4 urlId = "news/article-title",
5 id = "react-456",
6)
7
8if maybeReact.isSome:
9 let react = maybeReact.get()
10 echo react
11

getV1PageLikes Internal Link

Parameters

NameTypeRequiredDescription
tenantIdstringYes
urlIdstringYes

Response

Returns: Option[GetV1PageLikes]

Example

getV1PageLikes Example
Copy Copy
1
2let (response, httpResponse) = client.getV1PageLikes(tenantId = "my-tenant-123", urlId = "news/article-title")
3if response.isSome:
4 let pageLikes = response.get()
5 # use pageLikes as needed
6

getV2PageReacts Internal Link

Parameters

NameTypeRequiredDescription
tenantIdstringYes
urlIdstringYes

Response

Returns: Option[GetV2PageReacts]

Example

getV2PageReacts Example
Copy Copy
1
2let (reactsOpt, httpResp) = client.getV2PageReacts(tenantId = "my-tenant-123", urlId = "news/article-title")
3if reactsOpt.isSome:
4 let reacts = reactsOpt.get()
5 echo reacts
6

getV2PageReactUsers Internal Link

Parameters

NameTypeRequiredDescription
tenantIdstringYes
urlIdstringYes
idstringNo

Response

Returns: Option[GetV2PageReactUsersResponse]

Example

getV2PageReactUsers Example
Copy Copy
1
2let (maybeResponse, httpResponse) = client.getV2PageReactUsers(
3 tenantId = "my-tenant-123",
4 urlId = "news/article-title",
5 id = "user-456"
6)
7
8if maybeResponse.isSome:
9 let resp = maybeResponse.get()
10 echo resp
11

addPage Internal Link

Parameters

NameTypeRequiredDescription
tenantIdstringYes
createAPIPageDataCreateAPIPageDataNo

Response

Returns: Option[AddPageAPIResponse]

Example

addPage Example
Copy Copy
1
2let pageData = CreateAPIPageData(
3 urlId = "news/article-2024",
4 title = "Breaking News: Nim Takes Over",
5 description = "An in-depth article about Nim's rise.",
6 tags = @["nim", "programming", "news"]
7)
8
9let (addPageResp, httpResp) = client.addPage(
10 tenantId = "my-tenant-123",
11 createAPIPageData = pageData
12)
13
14if addPageResp.isSome:
15 let resp = addPageResp.get()
16 echo resp
17

deletePage Internal Link

Parameters

NameTypeRequiredDescription
tenantIdstringYes
idstringNo

Response

Returns: Option[DeletePageAPIResponse]

Example

deletePage Example
Copy Copy
1
2let (deleteRespOpt, httpResp) = client.deletePage(tenantId = "my-tenant-123", id = "news/article-title")
3if deleteRespOpt.isSome:
4 let deleteResp = deleteRespOpt.get()
5 discard deleteResp
6discard httpResp
7

getOfflineUsers Internal Link

Past commenters on the page who are NOT currently online. Sorted by displayName. Use this after exhausting /users/online to render a "Members" section. Cursor pagination on commenterName: server walks the partial {tenantId, urlId, commenterName} index from afterName forward via $gt, no $skip cost.

Parameters

NameTypeRequiredDescription
tenantIdstringYes
urlIdstringYes
optionsGetOfflineUsersOptionsNo

Response

Returns: Option[PageUsersOfflineResponse]

Example

getOfflineUsers Example
Copy Copy
1
2let (offlineResp, httpResponse) = client.getOfflineUsers(
3 tenantId = "my-tenant-123",
4 urlId = "news/article-title",
5 options = GetOfflineUsersOptions()
6)
7if offlineResp.isSome:
8 let offline = offlineResp.get()
9 echo offline)
10

getOnlineUsers Internal Link

Currently-online viewers of a page: people whose websocket session is subscribed to the page right now. Returns anonCount + totalCount (room-wide subscribers, including anon viewers we don't enumerate).

Parameters

NameTypeRequiredDescription
tenantIdstringYes
urlIdstringYes
optionsGetOnlineUsersOptionsNo

Response

Returns: Option[PageUsersOnlineResponse]

Example

getOnlineUsers Example
Copy Copy
1
2let opts = GetOnlineUsersOptions()
3let (onlineUsersOpt, httpResp) = client.getOnlineUsers(tenantId = "my-tenant-123", urlId = "news/article-title", options = opts)
4if onlineUsersOpt.isSome:
5 let onlineUsers = onlineUsersOpt.get()
6 echo onlineUsers
7

getPageByURLId Internal Link

Parameters

NameTypeRequiredDescription
tenantIdstringYes
urlIdstringYes

Response

Returns: Option[GetPageByURLIdAPIResponse]

Example

getPageByURLId Example
Copy Copy
1
2let (pageOpt, httpRes) = client.getPageByURLId(tenantId = "my-tenant-123", urlId = "news/article-title")
3if pageOpt.isSome:
4 let page = pageOpt.get()
5 echo page
6

getPages Internal Link

Parameters

NameTypeRequiredDescription
tenantIdstringYes

Response

Returns: Option[GetPagesAPIResponse]

Example

getPages Example
Copy Copy
1
2let (pagesOpt, httpResp) = client.getPages(tenantId = "my-tenant-123")
3if pagesOpt.isSome:
4 let pages = pagesOpt.get()
5 echo pages
6else:
7 echo "No pages returned"
8echo httpResp
9

getPagesPublic Internal Link

List pages for a tenant. Used by the FChat desktop client to populate its room list. Requires enableFChat to be true on the resolved custom config for each page. Pages that require SSO are filtered against the requesting user's group access.

Parameters

NameTypeRequiredDescription
tenantIdstringYes
optionsGetPagesPublicOptionsNo

Response

Returns: Option[GetPublicPagesResponse]

Example

getPagesPublic Example
Copy Copy
1
2let (response, httpResponse) = client.getPagesPublic(tenantId = "my-tenant-123", options = GetPagesPublicOptions())
3if response.isSome:
4 let pages = response.get()
5 echo pages
6

getUsersInfo Internal Link

Bulk user info for a tenant. Given userIds, return display info from User / SSOUser. Used by the comment widget to enrich users that just appeared via a presence event. No page context: privacy is enforced uniformly (private profiles are masked).

Parameters

NameTypeRequiredDescription
tenantIdstringYes
idsstringNo

Response

Returns: Option[PageUsersInfoResponse]

Example

getUsersInfo Example
Copy Copy
1
2let (usersInfoOpt, httpResp) = client.getUsersInfo(tenantId = "my-tenant-123", ids = "user42")
3if usersInfoOpt.isSome:
4 let usersInfo = usersInfoOpt.get()
5

patchPage Internal Link

Parameters

NameTypeRequiredDescription
tenantIdstringYes
idstringNo
updateAPIPageDataUpdateAPIPageDataNo

Response

Returns: Option[PatchPageAPIResponse]

Example

patchPage Example
Copy Copy
1
2let (response, httpResponse) = client.patchPage(
3 tenantId = "my-tenant-123",
4 id = "news/article-456",
5 updateAPIPageData = UpdateAPIPageData(title = "Updated article title", description = "Revised description")
6)
7
8if response.isSome:
9 let resp = response.get()
10

deletePendingWebhookEvent Internal Link

Parameters

NameTypeRequiredDescription
tenantIdstringYes
idstringNo

Response

Returns: Option[APIEmptyResponse]

Example

deletePendingWebhookEvent Example
Copy Copy
1
2let (response, httpResponse) = client.deletePendingWebhookEvent(tenantId = "my-tenant-123", id = "event-456")
3if response.isSome:
4 let empty = response.get()
5

getPendingWebhookEventCount Internal Link

Parameters

NameTypeRequiredDescription
tenantIdstringYes
optionsGetPendingWebhookEventCountOptionsNo

Response

Returns: Option[GetPendingWebhookEventCountResponse]

Example

getPendingWebhookEventCount Example
Copy Copy
1
2let (pendingCountOpt, httpResponse) = client.getPendingWebhookEventCount(tenantId = "my-tenant-123", options = GetPendingWebhookEventCountOptions())
3if pendingCountOpt.isSome:
4 let pendingCount = pendingCountOpt.get()
5 echo pendingCount
6

getPendingWebhookEvents Internal Link

Parameters

NameTypeRequiredDescription
tenantIdstringYes
optionsGetPendingWebhookEventsOptionsNo

Response

Returns: Option[GetPendingWebhookEventsResponse]

Example

getPendingWebhookEvents Example
Copy Copy
1
2let (maybeResp, httpResp) = client.getPendingWebhookEvents(
3 tenantId = "my-tenant-123",
4 options = GetPendingWebhookEventsOptions()
5)
6
7if maybeResp.isSome:
8 let resp = maybeResp.get()
9

createQuestionConfig Internal Link

Parameters

NameTypeRequiredDescription
tenantIdstringYes
createQuestionConfigBodyCreateQuestionConfigBodyNo

Response

Returns: Option[CreateQuestionConfigResponse]

Example

createQuestionConfig Example
Copy Copy
1
2let configBody = CreateQuestionConfigBody()
3let (maybeResp, httpResp) = client.createQuestionConfig(
4 tenantId = "my-tenant-123",
5 createQuestionConfigBody = configBody,
6)
7if maybeResp.isSome:
8 let resp = maybeResp.get()
9 # use resp as needed
10

deleteQuestionConfig Internal Link

Parameters

NameTypeRequiredDescription
tenantIdstringYes
idstringNo

Response

Returns: Option[APIEmptyResponse]

Example

deleteQuestionConfig Example
Copy Copy
1
2let (apiResult, httpResponse) = client.deleteQuestionConfig(tenantId = "my-tenant-123", id = "question-config-456")
3if apiResult.isSome:
4 let empty = apiResult.get()
5

getQuestionConfig Internal Link

Parameters

NameTypeRequiredDescription
tenantIdstringYes
idstringNo

Response

Returns: Option[GetQuestionConfigResponse]

Example

getQuestionConfig Example
Copy Copy
1
2let (questionConfigOpt, httpResp) = client.getQuestionConfig(tenantId = "my-tenant-123", id = "question-987")
3if questionConfigOpt.isSome:
4 let config = questionConfigOpt.get()
5 echo config
6

getQuestionConfigs Internal Link

Parameters

NameTypeRequiredDescription
tenantIdstringYes
skipfloat64No

Response

Returns: Option[GetQuestionConfigsResponse]

Example

getQuestionConfigs Example
Copy Copy
1
2let (response, httpResponse) = client.getQuestionConfigs(tenantId = "my-tenant-123", skip = 0.0)
3if response.isSome:
4 let configs = response.get()
5 echo configs
6

updateQuestionConfig Internal Link

Parameters

NameTypeRequiredDescription
tenantIdstringYes
idstringNo
updateQuestionConfigBodyUpdateQuestionConfigBodyNo

Response

Returns: Option[APIEmptyResponse]

Example

updateQuestionConfig Example
Copy Copy
1
2let (apiResp, httpResp) = client.updateQuestionConfig(
3 tenantId = "my-tenant-123",
4 id = "question-456",
5 updateQuestionConfigBody = UpdateQuestionConfigBody()
6)
7
8if apiResp.isSome:
9 let resp = apiResp.get()
10

createQuestionResult Internal Link

Parameters

NameTypeRequiredDescription
tenantIdstringYes
createQuestionResultBodyCreateQuestionResultBodyNo

Response

Returns: Option[CreateQuestionResultResponse]

Example

createQuestionResult Example
Copy Copy
1
2let tenantId = "my-tenant-123"
3let body = CreateQuestionResultBody()
4let (optResult, httpResp) = client.createQuestionResult(tenantId = tenantId, createQuestionResultBody = body)
5if optResult.isSome:
6 let result = optResult.get()
7 echo result
8

deleteQuestionResult Internal Link

Parameters

NameTypeRequiredDescription
tenantIdstringYes
idstringNo

Response

Returns: Option[APIEmptyResponse]

Example

deleteQuestionResult Example
Copy Copy
1
2let (maybeResult, httpResp) = client.deleteQuestionResult(tenantId = "my-tenant-123", id = "question-456")
3if maybeResult.isSome:
4 let result = maybeResult.get()
5

getQuestionResult Internal Link

Parameters

NameTypeRequiredDescription
tenantIdstringYes
idstringNo

Response

Returns: Option[GetQuestionResultResponse]

Example

getQuestionResult Example
Copy Copy
1
2let (optResult, httpResp) = client.getQuestionResult(tenantId = "my-tenant-123", id = "question-456")
3if optResult.isSome:
4 let result = optResult.get()
5 discard result
6

getQuestionResults Internal Link

Parameters

NameTypeRequiredDescription
tenantIdstringYes
optionsGetQuestionResultsOptionsNo

Response

Returns: Option[GetQuestionResultsResponse]

Example

getQuestionResults Example
Copy Copy
1
2let (response, httpResponse) = client.getQuestionResults(
3 tenantId = "my-tenant-123",
4 options = GetQuestionResultsOptions()
5)
6
7if response.isSome:
8 let results = response.get()
9 echo results
10

updateQuestionResult Internal Link

Parameters

NameTypeRequiredDescription
tenantIdstringYes
idstringNo
updateQuestionResultBodyUpdateQuestionResultBodyNo

Response

Returns: Option[APIEmptyResponse]

Example

updateQuestionResult Example
Copy Copy
1
2let (optResp, httpResp) = client.updateQuestionResult(
3 tenantId = "my-tenant-123",
4 id = "question-456",
5 updateQuestionResultBody = UpdateQuestionResultBody()
6)
7
8if optResp.isSome:
9 let resp = optResp.get()
10

aggregateQuestionResults Internal Link

Parameters

NameTypeRequiredDescription
tenantIdstringYes
optionsAggregateQuestionResultsOptionsNo

Response

Returns: Option[AggregateQuestionResultsResponse]

Example

aggregateQuestionResults Example
Copy Copy
1
2let opts = AggregateQuestionResultsOptions()
3let (aggResultOpt, httpResp) = client.aggregateQuestionResults(tenantId = "my-tenant-123", options = opts)
4if aggResultOpt.isSome:
5 let aggResult = aggResultOpt.get()
6

bulkAggregateQuestionResults Internal Link

Parameters

NameTypeRequiredDescription
tenantIdstringYes
bulkAggregateQuestionResultsRequestBulkAggregateQuestionResultsRequestNo
forceRecalculateboolNo

Response

Returns: Option[BulkAggregateQuestionResultsResponse]

Example

bulkAggregateQuestionResults Example
Copy Copy
1
2let request = BulkAggregateQuestionResultsRequest()
3let (maybeResult, httpResp) = client.bulkAggregateQuestionResults(
4 tenantId = "my-tenant-123",
5 bulkAggregateQuestionResultsRequest = request,
6 forceRecalculate = false)
7
8if maybeResult.isSome:
9 let result = maybeResult.get()
10

combineCommentsWithQuestionResults Internal Link

Parameters

NameTypeRequiredDescription
tenantIdstringYes
optionsCombineCommentsWithQuestionResultsOptionsNo

Response

Returns: Option[CombineQuestionResultsWithCommentsResponse]

Example

combineCommentsWithQuestionResults Example
Copy Copy
1
2let (combineOpt, httpResponse) = client.combineCommentsWithQuestionResults(
3 tenantId = "my-tenant-123",
4 options = default(CombineCommentsWithQuestionResultsOptions)
5)
6
7if combineOpt.isSome:
8 let combineResult = combineOpt.get()
9

addSSOUser Internal Link

Parameters

NameTypeRequiredDescription
tenantIdstringYes
createAPISSOUserDataCreateAPISSOUserDataNo

Response

Returns: Option[AddSSOUserAPIResponse]

Example

addSSOUser Example
Copy Copy
1
2let (optResp, httpResp) = client.addSSOUser(tenantId = "my-tenant-123", createAPISSOUserData = CreateAPISSOUserData())
3if optResp.isSome:
4 let userResp = optResp.get()
5

deleteSSOUser Internal Link

Parameters

NameTypeRequiredDescription
tenantIdstringYes
idstringNo
optionsDeleteSSOUserOptionsNo

Response

Returns: Option[DeleteSSOUserAPIResponse]

Example

deleteSSOUser Example
Copy Copy
1
2let (apiRespOpt, httpResp) = client.deleteSSOUser(
3 tenantId = "my-tenant-123",
4 id = "user-456",
5 options = DeleteSSOUserOptions()
6)
7
8if apiRespOpt.isSome:
9 let apiResp = apiRespOpt.get()
10

getSSOUserByEmail Internal Link

Parameters

NameTypeRequiredDescription
tenantIdstringYes
emailstringNo

Response

Returns: Option[GetSSOUserByEmailAPIResponse]

Example

getSSOUserByEmail Example
Copy Copy
1
2let (optResp, httpResp) = client.getSSOUserByEmail(tenantId = "my-tenant-123", email = "john.doe@example.com")
3if optResp.isSome:
4 let user = optResp.get()
5 discard user
6

getSSOUserById Internal Link

Parameters

NameTypeRequiredDescription
tenantIdstringYes
idstringNo

Response

Returns: Option[GetSSOUserByIdAPIResponse]

Example

getSSOUserById Example
Copy Copy
1
2let (response, httpResponse) = client.getSSOUserById(tenantId = "my-tenant-123", id = "user-456")
3if response.isSome:
4 let userInfo = response.get()
5 discard userInfo
6

getSSOUsers Internal Link

Parameters

NameTypeRequiredDescription
tenantIdstringYes
skipintNo

Response

Returns: Option[GetSSOUsersResponse]

Example

getSSOUsers Example
Copy Copy
1
2let (maybeResponse, httpResponse) = client.getSSOUsers(tenantId = "my-tenant-123", skip = 0)
3if maybeResponse.isSome:
4 let users = maybeResponse.get()
5 echo users
6else:
7 echo "No SSO users found"
8echo httpResponse.statusCode
9

patchSSOUser Internal Link

Parameters

NameTypeRequiredDescription
tenantIdstringYes
idstringNo
updateAPISSOUserDataUpdateAPISSOUserDataNo
updateCommentsboolNo

Response

Returns: Option[PatchSSOUserAPIResponse]

Example

patchSSOUser Example
Copy Copy
1
2let updateData = UpdateAPISSOUserData()
3let (responseOpt, httpResponse) = client.patchSSOUser(
4 tenantId = "my-tenant-123",
5 id = "user-789",
6 updateAPISSOUserData = updateData,
7 updateComments = true)
8if responseOpt.isSome:
9 let response = responseOpt.get()
10 echo response
11echo httpResponse.statusCode
12

putSSOUser Internal Link

Parameters

NameTypeRequiredDescription
tenantIdstringYes
idstringNo
updateAPISSOUserDataUpdateAPISSOUserDataNo
updateCommentsboolNo

Response

Returns: Option[PutSSOUserAPIResponse]

Example

putSSOUser Example
Copy Copy
1
2let (apiRespOpt, httpResp) = client.putSSOUser(
3 tenantId = "my-tenant-123",
4 id = "user-456",
5 updateAPISSOUserData = default(UpdateAPISSOUserData),
6 updateComments = false)
7
8if apiRespOpt.isSome:
9 let apiResp = apiRespOpt.get()
10 echo apiResp
11

createSubscription Internal Link

Parameters

NameTypeRequiredDescription
tenantIdstringYes
createAPIUserSubscriptionDataCreateAPIUserSubscriptionDataNo

Response

Returns: Option[CreateSubscriptionAPIResponse]

Example

createSubscription Example
Copy Copy
1
2let (respOpt, httpResp) = client.createSubscription(
3 tenantId = "my-tenant-123",
4 createAPIUserSubscriptionData = default(CreateAPIUserSubscriptionData),
5)
6
7if respOpt.isSome:
8 let resp = respOpt.get()
9

deleteSubscription Internal Link

Parameters

NameTypeRequiredDescription
tenantIdstringYes
idstringNo
userIdstring = ""No

Response

Returns: Option[DeleteSubscriptionAPIResponse]

Example

deleteSubscription Example
Copy Copy
1
2let (maybeResp, httpResp) = client.deleteSubscription(
3 tenantId = "my-tenant-123",
4 id = "sub-789",
5 userId = ""
6)
7
8if maybeResp.isSome:
9 let apiResult = maybeResp.get()
10 # use apiResult as needed
11

getSubscriptions Internal Link

Parameters

NameTypeRequiredDescription
tenantIdstringYes
userIdstring = ""No

Response

Returns: Option[GetSubscriptionsAPIResponse]

Example

getSubscriptions Example
Copy Copy
1
2let (subscriptionsOpt, httpResp) = client.getSubscriptions(tenantId = "my-tenant-123", userId = "user-456")
3if subscriptionsOpt.isSome:
4 let subscriptions = subscriptionsOpt.get()
5 echo subscriptions
6

updateSubscription Internal Link

Parameters

NameTypeRequiredDescription
tenantIdstringYes
idstringNo
updateAPIUserSubscriptionDataUpdateAPIUserSubscriptionDataNo
userIdstring = ""No

Response

Returns: Option[UpdateSubscriptionAPIResponse]

Example

updateSubscription Example
Copy Copy
1
2let subscriptionData = UpdateAPIUserSubscriptionData(
3 planId = "premium-plan",
4 isActive = true,
5 expiresAt = "2025-01-01",
6)
7
8let (responseOpt, httpResponse) = client.updateSubscription(
9 tenantId = "my-tenant-123",
10 id = "sub-456",
11 updateAPIUserSubscriptionData = subscriptionData,
12 userId = "user-789",
13)
14
15if responseOpt.isSome:
16 let subscriptionResult = responseOpt.get()
17

getTenantDailyUsages Internal Link

Parameters

NameTypeRequiredDescription
tenantIdstringYes
optionsGetTenantDailyUsagesOptionsNo

Response

Returns: Option[GetTenantDailyUsagesResponse]

Example

getTenantDailyUsages Example
Copy Copy
1
2let (respOpt, httpResp) = client.getTenantDailyUsages(
3 tenantId = "my-tenant-123",
4 options = default(GetTenantDailyUsagesOptions),
5)
6if respOpt.isSome:
7 let usage = respOpt.get()
8 echo usage
9 echo httpResp.statusCode
10

createTenantPackage Internal Link

Parameters

NameTypeRequiredDescription
tenantIdstringYes
createTenantPackageBodyCreateTenantPackageBodyNo

Response

Returns: Option[CreateTenantPackageResponse]

Example

createTenantPackage Example
Copy Copy
1
2let (responseOpt, httpResponse) = client.createTenantPackage(
3 tenantId = "my-tenant-123",
4 createTenantPackageBody = CreateTenantPackageBody()
5)
6
7if responseOpt.isSome:
8 let response = responseOpt.get()
9

deleteTenantPackage Internal Link

Parameters

NameTypeRequiredDescription
tenantIdstringYes
idstringNo

Response

Returns: Option[APIEmptyResponse]

Example

deleteTenantPackage Example
Copy Copy
1
2let (apiResponse, httpResponse) = client.deleteTenantPackage(tenantId = "my-tenant-123", id = "pkg-456def")
3if apiResponse.isSome:
4 let emptyResponse = apiResponse.get()
5

getTenantPackage Internal Link

Parameters

NameTypeRequiredDescription
tenantIdstringYes
idstringNo

Response

Returns: Option[GetTenantPackageResponse]

Example

getTenantPackage Example
Copy Copy
1
2let (pkgOpt, httpResp) = client.getTenantPackage(tenantId = "my-tenant-123", id = "premium-plan")
3if pkgOpt.isSome:
4 let pkg = pkgOpt.get()
5 echo pkg
6

getTenantPackages Internal Link

Parameters

NameTypeRequiredDescription
tenantIdstringYes
skipfloat64No

Response

Returns: Option[GetTenantPackagesResponse]

Example

getTenantPackages Example
Copy Copy
1
2let (maybeResp, httpResp) = client.getTenantPackages(tenantId = "my-tenant-123", skip = 0.0)
3if maybeResp.isSome:
4 let packages = maybeResp.get()
5 echo packages
6 echo httpResp.statusCode
7

replaceTenantPackage Internal Link

Parameters

NameTypeRequiredDescription
tenantIdstringYes
idstringNo
replaceTenantPackageBodyReplaceTenantPackageBodyNo

Response

Returns: Option[APIEmptyResponse]

Example

replaceTenantPackage Example
Copy Copy
1
2let (optResp, httpResp) = client.replaceTenantPackage(
3 tenantId = "my-tenant-123",
4 id = "pkg-456",
5 replaceTenantPackageBody = ReplaceTenantPackageBody()
6)
7if optResp.isSome:
8 let resp = optResp.get()
9 discard resp
10

updateTenantPackage Internal Link

Parameters

NameTypeRequiredDescription
tenantIdstringYes
idstringNo
updateTenantPackageBodyUpdateTenantPackageBodyNo

Response

Returns: Option[APIEmptyResponse]

Example

updateTenantPackage Example
Copy Copy
1
2let body = UpdateTenantPackageBody()
3let (optResp, httpResp) = client.updateTenantPackage(
4 tenantId = "my-tenant-123",
5 id = "premium-plan",
6 updateTenantPackageBody = body
7)
8if optResp.isSome:
9 let empty = optResp.get()
10

createTenantUser Internal Link

Parameters

NameTypeRequiredDescription
tenantIdstringYes
createTenantUserBodyCreateTenantUserBodyNo

Response

Returns: Option[CreateTenantUserResponse]

Example

createTenantUser Example
Copy Copy
1
2let tenantId = "my-tenant-123"
3let userBody = CreateTenantUserBody(
4 email: "john.doe@example.com",
5 name: "John Doe",
6 password: "s3cr3tP@ss",
7 role: "admin"
8)
9let (optResp, httpResp) = client.createTenantUser(
10 tenantId = tenantId,
11 createTenantUserBody = userBody
12)
13if optResp.isSome:
14 let resp = optResp.get()
15 echo resp.userId
16

deleteTenantUser Internal Link

Parameters

NameTypeRequiredDescription
tenantIdstringYes
idstringNo
optionsDeleteTenantUserOptionsNo

Response

Returns: Option[APIEmptyResponse]

Example

deleteTenantUser Example
Copy Copy
1
2let (response, httpResponse) = client.deleteTenantUser(
3 tenantId = "my-tenant-123",
4 id = "user-456",
5 options = DeleteTenantUserOptions(),
6)
7if response.isSome:
8 let empty = response.get()
9 echo "User successfully deleted"
10

getTenantUser Internal Link

Parameters

NameTypeRequiredDescription
tenantIdstringYes
idstringNo

Response

Returns: Option[GetTenantUserResponse]

Example

getTenantUser Example
Copy Copy
1
2let (maybeUser, httpResp) = client.getTenantUser(tenantId = "my-tenant-123", id = "user-456")
3if maybeUser.isSome:
4 let user = maybeUser.get()
5 echo user
6

getTenantUsers Internal Link

Parameters

NameTypeRequiredDescription
tenantIdstringYes
skipfloat64No

Response

Returns: Option[GetTenantUsersResponse]

Example

getTenantUsers Example
Copy Copy
1
2let (response, httpResponse) = client.getTenantUsers(tenantId = "my-tenant-123", skip = 0.0)
3if response.isSome:
4 let data = response.get()
5 echo data
6

replaceTenantUser Internal Link

Parameters

NameTypeRequiredDescription
tenantIdstringYes
idstringNo
replaceTenantUserBodyReplaceTenantUserBodyNo
updateCommentsstring = ""No

Response

Returns: Option[APIEmptyResponse]

Example

replaceTenantUser Example
Copy Copy
1
2let replaceBody = ReplaceTenantUserBody()
3let (response, httpResponse) = client.replaceTenantUser(
4 tenantId = "my-tenant-123",
5 id = "user-456",
6 replaceTenantUserBody = replaceBody,
7 updateComments = "")
8if response.isSome:
9 let empty = response.get()
10

Parameters

NameTypeRequiredDescription
tenantIdstringYes
idstringNo
redirectURLstring = ""No

Response

Returns: Option[APIEmptyResponse]

Example

sendLoginLink Example
Copy Copy
1
2let (maybeResp, httpResp) = client.sendLoginLink(
3 tenantId = "my-tenant-123",
4 id = "user-456",
5 redirectURL = "https://myapp.example.com/login-success"
6)
7
8if maybeResp.isSome:
9 let emptyResp = maybeResp.get()
10

updateTenantUser Internal Link

Parameters

NameTypeRequiredDescription
tenantIdstringYes
idstringNo
updateTenantUserBodyUpdateTenantUserBodyNo
updateCommentsstring = ""No

Response

Returns: Option[APIEmptyResponse]

Example

updateTenantUser Example
Copy Copy
1
2let updateBody = UpdateTenantUserBody()
3let (optResp, httpResp) = client.updateTenantUser(
4 tenantId = "my-tenant-123",
5 id = "user-456",
6 updateTenantUserBody = updateBody,
7 updateComments = "Changed role to moderator",
8)
9if optResp.isSome:
10 let _ = optResp.get()
11

createTenant Internal Link

Parameters

NameTypeRequiredDescription
tenantIdstringYes
createTenantBodyCreateTenantBodyNo

Response

Returns: Option[CreateTenantResponse]

Example

createTenant Example
Copy Copy
1
2let (maybeResp, httpResp) = client.createTenant(tenantId = "my-tenant-123", createTenantBody = CreateTenantBody())
3if maybeResp.isSome:
4 let resp = maybeResp.get()
5 discard resp
6discard httpResp
7

deleteTenant Internal Link

Parameters

NameTypeRequiredDescription
tenantIdstringYes
idstringNo
surestring = ""No

Response

Returns: Option[APIEmptyResponse]

Example

deleteTenant Example
Copy Copy
1
2let (respOpt, httpResp) = client.deleteTenant(tenantId = "my-tenant-123", id = "tenant-to-delete", sure = "yes")
3if respOpt.isSome:
4 let emptyResp = respOpt.get()
5

getTenant Internal Link

Parameters

NameTypeRequiredDescription
tenantIdstringYes
idstringNo

Response

Returns: Option[GetTenantResponse]

Example

getTenant Example
Copy Copy
1
2let (tenantResponse, httpResponse) = client.getTenant(tenantId = "my-tenant-123", id = "config-001")
3if tenantResponse.isSome:
4 let tenant = tenantResponse.get()
5 echo tenant
6

getTenants Internal Link

Parameters

NameTypeRequiredDescription
tenantIdstringYes
optionsGetTenantsOptionsNo

Response

Returns: Option[GetTenantsResponse]

Example

getTenants Example
Copy Copy
1
2let (maybeResp, httpResp) = client.getTenants(tenantId = "my-tenant-123", options = GetTenantsOptions())
3if maybeResp.isSome:
4 let resp = maybeResp.get()
5 echo resp
6

updateTenant Internal Link

Parameters

NameTypeRequiredDescription
tenantIdstringYes
idstringNo
updateTenantBodyUpdateTenantBodyNo

Response

Returns: Option[APIEmptyResponse]

Example

updateTenant Example
Copy Copy
1
2let updateBody = UpdateTenantBody(
3 name: "My Tenant",
4 description: "Tenant for news site",
5 isActive: true,
6 allowedDomains: @["example.com", "news.com"]
7)
8
9let (apiResp, httpResp) = client.updateTenant(
10 tenantId = "my-tenant-123",
11 id = "tenant-456",
12 updateTenantBody = updateBody
13)
14
15if apiResp.isSome:
16 let emptyResp = apiResp.get()
17

changeTicketState Internal Link

Parameters

NameTypeRequiredDescription
tenantIdstringYes
userIdstringNo
idstringNo
changeTicketStateBodyChangeTicketStateBodyNo

Response

Returns: Option[ChangeTicketStateResponse]

Example

changeTicketState Example
Copy Copy
1
2let (optResp, httpResp) = client.changeTicketState(
3 tenantId = "my-tenant-001",
4 userId = "user-42",
5 id = "ticket-12345",
6 changeTicketStateBody = ChangeTicketStateBody(state = "closed")
7)
8
9if optResp.isSome:
10 let resp = optResp.get()
11 echo resp
12

createTicket Internal Link

Parameters

NameTypeRequiredDescription
tenantIdstringYes
userIdstringNo
createTicketBodyCreateTicketBodyNo

Response

Returns: Option[CreateTicketResponse]

Example

createTicket Example
Copy Copy
1
2let tenantId = "my-tenant-123"
3let userId = "user-456"
4let ticketBody = CreateTicketBody()
5let (responseOpt, httpResponse) = client.createTicket(tenantId = tenantId, userId = userId, createTicketBody = ticketBody)
6if responseOpt.isSome:
7 let ticketResponse = responseOpt.get()
8

getTicket Internal Link

Parameters

NameTypeRequiredDescription
tenantIdstringYes
idstringNo
userIdstring = ""No

Response

Returns: Option[GetTicketResponse]

Example

getTicket Example
Copy Copy
1
2let (ticketOpt, httpResp) = client.getTicket(tenantId = "my-tenant-123", id = "ticket-456", userId = "")
3if ticketOpt.isSome:
4 let ticket = ticketOpt.get()
5 discard ticket
6

getTickets Internal Link

Parameters

NameTypeRequiredDescription
tenantIdstringYes
optionsGetTicketsOptionsNo

Response

Returns: Option[GetTicketsResponse]

Example

getTickets Example
Copy Copy
1
2let (ticketsOpt, httpResp) = client.getTickets(tenantId = "my-tenant-123", options = GetTicketsOptions())
3if ticketsOpt.isSome:
4 let tickets = ticketsOpt.get()
5 # use tickets as needed
6

getTranslations Internal Link

Parameters

NameTypeRequiredDescription
namespacestringNo
componentstringNo
optionsGetTranslationsOptionsNo

Response

Returns: Option[GetTranslationsResponse]

Example

getTranslations Example
Copy Copy
1
2let opts = GetTranslationsOptions()
3let (maybeResp, httpResp) = client.getTranslations(namespace = "my-tenant-123", component = "news/article-title", options = opts)
4if maybeResp.isSome:
5 let resp = maybeResp.get()
6 echo resp
7

uploadImage Internal Link

Upload and resize an image

Parameters

NameTypeRequiredDescription
tenantIdstringYes
filestringNo
optionsUploadImageOptionsNo

Response

Returns: Option[UploadImageResponse]

Example

uploadImage Example
Copy Copy
1
2let (uploadResult, httpResponse) = client.uploadImage(
3 tenantId = "my-tenant-123",
4 file = "images/avatar.jpg",
5 options = UploadImageOptions()
6)
7
8if uploadResult.isSome:
9 let result = uploadResult.get()
10 # use result as needed
11

getUserBadgeProgressById Internal Link

Parameters

NameTypeRequiredDescription
tenantIdstringYes
idstringNo

Response

Returns: Option[APIGetUserBadgeProgressResponse]

Example

getUserBadgeProgressById Example
Copy Copy
1
2let (badgeProgressOpt, httpResp) = client.getUserBadgeProgressById(tenantId = "my-tenant-123", id = "badge-456")
3if badgeProgressOpt.isSome:
4 let badgeProgress = badgeProgressOpt.get()
5 echo badgeProgress
6

getUserBadgeProgressByUserId Internal Link

Parameters

NameTypeRequiredDescription
tenantIdstringYes
userIdstringNo

Response

Returns: Option[APIGetUserBadgeProgressResponse]

Example

getUserBadgeProgressByUserId Example
Copy Copy
1
2let (badgeProgressOpt, httpResp) = client.getUserBadgeProgressByUserId(tenantId = "my-tenant-123", userId = "user-456")
3if badgeProgressOpt.isSome:
4 let progress = badgeProgressOpt.get()
5 echo progress
6

getUserBadgeProgressList Internal Link

Parameters

NameTypeRequiredDescription
tenantIdstringYes
optionsGetUserBadgeProgressListOptionsNo

Response

Returns: Option[APIGetUserBadgeProgressListResponse]

Example

getUserBadgeProgressList Example
Copy Copy
1
2let (response, httpResponse) = client.getUserBadgeProgressList(tenantId = "my-tenant-123", options = GetUserBadgeProgressListOptions())
3if response.isSome:
4 let badgeProgress = response.get()
5

createUserBadge Internal Link

Parameters

NameTypeRequiredDescription
tenantIdstringYes
createUserBadgeParamsCreateUserBadgeParamsNo

Response

Returns: Option[APICreateUserBadgeResponse]

Example

createUserBadge Example
Copy Copy
1
2let (badgeRespOpt, httpResp) = client.createUserBadge(tenantId = "my-tenant-123", createUserBadgeParams = default(CreateUserBadgeParams))
3if badgeRespOpt.isSome:
4 let badgeResp = badgeRespOpt.get()
5

deleteUserBadge Internal Link

Parameters

NameTypeRequiredDescription
tenantIdstringYes
idstringNo

Response

Returns: Option[APIEmptySuccessResponse]

Example

deleteUserBadge Example
Copy Copy
1
2let (apiResponse, httpResponse) = client.deleteUserBadge(tenantId = "my-tenant-123", id = "badge-456")
3if apiResponse.isSome:
4 let success = apiResponse.get()
5

getUserBadge Internal Link

Parameters

NameTypeRequiredDescription
tenantIdstringYes
idstringNo

Response

Returns: Option[APIGetUserBadgeResponse]

Example

getUserBadge Example
Copy Copy
1
2let (badgeOpt, httpResp) = client.getUserBadge(tenantId = "my-tenant-123", id = "user-789")
3if badgeOpt.isSome:
4 let badge = badgeOpt.get()
5 echo badge
6else:
7 echo "No badge found"
8echo httpResp.statusCode
9

getUserBadges Internal Link

Parameters

NameTypeRequiredDescription
tenantIdstringYes
optionsGetUserBadgesOptionsNo

Response

Returns: Option[APIGetUserBadgesResponse]

Example

getUserBadges Example
Copy Copy
1
2let opts = GetUserBadgesOptions()
3let (badgesOpt, httpResp) = client.getUserBadges(tenantId = "my-tenant-123", options = opts)
4if badgesOpt.isSome:
5 let badges = badgesOpt.get()
6

updateUserBadge Internal Link

Parameters

NameTypeRequiredDescription
tenantIdstringYes
idstringNo
updateUserBadgeParamsUpdateUserBadgeParamsNo

Response

Returns: Option[APIEmptySuccessResponse]

Example

updateUserBadge Example
Copy Copy
1
2let params = UpdateUserBadgeParams()
3let (maybeResp, httpResp) = client.updateUserBadge(tenantId = "my-tenant-123", id = "user-456", updateUserBadgeParams = params)
4if maybeResp.isSome:
5 let success = maybeResp.get()
6

getUserNotificationCount Internal Link

Parameters

NameTypeRequiredDescription
tenantIdstringYes
ssostring = ""No

Response

Returns: Option[GetUserNotificationCountResponse]

Example

getUserNotificationCount Example
Copy Copy
1
2let (optResp, httpResp) = client.getUserNotificationCount(tenantId = "my-tenant-123", sso = "")
3if optResp.isSome:
4 let resp = optResp.get()
5 echo resp
6

getUserNotifications Internal Link

Parameters

NameTypeRequiredDescription
tenantIdstringYes
optionsGetUserNotificationsOptionsNo

Response

Returns: Option[GetMyNotificationsResponse]

Example

getUserNotifications Example
Copy Copy
1
2let (maybeResponse, httpResponse) = client.getUserNotifications(tenantId = "my-tenant-123", options = GetUserNotificationsOptions())
3if maybeResponse.isSome:
4 let notifications = maybeResponse.get()
5

resetUserNotificationCount Internal Link

Parameters

NameTypeRequiredDescription
tenantIdstringYes
ssostring = ""No

Response

Returns: Option[ResetUserNotificationsResponse]

Example

resetUserNotificationCount Example
Copy Copy
1
2let (resetRespOpt, httpResp) = client.resetUserNotificationCount(tenantId = "my-tenant-123", sso = "user-456")
3if resetRespOpt.isSome:
4 let resetResp = resetRespOpt.get()
5 echo resetResp
6else:
7 echo "Reset notification count response not available"
8

resetUserNotifications Internal Link

Parameters

NameTypeRequiredDescription
tenantIdstringYes
optionsResetUserNotificationsOptionsNo

Response

Returns: Option[ResetUserNotificationsResponse]

Example

resetUserNotifications Example
Copy Copy
1
2let (maybeResp, httpResp) = client.resetUserNotifications(
3 tenantId = "my-tenant-123",
4 options = ResetUserNotificationsOptions())
5if maybeResp.isSome:
6 let resp = maybeResp.get()
7

updateUserNotificationCommentSubscriptionStatus Internal Link

Enable or disable notifications for a specific comment.

Parameters

NameTypeRequiredDescription
tenantIdstringYes
notificationIdstringNo
optedInOrOutstringNo
commentIdstringYes
ssostring = ""No

Response

Returns: Option[UpdateUserNotificationCommentSubscriptionStatusResponse]

Example

updateUserNotificationCommentSubscriptionStatus Example
Copy Copy
1
2let (optResp, httpResp) = client.updateUserNotificationCommentSubscriptionStatus(
3 tenantId = "my-tenant-123",
4 notificationId = "notif-456",
5 optedInOrOut = "opted-in",
6 commentId = "comment-789",
7 sso = ""
8)
9
10if optResp.isSome:
11 let resp = optResp.get()
12

updateUserNotificationPageSubscriptionStatus Internal Link

Enable or disable notifications for a page. When users are subscribed to a page, notifications are created for new root comments, and also

Parameters

NameTypeRequiredDescription
tenantIdstringYes
urlIdstringYes
urlstringNo
pageTitlestringNo
subscribedOrUnsubscribedstringNo
ssostring = ""No

Response

Returns: Option[UpdateUserNotificationPageSubscriptionStatusResponse]

Example

updateUserNotificationPageSubscriptionStatus Example
Copy Copy
1
2let (optResp, httpResp) = client.updateUserNotificationPageSubscriptionStatus(
3 tenantId = "my-tenant-123",
4 urlId = "news/article-456",
5 url = "https://example.com/news/article-456",
6 pageTitle = "Breaking News: Something Happened",
7 subscribedOrUnsubscribed = "subscribed",
8 sso = ""
9)
10
11if optResp.isSome:
12 let resp = optResp.get()
13 # further processing with resp
14

updateUserNotificationStatus Internal Link

Parameters

NameTypeRequiredDescription
tenantIdstringYes
notificationIdstringNo
newStatusstringNo
ssostring = ""No

Response

Returns: Option[UpdateUserNotificationStatusResponse]

Example

updateUserNotificationStatus Example
Copy Copy
1
2let (respOpt, httpResponse) = client.updateUserNotificationStatus(
3 tenantId = "my-tenant-123",
4 notificationId = "notif-456",
5 newStatus = "read",
6 sso = ""
7)
8if respOpt.isSome:
9 let status = respOpt.get()
10

getUserPresenceStatuses Internal Link

Parameters

NameTypeRequiredDescription
tenantIdstringYes
urlIdWSstringNo
userIdsstringNo

Response

Returns: Option[GetUserPresenceStatusesResponse]

Example

getUserPresenceStatuses Example
Copy Copy
1
2let (presenceOpt, httpResp) = client.getUserPresenceStatuses(tenantId = "my-tenant-123", urlIdWS = "news/article-title", userIds = "user42")
3if presenceOpt.isSome:
4 let presence = presenceOpt.get()
5

searchUsers Internal Link

Parameters

NameTypeRequiredDescription
tenantIdstringYes
urlIdstringYes
optionsSearchUsersOptionsNo

Response

Returns: Option[SearchUsersResult]

Example

searchUsers Example
Copy Copy
1
2let (response, httpResponse) = client.searchUsers(
3 tenantId = "my-tenant-123",
4 urlId = "news/article-title",
5 options = SearchUsersOptions()
6)
7
8if response.isSome:
9 let result = response.get()
10

getUser Internal Link

Parameters

NameTypeRequiredDescription
tenantIdstringYes
idstringNo

Response

Returns: Option[GetUserResponse]

Example

getUser Example
Copy Copy
1
2let (userOpt, httpResp) = client.getUser(tenantId = "my-tenant-123", id = "user-456")
3if userOpt.isSome:
4 let user = userOpt.get()
5 echo user
6else:
7 echo "User not found"
8

createVote Internal Link

Parameters

NameTypeRequiredDescription
tenantIdstringYes
commentIdstringYes
directionstringNo
optionsCreateVoteOptionsNo

Response

Returns: Option[VoteResponse]

Example

createVote Example
Copy Copy
1
2let (voteOpt, httpResp) = client.createVote(
3 tenantId = "my-tenant-123",
4 commentId = "comment-7890",
5 direction = "up",
6 options = CreateVoteOptions()
7)
8
9if voteOpt.isSome:
10 let vote = voteOpt.get()
11 echo vote
12

deleteVote Internal Link

Parameters

NameTypeRequiredDescription
tenantIdstringYes
idstringNo
editKeystring = ""No

Response

Returns: Option[VoteDeleteResponse]

Example

deleteVote Example
Copy Copy
1
2let (voteRespOpt, httpResp) = client.deleteVote(tenantId = "my-tenant-123", id = "comment-456", editKey = "")
3if voteRespOpt.isSome:
4 let voteResp = voteRespOpt.get()
5 discard voteResp
6 discard httpResp
7

getVotes Internal Link

Parameters

NameTypeRequiredDescription
tenantIdstringYes
urlIdstringYes

Response

Returns: Option[GetVotesResponse]

Example

getVotes Example
Copy Copy
1
2let (optVotes, httpResp) = client.getVotes(tenantId = "my-tenant-123", urlId = "news/article-42")
3if optVotes.isSome:
4 let votes = optVotes.get()
5 discard votes
6

getVotesForUser Internal Link

Parameters

NameTypeRequiredDescription
tenantIdstringYes
urlIdstringYes
optionsGetVotesForUserOptionsNo

Response

Returns: Option[GetVotesForUserResponse]

Example

getVotesForUser Example
Copy Copy
1
2let (optResp, httpResp) = client.getVotesForUser(
3 tenantId = "my-tenant-123",
4 urlId = "news/article-title",
5 options = GetVotesForUserOptions()
6)
7
8if optResp.isSome:
9 let resp = optResp.get()
10 echo resp
11

Need Help?

If you encounter any issues or have questions about the Nim SDK, please:

Contributing

Contributions are welcome! Please visit the GitHub repository for contribution guidelines.