FastComments.com

FastComments SDK za JavaScript/TypeScript

To je uradni JavaScript/TypeScript SDK za FastComments.

Upravljajte komentarje, uporabnike, SSO in moderiranje iz Node.js ali iz brskalnika.

Repozitorij

Poglej na GitHub


Namestitev Internal Link


npm

npm install fastcomments-sdk

Dokumentacija API Internal Link


Popolna referenca API: docs/api/README.md

Združljivost brskalnika in strežnika 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

Javni in zaščiteni API-ji 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'
});

Integracija SSO (Single Sign-On) 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)
});

Pogosti primeri uporabe 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'
});

Dogodki v živo (posodobitve v realnem času) 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);
}

ID-ji za oddajanje 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
  }
});

Ravnanje z napakami 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 grupiranjem (če je podan groupBy) in izvajanjem več operacij. Podprte so različne operacije (npr. sum, countDistinct, avg, itd.).

Parametri

ImeTipObveznoOpis
tenantIdstringDa
aggregationRequestAggregationRequestDa
parentTenantIdstringNe
includeStatsbooleanNe

Odgovor

Vrača: Aggregate200Response

Primer

Primer uporabe aggregate
Copy Copy
1
2const tenantId: string = 'tenant_78a9';
3const parentTenantId: string = 'parent_tenant_01';
4const includeStats: boolean = true;
5const aggregationRequest: AggregationRequest = {
6 operation: { type: 'COUNT' },
7 groupBy: ['pageUrl'],
8 predicate: { field: 'status', operator: 'EQUALS', value: 'approved' },
9 sort: [{ field: 'count', direction: 'DESC' }],
10 limit: 25
11};
12const result: Aggregate200Response = await aggregate(tenantId, aggregationRequest, parentTenantId, includeStats);
13

getAuditLogs Internal Link

Parametri

ImeTipObveznoOpis
tenantIdstringDa
limitnumberNe
skipnumberNe
orderSORTDIRNe
afternumberNe
beforenumberNe

Odgovor

Vrača: GetAuditLogs200Response

Primer

getAuditLogs Primer
Copy Copy
1
2const tenantId: string = 'tenant_5f8d7c3a';
3const limit: number = 100;
4const skip: number = 0;
5const order: SORTDIR = 'DESC' as SORTDIR;
6const after: number = Date.now() - 7 * 24 * 60 * 60 * 1000; // pred enim tednom
7const before: number = Date.now();
8const result: GetAuditLogs200Response = await getAuditLogs(tenantId, limit, skip, order, after, before);
9

blockFromCommentPublic Internal Link

Parametri

NameTypeRequiredDescription
tenantIdstringDa
commentIdstringDa
publicBlockFromCommentParamsPublicBlockFromCommentParamsDa
ssostringNe

Odgovor

Vrne: BlockFromCommentPublic200Response

Primer

Primer blockFromCommentPublic
Copy Copy
1
2const tenantId: string = 'tenant_6b3f9a2d';
3const commentId: string = 'cmt_8f4b12a9';
4const publicBlockFromCommentParams: PublicBlockFromCommentParams = {
5 reason: 'Repeated promotional links',
6 durationMinutes: 60 * 24 * 30, // 30 dni
7 escalateToModeration: true
8};
9const sso: string = 'sso_token_3fH7kLw';
10
11const result: BlockFromCommentPublic200Response = await blockFromCommentPublic(tenantId, commentId, publicBlockFromCommentParams, sso);
12

unBlockCommentPublic Internal Link

Parametri

ImeTipZahtevanoOpis
tenantIdstringDa
commentIdstringDa
publicBlockFromCommentParamsPublicBlockFromCommentParamsDa
ssostringNe

Odgovor

Vrne: UnBlockCommentPublic200Response

Primer

Primer unBlockCommentPublic
Copy Copy
1
2const tenantId: string = "tenant-42-production";
3const commentId: string = "comment_7f3b2a9d";
4const publicBlockFromCommentParams: PublicBlockFromCommentParams = {
5 reason: "flag reviewed and determined not to violate policy",
6 restoredBy: "moderator_jane",
7 restoredAt: new Date().toISOString()
8};
9const sso: string = "sso_token_eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9";
10const result: UnBlockCommentPublic200Response = await unBlockCommentPublic(tenantId, commentId, publicBlockFromCommentParams, sso);
11

checkedCommentsForBlocked Internal Link

Parametri

NameTypeRequiredDescription
tenantIdstringDa
commentIdsstringDa
ssostringNe

Odziv

Vrača: CheckedCommentsForBlocked200Response

Primer

Primer checkedCommentsForBlocked
Copy Copy
1
2(async () => {
3 const tenantId: string = 'tenant_fa3b2c9e';
4 const commentIds: string = 'cmt_112233,cmt_445566';
5 const sso: string = 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VySWQiOiI0Njc4IiwidGVuYW50IjoidGVuYW50X2ZhM2IifQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c';
6 const resultWithSSO: CheckedCommentsForBlocked200Response = await checkedCommentsForBlocked(tenantId, commentIds, sso);
7 const resultWithoutSSO: CheckedCommentsForBlocked200Response = await checkedCommentsForBlocked(tenantId, commentIds);
8 console.log(resultWithSSO, resultWithoutSSO);
9})();
10

blockUserFromComment Internal Link


Parametri

ImeTipZahtevanoOpis
tenantIdstringDa
idstringDa
blockFromCommentParamsBlockFromCommentParamsDa
userIdstringNe
anonUserIdstringNe

Odgovor

Vrne: BlockFromCommentPublic200Response

Primer

Primer blockUserFromComment
Copy Copy
1
2const tenantId: string = "tenant_7f3b4c";
3const id: string = "comment_9a8b7c6d";
4const blockFromCommentParams: BlockFromCommentParams = {
5 reason: "Repeated spam links",
6 durationHours: 168,
7 notifyModerators: true
8};
9const userId: string | undefined = "user_42";
10const anonUserId: string | undefined = undefined;
11const result: BlockFromCommentPublic200Response = await blockUserFromComment(tenantId, id, blockFromCommentParams, userId, anonUserId);
12

createCommentPublic Internal Link

Parametri

ImeTipZahtevanoOpis
tenantIdstringDa
urlIdstringDa
broadcastIdstringDa
commentDataCommentDataDa
sessionIdstringNe
ssostringNe

Odgovor

Vrača: CreateCommentPublic200Response

Primer

Primer uporabe createCommentPublic
Copy Copy
1
2const tenantId: string = 'tenant_9a1b2c';
3const urlId: string = 'https://www.news-site.com/article/67890';
4const broadcastId: string = 'broadcast_2026-06-15-01';
5const sessionId: string | undefined = 'sess_abc123xyz';
6const sso: string | undefined = 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VyIjoiam9yZGFuIiwiaWF0IjoxNjI0MDAwMDB9.signature';
7const commentData: CommentData = {
8 content: 'Insightful piece — I appreciated the data-backed points and sources cited.',
9 authorDisplayName: 'Jordan Miles'
10} as CommentData;
11const result: CreateCommentPublic200Response = await createCommentPublic(tenantId, urlId, broadcastId, commentData, sessionId, sso);
12

deleteComment Internal Link


Parametri

NameTypeRequiredDescription
tenantIdstringDa
idstringDa
contextUserIdstringNe
isLivebooleanNe

Odgovor

Vrne: DeleteComment200Response

Primer

Primer deleteComment
Copy Copy
1
2const tenantId: string = 'tenant_84a9f2';
3const id: string = 'comment_5f3b21';
4const contextUserId: string | undefined = 'user_1122';
5const isLive: boolean | undefined = true;
6
7async function run(): Promise<void> {
8 const result: DeleteComment200Response = await deleteComment(tenantId, id, contextUserId, isLive);
9 console.log(result);
10}
11
12run();
13

deleteCommentPublic Internal Link

Parametri

ImeTipObveznoOpis
tenantIdstringDa
commentIdstringDa
broadcastIdstringDa
editKeystringNe
ssostringNe

Odgovor

Vrne: DeleteCommentPublic200Response

Primer

Primer deleteCommentPublic
Copy Copy
1
2const tenantId: string = 'tenant_acme_42';
3const commentId: string = 'c0mment-9f8b7a6';
4const broadcastId: string = 'site_homepage_2026-06-15';
5const editKey: string = 'ek_3b7a1f59-4d2c-11eb-8dcd-0242ac130003';
6const sso: string = 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.fakePayload.signature';
7
8const result: DeleteCommentPublic200Response = await deleteCommentPublic(tenantId, commentId, broadcastId, editKey, sso);
9

deleteCommentVote Internal Link

Parametri

ImeTipZahtevanoOpis
tenantIdstringDa
commentIdstringDa
voteIdstringDa
urlIdstringDa
broadcastIdstringDa
editKeystringNe
ssostringNe

Odgovor

Vrne: DeleteCommentVote200Response

Primer

Primer deleteCommentVote
Copy Copy
1
2const tenantId: string = 'tenant_8f3a2b7c';
3const commentId: string = 'cmt-5a1f3d92';
4const voteId: string = 'vote-3b9c7e1a';
5const urlId: string = 'articles/2026/06/typescript-best-practices';
6const broadcastId: string = 'broadcast-77f4d2';
7const editKey: string = 'edk-9b2f4c';
8const sso: string = 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.sso_payload.signature';
9const result: DeleteCommentVote200Response = await deleteCommentVote(tenantId, commentId, voteId, urlId, broadcastId, editKey, sso);
10

flagComment Internal Link

Parametri

ImeTipObveznoOpis
tenantIdstringDa
idstringDa
userIdstringNe
anonUserIdstringNe

Odgovor

Vrne: FlagComment200Response

Primer

Primer uporabe flagComment
Copy Copy
1
2const tenantId: string = "tenant_4f21c9a";
3const commentId: string = "cmt_7a12b3e9";
4const userId: string = "user_82bd123";
5const result: FlagComment200Response = await flagComment(tenantId, commentId, userId);
6

getComment Internal Link

Parametri

ImeTipObveznoOpis
tenantIdstringDa
idstringDa

Odgovor

Vrne: GetComment200Response

Primer

Primer getComment
Copy Copy
1
2const tenantId: string = 'tenant_6f1a2b';
3const commentId: string = 'cmt_4d9e8f';
4const includeReplies: boolean | undefined = true; // primer neobveznega parametra (ni poslan getComment)
5const result: GetComment200Response = await getComment(tenantId, commentId);
6console.log('Fetched comment for tenant:', tenantId, 'comment id:', commentId);
7console.log('API response received:', result);
8

getComments Internal Link


Parametri

ImeTipObveznoOpis
tenantIdstringDa
pagenumberNe
limitnumberNe
skipnumberNe
asTreebooleanNe
skipChildrennumberNe
limitChildrennumberNe
maxTreeDepthnumberNe
urlIdstringNe
userIdstringNe
anonUserIdstringNe
contextUserIdstringNe
hashTagstringNe
parentIdstringNe
directionSortDirectionsNe
fromDatenumberNe
toDatenumberNe

Odgovor

Vrne: GetComments200Response

Primer

Primer getComments
Copy Copy
1
2const tenantId: string = "tenant_9a12b3";
3const response: GetComments200Response = await getComments(tenantId, 1, 20, 0, true, 0, 3, 2, "https://mysite.com/posts/678", undefined, undefined, undefined, undefined, "parent_987", undefined, 1716873600000, 1719552000000);
4

getCommentsPublic Internal Link

req tenantId urlId

Parametri

ImeTipObveznoOpis
tenantIdstringDa
urlIdstringDa
pagenumberNe
directionSortDirectionsNe
ssostringNe
skipnumberNe
skipChildrennumberNe
limitnumberNe
limitChildrennumberNe
countChildrenbooleanNe
fetchPageForCommentIdstringNe
includeConfigbooleanNe
countAllbooleanNe
includei10nbooleanNe
localestringNe
modulesstringNe
isCrawlerbooleanNe
includeNotificationCountbooleanNe
asTreebooleanNe
maxTreeDepthnumberNe
useFullTranslationIdsbooleanNe
parentIdstringNe
searchTextstringNe
hashTagsArrayNe
userIdstringNe
customConfigStrstringNe
afterCommentIdstringNe
beforeCommentIdstringNe

Odgovor

Vrne: GetCommentsPublic200Response

Primer

Primer getCommentsPublic
Copy Copy
1
2const tenantId: string = 'acme-news';
3const urlId: string = '/articles/2026/fastcomments-update';
4const page: number = 1;
5const skip: number = 0;
6const limit: number = 25;
7const countChildren: boolean = true;
8const includeConfig: boolean = true;
9const result: GetCommentsPublic200Response = await getCommentsPublic(
10 tenantId,
11 urlId,
12 page,
13 undefined,
14 undefined,
15 skip,
16 undefined,
17 limit,
18 undefined,
19 countChildren,
20 undefined,
21 includeConfig
22);
23

getCommentText Internal Link

Parametri

ImeTipObveznoOpis
tenantIdstringDa
commentIdstringDa
editKeystringNe
ssostringNe

Odziv

Vrača: GetCommentText200Response

Primer

Primer getCommentText
Copy Copy
1
2const tenantId: string = 'tenant_42b7e9';
3const commentId: string = 'cmt_9f3a2b';
4const editKey: string = 'edk_3f1b7c9d';
5const sso: string = 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.ssoPayload.signature';
6
7const result: GetCommentText200Response = await getCommentText(tenantId, commentId, editKey, sso);
8

getCommentVoteUserNames Internal Link

Parametri

ImeTipObveznoOpis
tenantIdstringDa
commentIdstringDa
dirnumberDa
ssostringNe

Odgovor

Vrne: GetCommentVoteUserNames200Response

Primer

getCommentVoteUserNames Primer
Copy Copy
1
2const tenantId: string = "tenant_67890";
3const commentId: string = "comment_abc123";
4const dir: number = 1;
5const ssoToken: string = "sso-eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9";
6
7const responseWithoutSSO: GetCommentVoteUserNames200Response = await getCommentVoteUserNames(tenantId, commentId, dir);
8const responseWithSSO: GetCommentVoteUserNames200Response = await getCommentVoteUserNames(tenantId, commentId, dir, ssoToken);
9

lockComment Internal Link


Parametri

ImeTipObveznoOpis
tenantIdstringDa
commentIdstringDa
broadcastIdstringDa
ssostringNe

Odgovor

Vrača: LockComment200Response

Primer

Primer lockComment
Copy Copy
1
2const tenantId: string = 'tenant_42f6c1';
3const commentId: string = 'cmt-9a8b7c';
4const broadcastId: string = 'brd_2026_06_15';
5const ssoToken: string = 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiI1Njc4OSIsImlhdCI6MTY1MDAwMDB9.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c';
6
7const lockedWithSso: LockComment200Response = await lockComment(tenantId, commentId, broadcastId, ssoToken);
8const lockedWithoutSso: LockComment200Response = await lockComment(tenantId, commentId, broadcastId);
9

pinComment Internal Link


Parametri

ImeTipZahtevanoOpis
tenantIdstringDa
commentIdstringDa
broadcastIdstringDa
ssostringNe

Odgovor

Vrne: PinComment200Response

Primer

pinComment Primer
Copy Copy
1
2const tenantId: string = "acme-corp-tenant-72";
3const commentId: string = "cmt_8f3a2b4c9d";
4const broadcastId: string = "live_2026-06-15_21z";
5const ssoToken: string = "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.fake.payload.signature";
6
7const responseNoSSO: PinComment200Response = await pinComment(tenantId, commentId, broadcastId);
8const responseWithSSO: PinComment200Response = await pinComment(tenantId, commentId, broadcastId, ssoToken);
9

saveComment Internal Link

Parametri

ImeTipObveznoOpis
tenantIdstringDa
createCommentParamsCreateCommentParamsDa
isLivebooleanNe
doSpamCheckbooleanNe
sendEmailsbooleanNe
populateNotificationsbooleanNe

Odgovor

Vrne: SaveComment200Response

Primer

Primer saveComment
Copy Copy
1
2const tenantId: string = "fastcomments-tenant-42";
3const createCommentParams: CreateCommentParams = {
4 threadId: "article-2026-06-0142",
5 content: "Great write-up — I followed the migration steps and everything worked as described.",
6 userId: "u_9c72b",
7 userName: "Ava R.",
8 userAvatarUrl: "https://cdn.example.com/avatars/u_9c72b.png",
9 metadata: { platform: "web", locale: "en-US" }
10};
11const isLive: boolean = true;
12const doSpamCheck: boolean = true;
13const sendEmails: boolean = false;
14const populateNotifications: boolean = true;
15const result: SaveComment200Response = await saveComment(tenantId, createCommentParams, isLive, doSpamCheck, sendEmails, populateNotifications);
16

saveCommentsBulk Internal Link

Parametri

ImeTipObveznoOpis
tenantIdstringDa
createCommentParamsArrayDa
isLivebooleanNe
doSpamCheckbooleanNe
sendEmailsbooleanNe
populateNotificationsbooleanNe

Odgovor

Vrne: Array<SaveComment200Response

Primer

Primer saveCommentsBulk
Copy Copy
1
2const tenantId: string = "tenant_42a1b7";
3const mentions: CommentUserMentionInfo[] = [{ userId: "user_2b9", displayName: "Alex Chen" }];
4const hashtags: CommentUserHashTagInfo[] = [{ tag: "performance" }];
5const createCommentParams: CreateCommentParams[] = [
6 {
7 content: "Thanks for the detailed article — the alternative approach worked for me.",
8 authorId: "user_8f3c2",
9 authorName: "Maya Patel",
10 authorEmail: "maya.patel@example.com",
11 url: "/articles/optimizing-ts-performance",
12 createdAt: new Date().toISOString(),
13 mentions,
14 hashtags
15 }
16];
17const isLive: boolean = true;
18const doSpamCheck: boolean = false;
19const sendEmails: boolean = true;
20const populateNotifications: boolean = true;
21const result: Array<SaveComment200Response> = await saveCommentsBulk(tenantId, createCommentParams, isLive, doSpamCheck, sendEmails, populateNotifications);
22

setCommentText Internal Link

Parametri

ImeTipObveznoOpis
tenantIdstringDa
commentIdstringDa
broadcastIdstringDa
commentTextUpdateRequestCommentTextUpdateRequestDa
editKeystringNe
ssostringNe

Odgovor

Vrne: SetCommentText200Response

Primer

Primer setCommentText
Copy Copy
1
2const tenantId: string = 'tenant_4f9a2b'
3const commentId: string = 'cmt-8421'
4const broadcastId: string = 'brd-2026-06-15'
5const commentTextUpdateRequest: CommentTextUpdateRequest = { text: 'Updated comment text to clarify the schedule.', mentions: [], hashtags: [] }
6const editKey: string = 'editkey_9b12'
7const sso: string = 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.sso.signature'
8const result: SetCommentText200Response = await setCommentText(tenantId, commentId, broadcastId, commentTextUpdateRequest, editKey, sso)
9

unBlockUserFromComment Internal Link

Parametri

ImeTipObveznoOpis
tenantIdstringDa
idstringDa
unBlockFromCommentParamsUnBlockFromCommentParamsDa
userIdstringNe
anonUserIdstringNe

Odgovor

Vrne: UnBlockCommentPublic200Response

Primer

unBlockUserFromComment Primer
Copy Copy
1
2const tenantId: string = 'tenant_7b9c2a';
3const id: string = 'comment_4f8e1d';
4const unBlockFromCommentParams: UnBlockFromCommentParams = {
5 reason: 'User submitted appeal and provided additional context',
6 effectiveAt: new Date().toISOString()
7};
8const userId: string = 'user_92a3f6';
9const result: UnBlockCommentPublic200Response = await unBlockUserFromComment(tenantId, id, unBlockFromCommentParams, userId);
10

unFlagComment Internal Link

Parametri

ImeTipObveznoOpis
tenantIdstringDa
idstringDa
userIdstringNe
anonUserIdstringNe

Odgovor

Vrača: FlagComment200Response

Primer

unFlagComment Primer
Copy Copy
1
2const tenantId: string = 'tenant_8f3b2a1f';
3const commentId: string = 'cmt_20250614_01';
4const userId: string = 'user_47d2b9';
5const result: FlagComment200Response = await unFlagComment(tenantId, commentId, userId);
6

unLockComment Internal Link

Parametri

ImeTipObveznoOpis
tenantIdstringDa
commentIdstringDa
broadcastIdstringDa
ssostringNe

Odgovor

Vrne: LockComment200Response

Primer

Primer unLockComment
Copy Copy
1
2const tenantId: string = "tenant-8f3b2c4a";
3const commentId: string = "cmt_92a7f3e6";
4const broadcastId: string = "brd_1b4c9d20";
5const sso: string = "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiJ1c2VyMTIzIn0.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c";
6const result: LockComment200Response = await unLockComment(tenantId, commentId, broadcastId, sso);
7

unPinComment Internal Link

Parametri

ImeTipObveznoOpis
tenantIdstringDa
commentIdstringDa
broadcastIdstringDa
ssostringNe

Odgovor

Vrne: PinComment200Response

Primer

Primer unPinComment
Copy Copy
1
2const tenantId: string = "tenant_9f3b2c1a";
3const commentId: string = "comment_4d2e8a7f";
4const broadcastId: string = "broadcast_live_2026_06_15_18";
5const sso: string = "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.invalid-signature";
6const response: PinComment200Response = await unPinComment(tenantId, commentId, broadcastId, sso);
7console.log(response);
8

updateComment Internal Link

Parametri

ImeTipObveznoOpis
tenantIdstringDa
idstringDa
updatableCommentParamsUpdatableCommentParamsDa
contextUserIdstringNe
doSpamCheckbooleanNe
isLivebooleanNe

Odgovor

Vrača: FlagCommentPublic200Response

Primer

Primer updateComment
Copy Copy
1
2const tenantId: string = 'tenant_7f3c1b2a';
3const commentId: string = 'cmt_8d9f2a4b';
4const updatableCommentParams: UpdatableCommentParams = {
5 body: 'Updating this comment to clarify the feature behavior and include a timestamp.',
6 metadata: { category: 'support', editedReason: 'clarify instructions' },
7 visible: true
8};
9const contextUserId: string = 'user_42';
10const doSpamCheck: boolean = true;
11const result: FlagCommentPublic200Response = await updateComment(tenantId, commentId, updatableCommentParams, contextUserId, doSpamCheck);
12

voteComment Internal Link

Parametri

ImeTipObveznoOpis
tenantIdstringDa
commentIdstringDa
urlIdstringDa
broadcastIdstringDa
voteBodyParamsVoteBodyParamsDa
sessionIdstringNe
ssostringNe

Odziv

Vrne: VoteComment200Response

Primer

Primer voteComment
Copy Copy
1
2const tenantId: string = 'tenant_7f9d2e';
3const commentId: string = '5a1d3f9b-2c4e-4a2b-bf7b-1234567890ab';
4const urlId: string = 'articles/2026/06/15/typescript-api-patterns';
5const broadcastId: string = 'broadcast-20260615-01';
6const voteBodyParams: VoteBodyParams = { vote: 'up' };
7const sessionId: string = 'sess_9d2f3b45';
8const sso: string = 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiJ1c2VyXzEyMyIsImlhdCI6MTY5NzE2MDAwMH0.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c';
9
10const response: VoteComment200Response = await voteComment(
11 tenantId,
12 commentId,
13 urlId,
14 broadcastId,
15 voteBodyParams,
16 sessionId,
17 sso
18);
19

getCommentsForUser Internal Link

Parametri

ImeTipObveznoOpis
userIdstringNe
directionSortDirectionsNe
repliesToUserIdstringNe
pagenumberNe
includei10nbooleanNe
localestringNe
isCrawlerbooleanNe

Odgovor

Vrne: GetCommentsForUser200Response

Primer

getCommentsForUser Primer
Copy Copy
1
2const userId: string = "550e8400-e29b-41d4-a716-446655440000";
3const page: number = 2;
4const includei10n: boolean = true;
5const locale: string = "en-US";
6const isCrawler: boolean = false;
7
8const comments: GetCommentsForUser200Response = await getCommentsForUser(
9 userId,
10 undefined, // direction izpuščeno
11 undefined, // repliesToUserId izpuščeno
12 page,
13 includei10n,
14 locale,
15 isCrawler
16);
17
18console.log(comments);
19

addDomainConfig Internal Link

Parametri

ImeTipObveznoOpis
tenantIdstringDa
addDomainConfigParamsAddDomainConfigParamsDa

Odgovor

Vrača: AddDomainConfig200Response


deleteDomainConfig Internal Link


Parametri

ImeTipObveznoOpis
tenantIdstringDa
domainstringDa

Odgovor

Vrne: DeleteDomainConfig200Response


getDomainConfig Internal Link

Parametri

ImeTipObveznoOpis
tenantIdstringDa
domainstringDa

Odziv

Vrne: GetDomainConfig200Response


getDomainConfigs Internal Link

Parametri

ImeTipObveznoOpis
tenantIdstringDa

Odgovor

Vrne: GetDomainConfigs200Response

patchDomainConfig Internal Link


Parametri

ImeTipZahtevanoOpis
tenantIdstringDa
domainToUpdatestringDa
patchDomainConfigParamsPatchDomainConfigParamsDa

Odgovor

Vrne: GetDomainConfig200Response


putDomainConfig Internal Link

Parametri

ImeTipZahtevanoOpis
tenantIdstringDa
domainToUpdatestringDa
updateDomainConfigParamsUpdateDomainConfigParamsDa

Odgovor

Vrne: GetDomainConfig200Response


createEmailTemplate Internal Link


Parametri

ImeTipPotrebnoOpis
tenantIdstringDa
createEmailTemplateBodyCreateEmailTemplateBodyDa

Odgovor

Vrne: CreateEmailTemplate200Response

Primer

Primer createEmailTemplate
Copy Copy
1
2const tenantId: string = "tenant_4f2b1c9e";
3const createEmailTemplateBody: CreateEmailTemplateBody = {
4 name: "New Comment Notification",
5 subject: "Someone replied to your discussion",
6 fromName: "Community Team",
7 fromAddress: "no-reply@community.example.com",
8 htmlBody: "<p>\{{comment.author}} replied: \{{comment.text}}</p>",
9 plaintextBody: "\{{comment.author}} replied: \{{comment.text}}",
10 previewText: "A new reply on a discussion you follow",
11 isDefault: false // optional flag demonstrating optional parameter usage
12};
13const result: CreateEmailTemplate200Response = await createEmailTemplate(tenantId, createEmailTemplateBody);
14

deleteEmailTemplate Internal Link

Parametri

ImeTipObveznoOpis
tenantIdstringDa
idstringDa

Odgovor

Vrne: FlagCommentPublic200Response

Primer

Primer deleteEmailTemplate
Copy Copy
1
2const tenantId: string = "tenant_9c4f1b2a";
3const id: string = "emailtmpl_4d2b9a5e";
4const requestorNote: string | undefined = undefined; // izbirni metapodatki (niso zahtevani s strani funkcije)
5const result: FlagCommentPublic200Response = await deleteEmailTemplate(tenantId, id);
6

deleteEmailTemplateRenderError Internal Link


Parametri

NameTypeRequiredDescription
tenantIdstringDa
idstringDa
errorIdstringDa

Odgovor

Vrne: FlagCommentPublic200Response

Primer

Primer deleteEmailTemplateRenderError
Copy Copy
1
2const tenantId: string = 'tenant-72f3b4';
3const templateId: string = 'email_template-9c3a1';
4let providedErrorId: string | undefined = undefined; // neobvezna vrednost, lahko je nastavljena drugje
5const errorId: string = providedErrorId ?? 'render_err-5d2f7';
6const result: FlagCommentPublic200Response = await deleteEmailTemplateRenderError(tenantId, templateId, errorId);
7

getEmailTemplate Internal Link

Parametri

ImeTipObveznoOpis
tenantIdstringDa
idstringDa

Odgovor

Vrača: GetEmailTemplate200Response

Primer

getEmailTemplate Primer
Copy Copy
1
2const tenantId: string = 'tenant_7f3b2c';
3const templateId: string = 'welcome-email-2024';
4const includeDrafts: boolean | undefined = undefined;
5const emailTemplate: GetEmailTemplate200Response = await getEmailTemplate(tenantId, templateId);
6

getEmailTemplateDefinitions Internal Link

Parametri

NameTypeRequiredDescription
tenantIdstringDa

Odgovor

Vrača: GetEmailTemplateDefinitions200Response

Primer

Primer getEmailTemplateDefinitions
Copy Copy
1
2(async () => {
3 const tenantId: string = 'tenant_acme_001';
4 const options: { includeDrafts?: boolean } = { includeDrafts: true }; // prikazan neobvezen parameter
5 const templates: GetEmailTemplateDefinitions200Response = await getEmailTemplateDefinitions(tenantId, options);
6 console.log(templates);
7})();
8

getEmailTemplateRenderErrors Internal Link

Parametri

ImeTipObveznoOpis
tenantIdstringDa
idstringDa
skipnumberNe

Odgovor

Vrne: GetEmailTemplateRenderErrors200Response

Primer

Primer getEmailTemplateRenderErrors
Copy Copy
1
2const tenantId: string = 'acme-tenant-01';
3const id: string = 'tmpl_7f9a2b4c';
4const skip: number = 20;
5
6const errorsWithSkip: GetEmailTemplateRenderErrors200Response = await getEmailTemplateRenderErrors(tenantId, id, skip);
7const errorsFirstPage: GetEmailTemplateRenderErrors200Response = await getEmailTemplateRenderErrors(tenantId, id);
8

getEmailTemplates Internal Link

Parametri

ImeTipObveznoOpis
tenantIdstringDa
skipnumberNe

Odgovor

Vrača: GetEmailTemplates200Response

Primer

Primer getEmailTemplates
Copy Copy
1
2async function run(): Promise<void> {
3 const tenantId: string = "acme-marketing-tenant-001";
4 const templatesDefault: GetEmailTemplates200Response = await getEmailTemplates(tenantId);
5 const templatesPaged: GetEmailTemplates200Response = await getEmailTemplates(tenantId, 25);
6 console.log(templatesDefault, templatesPaged);
7}
8run();
9

renderEmailTemplate Internal Link


Parametri

ImeTipObveznoOpis
tenantIdstringDa
renderEmailTemplateBodyRenderEmailTemplateBodyDa
localestringNe

Odgovor

Vrne: RenderEmailTemplate200Response

Primer

Primer renderEmailTemplate
Copy Copy
1
2const tenantId: string = '7f7e2b90-3a2b-4d9b-9df1-5f0b6b2e8a1c';
3const renderEmailTemplateBody: RenderEmailTemplateBody = {
4 templateId: 'welcome_email',
5 recipient: { email: 'jordan.smith@acme.co', name: 'Jordan Smith' },
6 variables: { siteName: 'Acme Forum', verificationUrl: 'https://acme.forum/verify?code=abc123' }
7};
8const locale: string = 'en-US';
9const result: RenderEmailTemplate200Response = await renderEmailTemplate(tenantId, renderEmailTemplateBody, locale);
10

updateEmailTemplate Internal Link


Parametri

ImeTipObveznoOpis
tenantIdstringDa
idstringDa
updateEmailTemplateBodyUpdateEmailTemplateBodyDa

Odgovor

Vrne: FlagCommentPublic200Response

Primer

Primer updateEmailTemplate
Copy Copy
1
2const tenantId: string = 'acme-corp-123';
3const id: string = 'template-789';
4const locale: string | undefined = 'en-US';
5const updateEmailTemplateBody: UpdateEmailTemplateBody = {
6 subject: 'Welcome to Acme — Get started',
7 bodyHtml: '<p>Hi \{{firstName}}, welcome to Acme. Start by visiting your dashboard.</p>',
8 fromName: 'Acme Support',
9 fromEmail: 'support@acme.com',
10 enabled: true,
11 ...(locale ? { locale } : {})
12};
13const result: FlagCommentPublic200Response = await updateEmailTemplate(tenantId, id, updateEmailTemplateBody);
14

getEventLog Internal Link

req tenantId urlId userIdWS

Parametri

ImeTipObveznoOpis
tenantIdstringDa
urlIdstringDa
userIdWSstringDa
startTimenumberDa
endTimenumberNe

Odziv

Vrača: GetEventLog200Response

Primer

Primer getEventLog
Copy Copy
1
2const tenantId: string = 'tenant_9f3a2b';
3const urlId: string = 'news/2026/06/fastcomments-release';
4const userIdWS: string = 'ws_user_48291';
5const startTime: number = Date.now() - 86_400_000;
6const endTime: number = Date.now();
7const result: GetEventLog200Response = await getEventLog(tenantId, urlId, userIdWS, startTime, endTime);
8

getGlobalEventLog Internal Link

req tenantId urlId userIdWS

Parametri

ImeTipObveznoOpis
tenantIdstringDa
urlIdstringDa
userIdWSstringDa
startTimenumberDa
endTimenumberNe

Odgovor

Vrne: GetEventLog200Response

Primer

Primer getGlobalEventLog
Copy Copy
1
2const tenantId: string = "tenant_639b7f12";
3const urlId: string = "https://www.news-site.com/articles/2026/06/15/important-update-987";
4const userIdWS: string = "user_ws_42b7";
5const startTime: number = new Date("2026-06-14T00:00:00Z").getTime();
6const endTime: number = Date.now();
7
8const eventLog: GetEventLog200Response = await getGlobalEventLog(tenantId, urlId, userIdWS, startTime, endTime);
9

createFeedPost Internal Link


Parametri

ImeTipObveznoOpis
tenantIdstringDa
createFeedPostParamsCreateFeedPostParamsDa
broadcastIdstringNe
isLivebooleanNe
doSpamCheckbooleanNe
skipDupCheckbooleanNe

Odgovor

Vrne: CreateFeedPost200Response

Primer

Primer createFeedPost
Copy Copy
1
2const tenantId: string = 'tenant_4f2b1c';
3const createFeedPostParams: CreateFeedPostParams = {
4 content: 'Launching our summer collection today — check it out!',
5 authorId: 'user_879',
6 media: [
7 {
8 type: 'image',
9 assets: [
10 { url: 'https://cdn.myshop.com/uploads/summer-look.jpg', width: 1200, height: 800 } as FeedPostMediaItemAsset
11 ]
12 } as FeedPostMediaItem
13 ],
14 links: [
15 { url: 'https://myshop.com/new-arrival', title: 'Summer Collection' } as FeedPostLink
16 ],
17 allowComments: true
18};
19const broadcastId: string = 'broadcast-2026-06-15-001';
20const isLive: boolean = false;
21const doSpamCheck: boolean = true;
22const skipDupCheck: boolean = false;
23const response: CreateFeedPost200Response = await createFeedPost(tenantId, createFeedPostParams, broadcastId, isLive, doSpamCheck, skipDupCheck);
24

createFeedPostPublic Internal Link

Parametri

NameTypeRequiredDescription
tenantIdstringDa
createFeedPostParamsCreateFeedPostParamsDa
broadcastIdstringNe
ssostringNe

Odgovor

Vrne: CreateFeedPostPublic200Response

Primer

Primer createFeedPostPublic
Copy Copy
1
2(async () => {
3 const tenantId: string = "tenant_9f8b7c";
4 const media: FeedPostMediaItem[] = [{ type: "image", assets: [{ url: "https://cdn.example.com/roadmap.jpg", mimeType: "image/jpeg" }] }];
5 const links: FeedPostLink[] = [{ url: "https://company.example.com/roadmap", title: "Full roadmap" }];
6 const createFeedPostParams: CreateFeedPostParams = {
7 title: "Weekly Product Roadmap Update",
8 body: "This week we shipped enhancements to search relevance and fixed top customer bugs.",
9 authorId: "user_8321",
10 media,
11 links,
12 visibility: "public"
13 };
14 const broadcastId: string = "broadcast_2026_06_15";
15 const sso: string = "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.sso_payload";
16 const response: CreateFeedPostPublic200Response = await createFeedPostPublic(tenantId, createFeedPostParams, broadcastId, sso);
17 console.log(response);
18})();
19

deleteFeedPostPublic Internal Link

Parametri

ImeTipObveznoOpis
tenantIdstringDa
postIdstringDa
broadcastIdstringNe
ssostringNe

Odgovor

Vrne: DeleteFeedPostPublic200Response

Primer

Primer deleteFeedPostPublic
Copy Copy
1
2const tenantId: string = 'acme-tenant-42';
3const postId: string = 'post_8f3d2a7c';
4const broadcastId: string = 'broadcast_2026-06-15_01';
5const sso: string = 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.ssoPayload.signature';
6const response: DeleteFeedPostPublic200Response = await deleteFeedPostPublic(tenantId, postId, broadcastId, sso);
7

getFeedPosts Internal Link

req tenantId afterId

Parametri

ImeTipObveznoOpis
tenantIdstringDa
afterIdstringNe
limitnumberNe
tagsArrayNe

Odgovor

Vrne: GetFeedPosts200Response

Primer

Primer getFeedPosts
Copy Copy
1
2const tenantId: string = "tenant_74321";
3const afterId: string = "post_20250610_9b2f3";
4const limit: number = 25;
5const tags: Array<string> = ["product-updates", "announcements"];
6
7const response: GetFeedPosts200Response = await getFeedPosts(tenantId, afterId, limit, tags);
8

getFeedPostsPublic Internal Link

req tenantId afterId

Parametri

ImeTipObveznoOpis
tenantIdstringDa
afterIdstringNe
limitnumberNe
tagsArrayNe
ssostringNe
isCrawlerbooleanNe
includeUserInfobooleanNe

Odziv

Vrača: GetFeedPostsPublic200Response

Primer

getFeedPostsPublic Primer
Copy Copy
1
2(async () => {
3 const tenantId: string = 'tenant_acme_01';
4 const afterId: string = 'post_20250610_842';
5 const limit: number = 25;
6 const tags: string[] = ['news', 'technology'];
7 const sso: string = 'sso_jwt_eyJhbGciOiJIUzI1Ni';
8 const isCrawler: boolean = false;
9 const includeUserInfo: boolean = true;
10
11 const response: GetFeedPostsPublic200Response = await getFeedPostsPublic(
12 tenantId,
13 afterId,
14 limit,
15 tags,
16 sso,
17 isCrawler,
18 includeUserInfo
19 );
20
21 console.log(response);
22})();
23

getFeedPostsStats Internal Link

Parametri

ImeTipObveznoOpis
tenantIdstringDa
postIdsArrayDa
ssostringNe

Odgovor

Vrača: GetFeedPostsStats200Response

Primer

Primer getFeedPostsStats
Copy Copy
1
2const tenantId: string = "tenant_98765";
3const postIds: string[] = ["post_a1b2c3", "post_d4e5f6"];
4const ssoToken: string = "sso_jwt_eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9";
5
6const statsWithoutSSO: GetFeedPostsStats200Response = await getFeedPostsStats(tenantId, postIds);
7const statsWithSSO: GetFeedPostsStats200Response = await getFeedPostsStats(tenantId, postIds, ssoToken);
8

getUserReactsPublic Internal Link

Parametri

ImeTipObveznoOpis
tenantIdstringDa
postIdsArrayNe
ssostringNe

Odgovor

Vrne: GetUserReactsPublic200Response

Primer

Primer getUserReactsPublic
Copy Copy
1
2const tenantId: string = 'fastcomments-tenant-4f2b9c';
3const postIds: Array<string> = ['post_7a1f9e', 'post_2b3c88'];
4const sso: string = 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiI1Njc4OSIsImlhdCI6MTYwOTQ0MDAwMH0.signature';
5
6const response: GetUserReactsPublic200Response = await getUserReactsPublic(tenantId, postIds, sso);
7

reactFeedPostPublic Internal Link


Parametri

ImeTipZahtevanoOpis
tenantIdstringDa
postIdstringDa
reactBodyParamsReactBodyParamsDa
isUndobooleanNe
broadcastIdstringNe
ssostringNe

Odgovor

Vrne: ReactFeedPostPublic200Response

Primer

Primer reactFeedPostPublic
Copy Copy
1
2const tenantId: string = 'acme-tenant-001';
3const postId: string = 'feedpost_78901';
4const reactBodyParams: ReactBodyParams = { reaction: 'like', emoji: '👍' };
5const isUndo: boolean = false;
6const broadcastId: string = 'broadcast_2026_06_15_01';
7const sso: string = 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.signature';
8
9const response: ReactFeedPostPublic200Response = await reactFeedPostPublic(
10 tenantId,
11 postId,
12 reactBodyParams,
13 isUndo,
14 broadcastId,
15 sso
16);
17

updateFeedPost Internal Link

Parametri

ImeTipObveznoOpis
tenantIdstringDa
idstringDa
feedPostFeedPostDa

Odgovor

Vrne: FlagCommentPublic200Response

Primer

Primer updateFeedPost
Copy Copy
1
2const tenantId: string = "tenant_72f3b4c9";
3const id: string = "post_ba4f6e18-2d3c-4b7a-91f2-8c0e3a6b5d4f";
4
5const feedPost: FeedPost = {
6 title: "June feature rollout",
7 body: "Announcing performance improvements and moderation updates available to all sites.",
8 authorName: "Platform Team",
9 mediaItems: [
10 {
11 type: "image",
12 caption: "Release banner",
13 asset: { url: "https://cdn.fastcomments.com/assets/june-banner.jpg", mimeType: "image/jpeg", width: 1200, height: 600 }
14 }
15 ],
16 links: [{ title: "Release notes", url: "https://docs.fastcomments.com/releases/june-2026" }]
17} as FeedPost;
18
19const result: FlagCommentPublic200Response = await updateFeedPost(tenantId, id, feedPost);
20

updateFeedPostPublic Internal Link

Parametri

ImeTipObveznoOpis
tenantIdstringDa
postIdstringDa
updateFeedPostParamsUpdateFeedPostParamsDa
broadcastIdstringNe
ssostringNe

Odgovor

Vrne: CreateFeedPostPublic200Response

Primer

Primer updateFeedPostPublic
Copy Copy
1
2const tenantId: string = 'tenant_acme_01';
3const postId: string = 'post_20260615_001';
4const updateFeedPostParams: UpdateFeedPostParams = {
5 title: 'Weekly Update: Product Launch',
6 content: 'We shipped the 2.0 release today — highlights and links below.',
7 media: [{ url: 'https://cdn.acme.com/releases/launch.jpg', type: 'image' }],
8 tags: ['release', 'product'],
9 isPublic: true
10};
11const broadcastId: string = 'broadcast_live_42';
12const sso: string = 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9';
13const result: CreateFeedPostPublic200Response = await updateFeedPostPublic(tenantId, postId, updateFeedPostParams, broadcastId, sso);
14

flagCommentPublic Internal Link

Parametri

ImeTipObveznoOpis
tenantIdstringDa
commentIdstringDa
isFlaggedbooleanDa
ssostringNe

Odgovor

Vrne: FlagCommentPublic200Response

Primer

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

getGifLarge Internal Link

Parametri

ImeVrstaObveznoOpis
tenantIdstringDa
largeInternalURLSanitizedstringDa

Odgovor

Vrne: GetGifLarge200Response

Primer

Primer getGifLarge
Copy Copy
1
2const tenantId: string = "tenant_9f8b7c";
3const largeInternalURLSanitized: string = "https://cdn.fastcomments.com/gifs/07d3f6_large.gif";
4const preferWebP: boolean | undefined = true; // neobvezna nastavitev
5const urlToUse: string = preferWebP ? largeInternalURLSanitized.replace(".gif", ".webp") : largeInternalURLSanitized;
6const response: GetGifLarge200Response = await getGifLarge(tenantId, urlToUse);
7

getGifsSearch Internal Link

Parametri

ImeTipObveznoOpis
tenantIdstringDa
searchstringDa
localestringNe
ratingstringNe
pagenumberNe

Odgovor

Vrne: GetGifsSearch200Response

Primer

Primer getGifsSearch
Copy Copy
1
2const tenantId: string = "tenant_acme_9876";
3const search: string = "cat playing piano";
4const locale: string = "en-US";
5const rating: string = "pg";
6const page: number = 1;
7const result: GetGifsSearch200Response = await getGifsSearch(tenantId, search, locale, rating, page);
8

getGifsTrending Internal Link


Parametri

ImeTipObveznoOpis
tenantIdstringDa
localestringNe
ratingstringNe
pagenumberNe

Odgovor

Vrne: GetGifsTrending200Response

Primer

getGifsTrending Primer
Copy Copy
1
2async function main(): Promise<void> {
3 const tenantId: string = 'tenant_8b3f2c';
4 const locale: string = 'en-US';
5 const rating: string = 'pg';
6 const page: number = 1;
7 const result: GetGifsTrending200Response = await getGifsTrending(tenantId, locale, rating, page);
8 console.log(result);
9}
10main();
11

addHashTag Internal Link


Parametri

ImeTipZahtevanoOpis
tenantIdstringNe
createHashTagBodyCreateHashTagBodyNe

Odgovor

Vrača: AddHashTag200Response

Primer

Primer addHashTag
Copy Copy
1
2const tenantId: string | undefined = "tenant_3c9f7b";
3const createHashTagBody: CreateHashTagBody = {
4 name: "support",
5 title: "Support",
6 description: "Questions about product usage, bugs, and account issues",
7 color: "#0066CC",
8 isActive: true,
9 aliases: ["help", "customer-service"]
10};
11const result: AddHashTag200Response = await addHashTag(tenantId, createHashTagBody);
12

addHashTagsBulk Internal Link

Parametri

ImeTipObveznoOpis
tenantIdstringNo
bulkCreateHashTagsBodyBulkCreateHashTagsBodyNo

Odgovor

Vrača: AddHashTagsBulk200Response

Primer

Primer addHashTagsBulk
Copy Copy
1
2const tenantId: string = "tenant_acme_corp_987";
3const bulkCreateHashTagsBody: BulkCreateHashTagsBody = {
4 tags: [
5 { name: "product-update", description: "Announcements about new product releases", visible: true },
6 { name: "customer-support", description: "Customer support related discussions", visible: false }
7 ],
8 createdBy: "moderator_jane"
9};
10const resultWithTenant: AddHashTagsBulk200Response = await addHashTagsBulk(tenantId, bulkCreateHashTagsBody);
11const resultWithoutTenant: AddHashTagsBulk200Response = await addHashTagsBulk(undefined, bulkCreateHashTagsBody);
12

deleteHashTag Internal Link


Parametri

ImeTipZahtevanoOpis
tagstringDa
tenantIdstringNe
deleteHashTagRequestDeleteHashTagRequestNe

Odgovor

Vrne: FlagCommentPublic200Response

Primer

deleteHashTag Primer
Copy Copy
1
2const tag: string = "breaking-news";
3const tenantId: string = "tenant_72a1";
4const deleteHashTagRequest: DeleteHashTagRequest = {
5 reason: "consolidate-duplicates",
6 requestedBy: "moderator@dailypress.com",
7 forceDelete: true
8};
9const result: FlagCommentPublic200Response = await deleteHashTag(tag, tenantId, deleteHashTagRequest);
10

getHashTags Internal Link

Parametri

ImeTipObveznoOpis
tenantIdstringDa
pagenumberNe

Odgovor

Vrne: GetHashTags200Response

Primer

getHashTags Primer
Copy Copy
1
2const tenantId: string = 'tenant_7f4b2c3a';
3const tagsFirstPage: GetHashTags200Response = await getHashTags(tenantId);
4const tagsSecondPage: GetHashTags200Response = await getHashTags(tenantId, 2);
5console.log(tagsFirstPage, tagsSecondPage);
6

patchHashTag Internal Link

Parametri

ImeTipObveznoOpis
tagstringDa
tenantIdstringNe
updateHashTagBodyUpdateHashTagBodyNe

Odgovor

Vrača: PatchHashTag200Response

Primer

Primer patchHashTag
Copy Copy
1
2const tag: string = "feature-request";
3const tenantId: string = "tenant_8f7a3b2c";
4const updateHashTagBody: UpdateHashTagBody = {
5 displayName: "Feature Request",
6 description: "Use this tag for requests to add new features to the product",
7 enabled: true
8};
9const result: PatchHashTag200Response = await patchHashTag(tag, tenantId, updateHashTagBody);
10

createModerator Internal Link

Parametri

NameTypeRequiredDescription
tenantIdstringDa
createModeratorBodyCreateModeratorBodyDa

Odgovor

Vrne: CreateModerator200Response

Primer

Primer createModerator
Copy Copy
1
2const tenantId: string = 'tenant_9f3b21';
3const createModeratorBody: CreateModeratorBody = {
4 moderator: {
5 name: 'Alex Rivera',
6 email: 'alex.rivera@fastcomments.io',
7 role: 'global_moderator',
8 enabled: true,
9 },
10 // prikazani neobvezni parametri:
11 notifyUser: true,
12 permissions: ['delete_comment', 'edit_comment', 'ban_user'],
13 customConfig: { dashboardTheme: 'dark' } as unknown as CustomConfigParameters
14};
15const result: CreateModerator200Response = await createModerator(tenantId, createModeratorBody);
16

deleteModerator Internal Link


Parametri

ImeTipObveznoOpis
tenantIdstringDa
idstringDa
sendEmailstringNe

Odgovor

Vrne: FlagCommentPublic200Response

Primer

Primer deleteModerator
Copy Copy
1
2const tenantId: string = 'tenant_4f3b2c9a';
3const id: string = 'mod_9c2d1f7b';
4const sendEmail: string = 'true';
5const response: FlagCommentPublic200Response = await deleteModerator(tenantId, id, sendEmail);
6console.log(response);
7

getModerator Internal Link

Parametri

ImeTipObveznoOpis
tenantIdstringDa
idstringDa

Odgovor

Vrne: GetModerator200Response

Primer

Primer getModerator
Copy Copy
1
2const tenantId: string = 'acme-media-58';
3const id: string = 'mod-82f3b9c1';
4const moderatorResponse: GetModerator200Response = await getModerator(tenantId, id);
5

getModerators Internal Link

Parametri

ImeTipObveznoOpis
tenantIdstringDa
skipnumberNe

Odziv

Vrne: GetModerators200Response

Primer

Primer getModerators
Copy Copy
1
2const tenantId: string = 'tenant_0a1b2c3d';
3const moderators: GetModerators200Response = await getModerators(tenantId);
4const skip: number = 20;
5const moderatorsPage2: GetModerators200Response = await getModerators(tenantId, skip);
6

sendInvite Internal Link

Parametri

ImeTipObveznoOpis
tenantIdstringDa
idstringDa
fromNamestringDa

Odgovor

Vrača: FlagCommentPublic200Response

Primer

Primer sendInvite
Copy Copy
1
2(async () => {
3 const tenantId: string = "tenant_acme_42";
4 const id: string = "cmt_8f3b21";
5 const fromName: string = "Ava Thompson";
6 const inviteResult: FlagCommentPublic200Response = await sendInvite(tenantId, id, fromName);
7 console.log(inviteResult);
8})();
9

updateModerator Internal Link

Parametri

ImeTipObveznoOpis
tenantIdstringDa
idstringDa
updateModeratorBodyUpdateModeratorBodyDa

Odgovor

Vrne: FlagCommentPublic200Response

Primer

Primer updateModerator
Copy Copy
1
2const tenantId: string = 'acme-tenant-81';
3const id: string = 'mod_7f3a2b';
4const updateModeratorBody: UpdateModeratorBody = {
5 email: 'j.reyes@acme-corp.com',
6 displayName: 'Jordan Reyes',
7 roles: ['moderator', 'content_reviewer'],
8 active: true,
9 notes: 'Promoted to senior moderator; monitor flagged content weekly'
10};
11const result: FlagCommentPublic200Response = await updateModerator(tenantId, id, updateModeratorBody);
12

deleteNotificationCount Internal Link

Parametri

ImeTipObveznoOpis
tenantIdstringDa
idstringDa

Odgovor

Vrača: FlagCommentPublic200Response

Primer

Primer deleteNotificationCount
Copy Copy
1
2const tenantId: string = 'tenant_5f3d2e1b';
3const id: string = 'notification_9a4b1c2';
4const result: FlagCommentPublic200Response = await deleteNotificationCount(tenantId, id);
5

getCachedNotificationCount Internal Link


Parametri

ImeTipObveznoOpis
tenantIdstringDa
idstringDa

Odgovor

Vrne: GetCachedNotificationCount200Response

Primer

getCachedNotificationCount Primer
Copy Copy
1
2const tenantId: string = 'fastcomments-tenant-23';
3const id: string = 'user_987654';
4const cachedCount: GetCachedNotificationCount200Response = await getCachedNotificationCount(tenantId, id);
5
6const maybeId: string | undefined = Math.random() > 0.5 ? 'user_123456' : undefined;
7if (maybeId) {
8 const optionalCachedCount: GetCachedNotificationCount200Response = await getCachedNotificationCount(tenantId, maybeId);
9}
10

getNotificationCount Internal Link

Parametri

ImeTipObveznoOpis
tenantIdstringDa
userIdstringNe
urlIdstringNe
fromCommentIdstringNe
viewedbooleanNe
typestringNe

Odgovor

Vrne: GetNotificationCount200Response

Primer

Primer getNotificationCount
Copy Copy
1
2const tenantId: string = 'tenant_82a3b9f';
3const userId: string = 'user_43721';
4const urlId: string = 'https://news.example.com/articles/2026/06/15/coverage-123';
5const fromCommentId: string = 'comment_98765';
6const viewed: boolean = false;
7const notificationType: string = 'mention';
8
9const result: GetNotificationCount200Response = await getNotificationCount(tenantId, userId, urlId, fromCommentId, viewed, notificationType);
10

getNotifications Internal Link

Parametri

NameTypeRequiredDescription
tenantIdstringDa
userIdstringNe
urlIdstringNe
fromCommentIdstringNe
viewedbooleanNe
typestringNe
skipnumberNe

Odgovor

Vrne: GetNotifications200Response

Primer

Primer getNotifications
Copy Copy
1
2const tenantId: string = 'tenant_9f8b7c6a';
3const userId: string = 'user_5a4b3c2d';
4const urlId: string = 'post_84f2a1b9';
5const fromCommentId: string = 'cmt_0a1b2c3d';
6const viewed: boolean = false;
7const type: string = 'reply';
8const skip: number = 0;
9
10const notifications: GetNotifications200Response = await getNotifications(
11 tenantId,
12 userId,
13 urlId,
14 fromCommentId,
15 viewed,
16 type,
17 skip
18);
19

updateNotification Internal Link

Parametri

ImeTipObveznoOpis
tenantIdstringDa
idstringDa
updateNotificationBodyUpdateNotificationBodyDa
userIdstringNe

Odgovor

Vrne: FlagCommentPublic200Response

Primer

Primer updateNotification
Copy Copy
1
2const tenantId: string = 'tenant_9f3b2c';
3const id: string = 'notification_4a1d2e';
4const updateNotificationBody: UpdateNotificationBody = {
5 enabled: true,
6 channels: ['email', 'push'],
7 frequency: 'immediate',
8 templateId: 'tmpl_77aa'
9} as UpdateNotificationBody;
10const userId: string = 'user_2468';
11const result: FlagCommentPublic200Response = await updateNotification(tenantId, id, updateNotificationBody, userId);
12

createV1PageReact Internal Link

Parametri

ImeTipObveznoOpis
tenantIdstringDa
urlIdstringDa
titlestringNe

Odgovor

Vrne: CreateV1PageReact200Response

Primer

createV1PageReact Primer
Copy Copy
1
2(async () => {
3 const tenantId: string = 'b12f3c4d-5678-90ab-cdef-1234567890ab';
4 const urlId: string = 'https://www.news-site.com/world/2026/election-results';
5 const title: string = 'Election results: key takeaways and analysis';
6 const responseWithTitle: CreateV1PageReact200Response = await createV1PageReact(tenantId, urlId, title);
7 const responseWithoutTitle: CreateV1PageReact200Response = await createV1PageReact(tenantId, urlId);
8 console.log(responseWithTitle, responseWithoutTitle);
9})();
10

createV2PageReact Internal Link


Parametri

ImeTipObveznoOpis
tenantIdstringDa
urlIdstringDa
idstringDa
titlestringNe

Odgovor

Vrne: CreateV2PageReact200Response

Primer

createV2PageReact Primer
Copy Copy
1
2const tenantId: string = "fastcomments-tenant-72";
3const urlId: string = "articles/2026/06/15/product-update";
4const id: string = "page-8f3b2a";
5const title: string = "Product Update: June 15, 2026";
6
7(async function run(): Promise<void> {
8 const response: CreateV2PageReact200Response = await createV2PageReact(tenantId, urlId, id, title);
9 console.log(response);
10})();
11

deleteV1PageReact Internal Link


Parametri

ImeTipObveznoOpis
tenantIdstringDa
urlIdstringDa

Odgovor

Vrača: DeleteV1PageReact200Response

Primer

Primer deleteV1PageReact
Copy Copy
1
2const tenantId: string = process.env.TENANT_ID ?? 'd3b07384-9f6a-4c2b-8c3e-0a1b2c3d4e5f';
3const urlId: string = 'https://acme.com/articles/2026/06/fastcomments-integration';
4const result: DeleteV1PageReact200Response = await deleteV1PageReact(tenantId, urlId);
5

deleteV2PageReact Internal Link

Parametri

NameTypeRequiredDescription
tenantIdstringDa
urlIdstringDa
idstringDa

Odgovor

Vrne: DeleteV2PageReact200Response

Primer

deleteV2PageReact Primer
Copy Copy
1
2const tenantId: string = "tenant_79021";
3const urlId: string = "blog/my-first-post";
4const id: string = "reaction_9f8b7c";
5let includeHistory: boolean | undefined = undefined; // neobvezna zastavica, uporabljena pri nekaterih klicih
6
7const result: DeleteV2PageReact200Response = await deleteV2PageReact(tenantId, urlId, id);
8console.log(result);
9

getV1PageLikes Internal Link

Parametri

ImeTipZahtevanoOpis
tenantIdstringDa
urlIdstringDa

Odgovor

Vrne: GetV1PageLikes200Response

Primer

Primer getV1PageLikes
Copy Copy
1
2const tenantId: string = 'fastcomments-742';
3const urlId: string = 'sports/2026/06/15/world-cup-preview';
4const pageLikes: GetV1PageLikes200Response = await getV1PageLikes(tenantId, urlId);
5

getV2PageReacts Internal Link


Parametri

ImeTipObveznoOpis
tenantIdstringDa
urlIdstringDa

Odgovor

Vrne: GetV2PageReacts200Response

Primer

Primer getV2PageReacts
Copy Copy
1
2const tenantId: string = "tenant_82f4b3a9";
3const urlId: string = "https://news.site.com/articles/2026/06/15/product-launch";
4const response: GetV2PageReacts200Response = await getV2PageReacts(tenantId, urlId);
5console.log(response);
6

getV2PageReactUsers Internal Link

Parametri

ImeTipObveznoOpis
tenantIdstringDa
urlIdstringDa
idstringDa

Odgovor

Vrne: GetV2PageReactUsers200Response

Primer

Primer getV2PageReactUsers
Copy Copy
1
2const tenantId: string = "7421";
3const urlId: string = "sports/london-marathon";
4const id: string = "reactUser-3fa85f64-5717-4562-b3fc-2c963f66afa6";
5const includeDeleted: boolean | undefined = undefined; // neobvezna zastavica (demonstracija)
6
7const result: GetV2PageReactUsers200Response = await getV2PageReactUsers(tenantId, urlId, id);
8

addPage Internal Link


Parametri

ImeTipObveznoOpis
tenantIdstringDa
createAPIPageDataCreateAPIPageDataDa

Odgovor

Vrne: AddPageAPIResponse


deletePage Internal Link

Parametri

ImeTipZahtevanoOpis
tenantIdstringDa
idstringDa

Odgovor

Vrne: DeletePageAPIResponse

getOfflineUsers Internal Link


Prejšnji komentatorji na strani, ki TRENUTNO NISO na spletu. Razvrščeno po displayName. Uporabite to po izčrpanju /users/online za prikaz razdelka "Člani". Kursorna paginacija na commenterName: strežnik prehaja po delnem {tenantId, urlId, commenterName} indeksu od afterName naprej z $gt, brez stroška $skip.

Parametri

ImeTipObveznoOpis
tenantIdstringDa
urlIdstringDa
afterNamestringNe
afterUserIdstringNe

Odgovor

Vrača: GetOfflineUsers200Response

Primer

Primer getOfflineUsers
Copy Copy
1
2const tenantId: string = 'tenant_prod_001';
3const urlId: string = 'article-2026-06-15-how-ai-impacts';
4const afterName: string = 'michael.smith';
5const afterUserId: string = 'user_72b9';
6
7const response: GetOfflineUsers200Response = await getOfflineUsers(tenantId, urlId, afterName, afterUserId);
8

getOnlineUsers Internal Link


Trenutno prisotni gledalci strani: osebe, katerih WebSocket seja je trenutno naročena na stran. Vrne anonCount + totalCount (naročniki v sobi, vključno z anonimnimi gledalci, ki jih ne navajamo).

Parametri

ImeTipObveznoOpis
tenantIdstringDa
urlIdstringDa
afterNamestringNe
afterUserIdstringNe

Odgovor

Vrne: GetOnlineUsers200Response

Primer

Primer uporabe getOnlineUsers
Copy Copy
1
2const tenantId: string = 'tenant_14f9c3';
3const urlId: string = 'article_20250615';
4const afterName: string = 'marie.curie';
5const afterUserId: string = 'u_92b7';
6const result: GetOnlineUsers200Response = await getOnlineUsers(tenantId, urlId, afterName, afterUserId);
7

getPageByURLId Internal Link

Parametri

ImeTipObveznoOpis
tenantIdstringDa
urlIdstringDa

Odgovor

Vrača: GetPageByURLIdAPIResponse

getPages Internal Link


Parametri

ImeTipObveznoOpis
tenantIdstringDa

Odziv

Vrne: GetPagesAPIResponse


getPagesPublic Internal Link

Seznam strani za najemnika. Uporablja se v namiznem odjemalcu FChat za izpolnitev seznama njegovih sob. Zahteva, da je enableFChat nastavljen na true v razrešeni prilagojeni konfiguraciji za vsako stran. Strani, ki zahtevajo SSO, so filtrirane glede na dostop skupin uporabnika, ki poizveduje.

Parametri

ImeTipObveznoOpis
tenantIdstringDa
cursorstringNe
limitnumberNe
qstringNe
sortByPagesSortByNe
hasCommentsbooleanNe

Odgovor

Vrača: GetPagesPublic200Response

Primer

Primer getPagesPublic
Copy Copy
1
2const tenantId: string = 'tenant_8f3b2c';
3const cursor: string = 'eyJwYWdlIjoiMTIwIn0';
4const limit: number = 25;
5const q: string = 'homepage hero';
6const hasComments: boolean = true;
7
8const response: GetPagesPublic200Response = await getPagesPublic(
9 tenantId,
10 cursor,
11 limit,
12 q,
13 undefined,
14 hasComments
15);
16

getUsersInfo Internal Link

Skupinske informacije o uporabnikih za tenant. Ob podanih userIds vrne prikazne informacije iz User / SSOUser. Uporablja ga pripomoček za komentarje za obogatitev uporabnikov, ki so se pravkar pojavili prek dogodka prisotnosti. Brez konteksta strani: zasebnost se dosledno uveljavlja (zasebni profili so zamaskirani).

Parametri

ImeTipObveznoOpis
tenantIdstringDa
idsstringDa

Odgovor

Vrača: GetUsersInfo200Response

Primer

getUsersInfo Primer
Copy Copy
1
2const tenantId: string = 'acme-tenant-007';
3const userIdsList: string[] = ['user_12a', 'user_34b', 'user_56c'];
4const separator: string | undefined = undefined; // optional; if undefined default to comma
5const ids: string = userIdsList.join(separator ?? ',');
6const usersInfo: GetUsersInfo200Response = await getUsersInfo(tenantId, ids);
7

patchPage Internal Link


Parametri

ImeTipObveznoOpis
tenantIdstringDa
idstringDa
updateAPIPageDataUpdateAPIPageDataDa

Odgovor

Vrne: PatchPageAPIResponse


deletePendingWebhookEvent Internal Link

Parametri

ImeTipObveznoOpis
tenantIdstringDa
idstringDa

Odgovor

Vrne: FlagCommentPublic200Response

Primer

Primer deletePendingWebhookEvent
Copy Copy
1
2const tenantId: string = "tenant_5f8d7a34";
3const id: string = "webhook_evt_987654321";
4const requestNote: string | undefined = undefined;
5const response: FlagCommentPublic200Response = await deletePendingWebhookEvent(tenantId, id);
6

getPendingWebhookEventCount Internal Link

Parametri

ImeTipObveznoOpis
tenantIdstringDa
commentIdstringNe
externalIdstringNe
eventTypestringNe
typestringNe
domainstringNe
attemptCountGTnumberNe

Odgovor

Vrne: GetPendingWebhookEventCount200Response

Primer

Primer getPendingWebhookEventCount
Copy Copy
1
2const tenantId: string = 'tenant_9f8b3b';
3const commentId: string = 'cmt_1a2b3c';
4const eventType: string = 'comment.created';
5const domain: string = 'news-site.com';
6const attemptCountGT: number = 2;
7
8const result: GetPendingWebhookEventCount200Response = await getPendingWebhookEventCount(
9 tenantId,
10 commentId,
11 undefined, // externalId izpuščeno
12 eventType,
13 undefined, // type izpuščeno
14 domain,
15 attemptCountGT
16);
17

getPendingWebhookEvents Internal Link

Parametri

ImeTipObveznoOpis
tenantIdstringDa
commentIdstringNe
externalIdstringNe
eventTypestringNe
typestringNe
domainstringNe
attemptCountGTnumberNe
skipnumberNe

Odgovor

Vrne: GetPendingWebhookEvents200Response

Primer

Primer getPendingWebhookEvents
Copy Copy
1
2const tenantId: string = 'tenant_9f3b2a';
3const commentId: string = 'cmt_8a7d1';
4const eventType: string = 'comment.created';
5const domain: string = 'reviews.myshop.com';
6const attemptCountGT: number = 1;
7const skip: number = 0;
8
9const result: GetPendingWebhookEvents200Response = await getPendingWebhookEvents(
10 tenantId,
11 commentId,
12 undefined,
13 eventType,
14 undefined,
15 domain,
16 attemptCountGT,
17 skip
18);
19

createQuestionConfig Internal Link

Parametri

ImeTipObveznoOpis
tenantIdstringDa
createQuestionConfigBodyCreateQuestionConfigBodyDa

Odgovor

Vrača: CreateQuestionConfig200Response

Primer

Primer createQuestionConfig
Copy Copy
1
2const tenantId: string = "tenant_9f3b1c2a";
3
4const createQuestionConfigBody: CreateQuestionConfigBody = {
5 name: "Product feedback",
6 key: "product_quality",
7 description: "Short survey question shown after posting a comment",
8 required: true,
9 renderingType: "singleChoice",
10 customOptions: [
11 { label: "Excellent", value: "5" },
12 { label: "Good", value: "4" },
13 { label: "Fair", value: "3" }
14 ] as QuestionConfigCustomOptionsInner[],
15 notifyModerators: false // prikazan neobvezen parameter
16};
17
18const result: CreateQuestionConfig200Response = await createQuestionConfig(tenantId, createQuestionConfigBody);
19

deleteQuestionConfig Internal Link

Parametri

ImeTipObveznoOpis
tenantIdstringDa
idstringDa

Odgovor

Vrne: FlagCommentPublic200Response

Primer

deleteQuestionConfig Primer
Copy Copy
1
2const tenantId: string = 'acme-corp-47a9';
3const id: string = 'qcfg_20260615_001';
4const result: FlagCommentPublic200Response = await deleteQuestionConfig(tenantId, id);
5

getQuestionConfig Internal Link

Parameters

ImeTipObveznoOpis
tenantIdstringDa
idstringDa

Odgovor

Vrača: GetQuestionConfig200Response

Primer

Primer getQuestionConfig
Copy Copy
1
2const tenantId: string = "acme-corp-47";
3const questionId: string = "q-4f2b9a";
4const includeDrafts: boolean | undefined = undefined; // rezervirano mesto za neobvezni parameter
5const result: GetQuestionConfig200Response = await getQuestionConfig(tenantId, questionId);
6console.log(result);
7

getQuestionConfigs Internal Link

Parametri

ImeTipObveznoOpis
tenantIdstringDa
skipnumberNe

Odgovor

Vrne: GetQuestionConfigs200Response

Primer

getQuestionConfigs Primer
Copy Copy
1
2const tenantId: string = "tenant_4c9f2b";
3const responseWithoutSkip: GetQuestionConfigs200Response = await getQuestionConfigs(tenantId);
4const skip: number = 50;
5const responseWithSkip: GetQuestionConfigs200Response = await getQuestionConfigs(tenantId, skip);
6

updateQuestionConfig Internal Link

Parametri

NameTypeRequiredDescription
tenantIdstringDa
idstringDa
updateQuestionConfigBodyUpdateQuestionConfigBodyDa

Odgovor

Vrne: FlagCommentPublic200Response

Primer

Primer updateQuestionConfig
Copy Copy
1
2const tenantId: string = "tenant_9f3b8a2e-4c6d-4b4f-a1b2-9e8f7d6c5b3a";
3const id: string = "q_7c2e1b4a-5d6f-4a8b-9c3d-2e1f0b9a4c5d";
4const options: QuestionConfigCustomOptionsInner[] = [
5 { value: "1", label: "Very dissatisfied" },
6 { value: "2", label: "Dissatisfied" },
7 { value: "3", label: "Neutral" },
8 { value: "4", label: "Satisfied" },
9 { value: "5", label: "Very satisfied" }
10];
11const updateQuestionConfigBody: UpdateQuestionConfigBody = {
12 label: "How satisfied are you with the article?",
13 enabled: true,
14 required: false, // neobvezen parameter, prikazan
15 options
16};
17const result: FlagCommentPublic200Response = await updateQuestionConfig(tenantId, id, updateQuestionConfigBody);
18

createQuestionResult Internal Link

Parametri

ImeTipObveznoOpis
tenantIdstringDa
createQuestionResultBodyCreateQuestionResultBodyDa

Odgovor

Vrača: CreateQuestionResult200Response

Primer

Primer createQuestionResult
Copy Copy
1
2const tenantId: string = 'fc-tenant-512';
3const meta: MetaItem[] = [{ key: 'source', value: 'article' }];
4const body: CreateQuestionResultBody = {
5 questionId: 'q-94',
6 userId: 'user_332',
7 answers: [{ optionId: 'opt_a', score: 1 }],
8 meta, // neobvezni metapodatki
9} as CreateQuestionResultBody;
10const result: CreateQuestionResult200Response = await createQuestionResult(tenantId, body);
11

deleteQuestionResult Internal Link

Parametri

ImeTipObveznoOpis
tenantIdstringDa
idstringDa

Odgovor

Vrača: FlagCommentPublic200Response

Primer

Primer deleteQuestionResult
Copy Copy
1
2const tenantId: string = "acme-corp-tenant-01";
3const id: string = "qres_9f8b7c3a";
4const response: FlagCommentPublic200Response = await deleteQuestionResult(tenantId, id);
5const optionalResponse: FlagCommentPublic200Response | undefined = response;
6

getQuestionResult Internal Link

Parametri

ImeTipObveznoOpis
tenantIdstringDa
idstringDa

Odgovor

Vrača: GetQuestionResult200Response

Primer

Primer getQuestionResult
Copy Copy
1
2const tenantId: string = 'tenant_9f3b2a7c9';
3const questionId: string = 'q_8d4f1b2c3a';
4const options: { includeMeta?: boolean } = { includeMeta: true }; // prikaz neobveznega parametra
5const result: GetQuestionResult200Response = await getQuestionResult(tenantId, questionId);
6const apiStatus: APIStatus | undefined = (result as unknown as { apiStatus?: APIStatus }).apiStatus;
7const question: QuestionResult | undefined = (result as unknown as { question?: QuestionResult }).question;
8

getQuestionResults Internal Link

Parametri

ImeTipZahtevanoOpis
tenantIdstringDa
urlIdstringNe
userIdstringNe
startDatestringNe
questionIdstringNe
questionIdsstringNe
skipnumberNe

Odziv

Vrača: GetQuestionResults200Response

Primer

Primer getQuestionResults
Copy Copy
1
2const tenantId: string = 'fc-tenant-7a9c';
3const urlId: string = 'news/article-2026-06-15';
4const userId: string = 'user-8421';
5const startDate: string = '2026-05-01T00:00:00Z';
6const questionId: string = 'q-13';
7const questionIds: string = 'q-13,q-14';
8const skip: number = 20;
9const result: GetQuestionResults200Response = await getQuestionResults(tenantId, urlId, userId, startDate, questionId, questionIds, skip);
10

updateQuestionResult Internal Link

Parametri

ImeTipObveznoOpis
tenantIdstringDa
idstringDa
updateQuestionResultBodyUpdateQuestionResultBodyDa

Odgovor

Vrne: FlagCommentPublic200Response

Primer

Primer updateQuestionResult
Copy Copy
1
2const tenantId: string = "tenant_prod_84b2";
3const id: string = "question_9f3a";
4const updateQuestionResultBody: UpdateQuestionResultBody = {
5 outcome: "accepted",
6 confidence: 0.88,
7 moderatorId: "moderator_17",
8 notes: "Validated by automated review" // neobvezno polje vključeno
9};
10const result: FlagCommentPublic200Response = await updateQuestionResult(tenantId, id, updateQuestionResultBody);
11

aggregateQuestionResults Internal Link

Parametri

ImeTipObveznoOpis
tenantIdstringDa
questionIdstringNe
questionIdsArrayNe
urlIdstringNe
timeBucketAggregateTimeBucketNe
startDateDateNe
forceRecalculatebooleanNe

Odgovor

Vrne: AggregateQuestionResults200Response

Primer

aggregateQuestionResults Primer
Copy Copy
1
2const tenantId: string = 'tenant_6f2b3c';
3const questionIds: Array<string> = ['q-7a1b2c', 'q-8d3e4f'];
4const urlId: string = 'url_9f8e7d';
5const startDate: Date = new Date('2025-01-01T00:00:00Z');
6const result: AggregateQuestionResults200Response = await aggregateQuestionResults(tenantId, undefined, questionIds, urlId, undefined, startDate, true);
7

bulkAggregateQuestionResults Internal Link

Parametri

ImeTipObveznoOpis
tenantIdstringDa
bulkAggregateQuestionResultsRequestBulkAggregateQuestionResultsRequestDa
forceRecalculatebooleanNe

Odgovor

Vrne: BulkAggregateQuestionResults200Response

Primer

Primer bulkAggregateQuestionResults
Copy Copy
1
2const tenantId: string = "tenant_0012";
3const bulkAggregateQuestionResultsRequest: BulkAggregateQuestionResultsRequest = {
4 items: [
5 {
6 questionId: "quality_score",
7 startTime: "2026-06-01T00:00:00Z",
8 endTime: "2026-06-14T00:00:00Z",
9 timeBucket: "day",
10 dimensions: ["threadId"]
11 }
12 ],
13 includeTotals: true
14};
15const forceRecalculate: boolean = false;
16const result: BulkAggregateQuestionResults200Response = await bulkAggregateQuestionResults(tenantId, bulkAggregateQuestionResultsRequest, forceRecalculate);
17

combineCommentsWithQuestionResults Internal Link


Parametri

ImeTipZahtevanoOpis
tenantIdstringDa
questionIdstringNe
questionIdsArrayNe
urlIdstringNe
startDateDateNe
forceRecalculatebooleanNe
minValuenumberNe
maxValuenumberNe
limitnumberNe

Odgovor

Vrne: CombineCommentsWithQuestionResults200Response

Primer

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

addSSOUser Internal Link

Parametri

ImeTipObveznoOpis
tenantIdstringDa
createAPISSOUserDataCreateAPISSOUserDataDa

Odgovor

Vrne: AddSSOUserAPIResponse


deleteSSOUser Internal Link


Parametri

ImeTipObveznoOpis
tenantIdstringDa
idstringDa
deleteCommentsbooleanNe
commentDeleteModestringNe

Odgovor

Vrne: DeleteSSOUserAPIResponse


getSSOUserByEmail Internal Link

Parametri

ImeVrstaObveznoOpis
tenantIdstringDa
emailstringDa

Odgovor

Vrača: GetSSOUserByEmailAPIResponse

getSSOUserById Internal Link

Parametri

ImeTipObveznoOpis
tenantIdstringDa
idstringDa

Odgovor

Vrača: GetSSOUserByIdAPIResponse


getSSOUsers Internal Link


Parametri

ImeTipObveznoOpis
tenantIdstringDa
skipnumberNe

Odziv

Vrne: GetSSOUsers200Response


patchSSOUser Internal Link


Parametri

ImeTipObveznoOpis
tenantIdstringDa
idstringDa
updateAPISSOUserDataUpdateAPISSOUserDataDa
updateCommentsbooleanNe

Odgovor

Vrača: PatchSSOUserAPIResponse


putSSOUser Internal Link

Parametri

ImeTipObveznoOpis
tenantIdstringDa
idstringDa
updateAPISSOUserDataUpdateAPISSOUserDataDa
updateCommentsbooleanNe

Odgovor

Vrne: PutSSOUserAPIResponse

Primer

Primer putSSOUser
Copy Copy
1
2const tenantId: string = 'acme-enterprises-42';
3const id: string = 'usr-73a1b2';
4const updateAPISSOUserData: UpdateAPISSOUserData = {
5 email: 'marcus.ingram@acme.com',
6 givenName: 'Marcus',
7 familyName: 'Ingram',
8 roles: ['editor', 'project_owner'],
9 enabled: true
10};
11const result: PutSSOUserAPIResponse = await putSSOUser(tenantId, id, updateAPISSOUserData, true);
12

createSubscription Internal Link

Parametri

ImeTipObveznoOpis
tenantIdstringDa
createAPIUserSubscriptionDataCreateAPIUserSubscriptionDataDa

Odgovor

Vrne: CreateSubscriptionAPIResponse

Primer

Primer createSubscription
Copy Copy
1
2const tenantId: string = "acme-corp-tenant-123";
3const createAPIUserSubscriptionData: CreateAPIUserSubscriptionData = {
4 userId: "user_98765",
5 planId: "pro_monthly",
6 paymentMethod: { type: "card", cardId: "card_abc123" },
7 autoRenew: true,
8 trialDays: 14, // prikazan neobvezni parameter
9 metadata: { campaign: "spring_launch" } // prikazan neobvezni parameter
10};
11const result: CreateSubscriptionAPIResponse = await createSubscription(tenantId, createAPIUserSubscriptionData);
12

deleteSubscription Internal Link


Parametri

ImeTipZahtevanoOpis
tenantIdstringDa
idstringDa
userIdstringNe

Odgovor

Vrne: DeleteSubscriptionAPIResponse


getSubscriptions Internal Link

Parametri

NameTypeRequiredDescription
tenantIdstringDa
userIdstringNe

Odgovor

Vrne: GetSubscriptionsAPIResponse

Primer

Primer getSubscriptions
Copy Copy
1
2const tenantId: string = "contoso-9a1b2c";
3const userId: string = "u-482f6";
4const subscriptions: GetSubscriptionsAPIResponse = await getSubscriptions(tenantId);
5const userSubscriptions: GetSubscriptionsAPIResponse = await getSubscriptions(tenantId, userId);
6

updateSubscription Internal Link

Parametri

ImeTipObveznoOpis
tenantIdstringDa
idstringDa
updateAPIUserSubscriptionDataUpdateAPIUserSubscriptionDataDa
userIdstringNe

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

ImeTipObveznoOpis
tenantIdstringDa
yearNumbernumberNe
monthNumbernumberNe
dayNumbernumberNe
skipnumberNe

Odgovor

Vrne: GetTenantDailyUsages200Response

Primer

Primer getTenantDailyUsages
Copy Copy
1
2const tenantId: string = 'tenant_7a3c2e';
3const dailyUsages: GetTenantDailyUsages200Response = await getTenantDailyUsages(tenantId, 2026, 6, undefined, 0);
4

createTenantPackage Internal Link

Parametri

ImeTipObveznoOpis
tenantIdstringYes
createTenantPackageBodyCreateTenantPackageBodyYes

Odgovor

Vrača: CreateTenantPackage200Response

Primer

Primer createTenantPackage
Copy Copy
1
2const tenantId: string = "tenant_7890";
3const createTenantPackageBody: CreateTenantPackageBody = {
4 packageName: "Growth Plan",
5 maxSeats: 2500,
6 features: {
7 moderation: true,
8 analytics: true,
9 sso: { enabled: true, provider: "saml" }
10 },
11 billing: { interval: "monthly", priceCents: 19900 },
12 // prikazan neobvezen parameter: notes ni obvezen, vendar je naveden
13 notes: "Onboarding bundle with priority support"
14};
15const result: CreateTenantPackage200Response = await createTenantPackage(tenantId, createTenantPackageBody);
16

deleteTenantPackage Internal Link

Parametri

ImeTipObveznoOpis
tenantIdstringDa
idstringDa

Odgovor

Vrne: FlagCommentPublic200Response

Primer

Primer uporabe deleteTenantPackage
Copy Copy
1
2const tenantId: string = 'acme-corp-tenant-01';
3const packageId: string = 'pkg-2026-06-15-001';
4const dryRun: boolean | undefined = undefined; // primer neobvezne zastavice (funkcija je ne zahteva)
5const result: FlagCommentPublic200Response = await deleteTenantPackage(tenantId, packageId);
6

getTenantPackage Internal Link

Parametri

ImeTipObveznoOpis
tenantIdstringDa
idstringDa

Odgovor

Vrne: GetTenantPackage200Response

Primer

Primer getTenantPackage
Copy Copy
1
2const tenantId: string = 'tenant_4b8c2a9f';
3const packageId: string = 'pkg_7d3e1b5c';
4const includeMetadata: boolean | undefined = true;
5const packageResponse: GetTenantPackage200Response = await getTenantPackage(tenantId, packageId);
6

getTenantPackages Internal Link

Parametri

ImeTipZahtevanoOpis
tenantIdstringDa
skipnumberNe

Odgovor

Vrne: GetTenantPackages200Response

Primer

Primer getTenantPackages
Copy Copy
1
2const tenantId: string = 'tenant_8421';
3const packagesWithSkip: GetTenantPackages200Response = await getTenantPackages(tenantId, 25);
4const packagesWithoutSkip: GetTenantPackages200Response = await getTenantPackages(tenantId);
5

replaceTenantPackage Internal Link

Parametri

ImeTipObveznoOpis
tenantIdstringDa
idstringDa
replaceTenantPackageBodyReplaceTenantPackageBodyDa

Odgovor

Vrača: FlagCommentPublic200Response

Primer

Primer replaceTenantPackage
Copy Copy
1
2const tenantId: string = "fastcomments-tenant-114";
3const id: string = "pkg-enterprise-2026-06";
4const replaceTenantPackageBody: ReplaceTenantPackageBody = {
5 name: "EnterpriseModeration",
6 version: "2.4.7",
7 enabled: true,
8 apiStatus: { state: "active", lastUpdated: "2026-06-10T12:00:00Z" },
9 customConfigParameters: { maxCommentLength: 1200, allowImages: true }, // vključene neobvezne nastavitve
10 voteStyle: { style: "updown" }
11};
12const result: FlagCommentPublic200Response = await replaceTenantPackage(tenantId, id, replaceTenantPackageBody);
13

updateTenantPackage Internal Link

Parametri

ImeTipObveznoOpis
tenantIdstringDa
idstringDa
updateTenantPackageBodyUpdateTenantPackageBodyDa

Odgovor

Vrne: FlagCommentPublic200Response

Primer

Primer updateTenantPackage
Copy Copy
1
2const tenantId: string = 'tenant_9f3b2a';
3const id: string = 'pkg_pro_2026';
4const updateTenantPackageBody: UpdateTenantPackageBody = {
5 name: 'Pro Plan',
6 monthlyPriceUsd: 49,
7 isActive: true,
8 features: ['moderation', 'analytics', 'sso'],
9 trialDays: 14 // prikazan neobvezen parameter
10};
11const result: FlagCommentPublic200Response = await updateTenantPackage(tenantId, id, updateTenantPackageBody);
12

createTenantUser Internal Link

Parameters

NameTypeRequiredDescription
tenantIdstringDa
createTenantUserBodyCreateTenantUserBodyDa

Response

Vrne: CreateTenantUser200Response

Primer

Primer createTenantUser
Copy Copy
1
2const tenantId: string = "tenant_7f4a2b";
3const createTenantUserBody: CreateTenantUserBody = {
4 email: "jane.doe@example.com",
5 firstName: "Jane",
6 lastName: "Doe",
7 role: "commenter",
8 approved: true,
9 displayName: "Jane D." // neobvezno: navedite prikazno ime
10};
11const result: CreateTenantUser200Response = await createTenantUser(tenantId, createTenantUserBody);
12console.log(result);
13

deleteTenantUser Internal Link

Parametri

ImeTipObveznoOpis
tenantIdstringDa
idstringDa
deleteCommentsstringNe
commentDeleteModestringNe

Odgovor

Vrača: FlagCommentPublic200Response

Primer

Primer deleteTenantUser
Copy Copy
1
2const tenantId: string = "tenant_8f3a2b1c4d";
3const id: string = "user_62a4f9e0b7";
4const deleteComments: string = "true";
5const commentDeleteMode: string = "permanent";
6const result: FlagCommentPublic200Response = await deleteTenantUser(tenantId, id, deleteComments, commentDeleteMode);
7

getTenantUser Internal Link


Parametri

ImeTipObveznoOpis
tenantIdstringDa
idstringDa

Odgovor

Vrne: GetTenantUser200Response

Primer

Primer getTenantUser
Copy Copy
1
2const tenantId: string = 'tenant_ab12c3';
3const id: string = 'user_9f8e7d';
4const response: GetTenantUser200Response = await getTenantUser(tenantId, id);
5console.log(response);
6

getTenantUsers Internal Link


Parametri

ImeTipObveznoOpis
tenantIdstringDa
skipnumberNe

Odgovor

Vrača: GetTenantUsers200Response

Primer

Primer getTenantUsers
Copy Copy
1
2const tenantId: string = 'tenant_7b8f3a2c-9e4d-4f1a';
3const skip: number = 50;
4const usersResponseDefault: GetTenantUsers200Response = await getTenantUsers(tenantId);
5const usersResponsePaged: GetTenantUsers200Response = await getTenantUsers(tenantId, skip);
6

replaceTenantUser Internal Link

Parametri

ImeTipObveznoOpis
tenantIdstringYes
idstringYes
replaceTenantUserBodyReplaceTenantUserBodyYes
updateCommentsstringNo

Odgovor

Vrne: FlagCommentPublic200Response

Primer

Primer replaceTenantUser
Copy Copy
1
2const tenantId: string = "f3b9a2d1-8b4e-4c6a-9f2b-1d5c4e6a7b8c";
3const id: string = "user_92f7c3b1";
4const replaceTenantUserBody: ReplaceTenantUserBody = {
5 externalId: "auth0|1234567890",
6 email: "jane.doe@company.com",
7 displayName: "Jane Doe",
8 roles: ["moderator"],
9 metadata: { department: "support" }
10};
11const updateComments: string = "reassign-comments-to-new-user";
12const response: FlagCommentPublic200Response = await replaceTenantUser(tenantId, id, replaceTenantUserBody, updateComments);
13


Parametri

ImeTipObveznoOpis
tenantIdstringDa
idstringDa
redirectURLstringNe

Odgovor

Vrača: FlagCommentPublic200Response

Primer

Primer uporabe sendLoginLink
Copy Copy
1
2const tenantId: string = "tenant_0a1b2c3d";
3const id: string = "user_984321";
4const redirectURL: string = "https://app.acme-corp.com/welcome";
5const responseWithRedirect: FlagCommentPublic200Response = await sendLoginLink(tenantId, id, redirectURL);
6const responseWithoutRedirect: FlagCommentPublic200Response = await sendLoginLink(tenantId, id);
7

updateTenantUser Internal Link

Parametri

ImeTipObveznoOpis
tenantIdstringDa
idstringDa
updateTenantUserBodyUpdateTenantUserBodyDa
updateCommentsstringNe

Odgovor

Vrne: FlagCommentPublic200Response

Primer

Primer updateTenantUser
Copy Copy
1
2const tenantId: string = 'acme-corp';
3const userId: string = 'u_72b9f4';
4const updateTenantUserBody: UpdateTenantUserBody = {
5 email: 'jane.doe@acme.com',
6 displayName: 'Jane Doe',
7 roles: ['moderator'],
8 suspended: false
9};
10const updateComments: string = 'Promoted to moderator after review of activity and community feedback';
11const result: FlagCommentPublic200Response = await updateTenantUser(tenantId, userId, updateTenantUserBody, updateComments);
12

createTenant Internal Link

Parametri

ImeTipObveznoOpis
tenantIdstringDa
createTenantBodyCreateTenantBodyDa

Odgovor

Vrne: CreateTenant200Response

Primer

Primer createTenant
Copy Copy
1
2const tenantId: string = 'acme-news-01';
3const createTenantBody: CreateTenantBody = {
4 name: 'Acme News',
5 domainConfiguration: { primaryDomain: 'news.acme.com', redirectHttps: true } as APIDomainConfiguration,
6 importedSites: [{ siteId: 'site-92', url: 'https://news.acme.com' }] as ImportedSiteType[],
7 billingInfo: { planId: 'business_monthly', contactEmail: 'billing@acme.com' } as BillingInfo
8};
9const result: CreateTenant200Response = await createTenant(tenantId, createTenantBody);
10

deleteTenant Internal Link


Parametri

ImeTipZahtevanoOpis
tenantIdstringDa
idstringDa
surestringNe

Odgovor

Vrne: FlagCommentPublic200Response

Primer

Primer deleteTenant
Copy Copy
1
2const tenantId: string = 'tenant_742b9c';
3const flagId: string = 'flag_1a2b3c';
4const resultWithoutSure: FlagCommentPublic200Response = await deleteTenant(tenantId, flagId);
5const sureConfirmation: string = 'confirmed';
6const resultWithSure: FlagCommentPublic200Response = await deleteTenant(tenantId, flagId, sureConfirmation);
7

getTenant Internal Link

Parametri

NameTypeRequiredDescription
tenantIdstringDa
idstringDa

Odgovor

Vrne: GetTenant200Response

Primer

Primer getTenant
Copy Copy
1
2const tenantId: string = 'fc_tenant_6b3e2a';
3const id: string = 'site_42f1';
4const tenantResponse: GetTenant200Response = await getTenant(tenantId, id);
5const tenant: APITenant | undefined = tenantResponse.tenant;
6const primaryDomain: APIDomainConfiguration | undefined = tenant?.domainConfiguration?.[0];
7

getTenants Internal Link

Parametri

ImeTipObveznoOpis
tenantIdstringDa
metastringNe
skipnumberNe

Odgovor

Vrača: GetTenants200Response

Primer

Primer uporabe getTenants
Copy Copy
1
2const tenantId: string = "fcom-tenant-8b4f2a1c";
3const meta: string = "include=domains,billing&status=active";
4const skip: number = 20;
5const response: GetTenants200Response = await getTenants(tenantId, meta, skip);
6console.log(response);
7

updateTenant Internal Link


Parametri

ImeTipZahtevanoOpis
tenantIdstringDa
idstringDa
updateTenantBodyUpdateTenantBodyDa

Odgovor

Vrne: FlagCommentPublic200Response

Primer

updateTenant Primer
Copy Copy
1
2const tenantId: string = 'tenant_84f12';
3const id: string = 'flag_192b';
4const updateTenantBody: UpdateTenantBody = {
5 name: 'Acme Media',
6 billingInfo: { plan: 'enterprise', seats: 25, nextBillingDate: '2026-07-01' },
7 apiDomainConfiguration: { primaryDomain: 'comments.acme.com', additionalDomains: ['acme.com'] },
8 importedSites: [{ siteUrl: 'https://blog.acme.com', archived: false }], // neobvezno
9 commentSettings: { htmlRenderingMode: 'sanitized', deletionMode: 'soft' } // neobvezno
10} as UpdateTenantBody;
11const result: FlagCommentPublic200Response = await updateTenant(tenantId, id, updateTenantBody);
12

changeTicketState Internal Link

Parametri

ImeTipObveznoOpis
tenantIdstringDa
userIdstringDa
idstringDa
changeTicketStateBodyChangeTicketStateBodyDa

Odgovor

Vrne: ChangeTicketState200Response

Primer

Primer changeTicketState
Copy Copy
1
2const tenantId: string = 'tenant_8a7d3f4b';
3const userId: string = 'user_5d1a9b2c';
4const id: string = 'ticket_1024';
5const changeTicketStateBody: ChangeTicketStateBody = {
6 state: 'closed',
7 notifyParticipants: true, // prikazan neobvezni parameter
8 comment: 'Resolved by support — follow-up not required.'
9};
10const result: ChangeTicketState200Response = await changeTicketState(tenantId, userId, id, changeTicketStateBody);
11

createTicket Internal Link


Parametri

ImeTipObveznoOpis
tenantIdstringDa
userIdstringDa
createTicketBodyCreateTicketBodyDa

Odgovor

Vrne: CreateTicket200Response

Primer

Primer createTicket
Copy Copy
1
2const tenantId: string = 'tenant_acme_corp';
3const userId: string = 'moderator_jane';
4const createTicketBody: CreateTicketBody = {
5 subject: 'Mass spam reports on article 789',
6 description: 'Multiple identical spam comments posted under article 789. Needs moderation and bulk removal.',
7 priority: 'high',
8 contactEmail: 'jane@acme-corp.com',
9 metadata: { articleId: '789', reportedCount: 12 } // prikazani neobvezni metapodatki
10};
11const ticket: CreateTicket200Response = await createTicket(tenantId, userId, createTicketBody);
12

getTicket Internal Link


Parametri

ImeTipZahtevanoOpis
tenantIdstringDa
idstringDa
userIdstringNe

Odgovor

Vrne: GetTicket200Response

Primer

Primer getTicket
Copy Copy
1
2const tenantId: string = 'acme-corp';
3const ticketId: string = 'TCKT-20250615-42';
4const userId: string = 'user_84b2';
5
6const ticketWithUser: GetTicket200Response = await getTicket(tenantId, ticketId, userId);
7const ticketWithoutUser: GetTicket200Response = await getTicket(tenantId, ticketId);
8
9console.log(ticketWithUser.id, ticketWithoutUser.id);
10

getTickets Internal Link

Parametri

NameTypeObveznoOpis
tenantIdstringDa
userIdstringNe
statenumberNe
skipnumberNe
limitnumberNe

Odgovor

Vrne: GetTickets200Response

Primer

Primer getTickets
Copy Copy
1
2const tenantId: string = 'tenant_acme_01';
3const userId: string = 'user_87b3';
4const state: number = 2;
5const skip: number = 0;
6const limit: number = 50;
7
8const tickets: GetTickets200Response = await getTickets(tenantId, userId, state, skip, limit);
9

getTranslations Internal Link

Parametri

NameTypeRequiredDescription
namespacestringDa
componentstringDa
localestringNe
useFullTranslationIdsbooleanNe

Odgovor

Vrne: GetTranslations200Response

Primer

Primer getTranslations
Copy Copy
1
2const namespaceName: string = 'site-ui';
3const componentName: string = 'comment-widget';
4const locale: string = 'fr-FR';
5const useFullTranslationIds: boolean = true;
6const translationsWithLocale: GetTranslations200Response = await getTranslations(namespaceName, componentName, locale, useFullTranslationIds);
7const translationsDefault: GetTranslations200Response = await getTranslations(namespaceName, componentName);
8

uploadImage Internal Link


Naloži in spremeni velikost slike

Parametri

ImeTipObveznoOpis
tenantIdstringDa
fileBlobDa
sizePresetSizePresetNe
urlIdstringNe

Odgovor

Vrne: UploadImageResponse


getUserBadgeProgressById Internal Link

Parametri

ImeTipObveznoOpis
tenantIdstringDa
idstringDa

Odgovor

Vrača: GetUserBadgeProgressById200Response

Primer

Primer getUserBadgeProgressById
Copy Copy
1
2const tenantId: string = 'fastcomments-tenant-241';
3const badgeId: string = 'user-78b3d-badge-3';
4const response: GetUserBadgeProgressById200Response = await getUserBadgeProgressById(tenantId, badgeId);
5const progress: UserBadgeProgress | undefined = (response as unknown as { progress?: UserBadgeProgress }).progress;
6const percentComplete: number | undefined = progress?.percentage;
7console.log('Badge progress percent complete:', percentComplete);
8

getUserBadgeProgressByUserId Internal Link

Parametri

ImeTipObveznoOpis
tenantIdstringDa
userIdstringDa

Odgovor

Vrne: GetUserBadgeProgressById200Response

Primer

Primer getUserBadgeProgressByUserId
Copy Copy
1
2const tenantId: string = 'acme-inc-tenant-01';
3const userId: string = 'user_73c9b2';
4const progress: GetUserBadgeProgressById200Response = await getUserBadgeProgressByUserId(tenantId, userId);
5
6async function maybeFetchProgress(tenant: string, user?: string): Promise<GetUserBadgeProgressById200Response | null> {
7 if (!user) return null;
8 return await getUserBadgeProgressByUserId(tenant, user);
9}
10
11const optionalResult: GetUserBadgeProgressById200Response | null = await maybeFetchProgress(tenantId, userId);
12

getUserBadgeProgressList Internal Link

Parametri

ImeTipZahtevanoOpis
tenantIdstringDa
userIdstringNe
limitnumberNe
skipnumberNe

Odgovor

Vrača: GetUserBadgeProgressList200Response

Primer

Primer getUserBadgeProgressList
Copy Copy
1
2const tenantId: string = 'tenant_4f3a2b9c';
3const userId: string = 'user_7721d';
4const limit: number = 20;
5const skip: number = 0;
6const result: GetUserBadgeProgressList200Response = await getUserBadgeProgressList(tenantId, userId, limit, skip);
7

createUserBadge Internal Link


Parametri

ImeTipObveznoOpis
tenantIdstringDa
createUserBadgeParamsCreateUserBadgeParamsDa

Odgovor

Vrača: CreateUserBadge200Response

Primer

Primer createUserBadge
Copy Copy
1
2const tenantId: string = "tenant_7f4b2a";
3const createUserBadgeParams: CreateUserBadgeParams = {
4 code: "top_contributor",
5 title: "Top Contributor",
6 description: "Awarded for 100 high-quality comments",
7 iconUrl: "https://cdn.fastcomments.com/badges/top_contributor.svg",
8 isActive: true,
9 criteria: { commentsRequired: 100 },
10 customConfig: { displayOnProfile: true } // primer neobveznega parametra
11};
12const result: CreateUserBadge200Response = await createUserBadge(tenantId, createUserBadgeParams);
13

deleteUserBadge Internal Link


Parametri

ImeTipObveznoOpis
tenantIdstringDa
idstringDa

Odziv

Vrača: UpdateUserBadge200Response

Primer

Primer deleteUserBadge
Copy Copy
1
2const tenantId: string = "tenant_8b3f2c7a";
3const badgeIdOptional: string | undefined = Math.random() > 0.5 ? "badge_4f9a21" : undefined;
4const id: string = badgeIdOptional ?? "badge_backup_01";
5const result: UpdateUserBadge200Response = await deleteUserBadge(tenantId, id);
6

getUserBadge Internal Link

Parametri

ImeTipObveznoOpis
tenantIdstringDa
idstringDa

Odgovor

Vrača: GetUserBadge200Response

Primer

Primer getUserBadge
Copy Copy
1
2(async () => {
3 const tenantId: string = 'tenant_6b8f2a1c';
4 const id: string = 'badge_9f3d4b2a';
5 const response: GetUserBadge200Response = await getUserBadge(tenantId, id);
6 const badge: UserBadge | undefined = response.userBadge;
7 const badgeName: string | undefined = badge?.name;
8 console.log('Retrieved badge name:', badgeName);
9})();
10

getUserBadges Internal Link


Parametri

ImeTipObveznoOpis
tenantIdstringDa
userIdstringNe
badgeIdstringNe
typenumberNe
displayedOnCommentsbooleanNe
limitnumberNe
skipnumberNe

Odgovor

Vrne: GetUserBadges200Response

Primer

Primer uporabe getUserBadges
Copy Copy
1
2const tenantId: string = 'tenant_7f9a12';
3const userId: string = 'user_42b7';
4const badgeId: string = 'badge_top_contributor';
5const type: number = 2;
6const displayedOnComments: boolean = true;
7const limit: number = 25;
8const skip: number = 0;
9const badges: GetUserBadges200Response = await getUserBadges(tenantId, userId, badgeId, type, displayedOnComments, limit, skip);
10

updateUserBadge Internal Link

Parametri

NameTipObveznoOpis
tenantIdstringDa
idstringDa
updateUserBadgeParamsUpdateUserBadgeParamsDa

Odgovor

Vrne: UpdateUserBadge200Response

Primer

Primer updateUserBadge
Copy Copy
1
2const tenantId: string = "tenant_9a8b7c";
3const id: string = "badge_a1b2c3";
4const updateUserBadgeParams: UpdateUserBadgeParams = {
5 title: "Community Helper",
6 description: "Awarded for providing 50 helpful answers",
7 iconUrl: "https://cdn.fastcomments.com/badges/community-helper.png",
8 isActive: true,
9 expiryDate: undefined
10};
11const result: UpdateUserBadge200Response = await updateUserBadge(tenantId, id, updateUserBadgeParams);
12

getUserNotificationCount Internal Link


Parametri

ImeTipObveznoOpis
tenantIdstringDa
ssostringNe

Odgovor

Vrne: GetUserNotificationCount200Response

Primer

Primer getUserNotificationCount
Copy Copy
1
2const tenantId: string = 'tenant_acme_01';
3const ssoToken: string = 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.sso_payload.signature';
4const notificationCountNoSSO: GetUserNotificationCount200Response = await getUserNotificationCount(tenantId);
5const notificationCountWithSSO: GetUserNotificationCount200Response = await getUserNotificationCount(tenantId, ssoToken);
6

getUserNotifications Internal Link

Parametri

NameTypeRequiredDescription
tenantIdstringDa
urlIdstringNe
pageSizenumberNe
afterIdstringNe
includeContextbooleanNe
afterCreatedAtnumberNe
unreadOnlybooleanNe
dmOnlybooleanNe
noDmbooleanNe
includeTranslationsbooleanNe
includeTenantNotificationsbooleanNe
ssostringNe

Odgovor

Vrne: GetUserNotifications200Response

Primer

Primer getUserNotifications
Copy Copy
1
2const tenantId: string = "tenant_8271";
3const urlId: string = "https://www.news-site.com/articles/2026/06/15/ai-updates";
4const pageSize: number = 25;
5const afterId: string = "notif_abc123";
6const includeContext: boolean = true;
7const afterCreatedAt: number = Date.now() - 86_400_000;
8const unreadOnly: boolean = true;
9const dmOnly: boolean = false;
10const noDm: boolean = false;
11const includeTranslations: boolean = true;
12const includeTenantNotifications: boolean = true;
13const sso: string = "sso_token_xyz_987";
14
15const notifications: GetUserNotifications200Response = await getUserNotifications(
16 tenantId,
17 urlId,
18 pageSize,
19 afterId,
20 includeContext,
21 afterCreatedAt,
22 unreadOnly,
23 dmOnly,
24 noDm,
25 includeTranslations,
26 includeTenantNotifications,
27 sso
28);
29

resetUserNotificationCount Internal Link

Parametri

ImeTipObveznoOpis
tenantIdstringDa
ssostringNe

Odgovor

Vrne: ResetUserNotifications200Response

Primer

resetUserNotificationCount Primer
Copy Copy
1
2const tenantId: string = "tenant_8a3f2b6c";
3const ssoToken: string = "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiJ1c2VyX2QxMjM0IiwiaWF0IjoxNjI1MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c";
4const resetResponseWithSso: ResetUserNotifications200Response = await resetUserNotificationCount(tenantId, ssoToken);
5const resetResponseWithoutSso: ResetUserNotifications200Response = await resetUserNotificationCount(tenantId);
6

resetUserNotifications Internal Link

Parametri

ImeTipObveznoOpis
tenantIdstringDa
afterIdstringNe
afterCreatedAtnumberNe
unreadOnlybooleanNe
dmOnlybooleanNe
noDmbooleanNe
ssostringNe

Odgovor

Vrne: ResetUserNotifications200Response

Primer

Primer resetUserNotifications
Copy Copy
1
2const tenantId: string = "tenant_9b1f2";
3const afterId: string = "notification_0001";
4const afterCreatedAt: number = Date.now() - 60 * 60 * 1000; // eno uro nazaj
5const unreadOnly: boolean = true;
6const dmOnly: boolean = false;
7const noDm: boolean = false;
8const sso: string = "sso_session_7f2d";
9const result: ResetUserNotifications200Response = await resetUserNotifications(
10 tenantId,
11 afterId,
12 afterCreatedAt,
13 unreadOnly,
14 dmOnly,
15 noDm,
16 sso
17);
18

updateUserNotificationCommentSubscriptionStatus Internal Link

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

Parametri

NameTypeRequiredDescription
tenantIdstringDa
notificationIdstringDa
optedInOrOutUpdateUserNotificationCommentSubscriptionStatusOptedInOrOutEnumDa
commentIdstringDa
ssostringNe

Odgovor

Vrne: UpdateUserNotificationStatus200Response

Primer

Primer updateUserNotificationCommentSubscriptionStatus
Copy Copy
1
2const tenantId: string = 'f3a9c8b0-4d2e-4f8a-9c3b-1234567890ab';
3const notificationId: string = '62a1f4d2-8c7b-4e1a-aaa1-abcdef123456';
4const commentId: string = '7e4a2b1c-1234-5678-90ab-cdef12345678';
5const optedInOrOut: UpdateUserNotificationCommentSubscriptionStatusOptedInOrOutEnum = UpdateUserNotificationCommentSubscriptionStatusOptedInOrOutEnum.OptedIn;
6const sso: string = 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.ssoPayload.signature';
7const response: UpdateUserNotificationStatus200Response = await updateUserNotificationCommentSubscriptionStatus(tenantId, notificationId, optedInOrOut, commentId, sso);
8

updateUserNotificationPageSubscriptionStatus Internal Link

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

Parametri

NameTypeRequiredDescription
tenantIdstringDa
urlIdstringDa
urlstringDa
pageTitlestringDa
subscribedOrUnsubscribedUpdateUserNotificationPageSubscriptionStatusSubscribedOrUnsubscribedEnumDa
ssostringNe

Odgovor

Vrne: UpdateUserNotificationStatus200Response

Primer

Primer updateUserNotificationPageSubscriptionStatus
Copy Copy
1
2const tenantId: string = 'tenant_7f3b2';
3const urlId: string = 'article_987';
4const url: string = 'https://www.news-site.com/articles/2026/pasta-guide';
5const pageTitle: string = 'The Definitive Guide to Cooking Pasta';
6const subscribedOrUnsubscribed: UpdateUserNotificationPageSubscriptionStatusSubscribedOrUnsubscribedEnum = UpdateUserNotificationPageSubscriptionStatusSubscribedOrUnsubscribedEnum.Subscribed;
7const sso: string = 'sso-token-62b9f1';
8const result: UpdateUserNotificationStatus200Response = await updateUserNotificationPageSubscriptionStatus(tenantId, urlId, url, pageTitle, subscribedOrUnsubscribed, sso);
9

updateUserNotificationStatus Internal Link

Parameters

ImeTipObveznoOpis
tenantIdstringDa
notificationIdstringDa
newStatusUpdateUserNotificationStatusNewStatusEnumDa
ssostringNe

Odgovor

Vrne: UpdateUserNotificationStatus200Response

Primer

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

getUserPresenceStatuses Internal Link

Parametri

ImeTipObveznoOpis
tenantIdstringDa
urlIdWSstringDa
userIdsstringDa

Odziv

Vrne: GetUserPresenceStatuses200Response

Primer

Primer getUserPresenceStatuses
Copy Copy
1
2const tenantId: string = 'tenant_42';
3const urlIdWS: string = 'wss://comments.fastsite.com/ws/tenant_42';
4const userIds: string = 'user_9012,user_3478';
5const includePresenceMetadata: boolean | undefined = true; // primer neobveznega parametra
6const presenceStatuses: GetUserPresenceStatuses200Response = await getUserPresenceStatuses(tenantId, urlIdWS, userIds);
7

searchUsers Internal Link

Parametri

ImeTipObveznoOpis
tenantIdstringDa
urlIdstringDa
usernameStartsWithstringNe
mentionGroupIdsArrayNe
ssostringNe
searchSectionSearchUsersSearchSectionEnumNe

Odgovor

Vrne: SearchUsers200Response

Primer

Primer searchUsers
Copy Copy
1
2const tenantId: string = 'tenant_7890';
3const urlId: string = 'news/2026-06-15-world-cup-final';
4const usernameStartsWith: string = 'mar';
5const mentionGroupIds: string[] = ['staff', 'trusted-commenters'];
6const sso: string = 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VySWQiOiI0NTY3OCJ9.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c';
7const searchSection: SearchUsersSearchSectionEnum = SearchUsersSearchSectionEnum.Commenters;
8const response: SearchUsers200Response = await searchUsers(tenantId, urlId, usernameStartsWith, mentionGroupIds, sso, searchSection);
9

getUser Internal Link

Parametri

ImeTipObveznoOpis
tenantIdstringDa
idstringDa

Odgovor

Vrne: GetUser200Response

Primer

Primer getUser
Copy Copy
1
2const tenantId: string = 'fastcomments_corp';
3const id: string = 'user_9f8b7c6d-5e4a-3b2c-1f0e-123456789abc';
4const response: GetUser200Response = await getUser(tenantId, id);
5const userEmail: string | undefined = response.user?.email;
6const displayName: string | undefined = response.user?.displayName
7

createVote Internal Link

Parametri

ImeTipObveznoOpis
tenantIdstringDa
commentIdstringDa
directionCreateVoteDirectionEnumDa
userIdstringNe
anonUserIdstringNe

Odgovor

Vrne: VoteComment200Response

Primer

Primer createVote
Copy Copy
1
2const tenantId: string = 'fastcomments-tenant-001';
3const commentId: string = 'cmt_8f3b2a9d';
4const direction: CreateVoteDirectionEnum = CreateVoteDirectionEnum.Up;
5const userId: string = 'user_5021';
6const anonUserId: string = 'anon_7a9c';
7
8const voteResponse: VoteComment200Response = await createVote(tenantId, commentId, direction, userId, anonUserId);
9

deleteVote Internal Link


Parametri

ImeTipObveznoOpis
tenantIdstringDa
idstringDa
editKeystringNe

Odgovor

Vrne: DeleteCommentVote200Response

Primer

Primer deleteVote
Copy Copy
1
2(async () => {
3 const tenantId: string = 'tenant_8421';
4 const id: string = 'vote_3f9b7c2a';
5 const editKey: string = 'edit_7Xk9LpQ';
6 const responseWithoutEdit: DeleteCommentVote200Response = await deleteVote(tenantId, id);
7 const responseWithEdit: DeleteCommentVote200Response = await deleteVote(tenantId, id, editKey);
8 console.log(responseWithoutEdit, responseWithEdit);
9})();
10

getVotes Internal Link

Parametri

ImeTipObveznoOpis
tenantIdstringDa
urlIdstringDa

Odgovor

Vrne: GetVotes200Response

Primer

Primer getVotes
Copy Copy
1
2const tenantId: string = 'tenant_7f8e91c2';
3const urlId: string = 'https://www.sportsdaily.com/news/2026/06/15/championship-game-recap';
4const votes: GetVotes200Response = await getVotes(tenantId, urlId);
5console.log(votes);
6

getVotesForUser Internal Link

Parametri

ImeVrstaObveznoOpis
tenantIdstringDa
urlIdstringDa
userIdstringNe
anonUserIdstringNe

Odgovor

Vrne: GetVotesForUser200Response

Primer

Primer uporabe getVotesForUser
Copy Copy
1
2const tenantId: string = 'tenant_9b8f7c6d';
3const urlId: string = 'articles/product-update-2026';
4const userId: string = 'user_c12345';
5const anonUserId: string = 'anon_7f4e2a';
6const votes: GetVotesForUser200Response = await getVotesForUser(tenantId, urlId, userId, anonUserId);
7

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.