FastComments.com

FastComments JavaScript/TypeScript SDK


To je uradni JavaScript/TypeScript SDK za FastComments.

Uradni JavaScript/TypeScript SDK za FastComments API

Repository

Poglejte na GitHubu


Installation Internal Link

npm install fastcomments-sdk

API Documentation Internal Link


Popolna referenca API: docs/api/README.md

Browser vs Server Compatibility Internal Link


Ta SDK uporablja dvojne vstopne točke za zagotavljanje optimalne združljivosti in preprečevanje napak med izvajanjem:

  • fastcomments-sdk/browser - Različica varna za brskalnik z nativnim fetch
  • fastcomments-sdk/server - Polna Node.js različica s podporo za SSO
  • fastcomments-sdk (privzeto) - Samo tipi, varno za uvoz kjerkoli

Public vs Secured APIs Internal Link

SDK zagotavlja tri glavne razrede API:

  • DefaultApi - Zavarovani končni točki, ki zahtevata vaš API ključ za avtentikacijo. Uporabite jih za operacije na strežniški strani.
  • PublicApi - Javne končne točke, do katerih je mogoče dostopati brez API ključa. Klice lahko pošljete neposredno iz brskalnikov/mobilnih naprav/itd.
  • HiddenApi - Notranje/skrbniške končne točke za napredne primere uporabe.

Primer: Uporaba javnega API-ja (varno za brskalnik)

import { PublicApi } from 'fastcomments-sdk/browser';

const publicApi = new PublicApi();

// Pridobi komentarje za stran (API ključ ni potreben)
const response = await publicApi.getCommentsPublic({
  tenantId: 'your-tenant-id',
  urlId: 'page-url-id'
});

Primer: Uporaba privzetega API-ja (samo na strežniku)

import { DefaultApi, Configuration } from 'fastcomments-sdk/server';

const config = new Configuration({
  apiKey: 'your-api-key' // To naj ostane skrivnost!
});
const defaultApi = new DefaultApi(config);

// Pridobi komentarje s popolnim skrbniškim dostopom
const response = await defaultApi.getComments({
  tenantId: 'your-tenant-id',
  urlId: 'page-url-id'
});

SSO (Single Sign-On) Integration Internal Link

FastComments podpira SSO za integracijo z vašim obstoječim sistemom za preverjanje pristnosti uporabnikov. Funkcionalnost SSO je na voljo le v strežniškem izvozu saj zahteva Node.js kriptografske funkcije.

Preprosto SSO (samo strežniško)

Preprosto SSO je treba generirati na strežniku in poslati odjemalcu:

// Strežniška koda (Node.js/strežnik)
import { FastCommentsSSO, PublicApi } from 'fastcomments-sdk/server';

// Ustvari preprosto SSO z vgrajenim pripomočkom  
const userData = {
  username: 'john_doe',
  email: 'john@example.com',
  displayName: 'John Doe',
  avatar: 'https://example.com/avatar.jpg'
};

const sso = FastCommentsSSO.createSimple(userData, {
  loginURL: '/login',
  logoutURL: '/logout'
});

const ssoToken = sso.createToken();

// Pošlji ssoToken vaši odjemalski kodi
// Odjemalska koda lahko nato uporabi ta žeton z brskalniškim SDK-jem

Varen SSO (strežniško, priporočeno)

Varen SSO je treba implementirati na strežniku in nudi boljšo varnost:

// Strežniška koda (Node.js/strežnik)
import { FastCommentsSSO, PublicApi } from 'fastcomments-sdk/server';

// Ustvari varen SSO z vgrajenim pripomočkom
const userData = {
  id: 'user-123',
  email: 'john@example.com',
  username: 'john_doe',
  displayName: 'John Doe',
  avatar: 'https://example.com/avatar.jpg',
  isAdmin: false,
  isModerator: false
};

const sso = FastCommentsSSO.createSecure('your-api-key', userData, {
  loginURL: '/login',
  logoutURL: '/logout'
});

const ssoConfig = sso.prepareToSend();

// Uporabi z API klici na strežniku
const publicApi = new PublicApi();
const response = await publicApi.getCommentsPublic({
  tenantId: 'your-tenant-id',
  urlId: 'page-url-id',
  sso: JSON.stringify(ssoConfig)
});

// Ali pošlji ssoConfig odjemalcu za uporabo v brskalniku

Uporaba SSO iz brskalnika (z žetonom, ustvarjenim na strežniku)

// Odjemalska koda (brskalnik)
import { PublicApi } from 'fastcomments-sdk/browser';

// Pridobi SSO žeton iz vašega strežniškega končnega mesta
const ssoToken = await fetch('/api/sso-token').then(r => r.json());

const publicApi = new PublicApi();
const response = await publicApi.getCommentsPublic({
  tenantId: 'your-tenant-id',
  urlId: 'page-url-id',
  sso: ssoToken // Uporabi strežniško ustvarjen SSO žeton
});

SSO z ustvarjanjem komentarja

// Strežniško: ustvari SSO in komentar
import { FastCommentsSSO, PublicApi } from 'fastcomments-sdk/server';

const sso = FastCommentsSSO.createSecure('your-api-key', userData);
const ssoConfig = sso.prepareToSend();

const response = await publicApi.createCommentPublic({
  tenantId: 'your-tenant-id',
  urlId: 'page-url-id',
  broadcastId: 'unique-broadcast-id',
  commentData: {
    comment: 'This is my comment',
    date: Date.now(),
    commenterName: 'John Doe',
    url: 'https://example.com/page',
    urlId: 'page-url-id'
  },
  sso: JSON.stringify(ssoConfig)
});

Common Use Cases Internal Link

Pridobivanje komentarjev za stran

const comments = await sdk.publicApi.getCommentsPublic({
  tenantId: 'your-tenant-id',
  urlId: 'article-123'
});

Ustvarjanje komentarja

const newComment = await sdk.publicApi.createCommentPublic({
  createCommentParams: {
    tenantId: 'your-tenant-id',
    urlId: 'article-123',
    comment: 'Great article!',
    commenterName: 'John Doe',
    commenterEmail: 'john@example.com'
  }
});

Glasovanje za komentar

const voteResponse = await sdk.publicApi.voteComment({
  voteBodyParams: {
    commentId: 'comment-id',
    direction: 1 // 1 za glas za, -1 za glas proti
  }
});

Upravljanje uporabnikov (zahteva API ključ)

// Iskanje uporabnikov (zahteva DefaultApi)
const users = await sdk.defaultApi.searchUsers({
  tenantId: 'your-tenant-id',
  urlId: 'page-id',
  usernameStartsWith: 'john'
});

Live Events (Real-time Updates) Internal Link

Naročite se na dogodke v živo, da dobite posodobitve v realnem času za komentarje, glasove in druge dejavnosti.

Dogodki na ravni strani

Poslušajte dogodke v živo na določeni strani (komentarji, glasovi itd.):

import { subscribeToChanges, LiveEvent, LiveEventType } from 'fastcomments-sdk/browser';

const config = {
  tenantId: 'your-tenant-id',
  urlId: 'page-url-id',
};

// Naroči se na dogodke v živo za stran
const subscription = subscribeToChanges(
  config,
  'your-tenant-id', // tenantIdWS
  'page-url-id',    // urlIdWS  
  'user-session-id', // userIdWS (pridobite ga iz odgovora getComments)
  (event: LiveEvent) => {
    console.log('Live event received:', event);

    switch (event.type) {
      case LiveEventType.new_comment:
        console.log('New comment:', event.comment);
        // Posodobite svoj uporabniški vmesnik z novim komentarjem
        break;
      case LiveEventType.new_vote:
        console.log('New vote:', event.vote);
        // Posodobite število glasov v vašem uporabniškem vmesniku
        break;
      case LiveEventType.updated_comment:
        console.log('Comment updated:', event.comment);
        break;
      default:
        console.log('Other event type:', event.type);
    }

    return true; // Vrni true, če je bil dogodek obdelan
  },
  (isConnected: boolean) => {
    console.log('Connection status:', isConnected ? 'Connected' : 'Disconnected');
  }
);

// Zaprite naročnino, ko končate
subscription.close();

Naročite se na uporabniške dogodke

Poslušajte dogodke, ki so specifični za uporabnika (obvestila, omembe itd.):

import { subscribeToUserFeed, LiveEvent, LiveEventType } from 'fastcomments-sdk/browser';

const userConfig = {
  userIdWS: 'user-session-id', // Pridobite to iz odgovora getComments
};

// Naročite se na osebni vir uporabnika
const userSubscription = subscribeToUserFeed(
  userConfig,
  (event: LiveEvent) => {
    console.log('User event received:', event);

    switch (event.type) {
      case LiveEventType.notification:
        console.log('New notification:', event.notification);
        // Prikažite obvestilo v vašem uporabniškem vmesniku
        break;
      case LiveEventType.notification_update:
        console.log('Notification updated:', event.notification);
        break;
      default:
        console.log('Other user event:', event.type);
    }

    return true;
  },
  (isConnected: boolean) => {
    console.log('User feed connection:', isConnected ? 'Connected' : 'Disconnected');
  }
);

// Zaprite, ko končate
userSubscription.close();

Pridobivanje userIdWS

Parameter userIdWS je obvezen za dogodke v živo in ga je mogoče pridobiti iz odgovorov API-ja:

const response = await sdk.publicApi.getCommentsPublic({
  tenantId: 'your-tenant-id',
  urlId: 'page-id'
});

// Izvlecite userIdWS iz odgovora
const userIdWS = response.data?.userSessionInfo?.userIdWS;

if (userIdWS) {
  // Zdaj se lahko naročite na dogodke v živo
  const subscription = subscribeToChanges(config, tenantIdWS, urlIdWS, userIdWS, handleEvent);
}

Broadcast IDs Internal Link

Videli boste, da naj bi pri nekaterih klicih API posredovali broadcastId. Ko prejmete dogodke, boste to ID prejeli nazaj, tako da boste vedeli, da dogodek prezrete, če nameravate optimistično uporabiti spremembe na odjemalcu (kar boste verjetno želeli storiti, saj ponuja najboljšo izkušnjo). Tukaj posredujte UUID. ID naj bo dovolj edinstven, da se v isti brskalni seji ne pojavi dvakrat.

import { v4 as uuidv4 } from 'uuid';

const response = await sdk.publicApi.createCommentPublic({
  createCommentParams: {
    tenantId: 'your-tenant-id',
    urlId: 'page-id',
    comment: 'My comment',
    broadcastId: uuidv4() // Edinstven ID za to operacijo
  }
});

Error Handling Internal Link

try {
  const comments = await sdk.publicApi.getCommentsPublic({
    tenantId: 'your-tenant-id',
    urlId: 'page-id'
  });
} catch (error) {
  if (error.response?.status === 404) {
    console.log('Page not found');
  } else {
    console.error('API Error:', error.message);
  }
}

aggregate Internal Link

Združuje dokumente z njihovo grupiranjem (če je podan groupBy) in izvajanjem več operacij. Podprte so različne operacije (npr. sum, countDistinct, avg itd.).

Parametri

Ime Tip Obvezno Opis
tenantId string Da
aggregationRequest AggregationRequest Da
parentTenantId string Ne
includeStats boolean Ne

Odgovor

Vrne: AggregationResponse


getAuditLogs Internal Link

Parametri

Name Tip Obvezno Opis
tenantId string Da
limit number Ne
skip number Ne
order SORTDIR Ne
after number Ne
before number Ne

Odgovor

Vrne: GetAuditLogs200Response

Primer

Primer getAuditLogs
Copy Copy
1
2async function main(): Promise<void> {
3 const tenantId: string = 'tenant_9b8f6c';
4 const limit: number = 50;
5 const skip: number = 0;
6 const order: SORTDIR = 'desc';
7 const after: number = Date.now() - 7 * 24 * 60 * 60 * 1000;
8 const response: GetAuditLogs200Response = await getAuditLogs(tenantId, limit, skip, order, after);
9 console.log(response);
10}
11main();
12

blockFromCommentPublic Internal Link

Parametri

Ime Tip Obvezno Opis
tenantId string Da
commentId string Da
publicBlockFromCommentParams PublicBlockFromCommentParams Da
sso string Ne

Odgovor

Vrne: BlockFromCommentPublic200Response

Primer

Primer blockFromCommentPublic
Copy Copy
1
2const tenantId: string = "site_7f9b2e";
3const commentId: string = "comment_2026-03-25_001";
4const publicBlockFromCommentParams: PublicBlockFromCommentParams = {
5 reason: "Repeated harassment and targeted abuse",
6 blockDurationDays: 90,
7 includeHistory: true,
8 notifyModeratorTeam: true
9};
10const sso: string = "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.fakePayload.signature";
11const result: BlockFromCommentPublic200Response = await blockFromCommentPublic(tenantId, commentId, publicBlockFromCommentParams, sso);
12

unBlockCommentPublic Internal Link

Parametri

Ime Tip Obvezno Opis
tenantId string Da
commentId string Da
publicBlockFromCommentParams PublicBlockFromCommentParams Da
sso string Ne

Odziv

Vrne: UnBlockCommentPublic200Response

Primer

Primer unBlockCommentPublic
Copy Copy
1
2const tenantId: string = 'tenant_42e8a1';
3const commentId: string = 'cmt_9b3f2d';
4const publicBlockFromCommentParams: PublicBlockFromCommentParams = {
5 reason: 'abusive_language',
6 blockedByModeratorId: 'mod_17',
7 note: 'Targeted harassment; review complete',
8 unblockRequestedAt: new Date().toISOString()
9};
10const sso: string = 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.example.signature';
11const result: UnBlockCommentPublic200Response = await unBlockCommentPublic(tenantId, commentId, publicBlockFromCommentParams, sso);
12

checkedCommentsForBlocked Internal Link

Parametri

Ime Tip Obvezno Opis
tenantId string Da
commentIds string Da
sso string Ne

Odgovor

Vrne: CheckedCommentsForBlocked200Response

Primer

Primer checkedCommentsForBlocked
Copy Copy
1
2const tenantId: string = 'tenant_4f3b2a1e';
3const commentIds: string = 'c_1001,c_1002,c_1003';
4const ssoToken: string = 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiJ1c2VyMTIzIn0.Sf4ke7nQP3mZx9v2';
5
6const resultWithoutSSO: CheckedCommentsForBlocked200Response = await checkedCommentsForBlocked(tenantId, commentIds);
7const resultWithSSO: CheckedCommentsForBlocked200Response = await checkedCommentsForBlocked(tenantId, commentIds, ssoToken);
8

blockUserFromComment Internal Link

Parametri

Ime Tip Obvezno Opis
tenantId string Da
id string Da
blockFromCommentParams BlockFromCommentParams Da
userId string Ne
anonUserId string Ne

Odgovor

Vrne: BlockFromCommentPublic200Response

Primer

Primer blockUserFromComment
Copy Copy
1
2const tenantId: string = "tenant_12345";
3const id: string = "comment_67890";
4const blockFromCommentParams: BlockFromCommentParams = {
5 reason: "Repeated abusive language",
6 blockDurationHours: 168,
7 blockReplies: true,
8 notifyAuthor: true
9};
10const userId: string = "user_abc123";
11const anonUserId: string = "anon_xyz789";
12const result: BlockFromCommentPublic200Response = await blockUserFromComment(tenantId, id, blockFromCommentParams, userId, anonUserId);
13

createCommentPublic Internal Link

Parametri

Name Type Obvezno Opis
tenantId string Da
urlId string Da
broadcastId string Da
commentData CommentData Da
sessionId string Ne
sso string Ne

Odgovor

Vrne: CreateCommentPublic200Response

Primer

Primer createCommentPublic
Copy Copy
1
2const tenantId: string = 'tenant_prod_42';
3const urlId: string = 'article-2026-03-25-tech-deep-dive';
4const broadcastId: string = 'live-broadcast-001';
5const sessionId: string = 'sess_9f8e7d6a3b';
6const sso: string = 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.example.signature';
7const commentData: CommentData = {
8 content: 'Great reporting — appreciated the depth on performance tradeoffs.',
9 authorName: 'Jordan M.',
10 language: 'en-US',
11 metadata: { client: 'web' }
12};
13const result: CreateCommentPublic200Response = await createCommentPublic(tenantId, urlId, broadcastId, commentData, sessionId, sso);
14

deleteComment Internal Link


Parametri

Ime Tip Obvezno Opis
tenantId string Da
id string Da
contextUserId string Ne
isLive boolean Ne

Odgovor

Vrne: DeleteComment200Response

Primer

Primer za deleteComment
Copy Copy
1
2const tenantId: string = 'tenant_7b3f2a';
3const commentId: string = 'cmt_8a1f4d2b';
4const contextUserId: string = 'user_102';
5const isLive: boolean = true;
6const result: DeleteComment200Response = await deleteComment(tenantId, commentId, contextUserId, isLive);
7

deleteCommentPublic Internal Link

Parametri

Ime Tip Obvezno Opis
tenantId string Da
commentId string Da
broadcastId string Da
editKey string Ne
sso string Ne

Odgovor

Vrne: DeleteCommentPublic200Response

Primer

Primer deleteCommentPublic
Copy Copy
1
2const tenantId: string = 'tenant_4f2c9b';
3const commentId: string = 'comment-7c3a9f2d';
4const broadcastId: string = 'article-2026-03-20';
5const editKey: string | undefined = 'ek_pub_abc12345';
6const sso: string | undefined = 'sso_eyJhbGciOiJIUzI1Ni';
7
8const result: DeleteCommentPublic200Response = await deleteCommentPublic(
9 tenantId,
10 commentId,
11 broadcastId,
12 editKey,
13 sso
14);
15

deleteCommentVote Internal Link

Parametri

Ime Tip Zahtevano Opis
tenantId string Da
commentId string Da
voteId string Da
urlId string Da
broadcastId string Da
editKey string Ne
sso string Ne

Response

Vrne: DeleteCommentVote200Response

Primer

Primer deleteCommentVote
Copy Copy
1
2const tenantId: string = 'acme-tenant-87e4fd';
3const commentId: string = 'cmt-9a12b3f4';
4const voteId: string = 'vote-4f6d21b9';
5const urlId: string = 'https://www.acme.com/articles/2026/03/25/how-to-test';
6const broadcastId: string = 'broadcast-20260325-01';
7const editKey: string = 'editkey-6b7c8d9e';
8const sso: string = 'sso-jwt-eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9';
9
10const response: DeleteCommentVote200Response = await deleteCommentVote(
11 tenantId,
12 commentId,
13 voteId,
14 urlId,
15 broadcastId,
16 editKey,
17 sso
18);
19

flagComment Internal Link

Parametri

Ime Tip Zahtevano Opis
tenantId string Da
id string Da
userId string Ne
anonUserId string Ne

Odgovor

Vrne: FlagComment200Response

Primer

Primer flagComment
Copy Copy
1
2const tenantId: string = 'tenant_acme_001';
3const id: string = 'comment_7f3a2b9e';
4const userId: string = 'user_jdoe_1001';
5const anonUserId: string = 'anon_3f2b_visitor';
6const result: FlagComment200Response = await flagComment(tenantId, id, userId, anonUserId);
7

getComment Internal Link

Parameters

Ime Tip Obvezno Opis
tenantId string Da
id string Da

Odziv

Vrne: GetComment200Response

Primer

Primer getComment
Copy Copy
1
2const tenantId: string = "acme-publishing-001";
3const commentId: string = "f3b2c1d0-9a8e-4b7c-8123-6d5f0a1e2b3c";
4const result: GetComment200Response = await getComment(tenantId, commentId);
5const wrapper: GetComment200Response & { comment?: APIComment } = result;
6const comment: APIComment | undefined = wrapper.comment;
7const authorBadge: CommentUserBadgeInfo | undefined = comment?.user?.badge;
8const userHashTags: CommentUserHashTagInfo[] | undefined = comment?.user?.hashTags
9

getComments Internal Link

Parametri

Ime Tip Obvezno Opis
tenantId string Da
page number Ne
limit number Ne
skip number Ne
asTree boolean Ne
skipChildren number Ne
limitChildren number Ne
maxTreeDepth number Ne
urlId string Ne
userId string Ne
anonUserId string Ne
contextUserId string Ne
hashTag string Ne
parentId string Ne
direction SortDirections Ne

Odgovor

Vrača: GetComments200Response

Primer

Primer uporabe getComments
Copy Copy
1
2const tenantId: string = 'tenant_acme_42';
3const response: GetComments200Response = await getComments(
4 tenantId,
5 1, // stran
6 20, // omejitev
7 0, // preskoči
8 true, // kot drevo
9 1, // preskoči podrejene
10 3, // omeji podrejene
11 4, // največja globina drevesa
12 'articles/2026/new-product-launch', // urlId
13 'user_7890', // userId
14 'anon_4f3b2', // anonUserId
15 undefined, // contextUserId
16 '#launch', // hashTag
17 undefined // parentId
18);
19

getCommentsPublic Internal Link

req tenantId urlId

Parametri

Ime Tip Obvezno Opis
tenantId string Da
urlId string Da
page number Ne
direction SortDirections Ne
sso string Ne
skip number Ne
skipChildren number Ne
limit number Ne
limitChildren number Ne
countChildren boolean Ne
fetchPageForCommentId string Ne
includeConfig boolean Ne
countAll boolean Ne
includei10n boolean Ne
locale string Ne
modules string Ne
isCrawler boolean Ne
includeNotificationCount boolean Ne
asTree boolean Ne
maxTreeDepth number Ne
useFullTranslationIds boolean Ne
parentId string Ne
searchText string Ne
hashTags Array Ne
userId string Ne
customConfigStr string Ne
afterCommentId string Ne
beforeCommentId string Ne

Odgovor

Vrača: GetCommentsPublic200Response

Primer

Primer getCommentsPublic
Copy Copy
1
2const tenantId: string = 'tenant_eu-west_01';
3const urlId: string = 'https://www.financialtimes.com/articles/2026/market-update-q1';
4const response: GetCommentsPublic200Response = await getCommentsPublic(
5 tenantId,
6 urlId,
7 2,
8 undefined,
9 'eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.tokenPayload.signature',
10 undefined,
11 0,
12 50,
13 5,
14 true,
15 undefined,
16 true,
17 false,
18 true,
19 'en-US',
20 'reactions,moderation',
21 false,
22 true,
23 true,
24 3,
25 false,
26 undefined,
27 'performance',
28 ['feature','fastcomments'],
29 'user_9876',
30 undefined,
31 undefined,
32 undefined
33);
34

getCommentText Internal Link

Parametri

Name Type Required Description
tenantId string Yes
commentId string Yes
editKey string No
sso string No

Odgovor

Vrne: GetCommentText200Response

Primer

Primer getCommentText
Copy Copy
1
2const tenantId: string = 'tenant_acme_001';
3const commentId: string = 'cmt_7890b';
4const editKey: string = 'edit_4f2d9b7c';
5const sso: string = 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9';
6
7const result: GetCommentText200Response = await getCommentText(tenantId, commentId, editKey, sso);
8

getCommentVoteUserNames Internal Link

Parametri

Ime Type Zahtevano Opis
tenantId string Da
commentId string Da
dir number Da
sso string Ne

Odgovor

Vrne: GetCommentVoteUserNames200Response

Primer

Primer getCommentVoteUserNames
Copy Copy
1
2(async () => {
3 const tenantId: string = 'tenant_4f2c1e';
4 const commentId: string = 'cmt_9a7b3d';
5 const dir: number = 1;
6 const resultUpvotes: GetCommentVoteUserNames200Response = await getCommentVoteUserNames(tenantId, commentId, dir);
7 const sso: string = 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.fakepayload.signature';
8 const dirDown: number = -1;
9 const resultDownvotes: GetCommentVoteUserNames200Response = await getCommentVoteUserNames(tenantId, commentId, dirDown, sso);
10 console.log(resultUpvotes, resultDownvotes);
11})();
12

lockComment Internal Link

Parametri

Name Type Required Description
tenantId string Da
commentId string Da
broadcastId string Da
sso string Ne

Odgovor

Vrne: LockComment200Response

Primer

Primer lockComment
Copy Copy
1
2const tenantId: string = "tenant_prod_8f3a2b";
3const commentId: string = "cmt_5d7e9a92";
4const broadcastId: string = "broadcast_2026_03_25_1400";
5const ssoToken: string = "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.example.signature";
6const resultWithSso: LockComment200Response = await lockComment(tenantId, commentId, broadcastId, ssoToken);
7const resultWithoutSso: LockComment200Response = await lockComment(tenantId, commentId, broadcastId);
8

pinComment Internal Link

Parametri

Ime Tip Obvezno Opis
tenantId string Da
commentId string Da
broadcastId string Da
sso string Ne

Odgovor

Vrne: PinComment200Response

Primer

Primer pinComment
Copy Copy
1
2const tenantId: string = "tenant_4f2b9a";
3const commentId: string = "cmt_9f8e7d6c";
4const broadcastId: string = "brd_live_concert_2026-03-25";
5const sso: string = "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.sso_payload_signature";
6
7const result: PinComment200Response = await pinComment(tenantId, commentId, broadcastId, sso);
8

saveComment Internal Link

Parametri

Name Type Required Description
tenantId string Da
createCommentParams CreateCommentParams Da
isLive boolean Ne
doSpamCheck boolean Ne
sendEmails boolean Ne
populateNotifications boolean Ne

Odgovor

Vrača: SaveComment200Response

Primer

Primer saveComment
Copy Copy
1
2const tenantId: string = 'tenant_acme_001';
3const createCommentParams: CreateCommentParams = {
4 content: 'Great article — helped me fix a production issue in minutes.',
5 url: 'https://app.acme.com/blog/performance-tips',
6 author: { name: 'Maya Chen', email: 'maya.chen@acme.com' },
7 metadata: { locale: 'en-US', appVersion: '4.2.1' }
8} as CreateCommentParams;
9const isLive: boolean = true;
10const doSpamCheck: boolean = true;
11const sendEmails: boolean = false;
12const populateNotifications: boolean = true;
13const result: SaveComment200Response = await saveComment(tenantId, createCommentParams, isLive, doSpamCheck, sendEmails, populateNotifications);
14

saveCommentsBulk Internal Link

Parametri

Ime Tip Obvezno Opis
tenantId string Da
createCommentParams Array Da
isLive boolean Ne
doSpamCheck boolean Ne
sendEmails boolean Ne
populateNotifications boolean Ne

Odgovor

Vrne: Array<SaveComment200Response

Primer

Primer saveCommentsBulk
Copy Copy
1
2const tenantId: string = 'acme-corp-01';
3const mentions1: CommentUserMentionInfo[] = [{ userId: 'user-123', displayName: 'Jane Doe' }];
4const hashtags1: CommentUserHashTagInfo[] = [{ tag: 'typescript' }];
5const createCommentParams: CreateCommentParams[] = [
6 {
7 content: 'Great insights on async/await patterns.',
8 authorName: 'John Smith',
9 authorEmail: 'john.smith@acme.com',
10 externalId: 'comment-001',
11 createdAt: '2026-03-25T10:15:00Z',
12 userMentions: mentions1,
13 userHashTags: hashtags1
14 },
15 {
16 content: 'I prefer using Promise.all for bulk ops.',
17 authorName: 'Emily Turner',
18 authorEmail: 'emily.turner@acme.com',
19 externalId: 'comment-002',
20 createdAt: '2026-03-25T10:20:00Z'
21 }
22];
23const result: SaveComment200Response[] = await saveCommentsBulk(tenantId, createCommentParams, true, true, false, true);
24

setCommentText Internal Link

Parametri

Ime Tip Obvezno Opis
tenantId string Da
commentId string Da
broadcastId string Da
commentTextUpdateRequest CommentTextUpdateRequest Da
editKey string Ne
sso string Ne

Odgovor

Vrne: SetCommentText200Response

Primer

Primer uporabe setCommentText
Copy Copy
1
2const tenantId: string = 'tenant_6721f4';
3const commentId: string = 'cmt_9a3b2d';
4const broadcastId: string = 'live_2026_03_25';
5const editKey: string = 'edit_k_4f7b9';
6const sso: string = 'sso_tok_eyJhbGciOiJIUzI1';
7const commentTextUpdateRequest: CommentTextUpdateRequest = {
8 text: 'Updated to clarify the timeline and link the relevant docs.',
9 mentions: [{ userId: 'user_102', displayName: 'Alex Rivera' }],
10 hashtags: [{ tag: 'product-update' }]
11};
12const result: SetCommentText200Response = await setCommentText(tenantId, commentId, broadcastId, commentTextUpdateRequest, editKey, sso);
13

unBlockUserFromComment Internal Link

Parametri

Name Type Required Description
tenantId string Da
id string Da
unBlockFromCommentParams UnBlockFromCommentParams Da
userId string Ne
anonUserId string Ne

Odgovor

Vrača: UnBlockCommentPublic200Response

Primer

Primer unBlockUserFromComment
Copy Copy
1
2const tenantId: string = 'tenant_87f3e1';
3const id: string = 'comment_9b2a4f';
4const unBlockFromCommentParams: UnBlockFromCommentParams = {
5 reason: 'Reviewed by moderation team — reinstated',
6 moderatorId: 'mod_21',
7 unblockedAt: new Date().toISOString()
8};
9const userId: string = 'user_42';
10const anonUserId: string = 'anon_e7f9';
11const result: UnBlockCommentPublic200Response = await unBlockUserFromComment(tenantId, id, unBlockFromCommentParams, userId, anonUserId);
12

unFlagComment Internal Link

Parametri

Name Type Required Description
tenantId string Da
id string Da
userId string Ne
anonUserId string Ne

Odgovor

Vrača: FlagComment200Response

Primer

Primer unFlagComment
Copy Copy
1
2const tenantId: string = 'acme-tenant-001';
3const commentId: string = 'cmt_9f8e7d6c';
4const userId: string = 'user_72b4a1c9';
5const anonUserId: string = 'anon_3d2c1b0a';
6const response: FlagComment200Response = await unFlagComment(tenantId, commentId, userId, anonUserId);
7

unLockComment Internal Link

Parametri

Name Type Required Description
tenantId string Da
commentId string Da
broadcastId string Da
sso string Ne

Odgovor

Vrne: LockComment200Response

Primer

Primer unLockComment
Copy Copy
1
2const tenantId: string = 'tenant_9d4f2b';
3const commentId: string = 'cmt_8a3e1f';
4const broadcastId: string = 'broadcast_2026_03_25';
5const sso: string = 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.example.signature';
6
7const result: LockComment200Response = await unLockComment(tenantId, commentId, broadcastId, sso);
8

unPinComment Internal Link

Parametri

Ime Tip Obvezno Opis
tenantId string Da
commentId string Da
broadcastId string Da
sso string Ne

Odgovor

Vrne: PinComment200Response

Primer

unPinComment Primer
Copy Copy
1
2const tenantId: string = 'tenant_7f9d2a3b';
3const commentId: string = 'comment_842b9c1f';
4const broadcastId: string = 'bcast_frontpage_202603';
5const sso: string = 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.exampleSignature';
6
7const result: PinComment200Response = await unPinComment(tenantId, commentId, broadcastId, sso);
8

updateComment Internal Link

Parametri

Ime Tip Obvezno Opis
tenantId string Da
id string Da
updatableCommentParams UpdatableCommentParams Da
contextUserId string Ne
doSpamCheck boolean Ne
isLive boolean Ne

Odgovor

Vrne: FlagCommentPublic200Response

Primer

Primer updateComment
Copy Copy
1
2const tenantId: string = "tenant_acme_corp_01";
3const id: string = "comment_20260325_4592";
4const updatableCommentParams: UpdatableCommentParams = {
5 body: "Updated the response to include a link to the RFC and fixed a typo in the second paragraph.",
6 editedByUserId: "user_8721",
7 isVisible: true
8};
9const contextUserId: string = "user_8721";
10const doSpamCheck: boolean = true;
11const isLive: boolean = true;
12const result: FlagCommentPublic200Response = await updateComment(tenantId, id, updatableCommentParams, contextUserId, doSpamCheck, isLive);
13

voteComment Internal Link

Parametri

Ime Tip Zahtevano Opis
tenantId string Da
commentId string Da
urlId string Da
broadcastId string Da
voteBodyParams VoteBodyParams Da
sessionId string Ne
sso string Ne

Odgovor

Vrne: VoteComment200Response

Primer

Primer voteComment
Copy Copy
1
2const tenantId: string = 'tenant_9f8b7c';
3const commentId: string = 'cmt_42f3a1';
4const urlId: string = 'articles/ai-trends-2026';
5const broadcastId: string = 'web';
6const voteBodyParams: VoteBodyParams = { vote: 1, reason: 'Insightful and on-topic' };
7const sessionId: string = 'sess_6d2b4c9e';
8const sso: string = 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9';
9const result: VoteComment200Response = await voteComment(tenantId, commentId, urlId, broadcastId, voteBodyParams, sessionId, sso);
10

addDomainConfig Internal Link

Parametri

Ime Tip Obvezno Opis
tenantId string Da
addDomainConfigParams AddDomainConfigParams Da

Odgovor

Vrača: AddDomainConfig200Response


deleteDomainConfig Internal Link


Parametri

Ime Tip Obvezno Opis
tenantId string Da
domain string Da

Odgovor

Vrne: DeleteDomainConfig200Response


getDomainConfig Internal Link

Parametri

Ime Tip Obvezno Opis
tenantId string Da
domain string Da

Odziv

Vrne: GetDomainConfig200Response


getDomainConfigs Internal Link

Parametri

Ime Tip Obvezno Opis
tenantId string Da

Odgovor

Vrne: GetDomainConfigs200Response

patchDomainConfig Internal Link


Parametri

Ime Tip Zahtevano Opis
tenantId string Da
domainToUpdate string Da
patchDomainConfigParams PatchDomainConfigParams Da

Odgovor

Vrne: GetDomainConfig200Response


putDomainConfig Internal Link

Parametri

Ime Tip Zahtevano Opis
tenantId string Da
domainToUpdate string Da
updateDomainConfigParams UpdateDomainConfigParams Da

Odgovor

Vrne: GetDomainConfig200Response


createEmailTemplate Internal Link


Parametri

Ime Tip Obvezno Opis
tenantId string Da
createEmailTemplateBody CreateEmailTemplateBody Da

Odgovor

Vrne: CreateEmailTemplate200Response

Primer

Primer createEmailTemplate
Copy Copy
1
2const tenantId: string = "tenant_7a9f3c2b";
3const customConfig: CustomConfigParameters = { smtpHost: "smtp.fastmail.com", smtpPort: 587, useTLS: true };
4const createEmailTemplateBody: CreateEmailTemplateBody = {
5 name: "Account Notification",
6 subject: "Your ACME account was updated",
7 fromEmail: "no-reply@acme-corp.com",
8 replyTo: "support@acme-corp.com",
9 html: "<p>Hi {{user.firstName}}, your account settings were changed.</p>",
10 text: "Hi {{user.firstName}}, your account settings were changed.",
11 isActive: true,
12 description: "Used for transactional account update emails",
13 customConfig
14};
15const result: CreateEmailTemplate200Response = await createEmailTemplate(tenantId, createEmailTemplateBody);
16

deleteEmailTemplate Internal Link

Parametri

Name Type Required Description
tenantId string Da
id string Da

Odgovor

Vrača: FlagCommentPublic200Response

Primer

Primer deleteEmailTemplate
Copy Copy
1
2const tenantId: string = 'tenant_7f4c9d1e';
3const templateId: string = 'tmpl_welcome_2024-03';
4const notifyAdmin: boolean | undefined = true; // primer neobveznega parametra
5
6const result: FlagCommentPublic200Response = await deleteEmailTemplate(tenantId, templateId);
7

deleteEmailTemplateRenderError Internal Link

Parametri

Name Type Required Description
tenantId string Da
id string Da
errorId string Da

Odgovor

Vrača: FlagCommentPublic200Response

Primer

Primer deleteEmailTemplateRenderError
Copy Copy
1
2const tenantId: string = 'tenant_7f3b4c2a';
3const templateEnvironment: string | undefined = 'production'; // neobvezen izbirnik okolja
4const id: string = `emailTemplates/${templateEnvironment ?? 'staging'}/welcome_v2`;
5const errorId: string = 'err_5a9d2f1c';
6const result: FlagCommentPublic200Response = await deleteEmailTemplateRenderError(tenantId, id, errorId);
7console.log(result);
8

getEmailTemplate Internal Link

Parametri

Ime Tip Obvezno Opis
tenantId string Da
id string Da

Odziv

Vrne: GetEmailTemplate200Response

Primer

Primer getEmailTemplate
Copy Copy
1
2const tenantId: string = "acme-marketing-042";
3const templateId: string = "tpl_welcome_2026";
4const result: GetEmailTemplate200Response = await getEmailTemplate(tenantId, templateId);
5const template: CustomEmailTemplate | undefined = result.template;
6const subject: string | undefined = template?.subject;
7const customParams: CustomConfigParameters | undefined = template?.customConfigParameters;
8

getEmailTemplateDefinitions Internal Link


Parametri

Ime Tip Obvezno Opis
tenantId string Da

Odgovor

Vrne: GetEmailTemplateDefinitions200Response

Primer

Primer getEmailTemplateDefinitions
Copy Copy
1
2const tenantId: string = 'tenant_acme_eu_01';
3const templates: GetEmailTemplateDefinitions200Response = await getEmailTemplateDefinitions(tenantId);
4console.log('Email template definitions loaded for', tenantId, templates);
5

getEmailTemplateRenderErrors Internal Link

Parametri

Ime Tip Obvezno Opis
tenantId string Da
id string Da
skip number Ne

Odgovor

Vrne: GetEmailTemplateRenderErrors200Response

Primer

Primer getEmailTemplateRenderErrors
Copy Copy
1
2(async () => {
3 const tenantId: string = 'acme-tenant-42';
4 const id: string = 'tmpl_3fa85f64-5717-4562-b3fc-2c963f66afa6';
5 const skip: number = 20;
6 const result: GetEmailTemplateRenderErrors200Response = await getEmailTemplateRenderErrors(tenantId, id, skip);
7 console.log(result);
8})();
9

getEmailTemplates Internal Link

Parametri

Ime Tip Obvezno Opis
tenantId string Da
skip number Ne

Odgovor

Vrne: GetEmailTemplates200Response

Primer

Primer getEmailTemplates
Copy Copy
1
2async function main(): Promise<void> {
3 const tenantId: string = 'tenant_5f3a9c2b';
4 const templates: GetEmailTemplates200Response = await getEmailTemplates(tenantId);
5 const skip: number = 20;
6 const pagedTemplates: GetEmailTemplates200Response = await getEmailTemplates(tenantId, skip);
7 console.log(templates, pagedTemplates);
8}
9main();
10

renderEmailTemplate Internal Link

Parametri

Ime Tip Zahtevano Opis
tenantId string Da
renderEmailTemplateBody RenderEmailTemplateBody Da
locale string Ne

Odziv

Vrne: RenderEmailTemplate200Response

Primer

Primer renderEmailTemplate
Copy Copy
1
2const tenantId: string = 'tenant_b6f3c2';
3const renderEmailTemplateBody: RenderEmailTemplateBody = {
4 templateId: 'comment-notification',
5 recipient: { name: 'Ava Thompson', email: 'ava.thompson@publisher.com' },
6 context: {
7 siteName: 'City Gazette',
8 commentText: 'Thanks for the in-depth coverage — very helpful.',
9 articleTitle: 'Downtown Redevelopment Plan Advances',
10 threadUrl: 'https://citygazette.example/articles/2026/redevelopment#comments'
11 }
12};
13const locale: string = 'en-US';
14const result: RenderEmailTemplate200Response = await renderEmailTemplate(tenantId, renderEmailTemplateBody, locale);
15

updateEmailTemplate Internal Link

Parametri

Name Type Required Description
tenantId string Da
id string Da
updateEmailTemplateBody UpdateEmailTemplateBody Da

Odgovor

Vrača: FlagCommentPublic200Response

Primer

Primer updateEmailTemplate
Copy Copy
1
2const tenantId: string = "tenant_76a4b2";
3const id: string = "template_9f3c1e";
4const updateEmailTemplateBody: UpdateEmailTemplateBody = {
5 name: "Comment Flag Notification",
6 subject: "A comment was flagged on your-site.com",
7 bodyHtml: "<p>Admin,</p><p>User {{commenterName}} flagged a comment: “{{commentText}}”</p>",
8 isEnabled: true,
9 description: "Email sent to moderators when a comment is flagged (optional field included)"
10};
11const result: FlagCommentPublic200Response = await updateEmailTemplate(tenantId, id, updateEmailTemplateBody);
12

getEventLog Internal Link

zahteva tenantId urlId userIdWS

Parametri

Ime Tip Obvezno Opis
tenantId string Da
urlId string Da
userIdWS string Da
startTime number Da
endTime number Da

Odgovor

Vrača: GetEventLog200Response

Primer

Primer getEventLog
Copy Copy
1
2const tenantId: string = 'fastcomments-tenant-01';
3const urlId: string = 'article-2026-03-25';
4const userIdWS: string | undefined = undefined; // neobvezna vrednost iz virov
5const startTime: number = Date.parse('2026-03-01T00:00:00Z');
6const endTime: number = Date.parse('2026-03-25T23:59:59Z');
7
8const eventLogResponse: GetEventLog200Response = await getEventLog(
9 tenantId,
10 urlId,
11 userIdWS ?? 'ws_user_8b1f',
12 startTime,
13 endTime
14);
15

getGlobalEventLog Internal Link


req tenantId urlId userIdWS

Parametri

Ime Tip Obvezno Opis
tenantId string Da
urlId string Da
userIdWS string Da
startTime number Da
endTime number Da

Odgovor

Vrne: GetEventLog200Response

Primer

Primer getGlobalEventLog
Copy Copy
1
2const tenantId: string = "tenant-84b2f1";
3const urlId: string = "article-6721";
4const userIdWS: string = "ws-conn-9a3c";
5const startTime: number = Date.now() - 7 * 24 * 60 * 60 * 1000; // pred 7 dnevi
6const endTimeOptional: number | undefined = undefined; // neobvezen konec časovnega okvira
7const endTime: number = endTimeOptional ?? Date.now();
8const eventLog: GetEventLog200Response = await getGlobalEventLog(tenantId, urlId, userIdWS, startTime, endTime);
9

createFeedPost Internal Link

Parametri

Ime Tip Obvezno Opis
tenantId string Da
createFeedPostParams CreateFeedPostParams Da
broadcastId string Ne
isLive boolean Ne
doSpamCheck boolean Ne
skipDupCheck boolean Ne

Odgovor

Vrne: CreateFeedPost200Response

Primer

Primer createFeedPost
Copy Copy
1
2const tenantId: string = "tenant_7f3b9a";
3const createFeedPostParams: CreateFeedPostParams = {
4 title: "Weekly Product Update — March 2026",
5 body: "We've shipped performance improvements and bug fixes across the web client. See the release notes for details.",
6 authorId: "user_86fa2b",
7 allowComments: true,
8 media: [
9 {
10 url: "https://cdn.example.com/images/update-march.png",
11 mimeType: "image/png",
12 caption: "Performance graph",
13 assets: [{ url: "https://cdn.example.com/images/update-march@2x.png", width: 1600, height: 900 }]
14 }
15 ],
16 links: [{ url: "https://www.example.com/release-notes/march-2026", title: "Release notes" }]
17};
18const broadcastId: string = "broadcast_prod_updates_202603";
19const isLive: boolean = false;
20const doSpamCheck: boolean = true;
21const skipDupCheck: boolean = false;
22const result: CreateFeedPost200Response = await createFeedPost(tenantId, createFeedPostParams, broadcastId, isLive, doSpamCheck, skipDupCheck);
23

createFeedPostPublic Internal Link

Parametri

Ime Tip Obvezno Opis
tenantId string Da
createFeedPostParams CreateFeedPostParams Da
broadcastId string Ne
sso string Ne

Odgovor

Vrne: CreateFeedPostPublic200Response

Primer

Primer createFeedPostPublic
Copy Copy
1
2const tenantId: string = "tenant_987654321";
3const asset: FeedPostMediaItemAsset = { url: "https://cdn.fastcomments.com/uploads/team-photo.jpg", mimeType: "image/jpeg", sizeBytes: 324512 };
4const mediaItem: FeedPostMediaItem = { type: "image", assets: [asset], caption: "Team launch day" };
5const link: FeedPostLink = { url: "https://www.example.com/blog/product-update-march-2026", title: "Product update — March 2026" };
6const createFeedPostParams: CreateFeedPostParams = {
7 title: "Product update — March 2026",
8 content: "<p>We shipped performance improvements and two new integrations.</p>",
9 media: [mediaItem],
10 link,
11 visibility: "public",
12 tags: ["product","release","march-2026"],
13 customConfig: { allowComments: true, requireTOS: false }
14};
15const broadcastId: string = "broadcast_2026_03_25_live";
16const sso: string = "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VySWQiOiIxMjM0NSIsImlhdCI6MTY5MDI0MDB9.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c";
17const result: CreateFeedPostPublic200Response = await createFeedPostPublic(tenantId, createFeedPostParams, broadcastId, sso);
18

deleteFeedPostPublic Internal Link

Parametri

Ime Tip Obvezno Opis
tenantId string Da
postId string Da
broadcastId string Ne
sso string Ne

Odgovor

Vrača: DeleteFeedPostPublic200Response

Primer

deleteFeedPostPublic Primer
Copy Copy
1
2const tenantId: string = "tenant_5f8a9b3c";
3const postId: string = "post_a1b2c3d4";
4const broadcastId: string = "broadcast_2026-03-25T10:00:00Z";
5const sso: string = "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiJ1c2VyMTIzIiwiaWF0IjoxNjE5MjM5MjAwfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c";
6
7const resultWithOptional: DeleteFeedPostPublic200Response = await deleteFeedPostPublic(tenantId, postId, broadcastId, sso);
8const resultRequiredOnly: DeleteFeedPostPublic200Response = await deleteFeedPostPublic(tenantId, postId);
9

getFeedPosts Internal Link

req tenantId afterId

Parametri

Name Type Required Description
tenantId string Da
afterId string Ne
limit number Ne
tags Array Ne

Odgovor

Vrne: GetFeedPosts200Response

Primer

Primer getFeedPosts
Copy Copy
1
2const initialPage: GetFeedPosts200Response = await getFeedPosts('tenant_9f1b3d', undefined, 20, ['sports', 'local']);
3const nextPage: GetFeedPosts200Response = await getFeedPosts('tenant_9f1b3d', 'post_abc123', 20, ['sports', 'local']);
4

getFeedPostsPublic Internal Link

req tenantId afterId

Parametri

Name Type Required Description
tenantId string Da
afterId string Ne
limit number Ne
tags Array Ne
sso string Ne
isCrawler boolean Ne
includeUserInfo boolean Ne

Odgovor

Vrača: GetFeedPostsPublic200Response

Primer

Primer getFeedPostsPublic
Copy Copy
1
2const tenantId: string = 'tenant_acme_01';
3const afterId: string = 'fp_20260301_042';
4const limit: number = 25;
5const tags: Array<string> = ['technology', 'announcement'];
6const sso: string = 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VyIjoiamRvZSJ9.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c';
7const isCrawler: boolean = false;
8const includeUserInfo: boolean = true;
9const response: GetFeedPostsPublic200Response = await getFeedPostsPublic(tenantId, afterId, limit, tags, sso, isCrawler, includeUserInfo);
10

getFeedPostsStats Internal Link

Parametri

Ime Tip Obvezno Opis
tenantId string Da
postIds Array Da
sso string Ne

Odgovor

Vrne: GetFeedPostsStats200Response

Primer

Primer getFeedPostsStats
Copy Copy
1
2const tenantId: string = 'tenant_9b2f1c4a';
3const postIds: Array<string> = [
4 '8f14e45f-ea82-4c7a-b6b2-1a2b3c4d5e6f',
5 'd0e1f2a3-b4c5-6d7e-8f90-1234567890ab'
6];
7const sso: string = 'sso_eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.signature';
8const statsWithoutSSO: GetFeedPostsStats200Response = await getFeedPostsStats(tenantId, postIds);
9const statsWithSSO: GetFeedPostsStats200Response = await getFeedPostsStats(tenantId, postIds, sso);
10

getUserReactsPublic Internal Link

Parametri

Ime Tip Zahtevano Opis
tenantId string Da
postIds Array Ne
sso string Ne

Odgovor

Vrne: GetUserReactsPublic200Response

Primer

Primer getUserReactsPublic
Copy Copy
1
2const tenantId: string = "acme-tenant-8a4d2c";
3const postIds: string[] = ["post-645a2f", "post-645a30"];
4const sso: string = "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiJ1c2VyXzEyMyIsImlhdCI6MTY2MTYwMDAwMH0.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c";
5const result: GetUserReactsPublic200Response = await getUserReactsPublic(tenantId, postIds, sso);
6

reactFeedPostPublic Internal Link

Parametri

Ime Tip Zahtevano Opis
tenantId string Da
postId string Da
reactBodyParams ReactBodyParams Da
isUndo boolean Ne
broadcastId string Ne
sso string Ne

Odgovor

Vrne: ReactFeedPostPublic200Response

Primer

Primer reactFeedPostPublic
Copy Copy
1
2const tenantId: string = 'd290f1ee-6c54-4b01-90e6-d701748f0851';
3const postId: string = 'c1a2b3d4-5678-90ab-cdef-1234567890ab';
4const reactBodyParams: ReactBodyParams = { reaction: 'like', emoji: '👍', source: 'web' };
5const isUndo: boolean = false;
6const broadcastId: string = 'broadcast-2026-03-25-001';
7const sso: string = 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiJ1c2VyMTIzIn0.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c';
8const result: ReactFeedPostPublic200Response = await reactFeedPostPublic(tenantId, postId, reactBodyParams, isUndo, broadcastId, sso);
9

updateFeedPost Internal Link

Parametri

Ime Tip Obvezno Opis
tenantId string Da
id string Da
feedPost FeedPost Da

Odgovor

Vrne: FlagCommentPublic200Response

Primer

updateFeedPost Primer
Copy Copy
1
2const tenantId: string = 'acme-global-tenant-42';
3const id: string = 'f47ac10b-58cc-4372-a567-0e02b2c3d479';
4
5const asset: FeedPostMediaItemAsset = {
6 url: 'https://cdn.acme.com/images/product-launch.jpg',
7 mimeType: 'image/jpeg',
8 width: 1200,
9 height: 630
10};
11
12const mediaItem: FeedPostMediaItem = {
13 id: 'media-001',
14 type: 'image',
15 asset
16};
17
18const link: FeedPostLink = {
19 url: 'https://acme.com/blog/product-launch',
20 title: 'Product Launch Details'
21};
22
23const feedPost: FeedPost = {
24 title: 'Introducing the Q3 Product Suite',
25 body: 'We are excited to unveil our new lineup for Q3, focusing on performance and security improvements.',
26 media: [mediaItem], // vključeno opcijsko polje
27 links: [link], // vključene izbirne povezave
28 isPublished: true // tu je uporabljena izbirna zastavica objave
29};
30
31const result: FlagCommentPublic200Response = await updateFeedPost(tenantId, id, feedPost);
32

updateFeedPostPublic Internal Link

Parametri

Ime Tip Obvezno Opis
tenantId string Da
postId string Da
updateFeedPostParams UpdateFeedPostParams Da
broadcastId string Ne
sso string Ne

Odgovor

Vrne: CreateFeedPostPublic200Response

Primer

Primer updateFeedPostPublic
Copy Copy
1
2const tenantId: string = "tenant_9f4b2";
3const postId: string = "post_21a8e";
4const updateFeedPostParams: UpdateFeedPostParams = {
5 title: "Quarterly product update",
6 body: "Major performance improvements and bug fixes deployed today. See release notes and schedule.",
7 links: [{ url: "https://status.example.com/release-notes", title: "Release notes" }],
8 media: [
9 {
10 type: "image",
11 assets: [{ url: "https://cdn.example.com/updates/q2.png", mimeType: "image/png", width: 1200, height: 628 }]
12 }
13 ]
14};
15const broadcastId: string = "broadcast_live_202603";
16const sso: string = "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.example.signature";
17const result: CreateFeedPostPublic200Response = await updateFeedPostPublic(tenantId, postId, updateFeedPostParams, broadcastId, sso);
18

flagCommentPublic Internal Link

Parametri

Ime Tip Obvezno Opis
tenantId string Da
commentId string Da
isFlagged boolean Da
sso string Ne

Odgovor

Vrne: FlagCommentPublic200Response

Primer

Primer flagCommentPublic
Copy Copy
1
2const tenantId: string = "tenant_9f8b3c";
3const commentId: string = "comment_72a1d4";
4const isFlagged: boolean = true;
5const sso: string = "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VySWQiOiI1Njc4OSJ9.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c";
6const result: FlagCommentPublic200Response = await flagCommentPublic(tenantId, commentId, isFlagged, sso);
7

addHashTag Internal Link

Parametri

Ime Tip Obvezno Opis
tenantId string No
createHashTagBody CreateHashTagBody No

Odgovor

Vrača: AddHashTag200Response

Primer

Primer addHashTag
Copy Copy
1
2const tenantId: string = 'tenant_acme_01';
3const createHashTagBody: CreateHashTagBody = {
4 name: 'feature-request',
5 label: 'Feature Request',
6 color: '#FF5722',
7 enabled: true
8};
9const response: AddHashTag200Response = await addHashTag(tenantId, createHashTagBody);
10const responseWithoutTenant: AddHashTag200Response = await addHashTag(undefined, createHashTagBody);
11

addHashTagsBulk Internal Link

Parametri

Ime Tip Zahtevano Opis
tenantId string Ne
bulkCreateHashTagsBody BulkCreateHashTagsBody Ne

Odgovor

Vrne: AddHashTagsBulk200Response

Primer

Primer addHashTagsBulk
Copy Copy
1
2// Ustvari identifikator najemnika (neobvezen parameter)
3const tenantId: string = "tenant_9f8c2b7a";
4
5// Pripravi posamezne vnose oznak
6const tag1: BulkCreateHashTagsBodyTagsInner = {
7 name: "product-feedback",
8 label: "Product Feedback",
9 color: "#1f8a70",
10 description: "User suggestions and enhancement requests",
11 isActive: true
12};
13
14const tag2: BulkCreateHashTagsBodyTagsInner = {
15 name: "bug-report",
16 label: "Bug Report",
17 color: "#d64545",
18 description: "User-reported defects and issues",
19 isActive: true
20};
21
22// Telo za množično ustvarjanje (neobvezen parameter)
23const bulkCreateHashTagsBody: BulkCreateHashTagsBody = {
24 tags: [tag1, tag2]
25};
26
27// Kliči globalno asinhrono funkcijo in dodeli tipiziran rezultat
28const result: AddHashTagsBulk200Response = await addHashTagsBulk(tenantId, bulkCreateHashTagsBody);
29

deleteHashTag Internal Link

Parametri

Ime Tip Obvezno Opis
tag string Da
tenantId string Ne
deleteHashTagRequest DeleteHashTagRequest Ne

Odgovor

Vrne: FlagCommentPublic200Response

Primer

Primer deleteHashTag
Copy Copy
1
2const tag: string = "breaking-news";
3const tenantId: string = "tenant_12345";
4const deleteRequest: DeleteHashTagRequest = { initiatedBy: "moderator@newsorg.com", purgeAllOccurrences: true };
5const result: FlagCommentPublic200Response = await deleteHashTag(tag, tenantId, deleteRequest);
6

getHashTags Internal Link

Parametri

Ime Tip Obvezno Opis
tenantId string Da
page number Ne

Odgovor

Vrne: GetHashTags200Response

Primer

Primer getHashTags
Copy Copy
1
2const tenantId: string = 'acme-tenant-42';
3const pageNumber: number = 2;
4const responseWithPage: GetHashTags200Response = await getHashTags(tenantId, pageNumber);
5const responseWithoutPage: GetHashTags200Response = await getHashTags(tenantId);
6

patchHashTag Internal Link

Parametri

Ime Tip Zahtevano Opis
tag string Da
tenantId string Ne
updateHashTagBody UpdateHashTagBody Ne

Odgovor

Vrača: PatchHashTag200Response

Primer

patchHashTag Primer
Copy Copy
1
2const tag: string = "feature-ux-refresh";
3const tenantId: string = "tenant_4f92c1";
4const updateHashTagBody: UpdateHashTagBody = {
5 label: "UX Refresh",
6 description: "Track comments related to the 2026 UX redesign",
7 isActive: true,
8 metadata: { owner: "product-design", rolloutPhase: "phase-2" }
9};
10const response: PatchHashTag200Response = await patchHashTag(tag, tenantId, updateHashTagBody);
11

createModerator Internal Link

Parametri

Name Type Required Description
tenantId string Da
createModeratorBody CreateModeratorBody Da

Odgovor

Vrne: CreateModerator200Response

Primer

Primer createModerator
Copy Copy
1
2const tenantId: string = 'tenant_7d9f2b4a';
3const customConfig: CustomConfigParameters = { timezone: 'UTC', moderationQueueEnabled: true };
4const createModeratorBody: CreateModeratorBody = {
5 email: 'jane.martin@publisher.com',
6 displayName: 'Jane Martin',
7 roles: ['moderator'],
8 sendWelcomeEmail: true,
9 customConfig
10};
11const response: CreateModerator200Response = await createModerator(tenantId, createModeratorBody);
12

deleteModerator Internal Link

Parametri

Ime Tip Obvezno Opis
tenantId string Da
id string Da
sendEmail string Ne

Odgovor

Vrača: FlagCommentPublic200Response

Primer

Primer uporabe deleteModerator
Copy Copy
1
2const tenantId: string = 'tenant_9f3b2d4a6c';
3const moderatorId: string = 'moderator_84a1b9c2';
4const sendEmail: string = 'true';
5const result: FlagCommentPublic200Response = await deleteModerator(tenantId, moderatorId, sendEmail);
6

getModerator Internal Link

Parametri

Ime Vrsta Obvezno Opis
tenantId string Da
id string Da

Odgovor

Vrne: GetModerator200Response

Primer

Primer getModerator
Copy Copy
1
2const tenantId: string = 'acme-corp-tenant-123';
3const id: string = 'mod-987654321';
4const moderatorResponse: GetModerator200Response = await getModerator(tenantId, id);
5

getModerators Internal Link

Parametri

Ime Tip Obvezno Opis
tenantId string Da
skip number Ne

Odgovor

Vrne: GetModerators200Response

Primer

Primer getModerators
Copy Copy
1
2const tenantId: string = 'tenant-12345-prod';
3const moderatorsPage1: GetModerators200Response = await getModerators(tenantId);
4const moderatorsPage2: GetModerators200Response = await getModerators(tenantId, 50);
5

sendInvite Internal Link

Parametri

Ime Tip Obvezno Opis
tenantId string Da
id string Da
fromName string Da

Odgovor

Vrne: FlagCommentPublic200Response

Primer

Primer uporabe sendInvite
Copy Copy
1
2const tenantId: string = 'tenant_acme-42';
3const id: string = 'comment_8f3b21a7';
4const fromName: string = 'Elena Morales';
5const replyToEmail: string | undefined = undefined;
6
7const result: FlagCommentPublic200Response = await sendInvite(tenantId, id, fromName, replyToEmail);
8

updateModerator Internal Link

Parametri

Name Type Required Description
tenantId string Da
id string Da
updateModeratorBody UpdateModeratorBody Da

Odgovor

Vrne: FlagCommentPublic200Response

Primer

Primer updateModerator
Copy Copy
1
2const tenantId: string = "acme-enterprises-42";
3const id: string = "moderator_517";
4const updateModeratorBody: UpdateModeratorBody = {
5 displayName: "Sofia Martinez",
6 email: "sofia.martinez@acme.com",
7 permissions: ["approve_comments", "flag_spam", "suspend_users"],
8 active: true,
9 avatarUrl: "https://cdn.acme.com/avatars/sofia.jpg" // prikazano neobvezno polje
10};
11const result: FlagCommentPublic200Response = await updateModerator(tenantId, id, updateModeratorBody);
12

deleteNotificationCount Internal Link

Parametri

Name Type Required Description
tenantId string Da
id string Da

Odgovor

Vrne: FlagCommentPublic200Response

Primer

Primer deleteNotificationCount
Copy Copy
1
2const tenantSuffix: string | undefined = undefined;
3const tenantId: string = tenantSuffix ? `tenant-${tenantSuffix}` : 'tenant-9142a7';
4const id: string = '3f9b2a44-1c2e-4d3b-9f6a-8e7c6d5b2a1f';
5const result: FlagCommentPublic200Response = await deleteNotificationCount(tenantId, id);
6console.log(result);
7

getCachedNotificationCount Internal Link

Parametri

Name Type Required Description
tenantId string Da
id string Da

Odgovor

Vrača: GetCachedNotificationCount200Response

Primer

Primer getCachedNotificationCount
Copy Copy
1
2const tenantId: string = 'tenant_acme_42';
3const id: string = 'user_00012345';
4const includeUnreadOnly: boolean | undefined = true; // neobvezna zastavica parametra (prikazano)
5const result: GetCachedNotificationCount200Response = await getCachedNotificationCount(tenantId, id);
6

getNotificationCount Internal Link

Parametri

Ime Tip Obvezno Opis
tenantId string Da
userId string Ne
urlId string Ne
fromCommentId string Ne
viewed boolean Ne
type string Ne

Odgovor

Vrača: GetNotificationCount200Response

Primer

Primer getNotificationCount
Copy Copy
1
2const tenantId: string = 'tenant_abc123';
3const userId: string = 'user_987654321';
4const urlId: string = 'https://example.com/news/2026/new-features';
5const viewed: boolean = false;
6const type: string = 'reply';
7const notificationCountResponse: GetNotificationCount200Response = await getNotificationCount(tenantId, userId, urlId, undefined, viewed, type);
8

getNotifications Internal Link

Parametri

Ime Tip Obvezno Opis
tenantId string Da
userId string Ne
urlId string Ne
fromCommentId string Ne
viewed boolean Ne
type string Ne
skip number Ne

Odgovor

Vrne: GetNotifications200Response

Primer

Primer getNotifications
Copy Copy
1
2const tenantId: string = "tenant_84b3f2";
3const userId: string = "user_1279";
4const urlId: string = "https://www.example.com/articles/2026/03/25/new-feature";
5const fromCommentId: string = "cmt_5421";
6const viewed: boolean = false;
7const type: string = "mention";
8const skip: number = 0;
9const notifications: GetNotifications200Response = await getNotifications(tenantId, userId, urlId, fromCommentId, viewed, type, skip);
10

updateNotification Internal Link

Parametri

Ime Tip Obvezno Opis
tenantId string Da
id string Da
updateNotificationBody UpdateNotificationBody Da
userId string Ne

Odgovor

Vrne: FlagCommentPublic200Response

Primer

Primer updateNotification
Copy Copy
1
2const tenantId: string = 'tenant_prod_8f4b2c';
3const id: string = 'notification_61a2e9';
4const userId: string = 'moderator_107';
5const updateNotificationBody: UpdateNotificationBody = {
6 name: 'Flagged Comment Notification',
7 enabled: true,
8 channels: ['email', 'inbox'],
9 templateId: 'tmpl_mod_alerts_01',
10 severity: 'high'
11};
12const result: FlagCommentPublic200Response = await updateNotification(tenantId, id, updateNotificationBody, userId);
13

addPage Internal Link


Parametri

Ime Tip Obvezno Opis
tenantId string Da
createAPIPageData CreateAPIPageData Da

Odgovor

Vrne: AddPageAPIResponse


deletePage Internal Link

Parametri

Ime Tip Zahtevano Opis
tenantId string Da
id string Da

Odgovor

Vrne: DeletePageAPIResponse

getPageByURLId Internal Link

Parametri

Ime Tip Obvezno Opis
tenantId string Da
urlId string Da

Odgovor

Vrača: GetPageByURLIdAPIResponse

getPages Internal Link


Parametri

Ime Tip Obvezno Opis
tenantId string Da

Odziv

Vrne: GetPagesAPIResponse


patchPage Internal Link


Parametri

Ime Tip Obvezno Opis
tenantId string Da
id string Da
updateAPIPageData UpdateAPIPageData Da

Odgovor

Vrne: PatchPageAPIResponse


deletePendingWebhookEvent Internal Link

Parametri

Name Type Required Description
tenantId string Da
id string Da

Odziv

Vrne: FlagCommentPublic200Response

Primer

Primer deletePendingWebhookEvent
Copy Copy
1
2(async () => {
3 const tenantId: string = 'tenant_42f7c9b1';
4 const id: string = 'pending_webhook_ev_8f3b9a2d';
5 const reason?: string = undefined; // primer neobveznega parametra (funkcija ga ne zahteva)
6 const result: FlagCommentPublic200Response = await deletePendingWebhookEvent(tenantId, id);
7 console.log(result);
8})();
9

getPendingWebhookEventCount Internal Link

Parametri

Ime Tip Zahtevano Opis
tenantId string Da
commentId string Ne
externalId string Ne
eventType string Ne
type string Ne
domain string Ne
attemptCountGT number Ne

Odgovor

Vrača: GetPendingWebhookEventCount200Response

Primer

Primer getPendingWebhookEventCount
Copy Copy
1
2const tenantId: string = "tenant_8d3b7a2f";
3const commentId: string | undefined = "comment_79a2b";
4const eventType: string | undefined = "comment.created";
5const domain: string | undefined = "forum.acme-corp.com";
6const attemptCountGT: number | undefined = 1;
7const result: GetPendingWebhookEventCount200Response = await getPendingWebhookEventCount(
8 tenantId,
9 commentId,
10 undefined,
11 eventType,
12 undefined,
13 domain,
14 attemptCountGT
15);
16

getPendingWebhookEvents Internal Link

Parametri

Ime Tip Obvezno Opis
tenantId string Da
commentId string Ne
externalId string Ne
eventType string Ne
type string Ne
domain string Ne
attemptCountGT number Ne
skip number Ne

Odgovor

Vrača: GetPendingWebhookEvents200Response

Primer

Primer getPendingWebhookEvents
Copy Copy
1
2const tenantId: string = 'tenant_9b3f7c';
3const commentId: string | undefined = undefined;
4const externalId: string | undefined = 'external-572a';
5const eventType: string | undefined = 'comment.updated';
6const type: string | undefined = 'outbound';
7const domain: string | undefined = 'reviews.example.com';
8const attemptCountGT: number | undefined = 1;
9const skip: number | undefined = 20;
10
11const result: GetPendingWebhookEvents200Response = await getPendingWebhookEvents(
12 tenantId,
13 commentId,
14 externalId,
15 eventType,
16 type,
17 domain,
18 attemptCountGT,
19 skip
20);
21

createQuestionConfig Internal Link

Parametri

Ime Tip Obvezno Opis
tenantId string Da
createQuestionConfigBody CreateQuestionConfigBody Da

Odgovor

Vrača: CreateQuestionConfig200Response

Primer

Primer createQuestionConfig
Copy Copy
1
2const tenantId: string = "tenant_9f8b2c";
3const option: QuestionConfigCustomOptionsInner = { id: "opt_yes", label: "Yes, helpful", value: "yes" };
4const createQuestionConfigBody: CreateQuestionConfigBody = {
5 title: "Article usefulness",
6 prompt: "Was this article helpful?",
7 type: "singleChoice",
8 required: false, // demonstriran neobvezen parameter
9 options: [option],
10 saveBehavior: "immediate"
11};
12const result: CreateQuestionConfig200Response = await createQuestionConfig(tenantId, createQuestionConfigBody);
13

deleteQuestionConfig Internal Link

Parametri

Ime Tip Obvezno Opis
tenantId string Da
id string Da

Odgovor

Vrne: FlagCommentPublic200Response

Primer

Primer deleteQuestionConfig
Copy Copy
1
2const tenantId: string = "acme-enterprises-01";
3const idOptional: string | undefined = "f47ac10b-58cc-4372-a567-0e02b2c3d479";
4const id: string = idOptional ?? "11111111-1111-1111-1111-111111111111";
5const response: FlagCommentPublic200Response = await deleteQuestionConfig(tenantId, id);
6

getQuestionConfig Internal Link

Parametri

Ime Tip Obvezno Opis
tenantId string Da
id string Da

Odgovor

Vrne: GetQuestionConfig200Response

Primer

Primer getQuestionConfig
Copy Copy
1
2const tenantId: string = 'acme-tenant-92';
3const id: string = 'question-2026-07-42';
4const response: GetQuestionConfig200Response = await getQuestionConfig(tenantId, id);
5
6function summarize(cfg: GetQuestionConfig200Response, includeDetails?: boolean): string {
7 return includeDetails ? 'Question config (detailed)' : 'Question config (summary)';
8}
9
10const summary: string = summarize(response);
11

getQuestionConfigs Internal Link

Parametri

Ime Tip Obvezno Opis
tenantId string Da
skip number Ne

Odgovor

Vrača: GetQuestionConfigs200Response

Primer

Primer getQuestionConfigs
Copy Copy
1
2const tenantId: string = "tenant_acme_9876";
3const configsWithoutSkip: GetQuestionConfigs200Response = await getQuestionConfigs(tenantId);
4const configsWithSkip: GetQuestionConfigs200Response = await getQuestionConfigs(tenantId, 20);
5

updateQuestionConfig Internal Link

Parametri

Ime Tip Zahtevano Opis
tenantId string Da
id string Da
updateQuestionConfigBody UpdateQuestionConfigBody Da

Odgovor

Vrne: FlagCommentPublic200Response

Primer

Primer updateQuestionConfig
Copy Copy
1
2const tenantId: string = 'tenant_42e8b';
3const id: string = 'question_9f4a2';
4const updateQuestionConfigBody: UpdateQuestionConfigBody = {
5 questionText: 'How helpful was this article?',
6 description: 'Shown to users below the question (optional)',
7 required: true,
8 renderingType: 'Likert' as QuestionRenderingType,
9 customOptions: [
10 { label: 'Very helpful', value: '5' } as QuestionConfigCustomOptionsInner,
11 { label: 'Somewhat helpful', value: '3' } as QuestionConfigCustomOptionsInner,
12 { label: 'Not helpful', value: '1' } as QuestionConfigCustomOptionsInner
13 ],
14 whenSave: 'notify' as QuestionWhenSave
15};
16const result: FlagCommentPublic200Response = await updateQuestionConfig(tenantId, id, updateQuestionConfigBody);
17

createQuestionResult Internal Link


Parametri

Ime Tip Obvezno Opis
tenantId string Da
createQuestionResultBody CreateQuestionResultBody Da

Odgovor

Vrne: CreateQuestionResult200Response

Primer

Primer createQuestionResult
Copy Copy
1
2const tenantId: string = "tenant-72b1f4";
3const meta: MetaItem[] = [{ key: "platform", value: "web" }];
4const createQuestionResultBody: CreateQuestionResultBody = {
5 questionId: "question-83472",
6 commenterId: "user-5521",
7 answers: [{ subQuestionId: "sq-1", value: "Yes" }],
8 meta, // neobvezni metapodatki
9 note: "Follow-up requested" // prikazan neobvezni parameter
10};
11const result: CreateQuestionResult200Response = await createQuestionResult(tenantId, createQuestionResultBody);
12

deleteQuestionResult Internal Link

Parametri

Name Type Required Description
tenantId string Da
id string Da

Odgovor

Vrne: FlagCommentPublic200Response

Primer

Primer deleteQuestionResult
Copy Copy
1
2const tenantId: string = "org-82479";
3const questionId: string = "q-6a3d2e1f";
4const includeArchived?: boolean = false; // neobvezni parameter, ki prikazuje izbiro alternativnega cilja
5const targetId: string = includeArchived ? "q-archived-112233" : questionId;
6const result: FlagCommentPublic200Response = await deleteQuestionResult(tenantId, targetId);
7

getQuestionResult Internal Link

Parametri

Ime Tip Obvezno Opis
tenantId string Da
id string Da

Odgovor

Vrne: GetQuestionResult200Response

Primer

Primer getQuestionResult
Copy Copy
1
2const post: { title: string; questionId?: string } = { title: 'Product feedback' };
3const tenantId: string = 'acme-corp-tenant-01';
4const id: string = post.questionId ?? 'q-8f3a7b2c4d9e';
5const result: GetQuestionResult200Response = await getQuestionResult(tenantId, id);
6

getQuestionResults Internal Link

Parametri

Ime Tip Obvezno Opis
tenantId string Da
urlId string Ne
userId string Ne
startDate string Ne
questionId string Ne
questionIds string Ne
skip number Ne

Odgovor

Vrača: GetQuestionResults200Response

Primer

Primer getQuestionResults
Copy Copy
1
2const tenantId: string = "tenant_acme_001";
3const urlId: string = "articles/product-launch-2026";
4const userId: string = "user_2048";
5const startDate: string = "2026-03-01T00:00:00Z";
6const questionId: string | undefined = undefined;
7const questionIds: string | undefined = "q_101,q_102";
8const skip: number | undefined = 0;
9
10const result: GetQuestionResults200Response = await getQuestionResults(tenantId, urlId, userId, startDate, questionId, questionIds, skip);
11

updateQuestionResult Internal Link

Parametri

Ime Tip Obvezno Opis
tenantId string Da
id string Da
updateQuestionResultBody UpdateQuestionResultBody Da

Odgovor

Vrne: FlagCommentPublic200Response

Primer

Primer updateQuestionResult
Copy Copy
1
2const tenantId: string = 'tenant_7f8b3c';
3const id: string = 'questionResult_4621';
4const updateQuestionResultBody: UpdateQuestionResultBody = {
5 questionId: 'q_1024',
6 result: 'flagged',
7 score: 0.92,
8 notes: 'Automated moderation flagged for review',
9 meta: [{ key: 'source', value: 'ai-moderator' }] as MetaItem[], // izbirni metapodatki
10 status: { code: 'review_pending' } as APIStatus
11} as UpdateQuestionResultBody;
12const result: FlagCommentPublic200Response = await updateQuestionResult(tenantId, id, updateQuestionResultBody);
13

aggregateQuestionResults Internal Link

Parametri

Ime Tip Obvezno Opis
tenantId string Da
questionId string Ne
questionIds Array Ne
urlId string Ne
timeBucket AggregateTimeBucket Ne
startDate Date Ne
forceRecalculate boolean Ne

Odgovor

Vrača: AggregateQuestionResults200Response

Primer

aggregateQuestionResults Primer
Copy Copy
1
2const tenantId: string = 'tenant_acme_98765';
3const questionIds: Array<string> = ['q-102', 'q-103'];
4const urlId: string = 'url_55b3';
5const timeBucket: AggregateTimeBucket = { unit: 'day', size: 7 };
6const startDate: Date = new Date('2026-01-01T00:00:00Z');
7const forceRecalculate: boolean = true;
8
9const result: AggregateQuestionResults200Response = await aggregateQuestionResults(
10 tenantId,
11 undefined, // questionId izpuščen, uporabljen questionIds namesto tega
12 questionIds,
13 urlId,
14 timeBucket,
15 startDate,
16 forceRecalculate
17);
18

bulkAggregateQuestionResults Internal Link

Parametri

Ime Tip Obvezno Opis
tenantId string Da
bulkAggregateQuestionResultsRequest BulkAggregateQuestionResultsRequest Da
forceRecalculate boolean Ne

Odgovor

Vrača: BulkAggregateQuestionResults200Response

Primer

Primer bulkAggregateQuestionResults
Copy Copy
1
2const tenantId: string = "tenant_live_7c9d";
3const bulkAggregateQuestionResultsRequest: BulkAggregateQuestionResultsRequest = {
4 items: [
5 { questionId: "q_feedback_rating", includeSubQuestions: false, filters: { locale: "en-US" } }
6 ],
7 timeBuckets: [
8 { granularity: "day", startUtc: "2026-03-01T00:00:00Z", endUtc: "2026-03-15T00:00:00Z" }
9 ]
10};
11const forceRecalculate: boolean = true;
12const result: BulkAggregateQuestionResults200Response = await bulkAggregateQuestionResults(tenantId, bulkAggregateQuestionResultsRequest, forceRecalculate);
13

combineCommentsWithQuestionResults Internal Link

Parametri

Ime Tip Obvezno Opis
tenantId string Da
questionId string Ne
questionIds Array Ne
urlId string Ne
startDate Date Ne
forceRecalculate boolean Ne
minValue number Ne
maxValue number Ne
limit number Ne

Odgovor

Vrača: CombineCommentsWithQuestionResults200Response

Primer

Primer combineCommentsWithQuestionResults
Copy Copy
1
2const tenantId: string = 'tenant_9f3a2';
3const questionIds: string[] = ['question-42', 'question-43'];
4const urlId: string = 'url_5d7b';
5const startDate: Date = new Date('2026-02-01T00:00:00Z');
6const forceRecalculate: boolean = true;
7const minValue: number = 1;
8const maxValue: number = 5;
9const limit: number = 50;
10const result: CombineCommentsWithQuestionResults200Response = await combineCommentsWithQuestionResults(
11 tenantId,
12 undefined,
13 questionIds,
14 urlId,
15 startDate,
16 forceRecalculate,
17 minValue,
18 maxValue,
19 limit
20);
21

addSSOUser Internal Link

Parametri

Ime Tip Obvezno Opis
tenantId string Da
createAPISSOUserData CreateAPISSOUserData Da

Odgovor

Vrne: AddSSOUserAPIResponse


deleteSSOUser Internal Link


Parametri

Ime Tip Obvezno Opis
tenantId string Da
id string Da
deleteComments boolean Ne
commentDeleteMode string Ne

Odgovor

Vrne: DeleteSSOUserAPIResponse


getSSOUserByEmail Internal Link

Parametri

Ime Vrsta Obvezno Opis
tenantId string Da
email string Da

Odgovor

Vrača: GetSSOUserByEmailAPIResponse

getSSOUserById Internal Link

Parametri

Ime Tip Obvezno Opis
tenantId string Da
id string Da

Odgovor

Vrača: GetSSOUserByIdAPIResponse


getSSOUsers Internal Link


Parametri

Ime Tip Obvezno Opis
tenantId string Da
skip number Ne

Odziv

Vrne: GetSSOUsers200Response


patchSSOUser Internal Link


Parametri

Ime Tip Obvezno Opis
tenantId string Da
id string Da
updateAPISSOUserData UpdateAPISSOUserData Da
updateComments boolean Ne

Odgovor

Vrača: PatchSSOUserAPIResponse


putSSOUser Internal Link

Parametri

Ime Tip Zahtevano Opis
tenantId string Da
id string Da
updateAPISSOUserData UpdateAPISSOUserData Da
updateComments boolean Ne

Odgovor

Vrne: PutSSOUserAPIResponse


createSubscription Internal Link

Parametri

Ime Vrsta Zahtevano Opis
tenantId string Da
createAPIUserSubscriptionData CreateAPIUserSubscriptionData Da

Odgovor

Vrne: CreateSubscriptionAPIResponse

Primer

Primer createSubscription
Copy Copy
1
2const tenantId: string = "acme-corp-123";
3const createAPIUserSubscriptionData: CreateAPIUserSubscriptionData = {
4 userId: "u_987654",
5 planId: "pro_monthly",
6 startDate: new Date().toISOString(),
7 trialDays: 14, // neobvezen parameter (prikazan)
8 metadata: { source: "marketing-email" } // neobvezen parameter (prikazan)
9};
10const result: CreateSubscriptionAPIResponse = await createSubscription(tenantId, createAPIUserSubscriptionData);
11const subscription: APIUserSubscription = result.subscription;
12

deleteSubscription Internal Link


Parametri

Ime Tip Zahtevano Opis
tenantId string Da
id string Da
userId string Ne

Odgovor

Vrne: DeleteSubscriptionAPIResponse


getSubscriptions Internal Link

Parametri

Ime Tip Obvezno Opis
tenantId string Da
userId string Ne

Odgovor

Vrne: GetSubscriptionsAPIResponse

Primer

Primer getSubscriptions
Copy Copy
1
2const tenantId: string = 'tenant_acme_corp_01';
3const userId: string = 'user_76a3b9f2';
4const subscriptionsForUser: GetSubscriptionsAPIResponse = await getSubscriptions(tenantId, userId);
5const subscriptionsForTenant: GetSubscriptionsAPIResponse = await getSubscriptions(tenantId);
6

updateSubscription Internal Link

Parametri

Ime Tip Obvezno Opis
tenantId string Da
id string Da
updateAPIUserSubscriptionData UpdateAPIUserSubscriptionData Da
userId string Ne

Odgovor

Vrne: UpdateSubscriptionAPIResponse

Primer

updateSubscription Primer
Copy Copy
1
2const tenantId: string = 'tenant_9f3b2c';
3const subscriptionId: string = 'sub_7641a2b3';
4const updateData: UpdateAPIUserSubscriptionData = {
5 status: 'active',
6 planId: 'pro_annual',
7 autoRenew: true,
8 renewalDate: '2026-04-15T00:00:00Z',
9 metadata: { upgradedBy: 'billing-team' }
10};
11const userId: string = 'user_215';
12const result: UpdateSubscriptionAPIResponse = await updateSubscription(tenantId, subscriptionId, updateData, userId);
13

getTenantDailyUsages Internal Link

Parametri

Ime Tip Obvezno Opis
tenantId string Da
yearNumber number Ne
monthNumber number Ne
dayNumber number Ne
skip number Ne

Odgovor

Vrne: GetTenantDailyUsages200Response

Primer

Primer getTenantDailyUsages
Copy Copy
1
2const tenantId: string = 'tenant_5f4a3b2c-1d6e-4f9a-b9d8-123456789abc';
3const yearNumber: number = 2026;
4const monthNumber: number = 3;
5const dayNumber: number = 24;
6const skip: number = 0;
7
8const result: GetTenantDailyUsages200Response = await getTenantDailyUsages(tenantId, yearNumber, monthNumber, dayNumber, skip);
9

createTenantPackage Internal Link

Parametri

Name Type Required Description
tenantId string Da
createTenantPackageBody CreateTenantPackageBody Da

Odgovor

Vrne: CreateTenantPackage200Response

Primer

createTenantPackage Primer
Copy Copy
1
2const tenantId: string = 'tenant_acme_001';
3const createTenantPackageBody: CreateTenantPackageBody = {
4 packageName: 'Standard Moderation',
5 description: 'Suitable for small-to-medium sites: basic moderation, spam rules, and analytics',
6 maxCommentsPerMinute: 50,
7 allowAnonymousComments: false, // neobvezni parameter je podan
8 // izpuščena neobvezna polja: npr. napredna pravila moderiranja, prilagojeni CSS
9 customConfigParameters: {
10 enableProfanityFilter: true,
11 imageContentProfanityLevel: 'medium' // ilustrativna vrednost; uporablja obliko CustomConfigParameters
12 }
13};
14const response: CreateTenantPackage200Response = await createTenantPackage(tenantId, createTenantPackageBody);
15console.log(response);
16

deleteTenantPackage Internal Link

Parametri

Name Type Required Description
tenantId string Da
id string Da

Odgovor

Vrača: FlagCommentPublic200Response

Primer

Primer deleteTenantPackage
Copy Copy
1
2const tenantId: string = 'tenant_acme_corp_987';
3const packageId: string = 'pkg_pro_2026_01';
4type DeleteOptions = { force?: boolean; notify?: boolean };
5const options: DeleteOptions = { force: true }; // prikazani neobvezni parametri
6const result: FlagCommentPublic200Response = await deleteTenantPackage(tenantId, packageId);
7

getTenantPackage Internal Link

Parametri

Ime Tip Obvezno Opis
tenantId string Da
id string Da

Odgovor

Vrača: GetTenantPackage200Response

Primer

Primer getTenantPackage
Copy Copy
1
2const tenantId: string = 'tenant_7f3b2c8';
3const packageId: string = 'pkg_standard_2026';
4const requestOptions: { includeConfig?: boolean } = { includeConfig: true };
5const packageResponse: GetTenantPackage200Response = await getTenantPackage(tenantId, packageId);
6

getTenantPackages Internal Link

Parametri

Ime Tip Obvezno Opis
tenantId string Da
skip number Ne

Odgovor

Vrne: GetTenantPackages200Response

Primer

Primer getTenantPackages
Copy Copy
1
2const tenantId: string = "tenant_7f8e3b4c";
3const skip: number = 20;
4const packagesDefault: GetTenantPackages200Response = await getTenantPackages(tenantId);
5const packagesWithSkip: GetTenantPackages200Response = await getTenantPackages(tenantId, skip);
6

replaceTenantPackage Internal Link

Parametri

Ime Tip Zahtevano Opis
tenantId string Da
id string Da
replaceTenantPackageBody ReplaceTenantPackageBody Da

Odgovor

Vrača: FlagCommentPublic200Response

Primer

Primer replaceTenantPackage
Copy Copy
1
2const tenantId: string = "tenant-9f3c2a";
3const id: string = "pkg_4f8b21";
4const replaceTenantPackageBody: ReplaceTenantPackageBody = {
5 packageName: "Premium Moderation Pack",
6 enabled: true,
7 apiStatus: { mode: "active" } as APIStatus,
8 customConfigParameters: { maxFlagsBeforeReview: 5 } as CustomConfigParameters,
9 voteStyle: "thumbs" as VoteStyle,
10 tosConfig: { requireAcceptance: true } as TOSConfig
11};
12const result: FlagCommentPublic200Response = await replaceTenantPackage(tenantId, id, replaceTenantPackageBody);
13

updateTenantPackage Internal Link

Parametri

Name Type Required Description
tenantId string Da
id string Da
updateTenantPackageBody UpdateTenantPackageBody Da

Odgovor

Vrača: FlagCommentPublic200Response

Primer

Primer updateTenantPackage
Copy Copy
1
2const tenantId: string = "tenant_3b7f9d-prod";
3const id: string = "pkg_enterprise_2026";
4const updateTenantPackageBody: UpdateTenantPackageBody = {
5 name: "Enterprise Plus",
6 isActive: true,
7 // neobvezna polja so namenoma izpuščena (npr. description, limits)
8} as UpdateTenantPackageBody;
9const result: FlagCommentPublic200Response = await updateTenantPackage(tenantId, id, updateTenantPackageBody);
10

createTenantUser Internal Link

Parametri

Ime Tip Zahtevano Opis
tenantId string Da
createTenantUserBody CreateTenantUserBody Da

Odgovor

Vrne: CreateTenantUser200Response

Primer

createTenantUser Primer
Copy Copy
1
2const tenantId: string = 'tenant_6f4b2c';
3const createTenantUserBody: CreateTenantUserBody = {
4 email: 'sara.kim@example.com',
5 displayName: 'Sara Kim',
6 role: 'moderator',
7 notifyOnMentions: true
8};
9const result: CreateTenantUser200Response = await createTenantUser(tenantId, createTenantUserBody);
10

deleteTenantUser Internal Link

Parametri

Ime Tip Zahtevano Opis
tenantId string Da
id string Da
deleteComments string Ne
commentDeleteMode string Ne

Odgovor

Vrača: FlagCommentPublic200Response

Primer

Primer deleteTenantUser
Copy Copy
1
2const tenantId: string = '4f3a9b2e-1c6a-4f7b-9e2a-0b8d6f1c2a3e';
3const userId: string = '9d2f7b3a-5c4e-48a2-b1f0-6c7d8e9f0a12';
4const deleteComments: string = 'true';
5const commentDeleteMode: string = 'permanent';
6const result: FlagCommentPublic200Response = await deleteTenantUser(tenantId, userId, deleteComments, commentDeleteMode);
7

getTenantUser Internal Link

Parametri

Ime Tip Obvezno Opis
tenantId string Da
id string Da

Odgovor

Vrne: GetTenantUser200Response

Primer

Primer getTenantUser
Copy Copy
1
2const tenantId: string = 'tenant_fc5a9b2c';
3const userId: string = 'user_0a12b3';
4const result: GetTenantUser200Response = await getTenantUser(tenantId, userId);
5const user: User | undefined = (result as any).user; // accessing payload
6const userEmail: string | undefined = user?.email;
7console.log('Fetched user email:', userEmail);
8

getTenantUsers Internal Link

Parametri

Ime Tip Obvezno Opis
tenantId string Da
skip number Ne

Odgovor

Vrne: GetTenantUsers200Response

Primer

Primer getTenantUsers
Copy Copy
1
2const tenantId: string = 'tenant_prod_8a3f2c';
3const skip: number = 50;
4const usersWithSkip: GetTenantUsers200Response = await getTenantUsers(tenantId, skip);
5const usersNoSkip: GetTenantUsers200Response = await getTenantUsers(tenantId);
6

replaceTenantUser Internal Link

Parametri

Ime Tip Zahtevano Opis
tenantId string Da
id string Da
replaceTenantUserBody ReplaceTenantUserBody Da
updateComments string Ne

Odgovor

Vrne: FlagCommentPublic200Response

Primer

Primer replaceTenantUser
Copy Copy
1
2const tenantId: string = 'tenant_9d8f4b2c';
3const id: string = 'user_f47ac10b';
4const replaceTenantUserBody: ReplaceTenantUserBody = {
5 externalId: 'ext-5234',
6 email: 'jane.doe@acme.com',
7 displayName: 'Jane Doe',
8 roles: ['moderator'],
9 metadata: { department: 'product', region: 'us-east-1' }
10};
11const updateComments: string = 'propagate-display-name-to-comments';
12
13const result: FlagCommentPublic200Response = await replaceTenantUser(tenantId, id, replaceTenantUserBody, updateComments);
14

Parametri

Ime Tip Obvezno Opis
tenantId string Yes
id string Yes
redirectURL string No

Odgovor

Vrne: FlagCommentPublic200Response

Primer

Primer uporabe sendLoginLink
Copy Copy
1
2const tenantId: string = "tenant_12a9f3b7";
3const id: string = "user_84b2c7d1";
4const redirectURL: string = "https://app.mycompany.com/welcome?ref=login_email";
5const resultWithoutRedirect: FlagCommentPublic200Response = await sendLoginLink(tenantId, id);
6const resultWithRedirect: FlagCommentPublic200Response = await sendLoginLink(tenantId, id, redirectURL);
7

updateTenantUser Internal Link

Parametri

Name Type Required Description
tenantId string Da
id string Da
updateTenantUserBody UpdateTenantUserBody Da
updateComments string Ne

Odgovor

Vrne: FlagCommentPublic200Response

Primer

Primer updateTenantUser
Copy Copy
1
2const tenantId: string = "tenant_8f3b2a9d";
3const id: string = "user_52c9f1ab";
4const updateTenantUserBody: UpdateTenantUserBody = {
5 email: "jane.doe@example.com",
6 displayName: "Jane Doe",
7 roles: ["moderator"],
8 isActive: true,
9 metadata: { signupSource: "sso", locale: "en-US" }
10};
11const updateComments: string = "Promoted to moderator and updated display name";
12const result: FlagCommentPublic200Response = await updateTenantUser(tenantId, id, updateTenantUserBody, updateComments);
13

createTenant Internal Link

Parametri

Ime Tip Obvezno Opis
tenantId string Da
createTenantBody CreateTenantBody Da

Response

Vrne: CreateTenant200Response

Primer

Primer createTenant
Copy Copy
1
2const tenantId: string = "acme-corp-001";
3const createTenantBody: CreateTenantBody = {
4 name: "Acme Corporation",
5 domain: "comments.acme.com",
6 adminContact: { name: "Jane Doe", email: "jane.doe@acme.com" },
7 billingInfo: { planId: "pro-monthly", billingContactEmail: "billing@acme.com" },
8 importedSite: { siteId: "site-123", siteName: "Acme Blog" } // neobvezna uvožena spletna stran
9};
10const result: CreateTenant200Response = await createTenant(tenantId, createTenantBody);
11

deleteTenant Internal Link

Parametri

Name Type Required Description
tenantId string Da
id string Da
sure string Ne

Odziv

Vrne: FlagCommentPublic200Response

Primer

deleteTenant Primer
Copy Copy
1
2const tenantId: string = "tenant_7f3d2c";
3const id: string = "flag_8392b1a7";
4const sure: string = "confirmed";
5
6const responseWithoutSure: FlagCommentPublic200Response = await deleteTenant(tenantId, id);
7const responseWithSure: FlagCommentPublic200Response = await deleteTenant(tenantId, id, sure);
8

getTenant Internal Link

Parametri

Ime Tip Obvezno Opis
tenantId string Da
id string Da

Odgovor

Vrne: GetTenant200Response

Primer

Primer getTenant
Copy Copy
1
2const tenantId: string = "tenant_9f4b2c1a";
3const idOverride: string | undefined = undefined; // neobvezen nadomestni ID, če je na voljo
4const id: string = idOverride ?? "site_3e7a6b2f";
5const response: GetTenant200Response = await getTenant(tenantId, id);
6console.log(response);
7

getTenants Internal Link

Parametri

Ime Tip Obvezno Opis
tenantId string Da
meta string Ne
skip number Ne

Odgovor

Vrača: GetTenants200Response

Primer

Primer getTenants
Copy Copy
1
2const tenantId: string = 'tenant_8421e7';
3const meta: string = 'include=domains,billing,customConfig';
4const skip: number = 20;
5
6const tenantsBasic: GetTenants200Response = await getTenants(tenantId);
7const tenantsWithOptions: GetTenants200Response = await getTenants(tenantId, meta, skip);
8

updateTenant Internal Link


Parametri

Ime Tip Obvezno Opis
tenantId string Da
id string Da
updateTenantBody UpdateTenantBody Da

Response

Vrača: FlagCommentPublic200Response

Primer

Primer uporabe updateTenant
Copy Copy
1
2const tenantId: string = "tenant_4821";
3const id: string = "flag_7b9e";
4const billingInfo: BillingInfo | undefined = undefined; // neobvezno; izpustite, da ohranite trenutne podatke o obračunu
5const updateTenantBody: UpdateTenantBody = {
6 name: "Acme News Comments",
7 defaultDomain: "comments.acme.com",
8 ...(billingInfo ? { billingInfo } : {})
9};
10const result: FlagCommentPublic200Response = await updateTenant(tenantId, id, updateTenantBody);
11

changeTicketState Internal Link

Parametri

Ime Tip Obvezno Opis
tenantId string Da
userId string Da
id string Da
changeTicketStateBody ChangeTicketStateBody Da

Odgovor

Vrača: ChangeTicketState200Response

Primer

Primer changeTicketState
Copy Copy
1
2const tenantId: string = 'tenant_82f9b3';
3const userId: string = 'user_9472';
4const id: string = 'ticket_550e8400-e29b-41d4-a716-446655440000';
5const changeTicketStateBody: ChangeTicketStateBody = {
6 state: 'resolved',
7 comment: 'Confirmed fix deployed to production; closing ticket.',
8 notifySubscribers: true
9};
10const result: ChangeTicketState200Response = await changeTicketState(tenantId, userId, id, changeTicketStateBody);
11

createTicket Internal Link

Parametri

Ime Tip Obvezno Opis
tenantId string Da
userId string Da
createTicketBody CreateTicketBody Da

Odgovor

Vrne: CreateTicket200Response

Primer

Primer createTicket
Copy Copy
1
2const tenantId: string = "acme-corp-001";
3const userId: string = "user_72b9f4";
4const createTicketBody: CreateTicketBody = {
5 subject: "Subscription renewal failed for card on file",
6 description: "Customer's card was declined by the payment processor during automatic renewal. Transaction ID: txn_9a8b7c. Please review gateway logs and retry.",
7 priority: "high", // izbirno polje (prikazano)
8 contactEmail: "billing@acme-corp.com", // izbirni kontaktni podatki
9 relatedUrl: "https://acme-corp.com/account/billing"
10};
11const ticketResponse: CreateTicket200Response = await createTicket(tenantId, userId, createTicketBody);
12

getTicket Internal Link

Parametri

Ime Tip Obvezno Opis
tenantId string Da
id string Da
userId string Ne

Odgovor

Vrne: GetTicket200Response

Primer

Primer uporabe getTicket
Copy Copy
1
2const tenantId: string = 'acme-corp-tenant-01';
3const ticketId: string = 'tkt-20260325-42';
4const userId: string = 'user-8452';
5
6const ticketResponseWithUser: GetTicket200Response = await getTicket(tenantId, ticketId, userId);
7const ticketResponseWithoutUser: GetTicket200Response = await getTicket(tenantId, ticketId);
8

getTickets Internal Link

Parametri

Ime Tip Obvezno Opis
tenantId string Da
userId string Ne
state number Ne
skip number Ne
limit number Ne

Odgovor

Vrača: GetTickets200Response

Primer

Primer getTickets
Copy Copy
1
2const tenantId: string = "tenant_92f3b4c1";
3const userId: string = "user_742a9f3e";
4const state: number = 1;
5const skip: number = 0;
6const limit: number = 25;
7const ticketsFull: GetTickets200Response = await getTickets(tenantId, userId, state, skip, limit);
8const ticketsMinimal: GetTickets200Response = await getTickets("tenant_92f3b4c1");
9

uploadImage Internal Link


Naloži in spremeni velikost slike

Parametri

Ime Tip Obvezno Opis
tenantId string Da
file Blob Da
sizePreset SizePreset Ne
urlId string Ne

Odgovor

Vrne: UploadImageResponse


getUserBadgeProgressById Internal Link

Parametri

Ime Tip Obvezno Opis
tenantId string Da
id string Da

Odgovor

Vrne: GetUserBadgeProgressById200Response

Primer

getUserBadgeProgressById Primer
Copy Copy
1
2const optionalTenantSuffix: string | undefined = undefined;
3const tenantId: string = `5f8d0d55-1234-4ab1-9e2a-3f2b5c6d7e8f${optionalTenantSuffix ?? ''}`;
4const id: string = '3a2b1c4d-5678-4ef0-9abc-def123456789';
5const result: GetUserBadgeProgressById200Response = await getUserBadgeProgressById(tenantId, id);
6

getUserBadgeProgressByUserId Internal Link

Parametri

Ime Tip Obvezno Opis
tenantId string Da
userId string Da

Odgovor

Vrača: GetUserBadgeProgressById200Response

Primer

Primer getUserBadgeProgressByUserId
Copy Copy
1
2const tenantId: string = 'tenant_7f9c2d3b';
3const maybeUserId: string | undefined = 'user_4b8e1f9a'; // neobvezen vir (lahko je undefined)
4const userId: string = maybeUserId ?? 'user_fallback0001';
5const result: GetUserBadgeProgressById200Response = await getUserBadgeProgressByUserId(tenantId, userId);
6console.log(result);
7

getUserBadgeProgressList Internal Link

Parametri

Ime Tip Obvezno Opis
tenantId string Da
userId string Ne
limit number Ne
skip number Ne

Odgovor

Vrne: GetUserBadgeProgressList200Response

Primer

Primer getUserBadgeProgressList
Copy Copy
1
2(async () => {
3 const tenantId: string = 'tenant_4f8c2b9d';
4 const userId: string = 'user_9a7e215c';
5 const limit: number = 25;
6 const skip: number = 0;
7 const resultMinimal: GetUserBadgeProgressList200Response = await getUserBadgeProgressList(tenantId);
8 const resultFull: GetUserBadgeProgressList200Response = await getUserBadgeProgressList(tenantId, userId, limit, skip);
9 console.log(resultMinimal, resultFull);
10})();
11

createUserBadge Internal Link

Parameters

Name Type Required Description
tenantId string Da
createUserBadgeParams CreateUserBadgeParams Da

Response

Vrne: CreateUserBadge200Response

Example

Primer createUserBadge
Copy Copy
1
2const tenantId: string = 'tenant_84f3b2';
3const createUserBadgeParams: CreateUserBadgeParams = {
4 name: 'Top Contributor',
5 slug: 'top-contributor',
6 imageUrl: 'https://assets.fastcomments.com/badges/top-contributor.png',
7 description: 'Awarded for 100 helpful comments',
8 active: true,
9 criteria: { commentsCount: 100 }, // neobvezni kriteriji
10 displayOrder: 10,
11 metadata: { featured: true } // neobvezni metapodatki
12};
13const result: CreateUserBadge200Response = await createUserBadge(tenantId, createUserBadgeParams);
14console.log(result);
15

deleteUserBadge Internal Link

Parametri

Ime Tip Obvezno Opis
tenantId string Da
id string Da

Odgovor

Vrača: UpdateUserBadge200Response

Primer

Primer deleteUserBadge
Copy Copy
1
2type DeleteOptions = { notifyModerators?: boolean };
3
4const tenantId: string = 'tenant_8a3f21';
5const id: string = 'badge_71f2b';
6const options: DeleteOptions = { notifyModerators: true };
7
8const result: UpdateUserBadge200Response = await deleteUserBadge(tenantId, id);
9

getUserBadge Internal Link

Parametri

Ime Tip Obvezno Opis
tenantId string Da
id string Da

Odgovor

Vrne: GetUserBadge200Response

Primer

Primer getUserBadge
Copy Copy
1
2const tenantId: string = "tenant_acme_01";
3const id: string = "badge_8c7d2f";
4const response: GetUserBadge200Response = await getUserBadge(tenantId, id);
5

getUserBadges Internal Link

Parametri

Ime Tip Obvezno Opis
tenantId string Da
userId string Ne
badgeId string Ne
type number Ne
displayedOnComments boolean Ne
limit number Ne
skip number Ne

Odgovor

Vrača: GetUserBadges200Response

Primer

getUserBadges Primer
Copy Copy
1
2const tenantId: string = 'tenant_acme_01';
3const userId: string = 'user_5f4d3c2a';
4const badgeId: string = 'badge_top_contributor';
5const type: number = 1;
6const displayedOnComments: boolean = true;
7const limit: number = 50;
8const skip: number = 0;
9
10const result: GetUserBadges200Response = await getUserBadges(tenantId, userId, badgeId, type, displayedOnComments, limit, skip);
11

updateUserBadge Internal Link

Parametri

Ime Tip Obvezno Opis
tenantId string Yes
id string Yes
updateUserBadgeParams UpdateUserBadgeParams Yes

Odgovor

Vrne: UpdateUserBadge200Response

Primer

Primer updateUserBadge
Copy Copy
1
2(async () => {
3 const tenantId: string = 'tenant_acme_987';
4 const id: string = 'badge_top_contributor_42';
5 const updateUserBadgeParams: UpdateUserBadgeParams = {
6 title: 'Top Contributor',
7 description: 'Awarded for reaching 100 high-quality comments',
8 color: '#FFD700',
9 iconUrl: 'https://cdn.acme.com/badges/top-contributor.svg',
10 active: true,
11 notifyUsers: true
12 } as UpdateUserBadgeParams;
13 const result: UpdateUserBadge200Response = await updateUserBadge(tenantId, id, updateUserBadgeParams);
14 console.log(result);
15})();
16

getUserNotificationCount Internal Link


Parametri

Ime Tip Obvezno Opis
tenantId string Da
sso string Ne

Odgovor

Vrne: GetUserNotificationCount200Response

Primer

getUserNotificationCount Primer
Copy Copy
1
2(async () => {
3 const tenantId: string = '9f1e2d3c-4b5a-6d7e-8f90-123456789abc';
4 const ssoToken: string = 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiI0MjMifQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c';
5 const resultWithSSO: GetUserNotificationCount200Response = await getUserNotificationCount(tenantId, ssoToken);
6 const resultWithoutSSO: GetUserNotificationCount200Response = await getUserNotificationCount(tenantId);
7 console.log(resultWithSSO, resultWithoutSSO);
8})();
9

getUserNotifications Internal Link

Parametri

Ime Tip Obvezno Opis
tenantId string Da
pageSize number Ne
afterId string Ne
includeContext boolean Ne
afterCreatedAt number Ne
unreadOnly boolean Ne
dmOnly boolean Ne
noDm boolean Ne
includeTranslations boolean Ne
sso string Ne

Odgovor

Vrne: GetUserNotifications200Response

Primer

Primer klica getUserNotifications
Copy Copy
1
2const tenantId: string = 'tenant_7f3b1c';
3const pageSize: number = 25;
4const afterId: string = 'notif_b2f9e4';
5const includeContext: boolean = true;
6const afterCreatedAt: number = Date.now() - 24 * 60 * 60 * 1000;
7const unreadOnly: boolean = true;
8const dmOnly: boolean = false;
9const noDm: boolean = false;
10const includeTranslations: boolean = true;
11const sso: string = 'sso_tok_user_9f8d7c';
12const response: GetUserNotifications200Response = await getUserNotifications(
13 tenantId,
14 pageSize,
15 afterId,
16 includeContext,
17 afterCreatedAt,
18 unreadOnly,
19 dmOnly,
20 noDm,
21 includeTranslations,
22 sso
23);
24

resetUserNotificationCount Internal Link


Parametri

Ime Tip Obvezno Opis
tenantId string Da
sso string Ne

Odgovor

Vrača: ResetUserNotifications200Response

Primer

Primer resetUserNotificationCount
Copy Copy
1
2(async () => {
3 const tenantId: string = "tenant_9f3b2c4a";
4 const ssoToken: string | undefined = "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9._sample_payload_.signature";
5 const responseWithSSO: ResetUserNotifications200Response = await resetUserNotificationCount(tenantId, ssoToken);
6 const responseWithoutSSO: ResetUserNotifications200Response = await resetUserNotificationCount(tenantId);
7 console.log(responseWithSSO, responseWithoutSSO);
8})();
9

resetUserNotifications Internal Link

Parametri

Ime Tip Zahtevano Opis
tenantId string Da
afterId string Ne
afterCreatedAt number Ne
unreadOnly boolean Ne
dmOnly boolean Ne
noDm boolean Ne
sso string Ne

Odgovor

Vrne: ResetUserNotifications200Response

Primer

Primer resetUserNotifications
Copy Copy
1
2const tenantId: string = "tenant_prod_4a9f12";
3const afterId: string = "notification_87213";
4const afterCreatedAt: number = Math.floor(Date.now() / 1000) - 3600;
5const unreadOnly: boolean = true;
6const dmOnly: boolean = false;
7const sso: string = "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.example.payload";
8const result: ResetUserNotifications200Response = await resetUserNotifications(tenantId, afterId, afterCreatedAt, unreadOnly, dmOnly, undefined, sso);
9

updateUserNotificationCommentSubscriptionStatus Internal Link


Omogoči ali onemogoči obvestila za določen komentar.

Parametri

Ime Tip Obvezno Opis
tenantId string Da
notificationId string Da
optedInOrOut UpdateUserNotificationCommentSubscriptionStatusOptedInOrOutEnum Da
commentId string Da
sso string Ne

Odziv

Vrne: UpdateUserNotificationStatus200Response

Primer

updateUserNotificationCommentSubscriptionStatus Primer
Copy Copy
1
2const tenantId: string = 'acme-tenant-001';
3const notificationId: string = 'notif-2026-03-25-01';
4const commentId: string = 'cmt-8f3a2b';
5const optedInOrOut: UpdateUserNotificationCommentSubscriptionStatusOptedInOrOutEnum = UpdateUserNotificationCommentSubscriptionStatusOptedInOrOutEnum.OptIn;
6const sso: string = 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.sso-payload.signature';
7const result: UpdateUserNotificationStatus200Response = await updateUserNotificationCommentSubscriptionStatus(tenantId, notificationId, optedInOrOut, commentId, sso);
8

updateUserNotificationPageSubscriptionStatus Internal Link

Omogočite ali onemogočite obvestila za stran. Ko so uporabniki naročeni na stran, se ustvarijo obvestila za nove korenske komentarje, in tudi

Parametri

Ime Tip Obvezno Opis
tenantId string Da
urlId string Da
url string Da
pageTitle string Da
subscribedOrUnsubscribed UpdateUserNotificationPageSubscriptionStatusSubscribedOrUnsubscribedEnum Da
sso string Ne

Odgovor

Vrne: UpdateUserNotificationStatus200Response

Primer

Primer updateUserNotificationPageSubscriptionStatus
Copy Copy
1
2const tenantId: string = 'acme-tenant-42';
3const urlId: string = 'blog-launch-2026';
4const url: string = 'https://acme.example.com/blog/launch-march-2026';
5const pageTitle: string = 'Acme Product Launch — March 2026';
6const subscribedOrUnsubscribed: UpdateUserNotificationPageSubscriptionStatusSubscribedOrUnsubscribedEnum = UpdateUserNotificationPageSubscriptionStatusSubscribedOrUnsubscribedEnum.Subscribed;
7const sso: string = 'sso_jwt_eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9';
8const response: UpdateUserNotificationStatus200Response = await updateUserNotificationPageSubscriptionStatus(tenantId, urlId, url, pageTitle, subscribedOrUnsubscribed, sso);
9

updateUserNotificationStatus Internal Link

Parametri

Ime Tip Zahtevano Opis
tenantId string Da
notificationId string Da
newStatus UpdateUserNotificationStatusNewStatusEnum Da
sso string Ne

Odgovor

Vrne: UpdateUserNotificationStatus200Response

Primer

Primer updateUserNotificationStatus
Copy Copy
1
2const tenantId: string = 'tenant_84a2c3';
3const notificationId: string = 'notif_20260325_01';
4const newStatus: UpdateUserNotificationStatusNewStatusEnum = UpdateUserNotificationStatusNewStatusEnum.Read;
5const sso: string = 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.sso_signature_example';
6const result: UpdateUserNotificationStatus200Response = await updateUserNotificationStatus(tenantId, notificationId, newStatus, sso);
7

getUserPresenceStatuses Internal Link

Parametri

Ime Tip Obvezno Opis
tenantId string Da
urlIdWS string Da
userIds string Da

Odgovor

Vrne: GetUserPresenceStatuses200Response

Primer

getUserPresenceStatuses Primer
Copy Copy
1
2const tenantId: string = 'tenant_7f3a2b';
3const urlIdWS: string = 'articles/2026/03/25/fastcomments-integration';
4const maybeUserIds: string | undefined = 'user_123,user_456'; // neobvezen vir
5const userIds: string = maybeUserIds ?? 'user_123';
6const presence: GetUserPresenceStatuses200Response = await getUserPresenceStatuses(tenantId, urlIdWS, userIds);
7

searchUsers Internal Link

Parametri

Ime Tip Obvezno Opis
tenantId string Da
urlId string Da
usernameStartsWith string Ne
mentionGroupIds Array Ne
sso string Ne
searchSection SearchUsersSearchSectionEnum Ne

Odgovor

Vrne: SearchUsers200Response

Primer

searchUsers Primer
Copy Copy
1
2const tenantId: string = 'tenant_8392';
3const urlId: string = 'articles/2026/03/25/fastcomments-release';
4const usernameStartsWith: string = 'jo';
5const mentionGroupIds: Array<string> = ['editors', 'senior-writers'];
6const sso: string = 'sso_jwt_eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9';
7const searchSection: SearchUsersSearchSectionEnum = SearchUsersSearchSectionEnum.ALL;
8const result: SearchUsers200Response = await searchUsers(tenantId, urlId, usernameStartsWith, mentionGroupIds, sso, searchSection);
9

getUser Internal Link

Parametri

Ime Tip Obvezno Opis
tenantId string Da
id string Da

Odgovor

Vrne: GetUser200Response

Primer

Primer getUser
Copy Copy
1
2const tenantId: string = 'tenant_7b3f42';
3const id: string = 'user_9c4d2a';
4const userResponse: GetUser200Response = await getUser(tenantId, id);
5console.log(userResponse);
6

createVote Internal Link

Parameters

Ime Tip Obvezno Opis
tenantId string Da
commentId string Da
direction CreateVoteDirectionEnum Da
userId string Ne
anonUserId string Ne

Odgovor

Vrne: VoteComment200Response

Primer

Primer createVote
Copy Copy
1
2const tenantId: string = 'tenant_9f8b6a';
3const commentId: string = 'comment_3b7d2e';
4const direction: CreateVoteDirectionEnum = CreateVoteDirectionEnum.Up;
5const anonUserId: string = 'anon_4c2a1f';
6
7const voteResult: VoteComment200Response = await createVote(tenantId, commentId, direction, undefined, anonUserId);
8

deleteVote Internal Link

Parametri

Ime Tip Zahtevano Opis
tenantId string Da
id string Da
editKey string Ne

Odgovor

Vrne: DeleteCommentVote200Response

Primer

Primer deleteVote
Copy Copy
1
2const tenantId: string = "tenant_7c3f2b4a";
3const voteId: string = "vote_4f8d9a11";
4const editKey: string = "edit_2b9f8c";
5const resultWithoutKey: DeleteCommentVote200Response = await deleteVote(tenantId, voteId);
6const resultWithKey: DeleteCommentVote200Response = await deleteVote(tenantId, voteId, editKey);
7

getVotes Internal Link

Parametri

Ime Tip Obvezno Opis
tenantId string Da
urlId string Da

Odgovor

Vrača: GetVotes200Response

Primer

Primer getVotes
Copy Copy
1
2const tenantId: string = 'acme-corp-8f3b';
3const refCampaign: string | undefined = 'newsletter-march2026'; // neobvezen parameter poizvedbe
4const urlId: string = `https://www.example.com/articles/2026/03/25/fastcomments-integration${refCampaign ? `?ref=${refCampaign}` : ''}`;
5
6const votes: GetVotes200Response = await getVotes(tenantId, urlId);
7

getVotesForUser Internal Link

Parametri

Ime Tip Obvezno Opis
tenantId string Da
urlId string Da
userId string Ne
anonUserId string Ne

Odgovor

Vrne: GetVotesForUser200Response

Primer

Primer getVotesForUser
Copy Copy
1
2(async (): Promise<void> => {
3 const tenantId: string = "local-news-ny";
4 const urlId: string = "articles/2026-03-25/ev-infrastructure-update";
5 const userId: string = "user_78b6f3d9";
6 const anonUserId: string = "anon_9c3f7a1b";
7 const result: GetVotesForUser200Response = await getVotesForUser(tenantId, urlId, userId, anonUserId);
8 console.log(result);
9})();
10

Potrebujete pomoč?

Če naletite na težave ali imate vprašanja glede JavaScript/TypeScript SDK, prosimo:

Sodelovanje

Prispevki so dobrodošli! Prosimo, obiščite GitHub repozitorij za smernice za prispevanje.