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 two API modules, api_default and api_public. 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.

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
let (response, httpResponse) = getComments(
  httpClient = client,
  tenantId = "your-tenant-id",
  page = 0,
  limit = 0,
  skip = 0,
  asTree = false,
  skipChildren = 0,
  limitChildren = 0,
  maxTreeDepth = 0,
  urlId = "your-url-id",
  userId = "",
  anonUserId = "",
  contextUserId = "",
  hashTag = "",
  parentId = "",
  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
let (response, httpResponse) = getCommentsPublic(
  httpClient = client,
  tenantId = "your-tenant-id",
  urlId = "your-url-id",
  page = 0,
  direction = SortDirections.DESC,
  sso = "",
  skip = 0,
  skipChildren = 0,
  limit = 0,
  limitChildren = 0,
  countChildren = false,
  fetchPageForCommentId = "",
  includeConfig = false,
  countAll = false,
  includei10n = false,
  locale = "",
  modules = "",
  isCrawler = false,
  includeNotificationCount = false,
  asTree = false,
  maxTreeDepth = 0,
  useFullTranslationIds = false,
  parentId = "",
  searchText = "",
  hashTags = @[],
  userId = "",
  customConfigStr = "",
  afterCommentId = "",
  beforeCommentId = ""
)

if response.isSome:
  let resp = response.get()
  if resp.comments.isSome:
    echo "Found ", resp.comments.get().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.

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.

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",
  page = 0,
  limit = 0,
  skip = 0,
  asTree = false,
  skipChildren = 0,
  limitChildren = 0,
  maxTreeDepth = 0,
  urlId = "your-url-id",
  userId = "",
  anonUserId = "",
  contextUserId = "",
  hashTag = "",
  parentId = "",
  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
parentTenantIdstringNo
includeStatsboolNo

Response

Returns: Option[AggregationResponse]

Example

aggregate Example
Copy Copy
1
2let (response, httpResponse) = client.aggregate(
3 tenantId = "my-tenant-123",
4 aggregationRequest = AggregationRequest(
5 groupBy = @["urlPath"],
6 filters = @[],
7 size = 50
8 ),
9 parentTenantId = "parent-tenant-456",
10 includeStats = true
11)
12
13if response.isSome:
14 let aggregation = response.get()
15 echo "HTTP status: ", $httpResponse.status
16 echo "Aggregation result: ", $aggregation
17

getAuditLogs Internal Link

Parameters

NameTypeRequiredDescription
tenantIdstringYes
limitfloat64No
skipfloat64No
orderSORTDIRNo
afterfloat64No
beforefloat64No

Response

Returns: Option[GetAuditLogs_200_response]

Example

getAuditLogs Example
Copy Copy
1
2let (response, httpResponse) = client.getAuditLogs(tenantId = "my-tenant-123", limit = 100.0, skip = 0.0, order = SORTDIR.DESC, after = 1622505600.0, before = 1625097600.0)
3if response.isSome:
4 let logs = response.get()
5 echo logs
6

blockFromCommentPublic Internal Link

Parameters

NameTypeRequiredDescription
tenantIdstringYes
commentIdstringYes
publicBlockFromCommentParamsPublicBlockFromCommentParamsNo
ssostringNo

Response

Returns: Option[BlockFromCommentPublic_200_response]

Example

blockFromCommentPublic Example
Copy Copy
1
2let (response, httpResponse) = client.blockFromCommentPublic(
3 tenantId = "my-tenant-123",
4 commentId = "news/article-2026-01-12-comment-789",
5 publicBlockFromCommentParams = PublicBlockFromCommentParams(
6 reason = "harassment",
7 durationMinutes = 1440,
8 notifyUsers = false,
9 tags = @["abuse","spam"]
10 ),
11 sso = ""
12)
13if response.isSome:
14 let blockResult = response.get()
15 discard blockResult
16

unBlockCommentPublic Internal Link

Parameters

NameTypeRequiredDescription
tenantIdstringYes
commentIdstringYes
publicBlockFromCommentParamsPublicBlockFromCommentParamsNo
ssostringNo

Response

Returns: Option[UnBlockCommentPublic_200_response]

Example

unBlockCommentPublic Example
Copy Copy
1
2let (response, httpResponse) = client.unBlockCommentPublic(
3 tenantId = "my-tenant-123",
4 commentId = "cmt-987654",
5 publicBlockFromCommentParams = PublicBlockFromCommentParams(reason = "", blockDurationMinutes = 0, notifyUser = false),
6 sso = ""
7)
8if response.isSome:
9 let result = response.get()
10 discard result
11

checkedCommentsForBlocked Internal Link

Parameters

NameTypeRequiredDescription
tenantIdstringYes
commentIdsstringNo
ssostringNo

Response

Returns: Option[CheckedCommentsForBlocked_200_response]

Example

checkedCommentsForBlocked Example
Copy Copy
1
2let (response, httpResponse) = client.checkedCommentsForBlocked(tenantId = "my-tenant-123", commentIds = "", sso = "")
3if response.isSome:
4 let checked = response.get()
5 echo "Checked comments for blocked:", checked
6else:
7 echo "No response received, HTTP status:", httpResponse.status
8

blockUserFromComment Internal Link

Parameters

NameTypeRequiredDescription
tenantIdstringYes
idstringNo
blockFromCommentParamsBlockFromCommentParamsNo
userIdstringNo
anonUserIdstringNo

Response

Returns: Option[BlockFromCommentPublic_200_response]

Example

blockUserFromComment Example
Copy Copy
1
2let (response, httpResponse) = client.blockUserFromComment(
3 tenantId = "my-tenant-123",
4 id = "cmt-2026-0001",
5 blockFromCommentParams = BlockFromCommentParams(),
6 userId = "user-7421",
7 anonUserId = "")
8if response.isSome:
9 let blocked = response.get()
10 discard blocked
11

createCommentPublic Internal Link

Parameters

NameTypeRequiredDescription
tenantIdstringYes
urlIdstringYes
broadcastIdstringNo
commentDataCommentDataNo
sessionIdstringNo
ssostringNo

Response

Returns: Option[CreateCommentPublic_200_response]

Example

createCommentPublic Example
Copy Copy
1
2let (response, httpResponse) = client.createCommentPublic(
3 tenantId = "my-tenant-123",
4 urlId = "news/my-article-2026",
5 broadcastId = "",
6 commentData = CommentData(),
7 sessionId = "",
8 sso = ""
9)
10
11if response.isSome:
12 let created = response.get()
13 echo "Comment created: ", $created
14

deleteComment Internal Link

Parameters

NameTypeRequiredDescription
tenantIdstringYes
idstringNo
contextUserIdstringNo
isLiveboolNo

Response

Returns: Option[DeleteComment_200_response]

Example

deleteComment Example
Copy Copy
1
2let (response, httpResponse) = client.deleteComment(tenantId = "my-tenant-123", id = "comment-9876", contextUserId = "user-42", isLive = true)
3if response.isSome:
4 let deletedComment = response.get()
5 discard deletedComment
6else:
7 echo "Delete failed, status: ", httpResponse.status
8

deleteCommentPublic Internal Link

Parameters

NameTypeRequiredDescription
tenantIdstringYes
commentIdstringYes
broadcastIdstringNo
editKeystringNo
ssostringNo

Response

Returns: Option[DeleteCommentPublic_200_response]

Example

deleteCommentPublic Example
Copy Copy
1
2let (response, httpResponse) = client.deleteCommentPublic(
3 tenantId = "my-tenant-123",
4 commentId = "cmt-456789",
5 broadcastId = "",
6 editKey = "",
7 sso = ""
8)
9
10if response.isSome:
11 let deleted = response.get()
12 discard deleted
13

deleteCommentVote Internal Link

Parameters

NameTypeRequiredDescription
tenantIdstringYes
commentIdstringYes
voteIdstringNo
urlIdstringYes
broadcastIdstringNo
editKeystringNo
ssostringNo

Response

Returns: Option[DeleteCommentVote_200_response]

Example

deleteCommentVote Example
Copy Copy
1
2let (response, httpResponse) = client.deleteCommentVote(
3 tenantId = "my-tenant-123",
4 commentId = "cmt-456",
5 voteId = "",
6 urlId = "news/top-stories/my-article",
7 broadcastId = "",
8 editKey = "",
9 sso = ""
10)
11
12if response.isSome:
13 let deleted = response.get()
14 echo "DeleteCommentVote succeeded for comment cmt-456"
15 discard deleted
16

flagComment Internal Link

Parameters

NameTypeRequiredDescription
tenantIdstringYes
idstringNo
userIdstringNo
anonUserIdstringNo

Response

Returns: Option[FlagComment_200_response]

Example

flagComment Example
Copy Copy
1
2let (response, httpResponse) = client.flagComment(tenantId = "my-tenant-123", id = "comment-9876", userId = "", anonUserId = "anon-4f2b9c")
3
4if response.isSome:
5 let flagResult = response.get()
6 echo "Flag succeeded: ", $flagResult
7else:
8 echo "Flag failed, HTTP response status: ", $httpResponse.status
9

getComment Internal Link

Parameters

NameTypeRequiredDescription
tenantIdstringYes
idstringNo

Response

Returns: Option[GetComment_200_response]

Example

getComment Example
Copy Copy
1
2let (response, httpResponse) = client.getComment(tenantId = "my-tenant-123", id = "cmt-987654")
3if response.isSome:
4 let comment = response.get()
5 echo "Comment received:", comment
6else:
7 echo "No comment found, HTTP status:", httpResponse.status.code
8

getComments Internal Link

Parameters

NameTypeRequiredDescription
tenantIdstringYes
pageintNo
limitintNo
skipintNo
asTreeboolNo
skipChildrenintNo
limitChildrenintNo
maxTreeDepthintNo
urlIdstringYes
userIdstringNo
anonUserIdstringNo
contextUserIdstringNo
hashTagstringNo
parentIdstringNo
directionSortDirectionsNo

Response

Returns: Option[GetComments_200_response]

Example

getComments Example
Copy Copy
1
2let (response, httpResponse) = client.getComments(
3 tenantId = "my-tenant-123",
4 page = 1,
5 limit = 25,
6 skip = 0,
7 asTree = true,
8 skipChildren = 0,
9 limitChildren = 5,
10 maxTreeDepth = 3,
11 urlId = "news/2026/01/important-announcement",
12 userId = "user-789",
13 anonUserId = "anon-456",
14 contextUserId = "ctx-321",
15 hashTag = "release",
16 parentId = "",
17 direction = SortDirections.Newest
18)
19
20if response.isSome:
21 let comments = response.get()
22 echo "Fetched comments for url:", " news/2026/01/important-announcement"
23

getCommentsPublic Internal Link

req tenantId urlId

Parameters

NameTypeRequiredDescription
tenantIdstringYes
urlIdstringYes
pageintNo
directionSortDirectionsNo
ssostringNo
skipintNo
skipChildrenintNo
limitintNo
limitChildrenintNo
countChildrenboolNo
fetchPageForCommentIdstringNo
includeConfigboolNo
countAllboolNo
includei10nboolNo
localestringNo
modulesstringNo
isCrawlerboolNo
includeNotificationCountboolNo
asTreeboolNo
maxTreeDepthintNo
useFullTranslationIdsboolNo
parentIdstringNo
searchTextstringNo
hashTagsseq[string]No
userIdstringNo
customConfigStrstringNo
afterCommentIdstringNo
beforeCommentIdstringNo

Response

Returns: Option[GetCommentsPublic_200_response]

Example

getCommentsPublic Example
Copy Copy
1
2let (response, httpResponse) = client.getCommentsPublic(
3 tenantId = "my-tenant-123",
4 urlId = "news/latest-gear-review",
5 page = 1,
6 direction = SortDirections.Newest,
7 sso = "",
8 skip = 0,
9 skipChildren = 0,
10 limit = 20,
11 limitChildren = 0,
12 countChildren = false,
13 fetchPageForCommentId = "",
14 includeConfig = true,
15 countAll = false,
16 includei10n = false,
17 locale = "en-US",
18 modules = "reactions,moderation",
19 isCrawler = false,
20 includeNotificationCount = false,
21 asTree = true,
22 maxTreeDepth = 3,
23 useFullTranslationIds = false,
24 parentId = "",
25 searchText = "",
26 hashTags = @["tech", "review"],
27 userId = "user-987",
28 customConfigStr = "",
29 afterCommentId = "",
30 beforeCommentId = ""
31)
32if response.isSome:
33 let comments = response.get()
34 echo "Fetched comments:", comments
35

getCommentText Internal Link

Parameters

NameTypeRequiredDescription
tenantIdstringYes
commentIdstringYes
editKeystringNo
ssostringNo

Response

Returns: Option[GetCommentText_200_response]

Example

getCommentText Example
Copy Copy
1
2let (response, httpResponse) = client.getCommentText(tenantId = "my-tenant-123", commentId = "cmt-987654321", editKey = "", sso = "")
3if response.isSome:
4 let commentText = response.get()
5 echo "Comment text: ", commentText
6else:
7 echo "No comment text returned. HTTP response: ", httpResponse
8

getCommentVoteUserNames Internal Link

Parameters

NameTypeRequiredDescription
tenantIdstringYes
commentIdstringYes
dirintNo
ssostringNo

Response

Returns: Option[GetCommentVoteUserNames_200_response]

Example

getCommentVoteUserNames Example
Copy Copy
1
2let (response, httpResponse) = client.getCommentVoteUserNames(tenantId = "my-tenant-123", commentId = "cmt-987654", dir = 0, sso = "")
3if response.isSome:
4 let voteUsers = response.get()
5

lockComment Internal Link

Parameters

NameTypeRequiredDescription
tenantIdstringYes
commentIdstringYes
broadcastIdstringNo
ssostringNo

Response

Returns: Option[LockComment_200_response]

Example

lockComment Example
Copy Copy
1
2let (response, httpResponse) = client.lockComment(tenantId = "my-tenant-123", commentId = "comment-98765", broadcastId = "", sso = "")
3if response.isSome:
4 let locked = response.get()
5 discard locked
6else:
7 discard httpResponse
8

pinComment Internal Link

Parameters

NameTypeRequiredDescription
tenantIdstringYes
commentIdstringYes
broadcastIdstringNo
ssostringNo

Response

Returns: Option[PinComment_200_response]

Example

pinComment Example
Copy Copy
1
2let (response, httpResponse) = client.pinComment(tenantId = "tenant-456", commentId = "cmt-7890", broadcastId = "broadcast-001", sso = "")
3if response.isSome:
4 let pinResult = response.get()
5 discard pinResult
6

saveComment Internal Link

Parameters

NameTypeRequiredDescription
tenantIdstringYes
createCommentParamsCreateCommentParamsNo
isLiveboolNo
doSpamCheckboolNo
sendEmailsboolNo
populateNotificationsboolNo

Response

Returns: Option[SaveComment_200_response]

Example

saveComment Example
Copy Copy
1
2let createParams = CreateCommentParams(
3 content = "Great article — helped me understand async patterns.",
4 authorName = "Alex Morgan",
5 authorEmail = "alex.morgan@example.com",
6 url = "news/my-company-launches-new-api",
7 parentId = "",
8 tags = @["api", "launch"]
9)
10
11let (response, httpResponse) = client.saveComment(
12 tenantId = "my-tenant-123",
13 createCommentParams = createParams,
14 isLive = true,
15 doSpamCheck = true,
16 sendEmails = false,
17 populateNotifications = true
18)
19
20if response.isSome:
21 let saved = response.get()
22 echo "Saved comment id: ", saved.id
23

saveCommentsBulk Internal Link

Parameters

NameTypeRequiredDescription
tenantIdstringYes
createCommentParamsseq[CreateCommentParams]No
isLiveboolNo
doSpamCheckboolNo
sendEmailsboolNo
populateNotificationsbool): (Option[seq[SaveComment_200_response]]No
idstringNo
fromNamestringNo

Response

Returns: Option[FlagCommentPublic_200_response]

Example

saveCommentsBulk Example
Copy Copy
1
2let (response, httpResponse) = client.saveCommentsBulk(
3 tenantId = "my-tenant-123",
4 createCommentParams = @[],
5 isLive = false,
6 doSpamCheck = false,
7 sendEmails = false,
8 populateNotifications = false,
9 id = "",
10 fromName = ""
11)
12if response.isSome:
13 let flagResp = response.get()
14 echo "Flag response received: ", $flagResp
15

setCommentText Internal Link

Parameters

NameTypeRequiredDescription
tenantIdstringYes
commentIdstringYes
broadcastIdstringNo
commentTextUpdateRequestCommentTextUpdateRequestNo
editKeystringNo
ssostringNo

Response

Returns: Option[SetCommentText_200_response]

Example

setCommentText Example
Copy Copy
1
2let (response, httpResponse) = client.setCommentText(
3 tenantId = "my-tenant-123",
4 commentId = "cmt-987654",
5 broadcastId = "bcast-2026-01",
6 commentTextUpdateRequest = CommentTextUpdateRequest(text = "Updated comment text for clarity and formatting"),
7 editKey = "",
8 sso = ""
9)
10
11if response.isSome:
12 let updated = response.get()
13 echo "Comment updated:", updated
14else:
15 echo "Update failed, status:", httpResponse.status
16

unBlockUserFromComment Internal Link

Parameters

NameTypeRequiredDescription
tenantIdstringYes
idstringNo
unBlockFromCommentParamsUnBlockFromCommentParamsNo
userIdstringNo
anonUserIdstringNo

Response

Returns: Option[UnBlockCommentPublic_200_response]

Example

unBlockUserFromComment Example
Copy Copy
1
2let (response, httpResponse) = client.unBlockUserFromComment(
3 tenantId = "news-site-001",
4 id = "cmt-8fj3k9",
5 unBlockFromCommentParams = UnBlockFromCommentParams(),
6 userId = "user-98765",
7 anonUserId = ""
8)
9
10if response.isSome:
11 let unblocked = response.get()
12 discard unblocked
13

unFlagComment Internal Link

Parameters

NameTypeRequiredDescription
tenantIdstringYes
idstringNo
userIdstringNo
anonUserIdstringNo

Response

Returns: Option[FlagComment_200_response]

Example

unFlagComment Example
Copy Copy
1
2let (response, httpResponse) = client.unFlagComment(
3 tenantId = "my-tenant-123",
4 id = "comment-9876",
5 userId = "user-42",
6 anonUserId = ""
7)
8
9if response.isSome:
10 let flagResp = response.get()
11 echo "Unflag succeeded:", flagResp
12
13echo "HTTP response status:", httpResponse.status
14

unLockComment Internal Link

Parameters

NameTypeRequiredDescription
tenantIdstringYes
commentIdstringYes
broadcastIdstringNo
ssostringNo

Response

Returns: Option[LockComment_200_response]

Example

unLockComment Example
Copy Copy
1
2let (response, httpResponse) = client.unLockComment(tenantId = "my-tenant-123", commentId = "cmt-456789", broadcastId = "", sso = "")
3if response.isSome:
4 let unlocked = response.get()
5 discard unlocked
6discard httpResponse
7

unPinComment Internal Link

Parameters

NameTypeRequiredDescription
tenantIdstringYes
commentIdstringYes
broadcastIdstringNo
ssostringNo

Response

Returns: Option[PinComment_200_response]

Example

unPinComment Example
Copy Copy
1
2let (response, httpResponse) = client.unPinComment(tenantId = "my-tenant-123", commentId = "cmt-987654321", broadcastId = "", sso = "")
3
4if response.isSome:
5 let pinInfo = response.get()
6 echo "Unpinned comment:", pinInfo
7else:
8 echo "Failed to unpin, HTTP status:", httpResponse.status
9

updateComment Internal Link

Parameters

NameTypeRequiredDescription
tenantIdstringYes
idstringNo
updatableCommentParamsUpdatableCommentParamsNo
contextUserIdstringNo
doSpamCheckboolNo
isLiveboolNo

Response

Returns: Option[FlagCommentPublic_200_response]

Example

updateComment Example
Copy Copy
1
2let (response, httpResponse) = client.updateComment(
3 tenantId = "my-tenant-123",
4 id = "cmt-456",
5 updatableCommentParams = UpdatableCommentParams(
6 content: "Updated the comment to clarify the timeline",
7 tags: @["clarification", "timeline"],
8 isHidden: false
9 ),
10 contextUserId = "user-789",
11 doSpamCheck = true,
12 isLive = true
13)
14
15if response.isSome:
16 let updatedComment = response.get()
17 echo "Updated comment received, id: ", updatedComment.id
18

voteComment Internal Link

Parameters

NameTypeRequiredDescription
tenantIdstringYes
commentIdstringYes
urlIdstringYes
broadcastIdstringNo
voteBodyParamsVoteBodyParamsNo
sessionIdstringNo
ssostringNo

Response

Returns: Option[VoteComment_200_response]

Example

voteComment Example
Copy Copy
1
2let voteBody = VoteBodyParams(vote = 1)
3let (response, httpResponse) = client.voteComment(
4 tenantId = "my-tenant-123",
5 commentId = "cmt-456789",
6 urlId = "news/article-2026-election",
7 broadcastId = "",
8 voteBodyParams = voteBody,
9 sessionId = "",
10 sso = ""
11)
12if response.isSome:
13 let result = response.get()
14 echo "Vote response:", $result
15

addDomainConfig Internal Link

Parameters

NameTypeRequiredDescription
tenantIdstringYes
addDomainConfigParamsAddDomainConfigParamsNo

Response

Returns: Option[AddDomainConfig_200_response]

Example

addDomainConfig Example
Copy Copy
1
2let addParams = AddDomainConfigParams(
3 domain = "news.example.com",
4 enabled = true,
5 allowSubdomains = false,
6 paths = @["/articles", "/breaking"],
7 priority = 10,
8 description = "Primary domain for news site"
9)
10let (response, httpResponse) = client.addDomainConfig(tenantId = "my-tenant-123", addDomainConfigParams = addParams)
11if response.isSome:
12 let cfg = response.get()
13 echo "Added domain config:", cfg
14

deleteDomainConfig Internal Link

Parameters

NameTypeRequiredDescription
tenantIdstringYes
domainstringNo

Response

Returns: Option[DeleteDomainConfig_200_response]

Example

deleteDomainConfig Example
Copy Copy
1
2let (response, httpResponse) = client.deleteDomainConfig(tenantId = "my-tenant-123", domain = "news.example.com")
3if response.isSome:
4 let deletedConfig = response.get()
5 echo deletedConfig
6else:
7 echo "No domain config returned"
8

getDomainConfig Internal Link

Parameters

NameTypeRequiredDescription
tenantIdstringYes
domainstringNo

Response

Returns: Option[GetDomainConfig_200_response]

Example

getDomainConfig Example
Copy Copy
1
2let (response, httpResponse) = client.getDomainConfig(tenantId = "my-tenant-123", domain = "news.example.com")
3if response.isSome:
4 let config = response.get()
5 echo "Domain config received"
6else:
7 echo "No domain config available"
8

getDomainConfigs Internal Link

Parameters

NameTypeRequiredDescription
tenantIdstringYes

Response

Returns: Option[GetDomainConfigs_200_response]

Example

getDomainConfigs Example
Copy Copy
1
2let (response, httpResponse) = client.getDomainConfigs(tenantId = "my-tenant-123")
3if response.isSome:
4 let domainConfigs = response.get()
5 echo "Received domain configs for tenant:", domainConfigs
6else:
7 echo "No domain configs returned, HTTP status:", httpResponse.status.code
8

patchDomainConfig Internal Link

Parameters

NameTypeRequiredDescription
tenantIdstringYes
domainToUpdatestringNo
patchDomainConfigParamsPatchDomainConfigParamsNo

Response

Returns: Option[GetDomainConfig_200_response]

Example

patchDomainConfig Example
Copy Copy
1
2let patchParams = PatchDomainConfigParams(
3 domainName: "comments.mynews.com",
4 enableModeration: true,
5 allowedOrigins: @["https://www.mynews.com", "https://editor.mynews.com"]
6)
7
8let (response, httpResponse) = client.patchDomainConfig(
9 tenantId = "my-tenant-123",
10 domainToUpdate = "news/article-title",
11 patchDomainConfigParams = patchParams
12)
13
14if response.isSome:
15 let updated = response.get()
16 echo "Updated domain config for: ", updated.domainName
17

putDomainConfig Internal Link

Parameters

NameTypeRequiredDescription
tenantIdstringYes
domainToUpdatestringNo
updateDomainConfigParamsUpdateDomainConfigParamsNo

Response

Returns: Option[GetDomainConfig_200_response]

Example

putDomainConfig Example
Copy Copy
1
2let (response, httpResponse) = client.putDomainConfig(tenantId = "my-tenant-123", domainToUpdate = "news.example.com", updateDomainConfigParams = default(UpdateDomainConfigParams))
3if response.isSome:
4 let updatedConfig = response.get()
5 echo "Domain config updated for tenant my-tenant-123:", updatedConfig
6else:
7 echo "Failed to update domain config, HTTP status: ", httpResponse.status
8

createEmailTemplate Internal Link

Parameters

NameTypeRequiredDescription
tenantIdstringYes
createEmailTemplateBodyCreateEmailTemplateBodyNo

Response

Returns: Option[CreateEmailTemplate_200_response]

Example

createEmailTemplate Example
Copy Copy
1
2let (response, httpResponse) = client.createEmailTemplate(tenantId = "my-tenant-123", createEmailTemplateBody = CreateEmailTemplateBody(name = "Weekly Newsletter", subject = "Weekly updates from OurSite", fromName = "OurSite Team", fromEmail = "newsletter@oursite.com", bodyHtml = "<h1>Highlights</h1><p>Top stories this week...</p>", enabled = true, tags = @["newsletter", "weekly"]))
3if response.isSome:
4 let template = response.get()
5 discard template
6

deleteEmailTemplate Internal Link

Parameters

NameTypeRequiredDescription
tenantIdstringYes
idstringNo

Response

Returns: Option[FlagCommentPublic_200_response]

Example

deleteEmailTemplate Example
Copy Copy
1
2let (response, httpResponse) = client.deleteEmailTemplate(tenantId = "my-tenant-123", id = "tmpl-456")
3if response.isSome:
4 let deleted = response.get()
5 echo deleted
6

deleteEmailTemplateRenderError Internal Link

Parameters

NameTypeRequiredDescription
tenantIdstringYes
idstringNo
errorIdstringNo

Response

Returns: Option[FlagCommentPublic_200_response]

Example

deleteEmailTemplateRenderError Example
Copy Copy
1
2let (response, httpResponse) = client.deleteEmailTemplateRenderError(
3 tenantId = "my-tenant-123",
4 id = "welcome-email-template",
5 errorId = "render-error-2026"
6)
7if response.isSome:
8 let flagResp = response.get()
9 discard flagResp
10

getEmailTemplate Internal Link

Parameters

NameTypeRequiredDescription
tenantIdstringYes
idstringNo

Response

Returns: Option[GetEmailTemplate_200_response]

Example

getEmailTemplate Example
Copy Copy
1
2let (response, httpResponse) = client.getEmailTemplate(tenantId = "my-tenant-123", id = "welcome-email-01")
3if response.isSome:
4 let template = response.get()
5 echo "Template ID: ", template.id
6 echo "Subject: ", template.subject
7 echo "Body: ", template.body
8

getEmailTemplateDefinitions Internal Link

Parameters

NameTypeRequiredDescription
tenantIdstringYes

Response

Returns: Option[GetEmailTemplateDefinitions_200_response]

Example

getEmailTemplateDefinitions Example
Copy Copy
1
2let (response, httpResponse) = client.getEmailTemplateDefinitions(tenantId = "my-tenant-123")
3if response.isSome:
4 let defs = response.get()
5 echo "Received email template definitions for tenant my-tenant-123"
6else:
7 echo "No template definitions returned; HTTP status: ", httpResponse.status
8

getEmailTemplateRenderErrors Internal Link

Parameters

NameTypeRequiredDescription
tenantIdstringYes
idstringNo
skipfloat64No

Response

Returns: Option[GetEmailTemplateRenderErrors_200_response]

Example

getEmailTemplateRenderErrors Example
Copy Copy
1
2let (response, httpResponse) = client.getEmailTemplateRenderErrors(tenantId = "my-tenant-123", id = "welcome-email-template-001", skip = 0.0)
3if response.isSome:
4 let result = response.get()
5 echo "Render errors:", result
6else:
7 echo "No render errors or request failed. HTTP status:", httpResponse.status
8

getEmailTemplates Internal Link

Parameters

NameTypeRequiredDescription
tenantIdstringYes
skipfloat64No

Response

Returns: Option[GetEmailTemplates_200_response]

Example

getEmailTemplates Example
Copy Copy
1
2let (response, httpResponse) = client.getEmailTemplates(tenantId = "my-tenant-123", skip = 0.0)
3if response.isSome:
4 let templates = response.get()
5 echo templates
6else:
7 echo "No templates returned"
8

renderEmailTemplate Internal Link

Parameters

NameTypeRequiredDescription
tenantIdstringYes
renderEmailTemplateBodyRenderEmailTemplateBodyNo
localestringNo

Response

Returns: Option[RenderEmailTemplate_200_response]

Example

renderEmailTemplate Example
Copy Copy
1
2let renderBody = RenderEmailTemplateBody(templateId: "comment-notification", subject: "New comment on your article", variables: @["John Doe", "news/global-climate"])
3let (response, httpResponse) = client.renderEmailTemplate(tenantId = "my-tenant-123", renderEmailTemplateBody = renderBody, locale = "en-US")
4if response.isSome:
5 let rendered = response.get()
6 echo rendered
7

updateEmailTemplate Internal Link

Parameters

NameTypeRequiredDescription
tenantIdstringYes
idstringNo
updateEmailTemplateBodyUpdateEmailTemplateBodyNo

Response

Returns: Option[FlagCommentPublic_200_response]

Example

updateEmailTemplate Example
Copy Copy
1
2let updateBody = UpdateEmailTemplateBody(
3 name = "Welcome Email",
4 subject = "Welcome to Example News",
5 html = "<p>Hi {name}, welcome to Example News.</p>",
6 isActive = true,
7 tags = @["onboarding", "welcome"]
8)
9
10let (response, httpResponse) = client.updateEmailTemplate(
11 tenantId = "my-tenant-123",
12 id = "welcome-template-2026",
13 updateEmailTemplateBody = updateBody
14)
15
16if response.isSome:
17 let template = response.get()
18 discard template
19

getEventLog Internal Link

req tenantId urlId userIdWS

Parameters

NameTypeRequiredDescription
tenantIdstringYes
urlIdstringYes
userIdWSstringNo
startTimeint64No
endTimeint64No

Response

Returns: Option[GetEventLog_200_response]

Example

getEventLog Example
Copy Copy
1
2let (response, httpResponse) = client.getEventLog(
3 tenantId = "my-tenant-123",
4 urlId = "news/article-title",
5 userIdWS = "",
6 startTime = 0'i64,
7 endTime = 0'i64
8)
9if response.isSome:
10 let eventLog = response.get()
11 echo "Event log retrieved for news/article-title"
12 discard eventLog
13else:
14 echo "Failed to retrieve event log, status: ", httpResponse.status
15

getGlobalEventLog Internal Link

req tenantId urlId userIdWS

Parameters

NameTypeRequiredDescription
tenantIdstringYes
urlIdstringYes
userIdWSstringNo
startTimeint64No
endTimeint64No

Response

Returns: Option[GetEventLog_200_response]

Example

getGlobalEventLog Example
Copy Copy
1
2let (response, httpResponse) = client.getGlobalEventLog(tenantId = "my-tenant-123",
3 urlId = "news/how-ai-is-changing",
4 userIdWS = "",
5 startTime = int64(0),
6 endTime = int64(0))
7
8if response.isSome:
9 let eventLog = response.get()
10 echo "Event log received:"
11 echo eventLog
12else:
13 echo "No event log; http response:"
14 echo httpResponse
15

createFeedPost Internal Link

Parameters

NameTypeRequiredDescription
tenantIdstringYes
createFeedPostParamsCreateFeedPostParamsNo
broadcastIdstringNo
isLiveboolNo
doSpamCheckboolNo
skipDupCheckboolNo

Response

Returns: Option[CreateFeedPost_200_response]

Example

createFeedPost Example
Copy Copy
1
2let (response, httpResponse) = client.createFeedPost(
3 tenantId = "my-tenant-123",
4 createFeedPostParams = CreateFeedPostParams(
5 title = "Breaking: Major Storm Hits City",
6 content = "A severe storm caused widespread outages and travel delays across the metro area.",
7 authorId = "author-789",
8 url = "news/major-storm",
9 tags = @["weather", "breaking"],
10 attachments = @[]
11 ),
12 broadcastId = "",
13 isLive = false,
14 doSpamCheck = false,
15 skipDupCheck = false
16)
17
18if response.isSome:
19 let created = response.get()
20 echo "Feed post created:", created
21

createFeedPostPublic Internal Link

Parameters

NameTypeRequiredDescription
tenantIdstringYes
createFeedPostParamsCreateFeedPostParamsNo
broadcastIdstringNo
ssostringNo

Response

Returns: Option[CreateFeedPostPublic_200_response]

Example

createFeedPostPublic Example
Copy Copy
1
2let params = CreateFeedPostParams(
3 title: "Local Elections Update",
4 content: "Final results will be posted after polls close at 8pm.",
5 authorId: "reporter-789",
6 tags: @["politics", "local"],
7 isPublic: true
8)
9let (response, httpResponse) = client.createFeedPostPublic(
10 tenantId = "my-tenant-123",
11 createFeedPostParams = params,
12 broadcastId = "bcast-456",
13 sso = "sso-token-abc"
14)
15if response.isSome:
16 let created = response.get()
17 echo "created post id: ", created.id
18else:
19 echo "request failed, status: ", httpResponse.status
20

deleteFeedPostPublic Internal Link

Parameters

NameTypeRequiredDescription
tenantIdstringYes
postIdstringNo
broadcastIdstringNo
ssostringNo

Response

Returns: Option[DeleteFeedPostPublic_200_response]

Example

deleteFeedPostPublic Example
Copy Copy
1
2let (response, httpResponse) = client.deleteFeedPostPublic(tenantId = "my-tenant-123", postId = "", broadcastId = "", sso = "")
3if response.isSome:
4 let deleted = response.get()
5 discard deleted
6else:
7 discard httpResponse
8

getFeedPosts Internal Link

req tenantId afterId

Parameters

NameTypeRequiredDescription
tenantIdstringYes
afterIdstringNo
limitintNo
tagsseq[string]No

Response

Returns: Option[GetFeedPosts_200_response]

Example

getFeedPosts Example
Copy Copy
1
2let (response, httpResponse) = client.getFeedPosts(
3 tenantId = "my-tenant-123",
4 afterId = "",
5 limit = 0,
6 tags = @[]
7)
8
9if response.isSome:
10 let feed = response.get()
11 discard feed
12

getFeedPostsPublic Internal Link

req tenantId afterId

Parameters

NameTypeRequiredDescription
tenantIdstringYes
afterIdstringNo
limitintNo
tagsseq[string]No
ssostringNo
isCrawlerboolNo
includeUserInfoboolNo

Response

Returns: Option[GetFeedPostsPublic_200_response]

Example

getFeedPostsPublic Example
Copy Copy
1
2let (response, httpResponse) = client.getFeedPostsPublic(
3 tenantId = "my-tenant-123",
4 afterId = "",
5 limit = 0,
6 tags = @[],
7 sso = "",
8 isCrawler = false,
9 includeUserInfo = false
10)
11
12if response.isSome:
13 let feed = response.get()
14 echo "Retrieved feed posts"
15else:
16 echo "No feed posts returned"
17

getFeedPostsStats Internal Link

Parameters

NameTypeRequiredDescription
tenantIdstringYes
postIdsseq[string]No
ssostringNo

Response

Returns: Option[GetFeedPostsStats_200_response]

Example

getFeedPostsStats Example
Copy Copy
1
2let (response, httpResponse) = client.getFeedPostsStats(tenantId = "my-tenant-123", postIds = @["news/article-456", "blog/post-789"], sso = "user-abc-sso-token")
3if response.isSome:
4 let stats = response.get()
5 echo "Received feed posts stats: ", stats
6else:
7 echo "No feed posts stats returned"
8

getUserReactsPublic Internal Link

Parameters

NameTypeRequiredDescription
tenantIdstringYes
postIdsseq[string]No
ssostringNo

Response

Returns: Option[GetUserReactsPublic_200_response]

Example

getUserReactsPublic Example
Copy Copy
1
2let (response, httpResponse) = client.getUserReactsPublic(tenantId = "my-tenant-123", postIds = @["post-987", "post-654"], sso = "sso-token-abc123")
3if response.isSome:
4 let reacts = response.get()
5 echo "Received reacts:", repr(reacts)
6else:
7 echo "No reacts returned, HTTP status:", $httpResponse.status
8

reactFeedPostPublic Internal Link

Parameters

NameTypeRequiredDescription
tenantIdstringYes
postIdstringNo
reactBodyParamsReactBodyParamsNo
isUndoboolNo
broadcastIdstringNo
ssostringNo

Response

Returns: Option[ReactFeedPostPublic_200_response]

Example

reactFeedPostPublic Example
Copy Copy
1
2let (response, httpResponse) = client.reactFeedPostPublic(
3 tenantId = "my-tenant-123",
4 postId = "news/international-earthquake-2026",
5 reactBodyParams = default(ReactBodyParams),
6 isUndo = false,
7 broadcastId = "broadcast-789",
8 sso = ""
9)
10if response.isSome:
11 let reactResult = response.get()
12 discard reactResult
13

updateFeedPost Internal Link

Parameters

NameTypeRequiredDescription
tenantIdstringYes
idstringNo
feedPostFeedPostNo

Response

Returns: Option[FlagCommentPublic_200_response]

Example

updateFeedPost Example
Copy Copy
1
2let (response, httpResponse) = client.updateFeedPost(
3 tenantId = "my-tenant-123",
4 id = "post-456",
5 feedPost = FeedPost(
6 id = "post-456",
7 title = "Breaking News: Market Rally",
8 content = "Stocks surged 5% after the Fed announcement; analysts cite renewed investor confidence.",
9 published = true,
10 tags = @["finance", "markets"]
11 )
12)
13if response.isSome:
14 let flagResp = response.get()
15 discard flagResp
16

updateFeedPostPublic Internal Link

Parameters

NameTypeRequiredDescription
tenantIdstringYes
postIdstringNo
updateFeedPostParamsUpdateFeedPostParamsNo
broadcastIdstringNo
ssostringNo

Response

Returns: Option[CreateFeedPostPublic_200_response]

Example

updateFeedPostPublic Example
Copy Copy
1
2let updateParams = UpdateFeedPostParams(
3 title = "Launch: FastComments v2.0",
4 content = "Announcing the v2.0 release with performance and moderation improvements.",
5 visible = true,
6 tags = @["release", "announcement"],
7 priority = 1
8)
9
10let (response, httpResponse) = client.updateFeedPostPublic(
11 tenantId = "my-tenant-123",
12 postId = "news/launch-fastcomments-v2",
13 updateFeedPostParams = updateParams,
14 broadcastId = "",
15 sso = ""
16)
17
18if response.isSome:
19 let updated = response.get()
20 echo "Feed post updated successfully"
21

flagCommentPublic Internal Link

Parameters

NameTypeRequiredDescription
tenantIdstringYes
commentIdstringYes
isFlaggedboolNo
ssostringNo

Response

Returns: Option[FlagCommentPublic_200_response]

Example

flagCommentPublic Example
Copy Copy
1
2let (response, httpResponse) = client.flagCommentPublic(
3 tenantId = "my-tenant-123",
4 commentId = "cmt-987654",
5 isFlagged = false,
6 sso = ""
7)
8if response.isSome:
9 let flagged = response.get()
10 discard flagged
11

addHashTag Internal Link

Parameters

NameTypeRequiredDescription
tenantIdstringYes
createHashTagBodyCreateHashTagBodyNo

Response

Returns: Option[AddHashTag_200_response]

Example

addHashTag Example
Copy Copy
1
2let createBody = CreateHashTagBody(
3 name = "sports",
4 description = "Articles and discussions about sports",
5 aliases = @["sport", "athletics"],
6 isActive = true
7)
8
9let (response, httpResponse) = client.addHashTag(tenantId = "my-tenant-123", createHashTagBody = createBody)
10
11if response.isSome:
12 let added = response.get()
13 echo "HashTag added successfully"
14else:
15 echo "Failed to add HashTag"
16

addHashTagsBulk Internal Link

Parameters

NameTypeRequiredDescription
tenantIdstringYes
bulkCreateHashTagsBodyBulkCreateHashTagsBodyNo

Response

Returns: Option[AddHashTagsBulk_200_response]

Example

addHashTagsBulk Example
Copy Copy
1
2let bulkBody = BulkCreateHashTagsBody(
3 tags = @["breaking", "world-news", "economy"],
4 createdBy = "editor@dailynews.com",
5 replaceExisting = false
6)
7let (response, httpResponse) = client.addHashTagsBulk(tenantId = "newsroom-tenant-42", bulkCreateHashTagsBody = bulkBody)
8if response.isSome:
9 let created = response.get()
10 echo created
11else:
12 echo "AddHashTagsBulk failed:", httpResponse
13

deleteHashTag Internal Link

Parameters

NameTypeRequiredDescription
tagstringNo
tenantIdstringYes
deleteHashTagRequestDeleteHashTagRequestNo

Response

Returns: Option[FlagCommentPublic_200_response]

Example

deleteHashTag Example
Copy Copy
1
2let (response, httpResponse) = client.deleteHashTag(tag = "breaking-news", tenantId = "my-tenant-123", deleteHashTagRequest = DeleteHashTagRequest())
3if response.isSome:
4 let result = response.get()
5 discard result
6

getHashTags Internal Link

Parameters

NameTypeRequiredDescription
tenantIdstringYes
pagefloat64No

Response

Returns: Option[GetHashTags_200_response]

Example

getHashTags Example
Copy Copy
1
2let (response, httpResponse) = client.getHashTags(tenantId = "my-tenant-123", page = 1.0)
3if response.isSome:
4 let tags = response.get()
5 for t in tags:
6 echo t
7else:
8 echo "no hashtags found"
9

patchHashTag Internal Link

Parameters

NameTypeRequiredDescription
tagstringNo
tenantIdstringYes
updateHashTagBodyUpdateHashTagBodyNo

Response

Returns: Option[PatchHashTag_200_response]

Example

patchHashTag Example
Copy Copy
1
2let (response, httpResponse) = client.patchHashTag(tag = "politics", tenantId = "my-tenant-123", updateHashTagBody = UpdateHashTagBody())
3
4if response.isSome:
5 let updated = response.get()
6 echo "Hashtag updated successfully"
7else:
8 echo "Failed to update hashtag, status:", httpResponse.status
9

createModerator Internal Link

Parameters

NameTypeRequiredDescription
tenantIdstringYes
createModeratorBodyCreateModeratorBodyNo

Response

Returns: Option[CreateModerator_200_response]

Example

createModerator Example
Copy Copy
1
2let createBody = CreateModeratorBody(
3 email = "moderator@news-site.com",
4 displayName = "News Moderator",
5 permissions = @["approve_comments", "delete_comments"],
6 isSuperAdmin = false
7)
8
9let (response, httpResponse) = client.createModerator(tenantId = "my-tenant-123", createModeratorBody = createBody)
10
11if response.isSome:
12 let moderator = response.get()
13 echo "Created moderator: ", $moderator
14

deleteModerator Internal Link

Parameters

NameTypeRequiredDescription
tenantIdstringYes
idstringNo
sendEmailstringNo

Response

Returns: Option[FlagCommentPublic_200_response]

Example

deleteModerator Example
Copy Copy
1
2let (response, httpResponse) = client.deleteModerator(tenantId = "my-tenant-123", id = "moderator-456", sendEmail = "false")
3if response.isSome:
4 let flagResp = response.get()
5 echo "Moderator deletion response: ", $flagResp
6else:
7 echo "No response body; HTTP status: ", $httpResponse.status
8

getModerator Internal Link

Parameters

NameTypeRequiredDescription
tenantIdstringYes
idstringNo

Response

Returns: Option[GetModerator_200_response]

Example

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

getModerators Internal Link

Parameters

NameTypeRequiredDescription
tenantIdstringYes
skipfloat64No

Response

Returns: Option[GetModerators_200_response]

Example

getModerators Example
Copy Copy
1
2let (response, httpResponse) = client.getModerators(tenantId = "my-tenant-123", skip = 0.0)
3if response.isSome:
4 let moderators = response.get()
5 echo "Moderators fetched successfully"
6 echo moderators
7

updateModerator Internal Link

Parameters

NameTypeRequiredDescription
tenantIdstringYes
idstringNo
updateModeratorBodyUpdateModeratorBodyNo

Response

Returns: Option[FlagCommentPublic_200_response]

Example

updateModerator Example
Copy Copy
1
2let updateBody = UpdateModeratorBody(
3 name: "Alicia Gomez",
4 email: "alicia.gomez@dailynews.com",
5 active: true,
6 roles: @["moderator"]
7)
8
9let (response, httpResponse) = client.updateModerator(tenantId = "my-tenant-123", id = "moderator-789", updateModeratorBody = updateBody)
10
11if response.isSome:
12 let updated = response.get()
13 echo "Moderator updated:", updated
14

deleteNotificationCount Internal Link

Parameters

NameTypeRequiredDescription
tenantIdstringYes
idstringNo

Response

Returns: Option[FlagCommentPublic_200_response]

Example

deleteNotificationCount Example
Copy Copy
1
2let (response, httpResponse) = client.deleteNotificationCount(tenantId = "my-tenant-123", id = "notif-456")
3if response.isSome:
4 let deleted = response.get()
5 echo "Deleted notification count:", deleted
6else:
7 echo "No response body; HTTP response:", httpResponse
8

getCachedNotificationCount Internal Link

Parameters

NameTypeRequiredDescription
tenantIdstringYes
idstringNo

Response

Returns: Option[GetCachedNotificationCount_200_response]

Example

getCachedNotificationCount Example
Copy Copy
1
2let (response, httpResponse) = client.getCachedNotificationCount(tenantId = "my-tenant-123", id = "notif-thread-2026")
3if response.isSome:
4 let cached = response.get()
5 echo "Cached notification count: ", $cached
6

getNotificationCount Internal Link

Parameters

NameTypeRequiredDescription
tenantIdstringYes
userIdstringNo
urlIdstringYes
fromCommentIdstringNo
viewedboolNo

Response

Returns: Option[GetNotificationCount_200_response]

Example

getNotificationCount Example
Copy Copy
1
2let (response, httpResponse) = client.getNotificationCount(
3 tenantId = "acme-corp-tenant-12",
4 userId = "user-84",
5 urlId = "news/2026/market-update",
6 fromCommentId = "cmt-20251234",
7 viewed = false
8)
9
10if response.isSome:
11 let notificationData = response.get()
12 echo "Received notification data"
13else:
14 echo "No notification data"
15

getNotifications Internal Link

Parameters

NameTypeRequiredDescription
tenantIdstringYes
userIdstringNo
urlIdstringYes
fromCommentIdstringNo
viewedboolNo
skipfloat64No

Response

Returns: Option[GetNotifications_200_response]

Example

getNotifications Example
Copy Copy
1
2let (response, httpResponse) = client.getNotifications(
3 tenantId = "fastcomments-tenant-42",
4 userId = "",
5 urlId = "news/latest-tech-innovations",
6 fromCommentId = "",
7 viewed = false,
8 skip = 0.0
9)
10
11if response.isSome:
12 let notifications = response.get()
13 echo "Received notifications: ", notifications
14else:
15 echo "No notifications, response: ", httpResponse
16

updateNotification Internal Link

Parameters

NameTypeRequiredDescription
tenantIdstringYes
idstringNo
updateNotificationBodyUpdateNotificationBodyNo
userIdstringNo

Response

Returns: Option[FlagCommentPublic_200_response]

Example

updateNotification Example
Copy Copy
1
2let (response, httpResponse) = client.updateNotification(tenantId = "my-tenant-123",
3 id = "notif-456",
4 updateNotificationBody = UpdateNotificationBody(),
5 userId = "user-789")
6if response.isSome:
7 let updated = response.get()
8 echo "Updated notification id: ", $updated
9

addPage Internal Link

Parameters

NameTypeRequiredDescription
tenantIdstringYes
createAPIPageDataCreateAPIPageDataNo

Response

Returns: Option[AddPageAPIResponse]

Example

addPage Example
Copy Copy
1
2let createData = CreateAPIPageData(path = "news/2026/market-update", title = "Market Update — Jan 2026", tags = @["finance", "markets"], isPublished = true)
3let (response, httpResponse) = client.addPage(tenantId = "my-tenant-123", createAPIPageData = createData)
4if response.isSome:
5 let page = response.get()
6 discard page
7

deletePage Internal Link

Parameters

NameTypeRequiredDescription
tenantIdstringYes
idstringNo

Response

Returns: Option[DeletePageAPIResponse]

Example

deletePage Example
Copy Copy
1
2let (response, httpResponse) = client.deletePage(tenantId = "my-tenant-123", id = "news/article-title")
3if response.isSome:
4 let deleted = response.get()
5 echo deleted
6else:
7 echo "Deletion failed or no response body"
8

getPageByURLId Internal Link

Parameters

NameTypeRequiredDescription
tenantIdstringYes
urlIdstringYes

Response

Returns: Option[GetPageByURLIdAPIResponse]

Example

getPageByURLId Example
Copy Copy
1
2let (response, httpResponse) = client.getPageByURLId(tenantId = "my-tenant-123", urlId = "news/article-title-2026")
3if response.isSome:
4 let page = response.get()
5 echo "Page retrieved: ", $page
6else:
7 echo "Page not found, HTTP status: ", $httpResponse.status
8

getPages Internal Link

Parameters

NameTypeRequiredDescription
tenantIdstringYes

Response

Returns: Option[GetPagesAPIResponse]

Example

getPages Example
Copy Copy
1
2let (response, httpResponse) = client.getPages(tenantId = "my-tenant-123")
3if response.isSome:
4 let pages = response.get()
5 echo "Pages received for tenant my-tenant-123"
6 echo pages
7else:
8 echo "No pages found, HTTP status: ", $httpResponse.status
9

patchPage Internal Link

Parameters

NameTypeRequiredDescription
tenantIdstringYes
idstringNo
updateAPIPageDataUpdateAPIPageDataNo

Response

Returns: Option[PatchPageAPIResponse]

Example

patchPage Example
Copy Copy
1
2let updateData = UpdateAPIPageData(
3 title = "Main St Reopens After Repairs",
4 path = "news/main-st-reopens",
5 description = "Main Street reopened to traffic following overnight repairs",
6 isEnabled = true,
7 tags = @["local", "infrastructure"]
8)
9
10let (response, httpResponse) = client.patchPage(tenantId = "my-tenant-123", id = "page-456", updateAPIPageData = updateData)
11
12if response.isSome:
13 let page = response.get()
14 echo "Patched page:", $page
15else:
16 echo "Patch failed, HTTP status: ", httpResponse.status
17

deletePendingWebhookEvent Internal Link

Parameters

NameTypeRequiredDescription
tenantIdstringYes
idstringNo

Response

Returns: Option[FlagCommentPublic_200_response]

Example

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

getPendingWebhookEventCount Internal Link

Parameters

NameTypeRequiredDescription
tenantIdstringYes
commentIdstringYes
externalIdstringNo
eventTypestringNo
domainstringNo
attemptCountGTfloat64No

Response

Returns: Option[GetPendingWebhookEventCount_200_response]

Example

getPendingWebhookEventCount Example
Copy Copy
1
2let (response, httpResponse) = client.getPendingWebhookEventCount(
3 tenantId = "my-tenant-123",
4 commentId = "cmt-4567",
5 externalId = "",
6 eventType = "",
7 domain = "",
8 attemptCountGT = 0.0
9)
10if response.isSome:
11 let pending = response.get()
12 echo "Received pending webhook event count response: ", $pending
13else:
14 echo "No pending webhook event count returned, HTTP response: ", $httpResponse
15

getPendingWebhookEvents Internal Link

Parameters

NameTypeRequiredDescription
tenantIdstringYes
commentIdstringYes
externalIdstringNo
eventTypestringNo
domainstringNo
attemptCountGTfloat64No
skipfloat64No

Response

Returns: Option[GetPendingWebhookEvents_200_response]

Example

getPendingWebhookEvents Example
Copy Copy
1
2let (response, httpResponse) = client.getPendingWebhookEvents(
3 tenantId = "my-tenant-123",
4 commentId = "cmt-456789",
5 externalId = "",
6 eventType = "",
7 domain = "",
8 attemptCountGT = 0.0,
9 skip = 0.0
10)
11if response.isSome:
12 let pending = response.get()
13 discard pending
14 echo "Received pending webhook events"
15else:
16 echo "No pending webhook events"
17

createQuestionConfig Internal Link

Parameters

NameTypeRequiredDescription
tenantIdstringYes
createQuestionConfigBodyCreateQuestionConfigBodyNo

Response

Returns: Option[CreateQuestionConfig_200_response]

Example

createQuestionConfig Example
Copy Copy
1
2let body = CreateQuestionConfigBody(
3 key = "recommendation",
4 question = "Would you recommend this article to a friend?",
5 required = false,
6 inputType = "radio",
7 options = @["Yes", "No", "Maybe"]
8)
9
10let (response, httpResponse) = client.createQuestionConfig(tenantId = "my-tenant-123", createQuestionConfigBody = body)
11
12if response.isSome:
13 let config = response.get()
14 discard config
15

deleteQuestionConfig Internal Link

Parameters

NameTypeRequiredDescription
tenantIdstringYes
idstringNo

Response

Returns: Option[FlagCommentPublic_200_response]

Example

deleteQuestionConfig Example
Copy Copy
1
2let (response, httpResponse) = client.deleteQuestionConfig(tenantId = "my-tenant-123", id = "qcfg-456")
3if response.isSome:
4 let respVal = response.get()
5 echo "Delete succeeded for tenant my-tenant-123"
6else:
7 echo "Delete returned no data (status: ", $httpResponse.status, ")"
8

getQuestionConfig Internal Link

Parameters

NameTypeRequiredDescription
tenantIdstringYes
idstringNo

Response

Returns: Option[GetQuestionConfig_200_response]

Example

getQuestionConfig Example
Copy Copy
1
2let (response, httpResponse) = client.getQuestionConfig(tenantId = "my-tenant-123", id = "qcfg-98765")
3if response.isSome:
4 let config = response.get()
5 echo "Received question config for tenant:", " my-tenant-123"
6

getQuestionConfigs Internal Link

Parameters

NameTypeRequiredDescription
tenantIdstringYes
skipfloat64No

Response

Returns: Option[GetQuestionConfigs_200_response]

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 discard configs
6

updateQuestionConfig Internal Link

Parameters

NameTypeRequiredDescription
tenantIdstringYes
idstringNo
updateQuestionConfigBodyUpdateQuestionConfigBodyNo

Response

Returns: Option[FlagCommentPublic_200_response]

Example

updateQuestionConfig Example
Copy Copy
1
2let (response, httpResponse) = client.updateQuestionConfig(
3 tenantId = "my-tenant-123",
4 id = "q-config-456",
5 updateQuestionConfigBody = UpdateQuestionConfigBody()
6)
7if response.isSome:
8 let updated = response.get()
9 discard updated
10 echo "Question config updated"
11else:
12 echo "Update did not return a result"
13

createQuestionResult Internal Link

Parameters

NameTypeRequiredDescription
tenantIdstringYes
createQuestionResultBodyCreateQuestionResultBodyNo

Response

Returns: Option[CreateQuestionResult_200_response]

Example

createQuestionResult Example
Copy Copy
1
2let (response, httpResponse) = client.createQuestionResult(tenantId = "my-tenant-123",
3 createQuestionResultBody = CreateQuestionResultBody(questionId: "q-456",
4 userId: "user-789",
5 correct: true,
6 score: 9,
7 answers: @["B", "D"]))
8if response.isSome:
9 let result = response.get()
10 echo result
11

deleteQuestionResult Internal Link

Parameters

NameTypeRequiredDescription
tenantIdstringYes
idstringNo

Response

Returns: Option[FlagCommentPublic_200_response]

Example

deleteQuestionResult Example
Copy Copy
1
2let (response, httpResponse) = client.deleteQuestionResult(tenantId = "my-tenant-123", id = "question-result-789")
3if response.isSome:
4 let result = response.get()
5 echo "Deleted question result:", result
6else:
7 echo "No result returned, HTTP status:", $httpResponse.status
8

getQuestionResult Internal Link

Parameters

NameTypeRequiredDescription
tenantIdstringYes
idstringNo

Response

Returns: Option[GetQuestionResult_200_response]

Example

getQuestionResult Example
Copy Copy
1
2let (response, httpResponse) = client.getQuestionResult(tenantId = "my-tenant-123", id = "question-456")
3if response.isSome:
4 let result = response.get()
5 echo "Received question result:"
6 echo result
7else:
8 echo "No question result returned"
9

getQuestionResults Internal Link

Parameters

NameTypeRequiredDescription
tenantIdstringYes
urlIdstringYes
userIdstringNo
startDatestringNo
questionIdstringNo
questionIdsstringNo
skipfloat64No

Response

Returns: Option[GetQuestionResults_200_response]

Example

getQuestionResults Example
Copy Copy
1
2let (response, httpResponse) = client.getQuestionResults(
3 tenantId = "my-tenant-123",
4 urlId = "news/politics/election-2024",
5 userId = "user-9876",
6 startDate = "2024-01-01T00:00:00Z",
7 questionId = "q-user-satisfaction",
8 questionIds = "q-user-satisfaction,q-engagement",
9 skip = 0.0
10)
11
12if response.isSome:
13 let results = response.get()
14 echo "Got question results: ", $results
15else:
16 echo "No results, HTTP status: ", httpResponse.status
17

updateQuestionResult Internal Link

Parameters

NameTypeRequiredDescription
tenantIdstringYes
idstringNo
updateQuestionResultBodyUpdateQuestionResultBodyNo

Response

Returns: Option[FlagCommentPublic_200_response]

Example

updateQuestionResult Example
Copy Copy
1
2let (response, httpResponse) = client.updateQuestionResult(
3 tenantId = "my-tenant-123",
4 id = "question-456",
5 updateQuestionResultBody = UpdateQuestionResultBody(
6 result = "approved",
7 reviewerId = "moderator-42",
8 notes = "Valid question, no action required",
9 isSpam = false
10 )
11)
12if response.isSome:
13 let flagResponse = response.get()
14 discard flagResponse
15

aggregateQuestionResults Internal Link

Parameters

NameTypeRequiredDescription
tenantIdstringYes
questionIdstringNo
questionIdsseq[string]No
urlIdstringYes
timeBucketAggregateTimeBucketNo
startDatestringNo
forceRecalculateboolNo

Response

Returns: Option[AggregateQuestionResults_200_response]

Example

aggregateQuestionResults Example
Copy Copy
1
2let (response, httpResponse) = client.aggregateQuestionResults(
3 tenantId = "my-tenant-123",
4 questionId = "q-42",
5 questionIds = @["q-42", "q-43"],
6 urlId = "news/article-latest-updates",
7 timeBucket = AggregateTimeBucket.daily,
8 startDate = "2025-01-01T00:00:00Z",
9 forceRecalculate = false
10)
11
12if response.isSome:
13 let aggregated = response.get()
14 discard aggregated
15

bulkAggregateQuestionResults Internal Link

Parameters

NameTypeRequiredDescription
tenantIdstringYes
bulkAggregateQuestionResultsRequestBulkAggregateQuestionResultsRequestNo
forceRecalculateboolNo

Response

Returns: Option[BulkAggregateQuestionResults_200_response]

Example

bulkAggregateQuestionResults Example
Copy Copy
1
2let request = BulkAggregateQuestionResultsRequest(questionIds = @["question-123", "question-456"], startDate = "2025-01-01", endDate = "2025-01-31")
3let (response, httpResponse) = client.bulkAggregateQuestionResults(tenantId = "my-tenant-123", bulkAggregateQuestionResultsRequest = request, forceRecalculate = false)
4if response.isSome:
5 let results = response.get()
6 discard results
7

combineCommentsWithQuestionResults Internal Link

Parameters

NameTypeRequiredDescription
tenantIdstringYes
questionIdstringNo
questionIdsseq[string]No
urlIdstringYes
startDatestringNo
forceRecalculateboolNo
minValuefloat64No
maxValuefloat64No
limitfloat64No

Response

Returns: Option[CombineCommentsWithQuestionResults_200_response]

Example

combineCommentsWithQuestionResults Example
Copy Copy
1
2let (response, httpResponse) = client.combineCommentsWithQuestionResults(
3 tenantId = "my-tenant-123",
4 questionId = "",
5 questionIds = @[],
6 urlId = "news/earthquake-2026-10-05",
7 startDate = "",
8 forceRecalculate = false,
9 minValue = 0.0,
10 maxValue = 0.0,
11 limit = 0.0
12)
13
14if response.isSome:
15 let result = response.get()
16 discard result
17

addSSOUser Internal Link

Parameters

NameTypeRequiredDescription
tenantIdstringYes
createAPISSOUserDataCreateAPISSOUserDataNo

Response

Returns: Option[AddSSOUserAPIResponse]

Example

addSSOUser Example
Copy Copy
1
2let createData = CreateAPISSOUserData(
3 id = "user-789",
4 email = "jane.doe@example.com",
5 username = "jane.doe",
6 displayName = "Jane Doe",
7 roles = @["author", "editor"],
8 avatarUrl = "https://cdn.example.com/avatars/jane.jpg",
9 metadata = @[],
10 isActive = true
11)
12
13let (response, httpResponse) = client.addSSOUser(tenantId = "my-tenant-123", createAPISSOUserData = createData)
14
15if response.isSome:
16 let result = response.get()
17 echo "SSO user added: ", result.id
18else:
19 echo "Failed to add SSO user, HTTP status: ", httpResponse.status.code
20

deleteSSOUser Internal Link

Parameters

NameTypeRequiredDescription
tenantIdstringYes
idstringNo
deleteCommentsboolNo
commentDeleteModestringNo

Response

Returns: Option[DeleteSSOUserAPIResponse]

Example

deleteSSOUser Example
Copy Copy
1
2let (response, httpResponse) = client.deleteSSOUser(
3 tenantId = "my-tenant-123",
4 id = "user-7f3b9c",
5 deleteComments = true,
6 commentDeleteMode = "soft"
7)
8
9if response.isSome:
10 let apiResult = response.get()
11 echo "SSO user deleted successfully"
12 discard apiResult
13

getSSOUserByEmail Internal Link

Parameters

NameTypeRequiredDescription
tenantIdstringYes
emailstringNo

Response

Returns: Option[GetSSOUserByEmailAPIResponse]

Example

getSSOUserByEmail Example
Copy Copy
1
2let (response, httpResponse) = client.getSSOUserByEmail(tenantId = "my-tenant-123", email = "jane.doe@newsorg.com")
3if response.isSome:
4 let ssoUser = response.get()
5 echo "SSO user retrieved for tenant my-tenant-123"
6else:
7 echo "SSO user not found"
8

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 = "sso-user-456")
3if response.isSome:
4 let user = response.get()
5 echo "Fetched SSO user:"
6 echo user
7

getSSOUsers Internal Link

Parameters

NameTypeRequiredDescription
tenantIdstringYes
skipintNo

Response

Returns: Option[GetSSOUsers_200_response]

Example

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

patchSSOUser Internal Link

Parameters

NameTypeRequiredDescription
tenantIdstringYes
idstringNo
updateAPISSOUserDataUpdateAPISSOUserDataNo
updateCommentsboolNo

Response

Returns: Option[PatchSSOUserAPIResponse]

Example

patchSSOUser Example
Copy Copy
1
2let updateData: UpdateAPISSOUserData = UpdateAPISSOUserData(
3 name = "Alice Johnson",
4 email = "alice.johnson@newsorg.com",
5 externalId = "user-789",
6 roles = @["subscriber"],
7 avatarUrl = "https://cdn.newsorg.com/avatars/user-789.png"
8)
9
10let (response, httpResponse) = client.patchSSOUser(
11 tenantId = "my-tenant-123",
12 id = "user-789",
13 updateAPISSOUserData = updateData,
14 updateComments = true
15)
16
17if response.isSome:
18 let patched = response.get()
19 echo patched, " ", httpResponse.statusCode
20

putSSOUser Internal Link

Parameters

NameTypeRequiredDescription
tenantIdstringYes
idstringNo
updateAPISSOUserDataUpdateAPISSOUserDataNo
updateCommentsboolNo

Response

Returns: Option[PutSSOUserAPIResponse]

Example

putSSOUser Example
Copy Copy
1
2let updateData = UpdateAPISSOUserData(
3 email: "jane.doe@example.com",
4 displayName: "Jane Doe",
5 roles: @["editor"],
6 avatarUrl: "https://cdn.example.com/avatars/jane.jpg"
7)
8
9let (response, httpResponse) = client.putSSOUser(
10 tenantId = "my-tenant-123",
11 id = "user-456",
12 updateAPISSOUserData = updateData,
13 updateComments = true
14)
15
16if response.isSome:
17 let updatedUser = response.get()
18 discard updatedUser
19

createSubscription Internal Link

Parameters

NameTypeRequiredDescription
tenantIdstringYes
createAPIUserSubscriptionDataCreateAPIUserSubscriptionDataNo

Response

Returns: Option[CreateSubscriptionAPIResponse]

Example

createSubscription Example
Copy Copy
1
2let (response, httpResponse) = client.createSubscription(tenantId = "my-tenant-123", createAPIUserSubscriptionData = CreateAPIUserSubscriptionData(userId = "user-789", email = "jane.doe@example.com", subscriptionType = "thread", topics = @["news", "world"], active = true))
3if response.isSome:
4 let created = response.get()
5 echo "Subscription created for user: ", created.userId
6

deleteSubscription Internal Link

Parameters

NameTypeRequiredDescription
tenantIdstringYes
idstringNo
userIdstringNo

Response

Returns: Option[DeleteSubscriptionAPIResponse]

Example

deleteSubscription Example
Copy Copy
1
2let (response, httpResponse) = client.deleteSubscription(
3 tenantId = "my-tenant-123",
4 id = "sub-98765",
5 userId = ""
6)
7if response.isSome:
8 let deleted = response.get()
9 echo "Deleted subscription:", $deleted
10else:
11 echo "Failed to delete subscription, HTTP status:", httpResponse.status
12

getSubscriptions Internal Link

Parameters

NameTypeRequiredDescription
tenantIdstringYes
userIdstringNo

Response

Returns: Option[GetSubscriptionsAPIResponse]

Example

getSubscriptions Example
Copy Copy
1
2let (response, httpResponse) = client.getSubscriptions(tenantId = "my-tenant-123", userId = "")
3if response.isSome:
4 let subscriptions = response.get()
5 discard subscriptions
6

updateSubscription Internal Link

Parameters

NameTypeRequiredDescription
tenantIdstringYes
idstringNo
updateAPIUserSubscriptionDataUpdateAPIUserSubscriptionDataNo
userIdstringNo

Response

Returns: Option[UpdateSubscriptionAPIResponse]

Example

updateSubscription Example
Copy Copy
1
2let (response, httpResponse) = client.updateSubscription(
3 tenantId = "my-tenant-123",
4 id = "sub-456",
5 updateAPIUserSubscriptionData = UpdateAPIUserSubscriptionData(
6 subscribed = true,
7 channels = @["email", "push"]
8 ),
9 userId = "user-789"
10)
11
12if response.isSome:
13 let updated = response.get()
14 echo "Subscription updated:", updated
15else:
16 echo "Update failed, HTTP response:", httpResponse
17

getTenantDailyUsages Internal Link

Parameters

NameTypeRequiredDescription
tenantIdstringYes
yearNumberfloat64No
monthNumberfloat64No
dayNumberfloat64No
skipfloat64No

Response

Returns: Option[GetTenantDailyUsages_200_response]

Example

getTenantDailyUsages Example
Copy Copy
1
2let (response, httpResponse) = client.getTenantDailyUsages(
3 tenantId = "my-tenant-123",
4 yearNumber = 2025.0,
5 monthNumber = 6.0,
6 dayNumber = 15.0,
7 skip = 0.0
8)
9
10if response.isSome:
11 let usages = response.get()
12 echo usages
13else:
14 echo "No daily usages returned"
15

createTenantPackage Internal Link

Parameters

NameTypeRequiredDescription
tenantIdstringYes
createTenantPackageBodyCreateTenantPackageBodyNo

Response

Returns: Option[CreateTenantPackage_200_response]

Example

createTenantPackage Example
Copy Copy
1
2let packageBody = CreateTenantPackageBody(
3 packageName = "premium-comments",
4 description = "Premium moderation package for news site",
5 planId = "plan-pro-2024",
6 seats = 100,
7 enabled = true,
8 features = @["moderation", "analytics", "sentiment"]
9)
10
11let (response, httpResponse) = client.createTenantPackage(tenantId = "my-tenant-123", createTenantPackageBody = packageBody)
12
13if response.isSome:
14 let pkg = response.get()
15 echo "Created package ID: ", pkg.packageId
16 echo "Package name: ", pkg.packageName
17else:
18 echo "Failed to create package, HTTP status: ", httpResponse.status.code
19

deleteTenantPackage Internal Link

Parameters

NameTypeRequiredDescription
tenantIdstringYes
idstringNo

Response

Returns: Option[FlagCommentPublic_200_response]

Example

deleteTenantPackage Example
Copy Copy
1
2let (response, httpResponse) = client.deleteTenantPackage(tenantId = "my-tenant-123", id = "pkg-789")
3if response.isSome:
4 let deleted = response.get()
5 echo "Successfully deleted tenant package"
6

getTenantPackage Internal Link

Parameters

NameTypeRequiredDescription
tenantIdstringYes
idstringNo

Response

Returns: Option[GetTenantPackage_200_response]

Example

getTenantPackage Example
Copy Copy
1
2let (response, httpResponse) = client.getTenantPackage(tenantId = "my-tenant-123", id = "pkg-premium-001")
3if response.isSome:
4 let pkg = response.get()
5 echo pkg
6else:
7 echo "No package found for tenant"
8

getTenantPackages Internal Link

Parameters

NameTypeRequiredDescription
tenantIdstringYes
skipfloat64No

Response

Returns: Option[GetTenantPackages_200_response]

Example

getTenantPackages Example
Copy Copy
1
2let (response, httpResponse) = client.getTenantPackages(tenantId = "my-tenant-123", skip = 0.0)
3if response.isSome:
4 let packages = response.get()
5 echo "Received packages for tenant:", " my-tenant-123"
6 echo packages
7else:
8 echo "No packages found, status:", httpResponse.status
9

replaceTenantPackage Internal Link

Parameters

NameTypeRequiredDescription
tenantIdstringYes
idstringNo
replaceTenantPackageBodyReplaceTenantPackageBodyNo

Response

Returns: Option[FlagCommentPublic_200_response]

Example

replaceTenantPackage Example
Copy Copy
1
2let replaceBody = ReplaceTenantPackageBody(
3 packageName = "Community Pro",
4 seats = 500,
5 enableModeration = true,
6 features = @["moderation", "analytics", "single-sign-on"]
7)
8
9let (response, httpResponse) = client.replaceTenantPackage(
10 tenantId = "my-tenant-123",
11 id = "community-pro",
12 replaceTenantPackageBody = replaceBody
13)
14
15if response.isSome:
16 let flagResp = response.get()
17 echo "Package replaced for tenant: ", "my-tenant-123"
18 discard flagResp
19

updateTenantPackage Internal Link

Parameters

NameTypeRequiredDescription
tenantIdstringYes
idstringNo
updateTenantPackageBodyUpdateTenantPackageBodyNo

Response

Returns: Option[FlagCommentPublic_200_response]

Example

updateTenantPackage Example
Copy Copy
1
2let (response, httpResponse) = client.updateTenantPackage(tenantId = "my-tenant-123", id = "pkg-premium", updateTenantPackageBody = UpdateTenantPackageBody())
3if response.isSome:
4 let updated = response.get()
5 echo "Updated package received:", updated
6else:
7 echo "Update failed, HTTP status: ", httpResponse.status
8

createTenantUser Internal Link

Parameters

NameTypeRequiredDescription
tenantIdstringYes
createTenantUserBodyCreateTenantUserBodyNo

Response

Returns: Option[CreateTenantUser_200_response]

Example

createTenantUser Example
Copy Copy
1
2let createBody = CreateTenantUserBody(
3 email = "jane.doe@acmepub.com",
4 displayName = "Jane Doe",
5 password = "S3cur3P@ssw0rd",
6 roles = @["moderator", "editor"],
7 disabled = false
8)
9let (response, httpResponse) = client.createTenantUser(tenantId = "my-tenant-123", createTenantUserBody = createBody)
10if response.isSome:
11 let createdUser = response.get()
12 echo createdUser
13

deleteTenantUser Internal Link

Parameters

NameTypeRequiredDescription
tenantIdstringYes
idstringNo
deleteCommentsstringNo
commentDeleteModestringNo

Response

Returns: Option[FlagCommentPublic_200_response]

Example

deleteTenantUser Example
Copy Copy
1
2let (response, httpResponse) = client.deleteTenantUser(tenantId = "my-tenant-123", id = "user-456", deleteComments = "", commentDeleteMode = "")
3if response.isSome:
4 let flagResp = response.get()
5 echo flagResp
6

getTenantUser Internal Link

Parameters

NameTypeRequiredDescription
tenantIdstringYes
idstringNo

Response

Returns: Option[GetTenantUser_200_response]

Example

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

getTenantUsers Internal Link

Parameters

NameTypeRequiredDescription
tenantIdstringYes
skipfloat64No

Response

Returns: Option[GetTenantUsers_200_response]

Example

getTenantUsers Example
Copy Copy
1
2let (response, httpResponse) = client.getTenantUsers(tenantId = "my-tenant-123", skip = 0.0)
3if response.isSome:
4 let tenantUsers = response.get()
5 echo "Fetched tenant users for my-tenant-123"
6 discard tenantUsers
7else:
8 echo "No users returned"
9 discard httpResponse
10

replaceTenantUser Internal Link

Parameters

NameTypeRequiredDescription
tenantIdstringYes
idstringNo
replaceTenantUserBodyReplaceTenantUserBodyNo
updateCommentsstringNo

Response

Returns: Option[FlagCommentPublic_200_response]

Example

replaceTenantUser Example
Copy Copy
1
2let replaceBody = ReplaceTenantUserBody(name: "Jane Doe", email: "jane.doe@example.com", roles: @["moderator", "contributor"], banned: false)
3let (response, httpResponse) = client.replaceTenantUser(tenantId = "my-tenant-123", id = "user-789", replaceTenantUserBody = replaceBody, updateComments = "true")
4if response.isSome:
5 let updated = response.get()
6 echo updated
7else:
8 echo "No response returned"
9

Parameters

NameTypeRequiredDescription
tenantIdstringYes
idstringNo
redirectURLstringNo

Response

Returns: Option[FlagCommentPublic_200_response]

Example

sendLoginLink Example
Copy Copy
1
2let (response, httpResponse) = client.sendLoginLink(tenantId = "fastcomments-tenant-42", id = "user-9876", redirectURL = "https://news.example.com/articles/2026/fastcomments-login")
3if response.isSome:
4 let loginResp = response.get()
5 echo "Login link sent successfully"
6else:
7 echo "Failed to send login link"
8

updateTenantUser Internal Link

Parameters

NameTypeRequiredDescription
tenantIdstringYes
idstringNo
updateTenantUserBodyUpdateTenantUserBodyNo
updateCommentsstringNo

Response

Returns: Option[FlagCommentPublic_200_response]

Example

updateTenantUser Example
Copy Copy
1
2var body: UpdateTenantUserBody
3body.email = "jane.doe@example.com"
4body.displayName = "Jane Doe"
5body.roles = @["moderator", "editor"]
6body.isActive = true
7
8let (response, httpResponse) = client.updateTenantUser(
9 tenantId = "my-tenant-123",
10 id = "user-789",
11 updateTenantUserBody = body,
12 updateComments = "Promoted user to moderator and editor roles"
13)
14
15if response.isSome:
16 let flagResp = response.get()
17 echo flagResp
18else:
19 echo "Update failed, status: ", httpResponse.status
20

createTenant Internal Link

Parameters

NameTypeRequiredDescription
tenantIdstringYes
createTenantBodyCreateTenantBodyNo

Response

Returns: Option[CreateTenant_200_response]

Example

createTenant Example
Copy Copy
1
2let (response, httpResponse) = client.createTenant(tenantId = "my-tenant-123", createTenantBody = CreateTenantBody(
3 name: "My Tenant 123",
4 domain: "mytenant.example.com",
5 plan: "pro",
6 isActive: true,
7 allowedOrigins: @["https://www.example.com", "https://admin.example.com"]
8))
9if response.isSome:
10 let tenantInfo = response.get()
11 discard tenantInfo
12

deleteTenant Internal Link

Parameters

NameTypeRequiredDescription
tenantIdstringYes
idstringNo
surestringNo

Response

Returns: Option[FlagCommentPublic_200_response]

Example

deleteTenant Example
Copy Copy
1
2let (response, httpResponse) = client.deleteTenant(tenantId = "my-tenant-123", id = "", sure = "")
3
4if response.isSome:
5 let flagResp = response.get()
6 echo "Tenant deletion response received for tenant: ", "my-tenant-123"
7 discard flagResp
8else:
9 echo "No response body returned for tenant deletion"
10

getTenant Internal Link

Parameters

NameTypeRequiredDescription
tenantIdstringYes
idstringNo

Response

Returns: Option[GetTenant_200_response]

Example

getTenant Example
Copy Copy
1
2let (response, httpResponse) = client.getTenant(tenantId = "my-tenant-123", id = "")
3if response.isSome:
4 let tenant = response.get()
5 echo "Tenant retrieved"
6 discard tenant
7else:
8 echo "No tenant found"
9 echo "HTTP status:", httpResponse.status
10

getTenants Internal Link

Parameters

NameTypeRequiredDescription
tenantIdstringYes
metastringNo
skipfloat64No

Response

Returns: Option[GetTenants_200_response]

Example

getTenants Example
Copy Copy
1
2let (response, httpResponse) = client.getTenants(tenantId = "my-tenant-123", meta = "include=details", skip = 0.0)
3if response.isSome:
4 let tenants = response.get()
5 echo "Received tenants: ", repr(tenants)
6else:
7 echo "Failed to retrieve tenants"
8

updateTenant Internal Link

Parameters

NameTypeRequiredDescription
tenantIdstringYes
idstringNo
updateTenantBodyUpdateTenantBodyNo

Response

Returns: Option[FlagCommentPublic_200_response]

Example

updateTenant Example
Copy Copy
1
2let (response, httpResponse) = client.updateTenant(
3 tenantId = "my-tenant-123",
4 id = "tenant-456",
5 updateTenantBody = UpdateTenantBody()
6)
7if response.isSome:
8 let flagResponse = response.get()
9 echo flagResponse
10else:
11 echo "No body returned; HTTP status: ", httpResponse.status
12

changeTicketState Internal Link

Parameters

NameTypeRequiredDescription
tenantIdstringYes
userIdstringNo
idstringNo
changeTicketStateBodyChangeTicketStateBodyNo

Response

Returns: Option[ChangeTicketState_200_response]

Example

changeTicketState Example
Copy Copy
1
2let (response, httpResponse) = client.changeTicketState(
3 tenantId = "my-tenant-123",
4 userId = "user-456",
5 id = "ticket-789",
6 changeTicketStateBody = ChangeTicketStateBody(
7 state = "closed",
8 message = "Issue resolved by support",
9 notify = true,
10 tags = @["support", "resolved"]
11 )
12)
13if response.isSome:
14 let result = response.get()
15 echo "Changed ticket:", result.state, " (id: ", result.id, ")"
16

createTicket Internal Link

Parameters

NameTypeRequiredDescription
tenantIdstringYes
userIdstringNo
createTicketBodyCreateTicketBodyNo

Response

Returns: Option[CreateTicket_200_response]

Example

createTicket Example
Copy Copy
1
2let createBody = CreateTicketBody(
3 title = "Unable to post comment",
4 description = "HTTP 500 when submitting comment on article 'world/my-latest-report'",
5 contactEmail = "jane.doe@example.com",
6 tags = @["comments", "backend"],
7 urgent = false
8)
9let (response, httpResponse) = client.createTicket(tenantId = "my-tenant-123", userId = "user-9876", createTicketBody = createBody)
10if response.isSome:
11 let ticket = response.get()
12 echo "Created ticket ID: ", $ticket
13

getTicket Internal Link

Parameters

NameTypeRequiredDescription
tenantIdstringYes
idstringNo
userIdstringNo

Response

Returns: Option[GetTicket_200_response]

Example

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

getTickets Internal Link

Parameters

NameTypeRequiredDescription
tenantIdstringYes
userIdstringNo
statefloat64No
skipfloat64No
limitfloat64No

Response

Returns: Option[GetTickets_200_response]

Example

getTickets Example
Copy Copy
1
2let (response, httpResponse) = client.getTickets(tenantId = "my-tenant-123", userId = "user-456", state = 1.0, skip = 0.0, limit = 50.0)
3if response.isSome:
4 let tickets = response.get()
5 echo tickets
6else:
7 echo "No tickets returned"
8

uploadImage Internal Link

Upload and resize an image

Parameters

NameTypeRequiredDescription
tenantIdstringYes
filestringNo
sizePresetSizePresetNo
urlIdstringYes

Response

Returns: Option[UploadImageResponse]

Example

uploadImage Example
Copy Copy
1
2let (response, httpResponse) = client.uploadImage(
3 tenantId = "my-tenant-123",
4 file = "/var/www/uploads/headline-image.jpg",
5 sizePreset = SizePreset.Medium,
6 urlId = "news/article-title"
7)
8
9if response.isSome:
10 let upload = response.get()
11 echo "Upload response received"
12else:
13 echo "No upload response received"
14

getUserBadgeProgressById Internal Link

Parameters

NameTypeRequiredDescription
tenantIdstringYes
idstringNo

Response

Returns: Option[GetUserBadgeProgressById_200_response]

Example

getUserBadgeProgressById Example
Copy Copy
1
2let (response, httpResponse) = client.getUserBadgeProgressById(tenantId = "my-tenant-123", id = "badge-activity-456")
3if response.isSome:
4 let progress = response.get()
5 echo "Retrieved badge progress for tenant my-tenant-123"
6 discard progress
7else:
8 echo "No badge progress found, HTTP status: ", $httpResponse.status
9

getUserBadgeProgressByUserId Internal Link

Parameters

NameTypeRequiredDescription
tenantIdstringYes
userIdstringNo

Response

Returns: Option[GetUserBadgeProgressById_200_response]

Example

getUserBadgeProgressByUserId Example
Copy Copy
1
2let (response, httpResponse) = client.getUserBadgeProgressByUserId(tenantId = "my-tenant-123", userId = "user-78")
3if response.isSome:
4 let progress = response.get()
5 echo "Badge progress received for user-78"
6else:
7 echo "No badge progress for user-78 (HTTP " & $(httpResponse.status) & ")"
8

getUserBadgeProgressList Internal Link

Parameters

NameTypeRequiredDescription
tenantIdstringYes
userIdstringNo
limitfloat64No
skipfloat64No

Response

Returns: Option[GetUserBadgeProgressList_200_response]

Example

getUserBadgeProgressList Example
Copy Copy
1
2let (response, httpResponse) = client.getUserBadgeProgressList(tenantId = "my-tenant-123", userId = "user-456", limit = 25.0, skip = 0.0)
3if response.isSome:
4 let badgeProgress = response.get()
5 echo "Retrieved badge progress for user-456"
6else:
7 echo "No badge progress returned"
8

createUserBadge Internal Link

Parameters

NameTypeRequiredDescription
tenantIdstringYes
createUserBadgeParamsCreateUserBadgeParamsNo

Response

Returns: Option[CreateUserBadge_200_response]

Example

createUserBadge Example
Copy Copy
1
2let params = CreateUserBadgeParams(
3 userId = "user-789",
4 badgeId = "top-contributor",
5 awardedBy = "moderator@news-site.com",
6 reason = "Helpful and respectful contributions",
7 hidden = false,
8 ttlDays = 0,
9 tags = @["community", "trusted"]
10)
11
12let (response, httpResponse) = client.createUserBadge(tenantId = "my-tenant-123", createUserBadgeParams = params)
13
14if response.isSome:
15 let badge = response.get()
16 discard badge
17

deleteUserBadge Internal Link

Parameters

NameTypeRequiredDescription
tenantIdstringYes
idstringNo

Response

Returns: Option[UpdateUserBadge_200_response]

Example

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

getUserBadge Internal Link

Parameters

NameTypeRequiredDescription
tenantIdstringYes
idstringNo

Response

Returns: Option[GetUserBadge_200_response]

Example

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

getUserBadges Internal Link

Parameters

NameTypeRequiredDescription
tenantIdstringYes
userIdstringNo
badgeIdstringNo
displayedOnCommentsboolNo
limitfloat64No
skipfloat64No

Response

Returns: Option[GetUserBadges_200_response]

Example

getUserBadges Example
Copy Copy
1
2let (response, httpResponse) = client.getUserBadges(
3 tenantId = "my-tenant-123",
4 userId = "user-456",
5 badgeId = "contributor",
6 displayedOnComments = true,
7 limit = 25.0,
8 skip = 0.0
9)
10
11if response.isSome:
12 let badges = response.get()
13 echo "User badges retrieved"
14else:
15 echo "No badges found; HTTP status: ", httpResponse.status
16

updateUserBadge Internal Link

Parameters

NameTypeRequiredDescription
tenantIdstringYes
idstringNo
updateUserBadgeParamsUpdateUserBadgeParamsNo

Response

Returns: Option[UpdateUserBadge_200_response]

Example

updateUserBadge Example
Copy Copy
1
2let params = UpdateUserBadgeParams(badgeId: "badge-moderator", label: "Moderator", active: true)
3let (response, httpResponse) = client.updateUserBadge(tenantId = "my-tenant-123", id = "user-456", updateUserBadgeParams = params)
4if response.isSome:
5 let badgeResp = response.get()
6 discard badgeResp
7

getUserNotificationCount Internal Link

Parameters

NameTypeRequiredDescription
tenantIdstringYes
ssostringNo

Response

Returns: Option[GetUserNotificationCount_200_response]

Example

getUserNotificationCount Example
Copy Copy
1
2let (response, httpResponse) = client.getUserNotificationCount(tenantId = "my-tenant-123", sso = "")
3if response.isSome:
4 let data = response.get()
5 echo "Unread notifications: ", $data.unreadCount
6else:
7 echo "No notification count available"
8

getUserNotifications Internal Link

Parameters

NameTypeRequiredDescription
tenantIdstringYes
pageSizeintNo
afterIdstringNo
includeContextboolNo
afterCreatedAtint64No
unreadOnlyboolNo
dmOnlyboolNo
noDmboolNo
includeTranslationsboolNo
ssostringNo

Response

Returns: Option[GetUserNotifications_200_response]

Example

getUserNotifications Example
Copy Copy
1
2let (response, httpResponse) = client.getUserNotifications(
3 tenantId = "my-tenant-123",
4 pageSize = 0,
5 afterId = "",
6 includeContext = false,
7 afterCreatedAt = int64(0),
8 unreadOnly = false,
9 dmOnly = false,
10 noDm = false,
11 includeTranslations = false,
12 sso = ""
13)
14
15if response.isSome:
16 let notifications = response.get()
17 echo notifications
18

resetUserNotificationCount Internal Link

Parameters

NameTypeRequiredDescription
tenantIdstringYes
ssostringNo

Response

Returns: Option[ResetUserNotifications_200_response]

Example

resetUserNotificationCount Example
Copy Copy
1
2let (response, httpResponse) = client.resetUserNotificationCount(tenantId = "my-tenant-123", sso = "")
3if response.isSome:
4 let resetResult = response.get()
5 echo "Reset notifications response received"
6else:
7 echo "No response body; status:", httpResponse.status
8

resetUserNotifications Internal Link

Parameters

NameTypeRequiredDescription
tenantIdstringYes
afterIdstringNo
afterCreatedAtint64No
unreadOnlyboolNo
dmOnlyboolNo
noDmboolNo
ssostringNo

Response

Returns: Option[ResetUserNotifications_200_response]

Example

resetUserNotifications Example
Copy Copy
1
2let (response, httpResponse) = client.resetUserNotifications(
3 tenantId = "my-tenant-123",
4 afterId = "",
5 afterCreatedAt = 0'i64,
6 unreadOnly = false,
7 dmOnly = false,
8 noDm = false,
9 sso = ""
10)
11if response.isSome:
12 let resetResult = response.get()
13 echo "ResetUserNotifications succeeded: ", resetResult
14else:
15 echo "ResetUserNotifications returned no body, status: ", httpResponse.status
16

updateUserNotificationCommentSubscriptionStatus Internal Link

Enable or disable notifications for a specific comment.

Parameters

NameTypeRequiredDescription
tenantIdstringYes
notificationIdstringNo
optedInOrOutstringNo
commentIdstringYes
ssostringNo

Response

Returns: Option[UpdateUserNotificationStatus_200_response]

Example

updateUserNotificationCommentSubscriptionStatus Example
Copy Copy
1
2let (response, httpResponse) = client.updateUserNotificationCommentSubscriptionStatus(
3 tenantId = "my-tenant-123",
4 notificationId = "",
5 optedInOrOut = "",
6 commentId = "comment-789",
7 sso = ""
8)
9
10if response.isSome:
11 let updateResp = response.get()
12 discard updateResp
13

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
ssostringNo

Response

Returns: Option[UpdateUserNotificationStatus_200_response]

Example

updateUserNotificationPageSubscriptionStatus Example
Copy Copy
1
2let (response, httpResponse) = client.updateUserNotificationPageSubscriptionStatus(
3 tenantId = "my-tenant-123",
4 urlId = "news/article-title-456",
5 url = "",
6 pageTitle = "",
7 subscribedOrUnsubscribed = "",
8 sso = ""
9)
10if response.isSome:
11 let result = response.get()
12 echo "Subscription update returned:", $result
13

updateUserNotificationStatus Internal Link

Parameters

NameTypeRequiredDescription
tenantIdstringYes
notificationIdstringNo
newStatusstringNo
ssostringNo

Response

Returns: Option[UpdateUserNotificationStatus_200_response]

Example

updateUserNotificationStatus Example
Copy Copy
1
2let (response, httpResponse) = client.updateUserNotificationStatus(
3 tenantId = "my-tenant-123",
4 notificationId = "notif-98765",
5 newStatus = "read",
6 sso = "sso-session-776"
7)
8
9if response.isSome:
10 let updated = response.get()
11 echo "Updated notification:", $updated
12else:
13 echo "No update returned"
14

getUserPresenceStatuses Internal Link

Parameters

NameTypeRequiredDescription
tenantIdstringYes
urlIdWSstringNo
userIdsstringNo

Response

Returns: Option[GetUserPresenceStatuses_200_response]

Example

getUserPresenceStatuses Example
Copy Copy
1
2let (response, httpResponse) = client.getUserPresenceStatuses(tenantId = "my-tenant-123", urlIdWS = "news/article-title", userIds = "user-987,user-654")
3if response.isSome:
4 let statuses = response.get()
5 echo statuses
6else:
7 discard httpResponse
8

searchUsers Internal Link

Parameters

NameTypeRequiredDescription
tenantIdstringYes
urlIdstringYes
usernameStartsWithstringNo
mentionGroupIdsseq[string]No
ssostringNo
searchSectionstringNo

Response

Returns: Option[SearchUsers_200_response]

Example

searchUsers Example
Copy Copy
1
2let (response, httpResponse) = client.searchUsers(
3 tenantId = "my-tenant-123",
4 urlId = "news/2026/ai-product-launch",
5 usernameStartsWith = "",
6 mentionGroupIds = @[],
7 sso = "",
8 searchSection = ""
9)
10if response.isSome:
11 let users = response.get()
12 echo "Received users:", users.toString()
13

getUser Internal Link

Parameters

NameTypeRequiredDescription
tenantIdstringYes
idstringNo

Response

Returns: Option[GetUser_200_response]

Example

getUser Example
Copy Copy
1
2let (response, httpResponse) = client.getUser(tenantId = "my-tenant-123", id = "user-9876")
3if response.isSome:
4 let user = response.get()
5 echo "User:", user
6else:
7 echo "No user found. HTTP response:", httpResponse
8

createVote Internal Link

Parameters

NameTypeRequiredDescription
tenantIdstringYes
commentIdstringYes
directionstringNo
userIdstringNo
anonUserIdstringNo

Response

Returns: Option[VoteComment_200_response]

Example

createVote Example
Copy Copy
1
2let (response, httpResponse) = client.createVote(
3 tenantId = "my-tenant-123",
4 commentId = "cmt-987654321",
5 direction = "up",
6 userId = "user-42",
7 anonUserId = ""
8)
9if response.isSome:
10 let vote = response.get()
11 echo "Vote recorded: ", $vote
12else:
13 echo "Vote not created, HTTP response: ", $httpResponse
14

deleteVote Internal Link

Parameters

NameTypeRequiredDescription
tenantIdstringYes
idstringNo
editKeystringNo

Response

Returns: Option[DeleteCommentVote_200_response]

Example

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

getVotes Internal Link

Parameters

NameTypeRequiredDescription
tenantIdstringYes
urlIdstringYes

Response

Returns: Option[GetVotes_200_response]

Example

getVotes Example
Copy Copy
1
2let (response, httpResponse) = client.getVotes(tenantId = "my-tenant-123", urlId = "news/2026/major-update")
3if response.isSome:
4 let votes = response.get()
5 discard votes
6else:
7 discard httpResponse
8

getVotesForUser Internal Link

Parameters

NameTypeRequiredDescription
tenantIdstringYes
urlIdstringYes
userIdstringNo
anonUserIdstringNo

Response

Returns: Option[GetVotesForUser_200_response]

Example

getVotesForUser Example
Copy Copy
1
2let (response, httpResponse) = client.getVotesForUser(
3 tenantId = "my-tenant-123",
4 urlId = "news/economy-update-2026",
5 userId = "user-789",
6 anonUserId = ""
7)
8
9if response.isSome:
10 let votes = response.get()
11 discard votes
12

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.