FastComments.com

FastComments JavaScript/TypeScript SDK


To oficjalne SDK JavaScript/TypeScript dla FastComments.

Zarządzaj komentarzami, użytkownikami, SSO i moderacją z Node.js lub przeglądarki.

Repozytorium

Zobacz na GitHub


Instalacja Internal Link

npm

npm install fastcomments-sdk

Dokumentacja API Internal Link


Pełna dokumentacja API: docs/api/README.md

Zgodność przeglądarek i serwerów Internal Link


Ten SDK korzysta z podwójnych punktów wejścia aby zapewnić optymalną kompatybilność i zapobiec błędom czasu wykonywania:

  • fastcomments-sdk/browser - Wersja bezpieczna dla przeglądarki z natywnym fetch
  • fastcomments-sdk/server - Pełna wersja Node.js z obsługą SSO
  • fastcomments-sdk (domyślnie) - Tylko typy, bezpieczne do importowania w dowolnym miejscu

Publiczne i zabezpieczone API Internal Link

SDK udostępnia trzy główne klasy API:

  • DefaultApi - Zabezpieczone endpointy, które wymagają klucza API do uwierzytelnienia. Używaj ich do operacji po stronie serwera.
  • PublicApi - Publiczne endpointy, do których można uzyskać dostęp bez klucza API. Można je wywoływać bezpośrednio z przeglądarek/urządzeń mobilnych itp.
  • HiddenApi - Wewnętrzne/adminowe endpointy do zaawansowanych zastosowań.

Example: Using Public API (browser-safe)

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

const publicApi = new PublicApi();

// Pobierz komentarze dla strony (nie wymaga klucza API)
const response = await publicApi.getCommentsPublic({
  tenantId: 'your-tenant-id',
  urlId: 'page-url-id'
});

Example: Using Default API (server-side only)

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

const config = new Configuration({
  apiKey: 'your-api-key' // Trzymaj to w tajemnicy!
});
const defaultApi = new DefaultApi(config);

// Pobierz komentarze z pełnym dostępem administratora
const response = await defaultApi.getComments({
  tenantId: 'your-tenant-id',
  urlId: 'page-url-id'
});

Integracja SSO (Single Sign-On) Internal Link

FastComments obsługuje SSO w celu integracji z istniejącym systemem uwierzytelniania użytkowników. Funkcjonalność SSO jest dostępna tylko w eksporcie serwera ponieważ wymaga funkcji kryptograficznych Node.js.

Proste SSO (tylko po stronie serwera)

Proste SSO powinno być generowane po stronie serwera i wysyłane do klienta:

// Kod po stronie serwera (Node.js/backend)
import { FastCommentsSSO, PublicApi } from 'fastcomments-sdk/server';

// Utwórz proste SSO przy użyciu wbudowanego pomocnika  
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();

// Wyślij ssoToken do kodu po stronie klienta
// Kod po stronie klienta może następnie użyć tego tokena z SDK przeglądarki

Bezpieczne SSO (po stronie serwera, zalecane)

Bezpieczne SSO powinno być zaimplementowane po stronie serwera i zapewnia lepsze bezpieczeństwo:

// Kod po stronie serwera (Node.js/backend)
import { FastCommentsSSO, PublicApi } from 'fastcomments-sdk/server';

// Utwórz bezpieczne SSO przy użyciu wbudowanego pomocnika
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();

// Użyj z wywołaniami API na serwerze
const publicApi = new PublicApi();
const response = await publicApi.getCommentsPublic({
  tenantId: 'your-tenant-id',
  urlId: 'page-url-id',
  sso: JSON.stringify(ssoConfig)
});

// Lub wyślij ssoConfig do klienta do użycia w przeglądarce

Użycie SSO z przeglądarki (z tokenem wygenerowanym przez serwer)

// Kod po stronie klienta (przeglądarka)
import { PublicApi } from 'fastcomments-sdk/browser';

// Pobierz token SSO z endpointu swojego serwera
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 // Use the server-generated SSO token
});

SSO z tworzeniem komentarza

// Po stronie serwera: utwórz SSO i komentarz
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)
});

Typowe przypadki użycia Internal Link

Pobieranie komentarzy dla strony

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

Tworzenie komentarza

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

Głosowanie na komentarz

const voteResponse = await sdk.publicApi.voteComment({
  voteBodyParams: {
    commentId: 'comment-id',
    direction: 1 // 1 oznacza głos za, -1 oznacza głos przeciw
  }
});

Zarządzanie użytkownikami (wymaga klucza API)

// Wyszukiwanie użytkowników (wymaga DefaultApi)
const users = await sdk.defaultApi.searchUsers({
  tenantId: 'your-tenant-id',
  urlId: 'page-id',
  usernameStartsWith: 'john'
});

Wydarzenia na żywo (aktualizacje w czasie rzeczywistym) Internal Link

Subskrybuj zdarzenia na żywo, aby otrzymywać aktualizacje w czasie rzeczywistym dotyczące komentarzy, głosów i innych aktywności.

Zdarzenia na poziomie strony

Nasłuchuj zdarzeń na żywo dla konkretnej strony (komentarze, głosy itp.):

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

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

// Subskrybuj zdarzenia na żywo dla strony
const subscription = subscribeToChanges(
  config,
  'your-tenant-id', // tenantIdWS
  'page-url-id',    // urlIdWS  
  'user-session-id', // userIdWS (pobierz to z odpowiedzi getComments)
  (event: LiveEvent) => {
    console.log('Live event received:', event);
    
    switch (event.type) {
      case LiveEventType.new_comment:
        console.log('New comment:', event.comment);
        // Zaktualizuj interfejs użytkownika o nowy komentarz
        break;
      case LiveEventType.new_vote:
        console.log('New vote:', event.vote);
        // Zaktualizuj licznik głosów w interfejsie użytkownika
        break;
      case LiveEventType.updated_comment:
        console.log('Comment updated:', event.comment);
        break;
      default:
        console.log('Other event type:', event.type);
    }
    
    return true; // Zwróć true, jeśli zdarzenie zostało obsłużone
  },
  (isConnected: boolean) => {
    console.log('Connection status:', isConnected ? 'Connected' : 'Disconnected');
  }
);

// Zamknij subskrypcję po zakończeniu
subscription.close();

Subskrybuj zdarzenia użytkownika

Nasłuchuj zdarzeń specyficznych dla użytkownika (powiadomienia, wzmianki itp.):

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

const userConfig = {
  userIdWS: 'user-session-id', // Pobierz to z odpowiedzi getComments
};

// Subskrybuj osobisty kanał użytkownika
const userSubscription = subscribeToUserFeed(
  userConfig,
  (event: LiveEvent) => {
    console.log('User event received:', event);
    
    switch (event.type) {
      case LiveEventType.notification:
        console.log('New notification:', event.notification);
        // Pokaż powiadomienie w interfejsie użytkownika
        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');
  }
);

// Zamknij po zakończeniu
userSubscription.close();

Uzyskiwanie userIdWS

Parametr userIdWS jest wymagany do zdarzeń na żywo i można go uzyskać z odpowiedzi API:

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

// Wyodrębnij userIdWS z odpowiedzi
const userIdWS = response.data?.userSessionInfo?.userIdWS;

if (userIdWS) {
  // Teraz możesz subskrybować zdarzenia na żywo
  const subscription = subscribeToChanges(config, tenantIdWS, urlIdWS, userIdWS, handleEvent);
}

Identyfikatory transmisji Internal Link

Zobaczysz, że w niektórych wywołaniach API należy przekazać broadcastId. Gdy otrzymasz zdarzenia, otrzymasz ten identyfikator z powrotem, dzięki czemu będziesz wiedzieć, że możesz zignorować zdarzenie, jeśli planujesz optimistycznie zastosować zmiany po stronie klienta (co prawdopodobnie będziesz chciał zrobić, ponieważ zapewnia najlepsze doświadczenie). Przekaż tutaj UUID. Identyfikator powinien być wystarczająco unikalny, aby nie pojawił się dwa razy w sesji przeglądarki.

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() // Unikalny identyfikator dla tej operacji
  }
});

Obsługa błędów 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


Agreguje dokumenty, grupując je (jeśli podano groupBy) i stosując wiele operacji. Obsługiwane są różne operacje (np. sum, countDistinct, avg itd.).

Parametry

NazwaTypWymaganeOpis
tenantIdstringTak
aggregationRequestAggregationRequestTak
parentTenantIdstringNie
includeStatsbooleanNie

Odpowiedź

Zwraca: AggregationResponse


getAuditLogs Internal Link

Parametry

NazwaTypWymaganeOpis
tenantIdstringTak
limitnumberNie
skipnumberNie
orderSORTDIRNie
afternumberNie
beforenumberNie

Odpowiedź

Zwraca: GetAuditLogs200Response

Przykład

Przykład getAuditLogs
Copy Copy
1
2const tenantId: string = 'tenant_9a8b7c';
3const limit: number = 100;
4const skip: number = 0;
5const after: number = Date.now() - 30 * 24 * 60 * 60 * 1000; // 30 dni temu
6const before: number = Date.now();
7const auditLogs: GetAuditLogs200Response = await getAuditLogs(tenantId, limit, skip, undefined, after, before);
8

blockFromCommentPublic Internal Link

Parametry

NazwaTypWymaganeOpis
tenantIdstringTak
commentIdstringTak
publicBlockFromCommentParamsPublicBlockFromCommentParamsTak
ssostringNie

Odpowiedź

Zwraca: BlockFromCommentPublic200Response

Przykład

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

unBlockCommentPublic Internal Link

Parametry

NameTypeRequiredDescription
tenantIdstringTak
commentIdstringTak
publicBlockFromCommentParamsPublicBlockFromCommentParamsTak
ssostringNie

Odpowiedź

Zwraca: UnBlockCommentPublic200Response

Przykład

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

checkedCommentsForBlocked Internal Link

Parametry

NazwaTypWymaganeOpis
tenantIdstringTak
commentIdsstringTak
ssostringNie

Odpowiedź

Zwraca: CheckedCommentsForBlocked200Response

Przykład

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

blockUserFromComment Internal Link

Parametry

NazwaTypWymaganeOpis
tenantIdstringTak
idstringTak
blockFromCommentParamsBlockFromCommentParamsTak
userIdstringNie
anonUserIdstringNie

Odpowiedź

Zwraca: BlockFromCommentPublic200Response

Przykład

Przykład blockUserFromComment
Copy Copy
1
2const tenantId: string = 'acme-corp';
3const id: string = 'comment_7f3b2a9c';
4const blockFromCommentParams: BlockFromCommentParams = {
5 reason: 'Repeated abusive language and targeted harassment',
6 durationDays: 90,
7 preventReposting: true
8};
9const userId: string = 'user_12345';
10const anonUserId: string = 'anon_98765';
11
12const result: BlockFromCommentPublic200Response = await blockUserFromComment(
13 tenantId,
14 id,
15 blockFromCommentParams,
16 userId,
17 anonUserId
18);
19

createCommentPublic Internal Link

Parametry

NameTypeWymaganeOpis
tenantIdstringTak
urlIdstringTak
broadcastIdstringTak
commentDataCommentDataTak
sessionIdstringNie
ssostringNie

Odpowiedź

Zwraca: CreateCommentPublic200Response

Przykład

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

deleteComment Internal Link

Parametry

NazwaTypWymaganeOpis
tenantIdstringTak
idstringTak
contextUserIdstringNie
isLivebooleanNie

Odpowiedź

Zwraca: DeleteComment200Response

Przykład

Przykład deleteComment
Copy Copy
1
2const tenantId: string = "tenant_acme_01";
3const id: string = "comment_5f3a2b7c";
4const contextUserId: string = "user_1229";
5const isLive: boolean = true;
6const response: DeleteComment200Response = await deleteComment(tenantId, id, contextUserId, isLive);
7

deleteCommentPublic Internal Link

Parametry

NazwaTypWymaganeOpis
tenantIdstringTak
commentIdstringTak
broadcastIdstringTak
editKeystringNie
ssostringNie

Odpowiedź

Zwraca: DeleteCommentPublic200Response

Przykład

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

deleteCommentVote Internal Link

Parametry

NazwaTypWymaganeOpis
tenantIdstringTak
commentIdstringTak
voteIdstringTak
urlIdstringTak
broadcastIdstringTak
editKeystringNie
ssostringNie

Odpowiedź

Zwraca: DeleteCommentVote200Response

Przykład

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

flagComment Internal Link

Parametry

NameTypeRequiredDescription
tenantIdstringTak
idstringTak
userIdstringNie
anonUserIdstringNie

Odpowiedź

Zwraca: FlagComment200Response

Przykład

Przykład flagComment
Copy Copy
1
2const tenantId: string = 'tenant_7f3b21';
3const commentId: string = 'cmt_9a2b4';
4const userId: string = 'user_1024';
5const result: FlagComment200Response = await flagComment(tenantId, commentId, userId);
6

getComment Internal Link

Parametry

NazwaTypWymaganeOpis
tenantIdstringTak
idstringTak

Odpowiedź

Zwraca: GetComment200Response

Przykład

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

getComments Internal Link

Parametry

NameTypeRequiredDescription
tenantIdstringYes
pagenumberNo
limitnumberNo
skipnumberNo
asTreebooleanNo
skipChildrennumberNo
limitChildrennumberNo
maxTreeDepthnumberNo
urlIdstringNo
userIdstringNo
anonUserIdstringNo
contextUserIdstringNo
hashTagstringNo
parentIdstringNo
directionSortDirectionsNo

Odpowiedź

Zwraca: GetComments200Response

Przykład

Przykład getComments
Copy Copy
1
2const tenantId: string = 'tenant_acme_42';
3const response: GetComments200Response = await getComments(
4 tenantId,
5 1, // strona
6 20, // limit
7 0, // pomiń
8 true, // jako drzewo
9 1, // pomiń dzieci
10 3, // limit dzieci
11 4, // maks. głębokość drzewa
12 'articles/2026/new-product-launch', // urlId
13 'user_7890', // identyfikator użytkownika
14 'anon_4f3b2', // identyfikator anonimowego użytkownika
15 undefined, // identyfikator użytkownika kontekstu
16 '#launch', // hashtag
17 undefined // identyfikator rodzica
18);
19

getCommentsPublic Internal Link

req tenantId urlId

Parametry

NazwaTypWymaganeOpis
tenantIdstringTak
urlIdstringTak
pagenumberNie
directionSortDirectionsNie
ssostringNie
skipnumberNie
skipChildrennumberNie
limitnumberNie
limitChildrennumberNie
countChildrenbooleanNie
fetchPageForCommentIdstringNie
includeConfigbooleanNie
countAllbooleanNie
includei10nbooleanNie
localestringNie
modulesstringNie
isCrawlerbooleanNie
includeNotificationCountbooleanNie
asTreebooleanNie
maxTreeDepthnumberNie
useFullTranslationIdsbooleanNie
parentIdstringNie
searchTextstringNie
hashTagsArrayNie
userIdstringNie
customConfigStrstringNie
afterCommentIdstringNie
beforeCommentIdstringNie

Odpowiedź

Zwraca: GetCommentsPublic200Response

Przykład

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

getCommentText Internal Link

Parametry

NazwaTypWymaganeOpis
tenantIdstringTak
commentIdstringTak
editKeystringNie
ssostringNie

Odpowiedź

Zwraca: GetCommentText200Response

Przykład

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

getCommentVoteUserNames Internal Link

Parametry

NazwaTypWymaganeOpis
tenantIdstringTak
commentIdstringTak
dirnumberTak
ssostringNie

Odpowiedź

Zwraca: GetCommentVoteUserNames200Response

Przykład

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

lockComment Internal Link

Parametry

NazwaTypWymaganeOpis
tenantIdstringTak
commentIdstringTak
broadcastIdstringTak
ssostringNie

Odpowiedź

Zwraca: LockComment200Response

Przykład

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

pinComment Internal Link

Parametry

NazwaTypWymaganeOpis
tenantIdstringTak
commentIdstringTak
broadcastIdstringTak
ssostringNie

Odpowiedź

Zwraca: PinComment200Response

Przykład

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

saveComment Internal Link

Parametry

NameTypWymaganeOpis
tenantIdstringTak
createCommentParamsCreateCommentParamsTak
isLivebooleanNie
doSpamCheckbooleanNie
sendEmailsbooleanNie
populateNotificationsbooleanNie

Odpowiedź

Zwraca: SaveComment200Response

Przykład

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

saveCommentsBulk Internal Link

Parametry

NazwaTypWymaganeOpis
tenantIdstringTak
createCommentParamsArrayTak
isLivebooleanNie
doSpamCheckbooleanNie
sendEmailsbooleanNie
populateNotificationsbooleanNie

Odpowiedź

Zwraca: Array<SaveComment200Response

Przykład

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

setCommentText Internal Link

Parametry

NazwaTypWymaganeOpis
tenantIdstringTak
commentIdstringTak
broadcastIdstringTak
commentTextUpdateRequestCommentTextUpdateRequestTak
editKeystringNie
ssostringNie

Odpowiedź

Zwraca: SetCommentText200Response

Przykład

Przykład setCommentText
Copy Copy
1
2const tenantId: string = 'tenant-42';
3const commentId: string = 'cmt-8932';
4const broadcastId: string = 'brd-2023-07';
5const updateRequest: CommentTextUpdateRequest = {
6 text: 'Updated comment text for the product launch — congrats team!',
7 mentions: [{ userId: 'user-17', displayName: 'Ava Nguyen' }] as CommentUserMentionInfo[],
8 hashtags: [{ tag: 'ProductLaunch' }] as CommentUserHashTagInfo[]
9};
10const editKey: string = 'edtk-9f7b';
11const sso: string = 'sso-token-abc123';
12const result: SetCommentText200Response = await setCommentText(tenantId, commentId, broadcastId, updateRequest, editKey, sso);
13

unBlockUserFromComment Internal Link

Parametry

NameTypeWymaganeOpis
tenantIdstringTak
idstringTak
unBlockFromCommentParamsUnBlockFromCommentParamsTak
userIdstringNie
anonUserIdstringNie

Odpowiedź

Zwraca: UnBlockCommentPublic200Response

Przykład

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

unFlagComment Internal Link

Parametry

NazwaTypWymaganeOpis
tenantIdstringTak
idstringTak
userIdstringNie
anonUserIdstringNie

Odpowiedź

Zwraca: FlagComment200Response

Przykład

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

unLockComment Internal Link

Parametry

NazwaTypWymaganeOpis
tenantIdstringTak
commentIdstringTak
broadcastIdstringTak
ssostringNie

Odpowiedź

Zwraca: LockComment200Response

Przykład

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

unPinComment Internal Link

Parametry

NazwaTypWymaganeOpis
tenantIdstringTak
commentIdstringTak
broadcastIdstringTak
ssostringNie

Odpowiedź

Zwraca: PinComment200Response

Przykład

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

updateComment Internal Link

Parametry

NazwaTypWymaganeOpis
tenantIdstringTak
idstringTak
updatableCommentParamsUpdatableCommentParamsTak
contextUserIdstringNie
doSpamCheckbooleanNie
isLivebooleanNie

Odpowiedź

Zwraca: FlagCommentPublic200Response

Przykład

Przykład updateComment
Copy Copy
1
2const tenantId: string = "tenant_3f47b2a1";
3const id: string = "comment_9a12b3c4";
4const updatableCommentParams: UpdatableCommentParams = {
5 body: "Thanks for the update — I've adjusted my view accordingly."
6};
7const contextUserId: string = "user_8721";
8const doSpamCheck: boolean = true;
9const isLive: boolean = false;
10const result: FlagCommentPublic200Response = await updateComment(tenantId, id, updatableCommentParams, contextUserId, doSpamCheck, isLive);
11

voteComment Internal Link

Parametry

NameTypeWymaganeOpis
tenantIdstringTak
commentIdstringTak
urlIdstringTak
broadcastIdstringTak
voteBodyParamsVoteBodyParamsTak
sessionIdstringNie
ssostringNie

Odpowiedź

Zwraca: VoteComment200Response

Przykład

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

getCommentsForUser Internal Link

Parametry

NameTypWymaganeOpis
userIdstringNie
tenantIdstringNie
urlIdstringNie
pagenumberNie
directionSortDirectionsNie
lastGenDatenumberNie
repliesToUserIdstringNie
fetchPageForCommentIdstringNie
includei10nbooleanNie
useFullTranslationIdsbooleanNie
localestringNie
includeConfigbooleanNie
includeNotificationCountbooleanNie
countAllbooleanNie
ssostringNie

Odpowiedź

Zwraca: GetCommentsForUserResponse

Przykład

Przykład getCommentsForUser
Copy Copy
1
2const userId: string = 'user_82f9b';
3const tenantId: string = 'tenant_22';
4const page: number = 2;
5const lastGenDate: number = Date.now();
6const includei10n: boolean = true;
7const useFullTranslationIds: boolean = false;
8const locale: string = 'en-US';
9const includeConfig: boolean = true;
10const includeNotificationCount: boolean = true;
11const countAll: boolean = false;
12const sso: string = 'sso-token-1a2b';
13const commentsResponse: GetCommentsForUserResponse = await getCommentsForUser(userId, tenantId, undefined, page, undefined, lastGenDate, undefined, undefined, includei10n, useFullTranslationIds, locale, includeConfig, includeNotificationCount, countAll, sso);
14

addDomainConfig Internal Link


Parametry

NazwaTypWymaganeOpis
tenantIdstringTak
addDomainConfigParamsAddDomainConfigParamsTak

Odpowiedź

Zwraca: AddDomainConfig200Response


deleteDomainConfig Internal Link


Parametry

NazwaTypWymaganeOpis
tenantIdstringTak
domainstringTak

Odpowiedź

Zwraca: DeleteDomainConfig200Response


getDomainConfig Internal Link

Parametry

NazwaTypWymaganeOpis
tenantIdstringTak
domainstringTak

Odpowiedź

Zwraca: GetDomainConfig200Response


getDomainConfigs Internal Link

Parametry

NazwaTypWymaganeOpis
tenantIdstringTak

Odpowiedź

Zwraca: GetDomainConfigs200Response


patchDomainConfig Internal Link


Parametry

NazwaTypWymaganeOpis
tenantIdstringTak
domainToUpdatestringTak
patchDomainConfigParamsPatchDomainConfigParamsTak

Odpowiedź

Zwraca: GetDomainConfig200Response


putDomainConfig Internal Link

Parametry

NazwaTypWymaganeOpis
tenantIdstringTak
domainToUpdatestringTak
updateDomainConfigParamsUpdateDomainConfigParamsTak

Odpowiedź

Zwraca: GetDomainConfig200Response


createEmailTemplate Internal Link

Parametry

NazwaTypWymaganeOpis
tenantIdstringTak
createEmailTemplateBodyCreateEmailTemplateBodyTak

Odpowiedź

Zwraca: CreateEmailTemplate200Response

Przykład

Przykład createEmailTemplate
Copy Copy
1
2(async () => {
3 const tenantId: string = 'tenant_9f4a2b';
4 const createEmailTemplateBody: CreateEmailTemplateBody = {
5 name: 'Weekly Digest',
6 subject: 'Your weekly discussion highlights',
7 html: '<!doctype html><body><h1>Hello \{{user.name}}</h1><p>Top comments this week...</p></body>',
8 fromAddress: 'no-reply@fastcomments-example.com',
9 replyTo: 'moderation@fastcomments-example.com',
10 isDefault: false
11 };
12 const result: CreateEmailTemplate200Response = await createEmailTemplate(tenantId, createEmailTemplateBody);
13 console.log(result);
14})();
15

deleteEmailTemplate Internal Link

Parametry

NameTypeRequiredDescription
tenantIdstringTak
idstringTak

Odpowiedź

Zwraca: FlagCommentPublic200Response

Przykład

Przykład deleteEmailTemplate
Copy Copy
1
2const tenantId: string = "acme-corp-42";
3const idSuffix: string | undefined = "-archived";
4const templateId: string = "email_tmpl_6a1b2c" + (idSuffix ?? "");
5const result: FlagCommentPublic200Response = await deleteEmailTemplate(tenantId, templateId);
6

deleteEmailTemplateRenderError Internal Link

Parametry

NazwaTypWymaganeOpis
tenantIdstringTak
idstringTak
errorIdstringTak

Odpowiedź

Zwraca: FlagCommentPublic200Response

Przykład

Przykład deleteEmailTemplateRenderError
Copy Copy
1
2const tenantId: string = "tenant_7a1d2f9b";
3const id: string = "email_template_42b1";
4const errorId: string = "render_err_2026-04-24_7f3c";
5const includeStackTrace: boolean | undefined = undefined; // przykładowa opcjonalna flaga
6
7const response: FlagCommentPublic200Response = await deleteEmailTemplateRenderError(tenantId, id, errorId);
8// Gdyby obsługiwano opcjonalny obiekt opcji, mógłby wyglądać tak:
9// await deleteEmailTemplateRenderError(tenantId, id, errorId /*, { includeStackTrace } */);
10

getEmailTemplate Internal Link

Parametry

NazwaTypWymaganeOpis
tenantIdstringTak
idstringTak

Odpowiedź

Zwraca: GetEmailTemplate200Response

Przykład

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

getEmailTemplateDefinitions Internal Link

Parametry

NazwaTypWymaganeOpis
tenantIdstringTak

Odpowiedź

Zwraca: GetEmailTemplateDefinitions200Response

Przykład

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

getEmailTemplateRenderErrors Internal Link

Parametry

NazwaTypWymaganeOpis
tenantIdstringTak
idstringTak
skipnumberNie

Odpowiedź

Zwraca: GetEmailTemplateRenderErrors200Response

Przykład

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

getEmailTemplates Internal Link

Parameters

NameTypeRequiredDescription
tenantIdstringTak
skipnumberNie

Response

Zwraca: GetEmailTemplates200Response

Przykład

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

renderEmailTemplate Internal Link

Parametry

NameTypeRequiredDescription
tenantIdstringTak
renderEmailTemplateBodyRenderEmailTemplateBodyTak
localestringNie

Odpowiedź

Zwraca: RenderEmailTemplate200Response

Przykład

Przykład renderEmailTemplate
Copy Copy
1
2const tenantId: string = 'acme-corp-987';
3const renderEmailTemplateBody: RenderEmailTemplateBody = {
4 templateId: 'user-invite',
5 subject: "You're invited to Acme",
6 placeholders: { firstName: 'Alex' },
7 metadata: { source: 'signup-flow' }
8};
9const locale: string = 'en-US';
10const result: RenderEmailTemplate200Response = await renderEmailTemplate(tenantId, renderEmailTemplateBody, locale);
11

updateEmailTemplate Internal Link

Parametry

NazwaTypWymaganeOpis
tenantIdstringTak
idstringTak
updateEmailTemplateBodyUpdateEmailTemplateBodyTak

Odpowiedź

Zwraca: FlagCommentPublic200Response

Przykład

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

getEventLog Internal Link

req tenantId urlId userIdWS

Parametry

NameTypeRequiredDescription
tenantIdstringTak
urlIdstringTak
userIdWSstringTak
startTimenumberTak
endTimenumberTak

Odpowiedź

Zwraca: GetEventLog200Response

Przykład

Przykład getEventLog
Copy Copy
1
2const tenantId: string = 'fastcomments-tenant-01';
3const urlId: string = 'article-2026-03-25';
4const userIdWS: string | undefined = undefined; // opcjonalna wartość pochodząca z upstream
5const startTime: number = Date.parse('2026-03-01T00:00:00Z');
6const endTime: number = Date.parse('2026-03-25T23:59:59Z');
7
8const eventLogResponse: GetEventLog200Response = await getEventLog(
9 tenantId,
10 urlId,
11 userIdWS ?? 'ws_user_8b1f',
12 startTime,
13 endTime
14);
15

getGlobalEventLog Internal Link

req tenantId urlId userIdWS

Parametry

NameTypeRequiredDescription
tenantIdstringTak
urlIdstringTak
userIdWSstringTak
startTimenumberTak
endTimenumberTak

Odpowiedź

Zwraca: GetEventLog200Response

Przykład

Przykład getGlobalEventLog
Copy Copy
1
2const tenantId: string = "tenant-84b2f1";
3const urlId: string = "article-6721";
4const userIdWS: string = "ws-conn-9a3c";
5const startTime: number = Date.now() - 7 * 24 * 60 * 60 * 1000; // 7 dni temu
6const endTimeOptional: number | undefined = undefined; // opcjonalny koniec zakresu czasowego
7const endTime: number = endTimeOptional ?? Date.now();
8const eventLog: GetEventLog200Response = await getGlobalEventLog(tenantId, urlId, userIdWS, startTime, endTime);
9

createFeedPost Internal Link

Parametry

NazwaTypWymaganeOpis
tenantIdstringTak
createFeedPostParamsCreateFeedPostParamsTak
broadcastIdstringNie
isLivebooleanNie
doSpamCheckbooleanNie
skipDupCheckbooleanNie

Odpowiedź

Zwraca: CreateFeedPost200Response

Przykład

Przykład createFeedPost
Copy Copy
1
2const tenantId: string = 'tenant_87f3b2';
3const mediaAsset: FeedPostMediaItemAsset = { url: 'https://cdn.example.com/images/post-123.jpg', mimeType: 'image/jpeg', width: 1200, height: 800, size: 245000 };
4const mediaItem: FeedPostMediaItem = { id: 'media_1', type: 'image', assets: [mediaAsset], altText: 'Conference keynote stage' };
5const link: FeedPostLink = { url: 'https://news.example.com/keynote-recap', title: 'Keynote recap' };
6const createFeedPostParams: CreateFeedPostParams = {
7 title: 'Product Launch Highlights',
8 content: 'Highlights from today’s product launch and roadmap updates.',
9 authorId: 'user_42',
10 mediaItems: [mediaItem],
11 links: [link],
12 tags: ['product', 'launch', 'announcement']
13};
14const broadcastId: string = 'broadcast_20260424';
15const isLive: boolean = true;
16const doSpamCheck: boolean = true;
17const skipDupCheck: boolean = false;
18const result: CreateFeedPost200Response = await createFeedPost(tenantId, createFeedPostParams, broadcastId, isLive, doSpamCheck, skipDupCheck);
19

createFeedPostPublic Internal Link

Parametry

NazwaTypWymaganeOpis
tenantIdstringTak
createFeedPostParamsCreateFeedPostParamsTak
broadcastIdstringNie
ssostringNie

Odpowiedź

Zwraca: CreateFeedPostPublic200Response

Przykład

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

deleteFeedPostPublic Internal Link

Parametry

NazwaTypWymaganeOpis
tenantIdstringTak
postIdstringTak
broadcastIdstringNie
ssostringNie

Odpowiedź

Zwraca: DeleteFeedPostPublic200Response

Przykład

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

getFeedPosts Internal Link

req tenantId afterId

Parametry

NazwaTypWymaganeOpis
tenantIdstringTak
afterIdstringNie
limitnumberNie
tagsArrayNie

Odpowiedź

Zwraca: GetFeedPosts200Response

Przykład

Przykład użycia getFeedPosts
Copy Copy
1
2const initialPage: GetFeedPosts200Response = await getFeedPosts('tenant_9f1b3d', undefined, 20, ['sports', 'local']);
3const nextPage: GetFeedPosts200Response = await getFeedPosts('tenant_9f1b3d', 'post_abc123', 20, ['sports', 'local']);
4

getFeedPostsPublic Internal Link

req tenantId afterId

Parametry

NameTypeRequiredDescription
tenantIdstringTak
afterIdstringNie
limitnumberNie
tagsArrayNie
ssostringNie
isCrawlerbooleanNie
includeUserInfobooleanNie

Odpowiedź

Zwraca: GetFeedPostsPublic200Response

Przykład

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

getFeedPostsStats Internal Link

Parametry

NazwaTypWymaganeOpis
tenantIdstringTak
postIdsArrayTak
ssostringNie

Odpowiedź

Zwraca: GetFeedPostsStats200Response

Przykład

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

getUserReactsPublic Internal Link

Parametry

NameTypeRequiredDescription
tenantIdstringTak
postIdsArrayNie
ssostringNie

Odpowiedź

Zwraca: GetUserReactsPublic200Response

Przykład

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

reactFeedPostPublic Internal Link

Parametry

NazwaTypWymaganeOpis
tenantIdstringTak
postIdstringTak
reactBodyParamsReactBodyParamsTak
isUndobooleanNie
broadcastIdstringNie
urlIdstringNie
ssostringNie

Odpowiedź

Zwraca: ReactFeedPostPublic200Response

Przykład

Przykład reactFeedPostPublic
Copy Copy
1
2const tenantId: string = "global-markets";
3const postId: string = "8e2c3f9a-4b6d-4f1a-9c2d-e8a1b2c3d4e5";
4const reactBodyParams: ReactBodyParams = { reactionType: "like", clientApp: "web-ui", timestamp: new Date().toISOString() };
5const isUndo: boolean = false;
6const broadcastId: string = "broadcast-2026-05-20";
7const urlId: string = "feed-post-8e2c";
8const sso: string = "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.fake.payload";
9
10const result: ReactFeedPostPublic200Response = await reactFeedPostPublic(tenantId, postId, reactBodyParams, isUndo, broadcastId, urlId, sso);
11

updateFeedPost Internal Link

Parametry

NameTypeWymaganeOpis
tenantIdstringTak
idstringTak
feedPostFeedPostTak

Odpowiedź

Zwraca: FlagCommentPublic200Response

Przykład

Przykład updateFeedPost
Copy Copy
1
2const tenantId: string = 'acme-global-tenant-42';
3const id: string = 'f47ac10b-58cc-4372-a567-0e02b2c3d479';
4
5const asset: FeedPostMediaItemAsset = {
6 url: 'https://cdn.acme.com/images/product-launch.jpg',
7 mimeType: 'image/jpeg',
8 width: 1200,
9 height: 630
10};
11
12const mediaItem: FeedPostMediaItem = {
13 id: 'media-001',
14 type: 'image',
15 asset
16};
17
18const link: FeedPostLink = {
19 url: 'https://acme.com/blog/product-launch',
20 title: 'Product Launch Details'
21};
22
23const feedPost: FeedPost = {
24 title: 'Introducing the Q3 Product Suite',
25 body: 'We are excited to unveil our new lineup for Q3, focusing on performance and security improvements.',
26 media: [mediaItem], // opcjonalna tablica dołączona
27 links: [link], // opcjonalne linki dołączone
28 isPublished: true // opcjonalna flaga publikacji użyta tutaj
29};
30
31const result: FlagCommentPublic200Response = await updateFeedPost(tenantId, id, feedPost);
32

updateFeedPostPublic Internal Link

Parametry

NazwaTypWymaganeOpis
tenantIdstringTak
postIdstringTak
updateFeedPostParamsUpdateFeedPostParamsTak
broadcastIdstringNie
ssostringNie

Odpowiedź

Zwraca: CreateFeedPostPublic200Response

Przykład

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

flagCommentPublic Internal Link

Parametry

NazwaTypWymaganeOpis
tenantIdstringTak
commentIdstringTak
isFlaggedbooleanTak
ssostringNie

Odpowiedź

Zwraca: FlagCommentPublic200Response

Przykład

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

getGifLarge Internal Link

Parametry

NazwaTypWymaganeOpis
tenantIdstringTak
largeInternalURLSanitizedstringTak

Odpowiedź

Zwraca: GifGetLargeResponse

Przykład

Przykład getGifLarge
Copy Copy
1
2const tenantId: string = 'tenant_8a92f4';
3const largeInternalURLSanitized: string = 'https://cdn.streamingco.com/gifs/product-demo-large.gif';
4let maybeStatus: APIStatus | undefined = undefined; // optional metadata when available
5const response: GifGetLargeResponse = await getGifLarge(tenantId, largeInternalURLSanitized);
6

getGifsSearch Internal Link

Parametry

NazwaTypWymaganeOpis
tenantIdstringTak
searchstringTak
localestringNie
ratingstringNie
pagenumberNie

Odpowiedź

Zwraca: GifSearchResponse

Przykład

Przykład użycia getGifsSearch
Copy Copy
1
2(async () => {
3 const tenantId: string = "global-media";
4 const search: string = "laughing baby";
5 const locale: string = "en-US";
6 const rating: string = "pg";
7 const page: number = 2;
8 const result: GifSearchResponse = await getGifsSearch(tenantId, search, locale, rating, page);
9 console.log(result);
10})();
11

getGifsTrending Internal Link

Parametry

NazwaTypWymaganeOpis
tenantIdstringTak
localestringNie
ratingstringNie
pagenumberNie

Odpowiedź

Zwraca: GifSearchResponse

Przykład

Przykład getGifsTrending
Copy Copy
1
2const tenantId: string = 'tenant_42';
3const locale: string = 'en-US';
4const rating: string = 'PG';
5const page: number = 1;
6const result: GifSearchResponse = await getGifsTrending(tenantId, locale, rating, page);
7

addHashTag Internal Link


Parametry

NazwaTypWymaganeOpis
tenantIdstringNie
createHashTagBodyCreateHashTagBodyNie

Odpowiedź

Zwraca: AddHashTag200Response

Przykład

Przykład użycia addHashTag
Copy Copy
1
2const tenantId: string | undefined = undefined;
3const createHashTagBody: CreateHashTagBody = {
4 name: 'release-2026',
5 description: 'Feedback and bug reports for the April 2026 product release',
6 synonyms: ['v2-release', 'launch-2026'],
7 color: '#1d72b8',
8 isActive: true,
9 createdBy: 'product.manager@acme-corp.com'
10};
11const result: AddHashTag200Response = await addHashTag(tenantId, createHashTagBody);
12

addHashTagsBulk Internal Link

Parametry

NazwaTypWymaganeOpis
tenantIdstringNie
bulkCreateHashTagsBodyBulkCreateHashTagsBodyNie

Odpowiedź

Zwraca: AddHashTagsBulk200Response

Przykład

Przykład addHashTagsBulk
Copy Copy
1
2const tenantId: string = 'tenant_acme_corp_01';
3const bulkCreateHashTagsBody: BulkCreateHashTagsBody = {
4 tags: [
5 { name: 'feature-request', slug: 'feature-request', description: 'Requests for new capabilities', isActive: true, customConfig: { visibility: 'public' } as unknown as CustomConfigParameters }
6 ]
7};
8const addHashTagsResponse: AddHashTagsBulk200Response = await addHashTagsBulk(tenantId, bulkCreateHashTagsBody);
9
10const bulkCreateHashTagsBodyNoTenant: BulkCreateHashTagsBody = {
11 tags: [
12 { name: 'ux-feedback', slug: 'ux-feedback', description: 'User experience suggestions', isActive: true }
13 ]
14};
15const addHashTagsResponseNoTenant: AddHashTagsBulk200Response = await addHashTagsBulk(undefined, bulkCreateHashTagsBodyNoTenant);
16

deleteHashTag Internal Link

Parametry

NazwaTypWymaganeOpis
tagstringTak
tenantIdstringNie
deleteHashTagRequestDeleteHashTagRequestNie

Odpowiedź

Zwraca: FlagCommentPublic200Response

Przykład

Przykład deleteHashTag
Copy Copy
1
2const tag: string = "spring-sale-2026";
3const tenantId: string = "tenant-9876";
4const deleteHashTagRequest: DeleteHashTagRequest = {
5 requestedBy: "admin@retailco.com",
6 reason: "Campaign ended; remove associated auto-tags",
7 cascadeDelete: true
8};
9const result: FlagCommentPublic200Response = await deleteHashTag(tag, tenantId, deleteHashTagRequest);
10

getHashTags Internal Link

Parametry

NameTypeRequiredDescription
tenantIdstringTak
pagenumberNie

Odpowiedź

Zwraca: GetHashTags200Response

Przykład

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

patchHashTag Internal Link

Parametry

NameTypeRequiredDescription
tagstringTak
tenantIdstringNie
updateHashTagBodyUpdateHashTagBodyNie

Odpowiedź

Zwraca: PatchHashTag200Response

Przykład

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

createModerator Internal Link

Parametry

NazwaTypWymaganeOpis
tenantIdstringTak
createModeratorBodyCreateModeratorBodyTak

Odpowiedź

Zwraca: CreateModerator200Response

Przykład

Przykład createModerator
Copy Copy
1
2const tenantId: string = "tenant_8f3b6c";
3const optionalConfig: CustomConfigParameters = { moderationThreshold: 5, escalateOnRepeatedOffenses: true };
4const newModerator: CreateModeratorBody = {
5 email: "lina.gomez@dailynews.com",
6 fullName: "Lina Gomez",
7 role: "senior_moderator",
8 enabled: true,
9 notifyByEmail: true,
10 customConfig: optionalConfig
11};
12const response: CreateModerator200Response = await createModerator(tenantId, newModerator);
13

deleteModerator Internal Link

Parametry

NazwaTypWymaganeOpis
tenantIdstringTak
idstringTak
sendEmailstringNie

Odpowiedź

Zwraca: FlagCommentPublic200Response

Przykład

Przykład deleteModerator
Copy Copy
1
2const tenantId: string = 'tenant_9f8b7c6d';
3const id: string = 'mod_4a3e11ec9d1f0242ac120003';
4const sendEmail: string = 'true';
5const result: FlagCommentPublic200Response = await deleteModerator(tenantId, id, sendEmail);
6

getModerator Internal Link

Parametry

NazwaTypWymaganeOpis
tenantIdstringTak
idstringTak

Odpowiedź

Zwraca: GetModerator200Response

Przykład

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

getModerators Internal Link


Parametry

NazwaTypWymaganeOpis
tenantIdstringTak
skipnumberNie

Odpowiedź

Zwraca: GetModerators200Response

Przykład

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

sendInvite Internal Link

Parametry

NazwaTypWymaganeOpis
tenantIdstringTak
idstringTak
fromNamestringTak

Odpowiedź

Zwraca: FlagCommentPublic200Response

Przykład

Przykład użycia sendInvite
Copy Copy
1
2const tenantId: string = 'acme-corp-128';
3const id: string = 'comment-8421f';
4const fromName: string = 'Marcus Lindström';
5const note: string | undefined = undefined; // przykład opcjonalnego parametru
6const response: FlagCommentPublic200Response = await sendInvite(tenantId, id, fromName);
7

updateModerator Internal Link

Parametry

NazwaTypWymaganeOpis
tenantIdstringTak
idstringTak
updateModeratorBodyUpdateModeratorBodyTak

Odpowiedź

Zwraca: FlagCommentPublic200Response

Przykład

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

deleteNotificationCount Internal Link

Parametry

NazwaTypWymaganeOpis
tenantIdstringYes
idstringYes

Odpowiedź

Zwraca: FlagCommentPublic200Response

Przykład

Przykład deleteNotificationCount
Copy Copy
1
2const tenantId: string = "org-72a8f1b9";
3const id: string = "notif-8f9c2e4a";
4const result: FlagCommentPublic200Response = await deleteNotificationCount(tenantId, id);
5console.log(result);
6

getCachedNotificationCount Internal Link

Parametry

NazwaTypWymaganeOpis
tenantIdstringTak
idstringTak

Odpowiedź

Zwraca: GetCachedNotificationCount200Response

Przykład

Przykład getCachedNotificationCount
Copy Copy
1
2const tenantId: string = 'tenant_acme_42';
3const id: string = 'user_00012345';
4const includeUnreadOnly: boolean | undefined = true; // opcjonalna flaga parametru (zademonstrowana)
5const result: GetCachedNotificationCount200Response = await getCachedNotificationCount(tenantId, id);
6

getNotificationCount Internal Link

Parametry

NazwaTypWymaganeOpis
tenantIdstringTak
userIdstringNie
urlIdstringNie
fromCommentIdstringNie
viewedbooleanNie
typestringNie

Odpowiedź

Zwraca: GetNotificationCount200Response

Przykład

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

getNotifications Internal Link

Parametry

NazwaTypWymaganeOpis
tenantIdstringTak
userIdstringNie
urlIdstringNie
fromCommentIdstringNie
viewedbooleanNie
typestringNie
skipnumberNie

Odpowiedź

Zwraca: GetNotifications200Response

Przykład

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

updateNotification Internal Link

Parametry

NazwaTypWymaganeOpis
tenantIdstringTak
idstringTak
updateNotificationBodyUpdateNotificationBodyTak
userIdstringNie

Odpowiedź

Zwraca: FlagCommentPublic200Response

Przykład

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

addPage Internal Link

Parametry

NazwaTypWymaganeOpis
tenantIdstringTak
createAPIPageDataCreateAPIPageDataTak

Odpowiedź

Zwraca: AddPageAPIResponse


deletePage Internal Link

Parametry

NazwaTypWymaganeOpis
tenantIdstringTak
idstringTak

Odpowiedź

Zwraca: DeletePageAPIResponse


getPageByURLId Internal Link

Parametry

NazwaTypWymaganeOpis
tenantIdstringTak
urlIdstringTak

Odpowiedź

Zwraca: GetPageByURLIdAPIResponse


getPages Internal Link


Parametry

NazwaTypWymaganeOpis
tenantIdstringTak

Odpowiedź

Zwraca: GetPagesAPIResponse


patchPage Internal Link


Parametry

NazwaTypWymaganeOpis
tenantIdstringTak
idstringTak
updateAPIPageDataUpdateAPIPageDataTak

Odpowiedź

Zwraca: PatchPageAPIResponse


deletePendingWebhookEvent Internal Link

Parametry

NazwaTypWymaganeOpis
tenantIdstringTak
idstringTak

Odpowiedź

Zwraca: FlagCommentPublic200Response

Przykład

Przykład deletePendingWebhookEvent
Copy Copy
1
2const tenantId: string = "tenant_7f3b2a";
3const webhookEventId: string = "wh_evt_9a8c7d1234";
4const dryRun: boolean | undefined = undefined; // opcjonalna flaga (nie jest wymagana przez to wywołanie)
5const result: FlagCommentPublic200Response = await deletePendingWebhookEvent(tenantId, webhookEventId);
6

getPendingWebhookEventCount Internal Link

Parametry

NazwaTypWymaganeOpis
tenantIdstringTak
commentIdstringNie
externalIdstringNie
eventTypestringNie
typestringNie
domainstringNie
attemptCountGTnumberNie

Odpowiedź

Zwraca: GetPendingWebhookEventCount200Response

Przykład

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

getPendingWebhookEvents Internal Link

Parametry

NazwaTypWymaganeOpis
tenantIdstringTak
commentIdstringNie
externalIdstringNie
eventTypestringNie
typestringNie
domainstringNie
attemptCountGTnumberNie
skipnumberNie

Odpowiedź

Zwraca: GetPendingWebhookEvents200Response

Przykład

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

createQuestionConfig Internal Link

Parametry

NazwaTypWymaganeOpis
tenantIdstringTak
createQuestionConfigBodyCreateQuestionConfigBodyTak

Odpowiedź

Zwraca: CreateQuestionConfig200Response

Przykład

Przykład createQuestionConfig
Copy Copy
1
2const tenantId: string = "tenant_acme_01";
3const createQuestionConfigBody: CreateQuestionConfigBody = {
4 title: "Post-purchase feedback",
5 description: "Quick survey about your recent order",
6 required: true,
7 renderingType: "single_choice",
8 options: [
9 { label: "Very dissatisfied", value: "1" },
10 { label: "Dissatisfied", value: "2" },
11 { label: "Neutral", value: "3" },
12 { label: "Satisfied", value: "4" },
13 { label: "Very satisfied", value: "5" }
14 ] as QuestionConfigCustomOptionsInner[]
15} as CreateQuestionConfigBody;
16const result: CreateQuestionConfig200Response = await createQuestionConfig(tenantId, createQuestionConfigBody);
17

deleteQuestionConfig Internal Link

Parametry

NazwaTypWymaganeOpis
tenantIdstringTak
idstringTak

Odpowiedź

Zwraca: FlagCommentPublic200Response

Przykład

Przykład deleteQuestionConfig
Copy Copy
1
2const tenantId: string = "tenant_42fa9b7c";
3const id: string = "qcfg-0f8fad5b-d9cb-469f-a165-70867728950e";
4const result: FlagCommentPublic200Response = await deleteQuestionConfig(tenantId, id);
5

getQuestionConfig Internal Link

Parametry

NazwaTypWymaganeOpis
tenantIdstringTak
idstringTak

Odpowiedź

Zwraca: GetQuestionConfig200Response

Przykład

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

getQuestionConfigs Internal Link


Parametry

NazwaTypWymaganeOpis
tenantIdstringTak
skipnumberNie

Odpowiedź

Zwraca: GetQuestionConfigs200Response

Przykład

Przykład użycia getQuestionConfigs
Copy Copy
1
2const tenantId: string = "tenant_acme_9876";
3const configsWithoutSkip: GetQuestionConfigs200Response = await getQuestionConfigs(tenantId);
4const configsWithSkip: GetQuestionConfigs200Response = await getQuestionConfigs(tenantId, 20);
5

updateQuestionConfig Internal Link

Parametry

NameTypeRequiredDescription
tenantIdstringTak
idstringTak
updateQuestionConfigBodyUpdateQuestionConfigBodyTak

Odpowiedź

Zwraca: FlagCommentPublic200Response

Przykład

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

createQuestionResult Internal Link


Parametry

NameTypeRequiredDescription
tenantIdstringTak
createQuestionResultBodyCreateQuestionResultBodyTak

Odpowiedź

Zwraca: CreateQuestionResult200Response

Przykład

Przykład createQuestionResult
Copy Copy
1
2const tenantId: string = 'fastcomments-tenant-01';
3const createQuestionResultBody: CreateQuestionResultBody = {
4 questionId: 'q-34567',
5 respondentId: 'user-8923',
6 answers: [{ optionId: 'opt_A', text: 'Agree', count: 1 }],
7 score: 5,
8 meta: [{ key: 'platform', value: 'web' }],
9 notifyModerators: false // opcjonalny parametr
10} as CreateQuestionResultBody;
11const result: CreateQuestionResult200Response = await createQuestionResult(tenantId, createQuestionResultBody);
12

deleteQuestionResult Internal Link

Parametry

NazwaTypWymaganeOpis
tenantIdstringTak
idstringTak

Odpowiedź

Zwraca: FlagCommentPublic200Response

Przykład

Przykład deleteQuestionResult
Copy Copy
1
2const tenantIdEnv: string | undefined = process.env.FASTCOMMENTS_TENANT_ID;
3const tenantId: string = tenantIdEnv ?? 'tenant_78b3f2';
4const id: string = 'qres-9f2a3b1c';
5const response: FlagCommentPublic200Response = await deleteQuestionResult(tenantId, id);
6

getQuestionResult Internal Link

Parametry

NameTypeRequiredDescription
tenantIdstringTak
idstringTak

Odpowiedź

Zwraca: GetQuestionResult200Response

Przykład

Przykład użycia getQuestionResult
Copy Copy
1
2const tenantId: string = 'acme-corp-42';
3const id: string = 'question-9f8b7c';
4const includeComments: boolean | undefined = true; // przykład opcjonalnego parametru
5const result: GetQuestionResult200Response = await getQuestionResult(tenantId, id);
6console.log(result);
7

getQuestionResults Internal Link


Parametry

NazwaTypWymaganeOpis
tenantIdstringTak
urlIdstringNie
userIdstringNie
startDatestringNie
questionIdstringNie
questionIdsstringNie
skipnumberNie

Odpowiedź

Zwraca: GetQuestionResults200Response

Przykład

Przykład getQuestionResults
Copy Copy
1
2(async () => {
3 const tenantId: string = "tenant_9b3f";
4 const urlId: string = "survey-2026-spring";
5 const userId: string = "user_00123";
6 const startDate: string = "2026-04-01T00:00:00Z";
7 const questionIds: string = "q_42,q_43";
8 const skip: number = 0;
9 const result: GetQuestionResults200Response = await getQuestionResults(tenantId, urlId, userId, startDate, undefined, questionIds, skip);
10 console.log(result);
11})();
12

updateQuestionResult Internal Link

Parametry

NazwaTypWymaganeOpis
tenantIdstringTak
idstringTak
updateQuestionResultBodyUpdateQuestionResultBodyTak

Odpowiedź

Zwraca: FlagCommentPublic200Response

Przykład

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

aggregateQuestionResults Internal Link

Parametry

NameTypeRequiredDescription
tenantIdstringTak
questionIdstringNie
questionIdsArrayNie
urlIdstringNie
timeBucketAggregateTimeBucketNie
startDateDateNie
forceRecalculatebooleanNie

Odpowiedź

Zwraca: AggregateQuestionResults200Response

Przykład

Przykład aggregateQuestionResults
Copy Copy
1
2const tenantId: string = "tenant_acme_001";
3const questionIds: string[] = ["q-2026-sales", "q-2026-support"];
4const urlId: string = "url_7f2c";
5const timeBucket: AggregateTimeBucket = { unit: "week", size: 1 };
6const startDate: Date = new Date("2026-01-01T00:00:00Z");
7const forceRecalculate: boolean = true;
8
9const result: AggregateQuestionResults200Response = await aggregateQuestionResults(
10 tenantId,
11 undefined,
12 questionIds,
13 urlId,
14 timeBucket,
15 startDate,
16 forceRecalculate
17);
18

bulkAggregateQuestionResults Internal Link

Parametry

NameTypeWymaganeOpis
tenantIdstringTak
bulkAggregateQuestionResultsRequestBulkAggregateQuestionResultsRequestTak
forceRecalculatebooleanNie

Odpowiedź

Zwraca: BulkAggregateQuestionResults200Response

Przykład

Przykład bulkAggregateQuestionResults
Copy Copy
1
2const tenantId: string = "tenant_acme_42";
3const bulkAggregateQuestionResultsRequest: BulkAggregateQuestionResultsRequest = {
4 questions: [
5 { questionId: "q-001", threadId: "thread-1001", questionType: "rating" },
6 { questionId: "q-002", threadId: "thread-1002", questionType: "yes_no" }
7 ],
8 timeRange: { from: "2026-03-01T00:00:00Z", to: "2026-04-01T00:00:00Z" },
9 groupBy: ["questionId", "threadId"]
10};
11const forceRecalculate: boolean = true;
12const result: BulkAggregateQuestionResults200Response = await bulkAggregateQuestionResults(tenantId, bulkAggregateQuestionResultsRequest, forceRecalculate);
13

combineCommentsWithQuestionResults Internal Link

Parametry

NazwaTypWymaganeOpis
tenantIdstringTak
questionIdstringNie
questionIdsArrayNie
urlIdstringNie
startDateDateNie
forceRecalculatebooleanNie
minValuenumberNie
maxValuenumberNie
limitnumberNie

Odpowiedź

Zwraca: CombineCommentsWithQuestionResults200Response

Przykład

Przykład combineCommentsWithQuestionResults
Copy Copy
1
2const tenantId: string = 'tenant-acme-001';
3const questionId: string | undefined = 'q-analytics-42';
4const questionIds: string[] | undefined = ['q-analytics-42', 'q-feedback-17'];
5const urlId: string | undefined = 'url-987654';
6const startDate: Date | undefined = new Date('2026-01-01T00:00:00Z');
7const forceRecalculate: boolean | undefined = true;
8const minValue: number | undefined = 1;
9const maxValue: number | undefined = 5;
10const limit: number | undefined = 250;
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


Parametry

NazwaTypWymaganeOpis
tenantIdstringTak
createAPISSOUserDataCreateAPISSOUserDataTak

Odpowiedź

Zwraca: AddSSOUserAPIResponse


deleteSSOUser Internal Link

Parametry

NazwaTypWymaganeOpis
tenantIdstringTak
idstringTak
deleteCommentsbooleanNie
commentDeleteModestringNie

Odpowiedź

Zwraca: DeleteSSOUserAPIResponse

getSSOUserByEmail Internal Link

Parametry

NazwaTypWymaganeOpis
tenantIdstringTak
emailstringTak

Odpowiedź

Zwraca: GetSSOUserByEmailAPIResponse


getSSOUserById Internal Link

Parametry

NazwaTypWymaganeOpis
tenantIdstringTak
idstringTak

Odpowiedź

Zwraca: GetSSOUserByIdAPIResponse


getSSOUsers Internal Link

Parametry

NazwaTypWymaganeOpis
tenantIdstringTak
skipnumberNie

Odpowiedź

Zwraca: GetSSOUsers200Response


patchSSOUser Internal Link


Parametry

NazwaTypWymaganeOpis
tenantIdstringTak
idstringTak
updateAPISSOUserDataUpdateAPISSOUserDataTak
updateCommentsbooleanNie

Odpowiedź

Zwraca: PatchSSOUserAPIResponse


putSSOUser Internal Link


Parametry

NameTypeRequiredDescription
tenantIdstringTak
idstringTak
updateAPISSOUserDataUpdateAPISSOUserDataTak
updateCommentsbooleanNie

Odpowiedź

Zwraca: PutSSOUserAPIResponse

Przykład

Przykład użycia 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

Parametry

NazwaTypWymaganeOpis
tenantIdstringTak
createAPIUserSubscriptionDataCreateAPIUserSubscriptionDataTak

Odpowiedź

Zwraca: CreateSubscriptionAPIResponse

Przykład

Przykład 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, // przykładowy parametr opcjonalny
9 metadata: { campaign: "spring_launch" } // przykładowy parametr opcjonalny
10};
11const result: CreateSubscriptionAPIResponse = await createSubscription(tenantId, createAPIUserSubscriptionData);
12

deleteSubscription Internal Link

Parametry

NazwaTypWymaganeOpis
tenantIdstringTak
idstringTak
userIdstringNie

Odpowiedź

Zwraca: DeleteSubscriptionAPIResponse


getSubscriptions Internal Link

Parametry

NazwaTypWymaganeOpis
tenantIdstringTak
userIdstringNie

Odpowiedź

Zwraca: GetSubscriptionsAPIResponse

Przykład

Przykład użycia 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

Parametry

NameTypeRequiredDescription
tenantIdstringYes
idstringYes
updateAPIUserSubscriptionDataUpdateAPIUserSubscriptionDataYes
userIdstringNo

Odpowiedź

Zwraca: UpdateSubscriptionAPIResponse

Przykład

Przykład updateSubscription
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

Parameters

NazwaTypWymaganeOpis
tenantIdstringTak
yearNumbernumberNie
monthNumbernumberNie
dayNumbernumberNie
skipnumberNie

Odpowiedź

Zwraca: GetTenantDailyUsages200Response

Przykład

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

createTenantPackage Internal Link

Parametry

NazwaTypWymaganeOpis
tenantIdstringTak
createTenantPackageBodyCreateTenantPackageBodyTak

Odpowiedź

Zwraca: CreateTenantPackage200Response

Przykład

Przykład createTenantPackage
Copy Copy
1
2const tenantId: string = "tenant_acme-corp_001";
3const createTenantPackageBody: CreateTenantPackageBody = {
4 name: "Acme Standard Package",
5 description: "Default package for Acme Corp comments with moderation and SSO enabled",
6 enabled: true,
7 maxCommentsPerThread: 500,
8 voteStyle: "thumbs",
9 gifRating: "PG-13",
10 tosConfig: { enabled: true, url: "https://acme.example.com/terms" } // parametr opcjonalny (przykład)
11};
12const result: CreateTenantPackage200Response = await createTenantPackage(tenantId, createTenantPackageBody);
13

deleteTenantPackage Internal Link

Parametry

NazwaTypWymaganeOpis
tenantIdstringTak
idstringTak

Odpowiedź

Zwraca: FlagCommentPublic200Response

Przykład

Przykład deleteTenantPackage
Copy Copy
1
2(async () => {
3 const tenantId: string = "tenant_8f3a2b4c9d01";
4 const packageId: string = "pkg_2026-04-security-patch";
5 const result: FlagCommentPublic200Response = await deleteTenantPackage(tenantId, packageId);
6 console.log(result);
7})();
8

getTenantPackage Internal Link

Parametry

NameTypeWymaganeOpis
tenantIdstringTak
idstringTak

Response

Zwraca: GetTenantPackage200Response

Przykład

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

getTenantPackages Internal Link

Parametry

NameTypWymaganeOpis
tenantIdstringTak
skipnumberNie

Odpowiedź

Zwraca: GetTenantPackages200Response

Przykład

Przykład getTenantPackages
Copy Copy
1
2const tenantId: string = 'tenant-7b3c2f';
3const skipCount: number = 10;
4const packages: GetTenantPackages200Response = await getTenantPackages(tenantId, skipCount);
5const packagesFromStart: GetTenantPackages200Response = await getTenantPackages(tenantId);
6

replaceTenantPackage Internal Link

Parametry

NazwaTypWymaganeOpis
tenantIdstringTak
idstringTak
replaceTenantPackageBodyReplaceTenantPackageBodyTak

Odpowiedź

Zwraca: FlagCommentPublic200Response

Przykład

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

updateTenantPackage Internal Link

Parametry

NazwaTypWymaganeOpis
tenantIdstringTak
idstringTak
updateTenantPackageBodyUpdateTenantPackageBodyTak

Odpowiedź

Zwraca: FlagCommentPublic200Response

Przykład

Przykład updateTenantPackage
Copy Copy
1
2(async () => {
3 const tenantId: string = "tenant_sf_001";
4 const id: string = "pkg-premium-v2";
5 const updateTenantPackageBody: UpdateTenantPackageBody = {
6 name: "San Francisco Premium",
7 enabled: true,
8 customConfig: { maxComments: 500 },
9 tosConfig: { required: true } // pola opcjonalne pokazane przez ich obecność; pozostałe pominięte
10 } as UpdateTenantPackageBody;
11 const result: FlagCommentPublic200Response = await updateTenantPackage(tenantId, id, updateTenantPackageBody);
12 console.log(result);
13})();
14

createTenantUser Internal Link


Parametry

NazwaTypWymaganeOpis
tenantIdstringTak
createTenantUserBodyCreateTenantUserBodyTak

Odpowiedź

Zwraca: CreateTenantUser200Response

Przykład

Przykład createTenantUser
Copy Copy
1
2const tenantId: string = "tenant_74b3a9f4b";
3const createTenantUserBody: CreateTenantUserBody = {
4 email: "jane.doe@acmecorp.com",
5 displayName: "Jane Doe",
6 role: "moderator",
7 sendWelcomeEmail: true, // przykładowy parametr opcjonalny
8 metadata: { department: "Customer Support" }
9};
10const result: CreateTenantUser200Response = await createTenantUser(tenantId, createTenantUserBody);
11

deleteTenantUser Internal Link

Parametry

NameTypeRequiredDescription
tenantIdstringTak
idstringTak
deleteCommentsstringNie
commentDeleteModestringNie

Odpowiedź

Zwraca: FlagCommentPublic200Response

Przykład

Przykład deleteTenantUser
Copy Copy
1
2async function run(): Promise<void> {
3 const tenantId: string = "acme_corp_tenant_9f1a2b";
4 const id: string = "user_4d2a1b6c";
5 const deleteComments: string = "true"; // usuń także komentarze użytkownika
6 const commentDeleteMode: string = "permanent"; // "permanent" lub "soft"
7 const result: FlagCommentPublic200Response = await deleteTenantUser(tenantId, id, deleteComments, commentDeleteMode);
8 console.log(result);
9}
10run();
11

getTenantUser Internal Link

Parametry

NameTypWymaganeOpis
tenantIdstringTak
idstringTak

Odpowiedź

Zwraca: GetTenantUser200Response

Przykład

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

getTenantUsers Internal Link


Parametry

NazwaTypWymaganeOpis
tenantIdstringTak
skipnumberNie

Odpowiedź

Zwraca: GetTenantUsers200Response

Przykład

Przykład użycia getTenantUsers
Copy Copy
1
2const tenantId: string = 'tenant_prod_8a3f2c';
3const skip: number = 50;
4const usersWithSkip: GetTenantUsers200Response = await getTenantUsers(tenantId, skip);
5const usersNoSkip: GetTenantUsers200Response = await getTenantUsers(tenantId);
6

replaceTenantUser Internal Link

Parametry

NazwaTypWymaganeOpis
tenantIdstringYes
idstringYes
replaceTenantUserBodyReplaceTenantUserBodyYes
updateCommentsstringNo

Odpowiedź

Zwraca: FlagCommentPublic200Response

Przykład

Przykład replaceTenantUser
Copy Copy
1
2const tenantId: string = "tenant_acmeCorp";
3const id: string = "user_84b2";
4const replaceTenantUserBody: ReplaceTenantUserBody = {
5 email: "alice.jenkins@acmecorp.com",
6 displayName: "Alice Jenkins",
7 roles: ["moderator", "editor"],
8 disabled: false
9} as ReplaceTenantUserBody;
10const updateComments: string = "Migrated user account and reattributed historical comments";
11
12const result: FlagCommentPublic200Response = await replaceTenantUser(tenantId, id, replaceTenantUserBody, updateComments);
13

Parametry

NameTypeRequiredDescription
tenantIdstringTak
idstringTak
redirectURLstringNie

Odpowiedź

Zwraca: FlagCommentPublic200Response

Przykład

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

updateTenantUser Internal Link

Parametry

NameTypWymaganeOpis
tenantIdstringTak
idstringTak
updateTenantUserBodyUpdateTenantUserBodyTak
updateCommentsstringNie

Odpowiedź

Zwraca: FlagCommentPublic200Response

Przykład

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

createTenant Internal Link

Parametry

NazwaTypWymaganeOpis
tenantIdstringTak
createTenantBodyCreateTenantBodyTak

Odpowiedź

Zwraca: CreateTenant200Response

Przykład

Przykład createTenant
Copy Copy
1
2const tenantId: string = 'acme-corp-001';
3const createTenantBody: CreateTenantBody = {
4 name: 'Acme Corporation',
5 domainConfiguration: { primaryDomain: 'comments.acme.com', enforceHttps: true } as APIDomainConfiguration,
6 billingInfo: { planId: 'enterprise', contactEmail: 'billing@acme.com' } as BillingInfo
7 // pola opcjonalne, takie jak ssoConfig lub customConfig, są celowo pominięte
8} as CreateTenantBody;
9
10const result: CreateTenant200Response = await createTenant(tenantId, createTenantBody);
11

deleteTenant Internal Link

Parametry

NazwaTypWymaganeOpis
tenantIdstringTak
idstringTak
surestringNie

Odpowiedź

Zwraca: FlagCommentPublic200Response

Przykład

Przykład użycia deleteTenant
Copy Copy
1
2const tenantId: string = 'tenant_42c9f1';
3const id: string = 'flag_9a7b3c';
4const sure: string = 'confirm-delete';
5const result: FlagCommentPublic200Response = await deleteTenant(tenantId, id, sure);
6

getTenant Internal Link

Parametry

NameTypeWymaganeOpis
tenantIdstringTak
idstringTak

Odpowiedź

Zwraca: GetTenant200Response

Przykład

Przykład getTenant
Copy Copy
1
2const tenantId: string = "tenant_9f4b2c1a";
3const idOverride: string | undefined = undefined; // opcjonalne nadpisanie, jeśli dostępne
4const id: string = idOverride ?? "site_3e7a6b2f";
5const response: GetTenant200Response = await getTenant(tenantId, id);
6console.log(response);
7

getTenants Internal Link

Parametry

NazwaTypWymaganeOpis
tenantIdstringTak
metastringNie
skipnumberNie

Odpowiedź

Zwraca: GetTenants200Response

Przykład

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

updateTenant Internal Link

Parametry

NameTypeRequiredDescription
tenantIdstringTak
idstringTak
updateTenantBodyUpdateTenantBodyTak

Odpowiedź

Zwraca: FlagCommentPublic200Response

Przykład

Przykład updateTenant
Copy Copy
1
2const tenantId: string = 'acme-corp-001';
3const id: string = 'tenant-42';
4const billingInfo: BillingInfo = { billingEmail: 'billing@acme.com', address: '123 Market St' } as BillingInfo;
5const updateTenantBody: UpdateTenantBody = { displayName: 'Acme Corporation', billingInfo } as UpdateTenantBody;
6const result: FlagCommentPublic200Response = await updateTenant(tenantId, id, updateTenantBody);
7

changeTicketState Internal Link

Parametry

NazwaTypWymaganeOpis
tenantIdstringTak
userIdstringTak
idstringTak
changeTicketStateBodyChangeTicketStateBodyTak

Odpowiedź

Zwraca: ChangeTicketState200Response

Przykład

Przykład changeTicketState
Copy Copy
1
2const tenantId: string = "tenant_7f3b2c9a";
3const userId: string = "user_5a1d9fb2";
4const id: string = "ticket_3e8a1b6f";
5const changeTicketStateBody: ChangeTicketStateBody = {
6 state: "closed",
7 reason: "Fixed in backend release 2.4.1",
8 notifyUsers: true,
9 metadata: { resolutionOwner: "agent_12", priority: "high" } // przykładowe pola opcjonalne
10};
11const result: ChangeTicketState200Response = await changeTicketState(tenantId, userId, id, changeTicketStateBody);
12

createTicket Internal Link

Parametry

NazwaTypWymaganeOpis
tenantIdstringYes
userIdstringYes
createTicketBodyCreateTicketBodyYes

Odpowiedź

Zwraca: CreateTicket200Response

Przykład

Przykład createTicket
Copy Copy
1
2const tenantId: string = 'acme-company-001';
3const userId: string = 'u_78f4b2';
4const createTicketBody: CreateTicketBody = {
5 title: 'Unable to access project dashboard',
6 description: 'Receiving 403 when accessing /dashboard for project X',
7 priority: 'high',
8 tags: ['dashboard', 'access'] // pole opcjonalne (przykład)
9};
10const result: CreateTicket200Response = await createTicket(tenantId, userId, createTicketBody);
11

getTicket Internal Link

Parametry

NazwaTypWymaganeOpis
tenantIdstringTak
idstringTak
userIdstringNie

Odpowiedź

Zwraca: GetTicket200Response

Przykład

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

getTickets Internal Link

Parametry

NazwaTypWymaganeOpis
tenantIdstringTak
userIdstringNie
statenumberNie
skipnumberNie
limitnumberNie

Odpowiedź

Zwraca: GetTickets200Response

Przykład

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

getTranslations Internal Link


Parametry

NazwaTypWymaganeOpis
namespacestringTak
componentstringTak
localestringNie
useFullTranslationIdsbooleanNie

Odpowiedź

Zwraca: GetTranslationsResponse

Przykład

Przykład getTranslations
Copy Copy
1
2const translationsDefault: GetTranslationsResponse = await getTranslations("payments", "checkout");
3const translationsFrenchDetailed: GetTranslationsResponse = await getTranslations("payments", "checkout", "fr-FR", true);
4

uploadImage Internal Link

Prześlij i zmień rozmiar obrazu

Parametry

NazwaTypWymaganeOpis
tenantIdstringTak
fileBlobTak
sizePresetSizePresetNie
urlIdstringNie

Odpowiedź

Zwraca: UploadImageResponse


getUserBadgeProgressById Internal Link

Parametry

NazwaTypWymaganeOpis
tenantIdstringTak
idstringTak

Odpowiedź

Zwraca: GetUserBadgeProgressById200Response

Przykład

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

getUserBadgeProgressByUserId Internal Link

Parametry

NazwaTypWymaganeOpis
tenantIdstringTak
userIdstringTak

Odpowiedź

Zwraca: GetUserBadgeProgressById200Response

Przykład

Przykład getUserBadgeProgressByUserId
Copy Copy
1
2const tenantId: string = 'tenant_7f9c2d3b';
3const maybeUserId: string | undefined = 'user_4b8e1f9a'; // opcjonalne źródło (może być undefined)
4const userId: string = maybeUserId ?? 'user_fallback0001';
5const result: GetUserBadgeProgressById200Response = await getUserBadgeProgressByUserId(tenantId, userId);
6console.log(result);
7

getUserBadgeProgressList Internal Link

Parametry

NameTypeWymaganeOpis
tenantIdstringTak
userIdstringNie
limitnumberNie
skipnumberNie

Odpowiedź

Zwraca: GetUserBadgeProgressList200Response

Przykład

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

createUserBadge Internal Link

Parametry

NazwaTypWymaganeOpis
tenantIdstringTak
createUserBadgeParamsCreateUserBadgeParamsTak

Odpowiedź

Zwraca: CreateUserBadge200Response

Przykład

Przykład createUserBadge
Copy Copy
1
2const tenantId: string = "tenant_9a8b7c";
3const params: CreateUserBadgeParams = {
4 name: "Top Contributor",
5 slug: "top-contributor",
6 description: "Awarded for 100 approved comments",
7 iconUrl: "https://cdn.fastcomments.com/badges/top-contributor.png",
8 active: true,
9 criteria: { approvedComments: 100 },
10 customConfig: { showOnProfile: true } // opcjonalny parametr
11};
12const result: CreateUserBadge200Response = await createUserBadge(tenantId, params);
13

deleteUserBadge Internal Link

Parametry

NazwaTypeWymaganeOpis
tenantIdstringTak
idstringTak

Odpowiedź

Zwraca: UpdateUserBadge200Response

Przykład

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

getUserBadge Internal Link

Parametry

NazwaTypWymaganeOpis
tenantIdstringTak
idstringTak

Odpowiedź

Zwraca: GetUserBadge200Response

Przykład

Przykład użycia getUserBadge
Copy Copy
1
2const tenantId: string = "tenant_acme_01";
3const id: string = "badge_8c7d2f";
4const response: GetUserBadge200Response = await getUserBadge(tenantId, id);
5

getUserBadges Internal Link

Parametry

NazwaTypWymaganeOpis
tenantIdstringTak
userIdstringNie
badgeIdstringNie
typenumberNie
displayedOnCommentsbooleanNie
limitnumberNie
skipnumberNie

Odpowiedź

Zwraca: GetUserBadges200Response

Przykład

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

updateUserBadge Internal Link

Parametry

NazwaTypWymaganeOpis
tenantIdstringTak
idstringTak
updateUserBadgeParamsUpdateUserBadgeParamsTak

Odpowiedź

Zwraca: UpdateUserBadge200Response

Przykład

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

getUserNotificationCount Internal Link

Parametry

NazwaTypWymaganeOpis
tenantIdstringTak
ssostringNie

Odpowiedź

Zwraca: GetUserNotificationCount200Response

Przykład

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

getUserNotifications Internal Link

Parametry

NazwaTypWymaganeOpis
tenantIdstringTak
pageSizenumberNie
afterIdstringNie
includeContextbooleanNie
afterCreatedAtnumberNie
unreadOnlybooleanNie
dmOnlybooleanNie
noDmbooleanNie
includeTranslationsbooleanNie
ssostringNie

Odpowiedź

Zwraca: GetUserNotifications200Response

Przykład

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

resetUserNotificationCount Internal Link

Parametry

NazwaTypWymaganeOpis
tenantIdstringTak
ssostringNie

Odpowiedź

Zwraca: ResetUserNotifications200Response

Przykład

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

resetUserNotifications Internal Link

Parametry

NameTypWymaganeOpis
tenantIdstringTak
afterIdstringNie
afterCreatedAtnumberNie
unreadOnlybooleanNie
dmOnlybooleanNie
noDmbooleanNie
ssostringNie

Odpowiedź

Zwraca: ResetUserNotifications200Response

Przykład

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

updateUserNotificationCommentSubscriptionStatus Internal Link

Włącz lub wyłącz powiadomienia dla konkretnego komentarza.

Parametry

NazwaTypWymaganeOpis
tenantIdstringYes
notificationIdstringYes
optedInOrOutUpdateUserNotificationCommentSubscriptionStatusOptedInOrOutEnumYes
commentIdstringYes
ssostringNo

Odpowiedź

Zwraca: UpdateUserNotificationStatus200Response

Przykład

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

updateUserNotificationPageSubscriptionStatus Internal Link

Włącz lub wyłącz powiadomienia dla strony. Kiedy użytkownicy subskrybują stronę, tworzone są powiadomienia o nowych komentarzach głównych, a także

Parametry

NazwaTypWymaganeOpis
tenantIdstringTak
urlIdstringTak
urlstringTak
pageTitlestringTak
subscribedOrUnsubscribedUpdateUserNotificationPageSubscriptionStatusSubscribedOrUnsubscribedEnumTak
ssostringNie

Odpowiedź

Zwraca: UpdateUserNotificationStatus200Response

Przykład

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

updateUserNotificationStatus Internal Link

Parametry

NameTypeRequiredDescription
tenantIdstringTak
notificationIdstringTak
newStatusUpdateUserNotificationStatusNewStatusEnumTak
ssostringNie

Odpowiedź

Zwraca: UpdateUserNotificationStatus200Response

Przykład

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

getUserPresenceStatuses Internal Link

Parametry

NameTypeRequiredDescription
tenantIdstringTak
urlIdWSstringTak
userIdsstringTak

Odpowiedź

Zwraca: GetUserPresenceStatuses200Response

Przykład

getUserPresenceStatuses Przykład
Copy Copy
1
2const tenantId: string = 'tenant_7f3a2b';
3const urlIdWS: string = 'articles/2026/03/25/fastcomments-integration';
4const maybeUserIds: string | undefined = 'user_123,user_456'; // opcjonalne źródło
5const userIds: string = maybeUserIds ?? 'user_123';
6const presence: GetUserPresenceStatuses200Response = await getUserPresenceStatuses(tenantId, urlIdWS, userIds);
7

searchUsers Internal Link

Parametry

NazwaTypWymaganeOpis
tenantIdstringTak
urlIdstringTak
usernameStartsWithstringNie
mentionGroupIdsArrayNie
ssostringNie
searchSectionSearchUsersSearchSectionEnumNie

Odpowiedź

Zwraca: SearchUsers200Response

Przykład

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

getUser Internal Link

Parametry

NazwaTypWymaganeOpis
tenantIdstringTak
idstringTak

Odpowiedź

Zwraca: GetUser200Response

Przykład

Przykład getUser
Copy Copy
1
2const idSuffix: string | undefined = undefined;
3const tenantId: string = "acme-enterprises";
4const id: string = idSuffix ?? "user_98765";
5const response: GetUser200Response = await getUser({ tenantId, id });
6

createVote Internal Link

Parametry

NameTypWymaganeOpis
tenantIdstringTak
commentIdstringTak
directionCreateVoteDirectionEnumTak
userIdstringNie
anonUserIdstringNie

Odpowiedź

Zwraca: VoteComment200Response

Przykład

Przykład createVote
Copy Copy
1
2const tenantId: string = 'tenant_5f2a9b';
3const commentId: string = 'cmt_3b7e21';
4const direction: CreateVoteDirectionEnum = CreateVoteDirectionEnum.Up;
5const anonUserId: string = 'anon_9x7k2p';
6const voteResult: VoteComment200Response = await createVote(tenantId, commentId, direction, undefined, anonUserId);
7

deleteVote Internal Link

Parametry

NazwaTypWymaganeOpis
tenantIdstringTak
idstringTak
editKeystringNie

Odpowiedź

Zwraca: DeleteCommentVote200Response

Przykład

Przykład deleteVote
Copy Copy
1
2const tenantId: string = '123e4567-e89b-12d3-a456-426614174000';
3const id: string = 'vote-7a1b2c3d-9f8e-4b6a-8123-abcdef012345';
4const editKey: string = 'editKey_4f3e2d1c';
5
6const resultWithEditKey: DeleteCommentVote200Response = await deleteVote(tenantId, id, editKey);
7const resultWithoutEditKey: DeleteCommentVote200Response = await deleteVote(tenantId, id);
8

getVotes Internal Link

Parametry

NameTypeRequiredDescription
tenantIdstringTak
urlIdstringTak

Odpowiedź

Zwraca: GetVotes200Response

Przykład

Przykład getVotes
Copy Copy
1
2const tenantId: string = 'tenant-42c-eu';
3const urlId: string = 'article-7f9b';
4const includeMetadata: boolean | undefined = true;
5const votes: GetVotes200Response = await getVotes(tenantId, urlId);
6

getVotesForUser Internal Link

Parametry

NameTypeWymaganeOpis
tenantIdstringTak
urlIdstringTak
userIdstringNie
anonUserIdstringNie

Odpowiedź

Zwraca: GetVotesForUser200Response

Przykład

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

Potrzebujesz pomocy?

Jeżeli napotkasz jakiekolwiek problemy lub masz pytania dotyczące SDK JavaScript/TypeScript, prosimy:

Współtworzenie

Wkłady są mile widziane! Odwiedź repozytorium na GitHubie po wytyczne dotyczące współpracy.