FastComments.com

FastComments JavaScript/TypeScript SDK

Dies ist das offizielle JavaScript/TypeScript-SDK für FastComments.

Verwalten Sie Kommentare, Benutzer, SSO und Moderation von Node.js oder dem Browser aus.

Repository

Auf GitHub ansehen


Installation Internal Link

npm

npm install fastcomments-sdk

API-Dokumentation Internal Link


Vollständige API-Referenz: docs/api/README.md

Browser- vs. Server-Kompatibilität Internal Link


Dieses SDK verwendet zwei Einstiegspunkte, um optimale Kompatibilität sicherzustellen und Laufzeitfehler zu vermeiden:

  • fastcomments-sdk/browser - Browser-sichere Version mit nativer fetch-Unterstützung
  • fastcomments-sdk/server - Vollständige Node.js-Version mit SSO-Unterstützung
  • fastcomments-sdk (Standard) - Nur Typen, sicher überall zu importieren

Öffentliche vs. gesicherte APIs Internal Link


Das SDK stellt drei Haupt-API-Klassen bereit:

  • DefaultApi - Gesicherte Endpunkte, die deinen API-Schlüssel zur Authentifizierung erfordern. Verwende diese für serverseitige Operationen.
  • PublicApi - Öffentliche Endpunkte, die ohne API-Schlüssel zugänglich sind. Diese können direkt aus Browsern/Mobilgeräten/etc. aufgerufen werden.
  • HiddenApi - Interne/Admin-Endpunkte für fortgeschrittene Anwendungsfälle.

Beispiel: Verwendung der Public API (browser-sicher)

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

const publicApi = new PublicApi();

// Kommentare für eine Seite abrufen (kein API-Schlüssel erforderlich)
const response = await publicApi.getCommentsPublic({
  tenantId: 'your-tenant-id',
  urlId: 'page-url-id'
});

Beispiel: Verwendung der Default API (nur serverseitig)

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

const config = new Configuration({
  apiKey: 'your-api-key' // Dies geheim halten!
});
const defaultApi = new DefaultApi(config);

// Kommentare mit vollem Admin-Zugriff abrufen
const response = await defaultApi.getComments({
  tenantId: 'your-tenant-id',
  urlId: 'page-url-id'
});

SSO (Single Sign-On)-Integration Internal Link

FastComments unterstützt SSO, um sich in Ihr bestehendes Benutzerauthentifizierungssystem zu integrieren. Die SSO-Funktionalität ist nur im Server-Export verfügbar, da sie Node.js-Crypto-Funktionen benötigt.

Einfache SSO (nur serverseitig)

Einfache SSO sollte serverseitig erzeugt und an den Client gesendet werden:

// Server-seitiger Code (Node.js/Backend)
import { FastCommentsSSO, PublicApi } from 'fastcomments-sdk/server';

// Erstelle einfache SSO mit dem eingebauten Helfer  
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();

// Sende ssoToken an Ihren Client-Code
// Der Client-Code kann dieses Token dann mit dem Browser-SDK verwenden

Sichere SSO (serverseitig, empfohlen)

Sichere SSO sollte serverseitig implementiert werden und bietet bessere Sicherheit:

// Server-seitiger Code (Node.js/Backend)
import { FastCommentsSSO, PublicApi } from 'fastcomments-sdk/server';

// Erstelle sichere SSO mit dem eingebauten Helfer
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();

// Mit API-Aufrufen auf dem Server verwenden
const publicApi = new PublicApi();
const response = await publicApi.getCommentsPublic({
  tenantId: 'your-tenant-id',
  urlId: 'page-url-id',
  sso: JSON.stringify(ssoConfig)
});

// Oder sende ssoConfig an den Client zur Browser-Verwendung

Verwendung von SSO im Browser (mit servergeneriertem Token)

// Client-seitiger Code (Browser)
import { PublicApi } from 'fastcomments-sdk/browser';

// Hole SSO-Token von Ihrem Server-Endpunkt
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 mit Kommentar-Erstellung

// Server-seitig: SSO und Kommentar erstellen
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)
});

Häufige Anwendungsfälle Internal Link

Kommentare für eine Seite abrufen

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

Einen Kommentar erstellen

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

Für einen Kommentar abstimmen

const voteResponse = await sdk.publicApi.voteComment({
  voteBodyParams: {
    commentId: 'comment-id',
    direction: 1 // 1 für Upvote, -1 für Downvote
  }
});

Benutzerverwaltung (erfordert API-Schlüssel)

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

Live-Ereignisse (Echtzeit-Aktualisierungen) Internal Link

Abonnieren Sie Live-Ereignisse, um Echtzeit-Updates für Kommentare, Abstimmungen und andere Aktivitäten zu erhalten.

Ereignisse auf Seitenebene

Abonnieren Sie Live-Ereignisse für eine bestimmte Seite (Kommentare, Abstimmungen usw.):

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

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

// Subscribe to live events for a page
const subscription = subscribeToChanges(
  config,
  'your-tenant-id', // tenantIdWS
  'page-url-id',    // urlIdWS  
  'user-session-id', // userIdWS (get this from getComments response)
  (event: LiveEvent) => {
    console.log('Live event received:', event);
    
    switch (event.type) {
      case LiveEventType.new_comment:
        console.log('New comment:', event.comment);
        // Aktualisieren Sie Ihre UI mit dem neuen Kommentar
        break;
      case LiveEventType.new_vote:
        console.log('New vote:', event.vote);
        // Aktualisieren Sie die Abstimmungszahlen in Ihrer UI
        break;
      case LiveEventType.updated_comment:
        console.log('Comment updated:', event.comment);
        break;
      default:
        console.log('Other event type:', event.type);
    }
    
    return true; // Geben Sie true zurück, wenn das Ereignis verarbeitet wurde
  },
  (isConnected: boolean) => {
    console.log('Connection status:', isConnected ? 'Connected' : 'Disconnected');
  }
);

// Close the subscription when done
subscription.close();

Benutzerbezogene Ereignisse abonnieren

Abonnieren Sie benutzerspezifische Ereignisse (Benachrichtigungen, Erwähnungen usw.):

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

const userConfig = {
  userIdWS: 'user-session-id', // Get this from getComments response
};

// Subscribe to user's personal feed
const userSubscription = subscribeToUserFeed(
  userConfig,
  (event: LiveEvent) => {
    console.log('User event received:', event);
    
    switch (event.type) {
      case LiveEventType.notification:
        console.log('New notification:', event.notification);
        // Benachrichtigung in Ihrer UI anzeigen
        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');
  }
);

// Close when done
userSubscription.close();

Abrufen von userIdWS

Der userIdWS Parameter wird für Live-Ereignisse benötigt und kann aus API-Antworten abgerufen werden:

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

// Extract userIdWS from the response
const userIdWS = response.data?.userSessionInfo?.userIdWS;

if (userIdWS) {
  // Now you can subscribe to live events
  const subscription = subscribeToChanges(config, tenantIdWS, urlIdWS, userIdWS, handleEvent);
}

Broadcast-IDs Internal Link

Sie werden sehen, dass Sie in einigen API-Aufrufen eine broadcastId übergeben sollen. Wenn Sie Ereignisse erhalten, bekommen Sie diese ID zurück, sodass Sie das Ereignis ignorieren können, falls Sie Änderungen auf dem Client optimistisch anwenden möchten (was Sie wahrscheinlich tun sollten, da es die beste Erfahrung bietet). Geben Sie hier eine UUID an. Die ID sollte so eindeutig sein, dass sie in einer Browsersitzung nicht zweimal vorkommt.

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() // Eindeutige ID für diese Operation
  }
});

Fehlerbehandlung 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

Aggregiert Dokumente durch Gruppierung (wenn groupBy angegeben ist) und Anwendung mehrerer Operationen. Verschiedene Operationen (z. B. sum, countDistinct, avg usw.) werden unterstützt.

Parameter

NameTypErforderlichBeschreibung
tenantIdstringJa
aggregationRequestAggregationRequestJa
parentTenantIdstringNein
includeStatsbooleanNein

Antwort

Gibt zurück: Aggregate200Response

Beispiel

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

getAuditLogs Internal Link

Parameter

NameTypErforderlichBeschreibung
tenantIdstringJa
limitnumberNein
skipnumberNein
orderSORTDIRNein
afternumberNein
beforenumberNein

Antwort

Gibt zurück: GetAuditLogs200Response

Beispiel

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

blockFromCommentPublic Internal Link

Parameter

NameTypErforderlichBeschreibung
tenantIdstringJa
commentIdstringJa
publicBlockFromCommentParamsPublicBlockFromCommentParamsJa
ssostringNein

Antwort

Gibt zurück: BlockFromCommentPublic200Response

Beispiel

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

unBlockCommentPublic Internal Link

Parameter

NameTypErforderlichBeschreibung
tenantIdstringJa
commentIdstringJa
publicBlockFromCommentParamsPublicBlockFromCommentParamsJa
ssostringNein

Antwort

Gibt zurück: UnBlockCommentPublic200Response

Beispiel

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

checkedCommentsForBlocked Internal Link

Parameters

NameTypErforderlichBeschreibung
tenantIdstringJa
commentIdsstringJa
ssostringNein

Antwort

Gibt zurück: CheckedCommentsForBlocked200Response

Beispiel

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

blockUserFromComment Internal Link


Parameter

NameTypErforderlichBeschreibung
tenantIdstringJa
idstringJa
blockFromCommentParamsBlockFromCommentParamsJa
userIdstringNein
anonUserIdstringNein

Antwort

Gibt zurück: BlockFromCommentPublic200Response

Beispiel

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

createCommentPublic Internal Link

Parameter

NameTypErforderlichBeschreibung
tenantIdstringJa
urlIdstringJa
broadcastIdstringJa
commentDataCommentDataJa
sessionIdstringNein
ssostringNein

Antwort

Gibt zurück: CreateCommentPublic200Response

Beispiel

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

deleteComment Internal Link

Parameter

NameTypErforderlichBeschreibung
tenantIdstringJa
idstringJa
contextUserIdstringNein
isLivebooleanNein

Antwort

Gibt zurück: DeleteComment200Response

Beispiel

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

deleteCommentPublic Internal Link

Parameter

NameTypErforderlichBeschreibung
tenantIdstringJa
commentIdstringJa
broadcastIdstringJa
editKeystringNein
ssostringNein

Antwort

Gibt zurück: DeleteCommentPublic200Response

Beispiel

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

deleteCommentVote Internal Link


Parameter

NameTypErforderlichBeschreibung
tenantIdstringJa
commentIdstringJa
voteIdstringJa
urlIdstringJa
broadcastIdstringJa
editKeystringNein
ssostringNein

Antwort

Gibt zurück: DeleteCommentVote200Response

Beispiel

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

flagComment Internal Link

Parameter

NameTypErforderlichBeschreibung
tenantIdstringJa
idstringJa
userIdstringNein
anonUserIdstringNein

Antwort

Gibt zurück: FlagComment200Response

Beispiel

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

getComment Internal Link

Parameter

NameTypErforderlichBeschreibung
tenantIdstringJa
idstringJa

Antwort

Gibt zurück: GetComment200Response

Beispiel

getComment Beispiel
Copy Copy
1
2const tenantId: string = 'tenant_6f1a2b';
3const commentId: string = 'cmt_4d9e8f';
4const includeReplies: boolean | undefined = true; // Beispiel für optionalen Parameter (wird nicht an getComment übergeben)
5const result: GetComment200Response = await getComment(tenantId, commentId);
6console.log('Fetched comment for tenant:', tenantId, 'comment id:', commentId);
7console.log('API response received:', result);
8

getComments Internal Link

Parameter

NameTypeRequiredDescription
tenantIdstringJa
pagenumberNein
limitnumberNein
skipnumberNein
asTreebooleanNein
skipChildrennumberNein
limitChildrennumberNein
maxTreeDepthnumberNein
urlIdstringNein
userIdstringNein
anonUserIdstringNein
contextUserIdstringNein
hashTagstringNein
parentIdstringNein
directionSortDirectionsNein
fromDatenumberNein
toDatenumberNein

Antwort

Gibt zurück: GetComments200Response

Beispiel

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

getCommentsPublic Internal Link

req tenantId urlId

Parameter

NameTypErforderlichBeschreibung
tenantIdstringJa
urlIdstringJa
pagenumberNein
directionSortDirectionsNein
ssostringNein
skipnumberNein
skipChildrennumberNein
limitnumberNein
limitChildrennumberNein
countChildrenbooleanNein
fetchPageForCommentIdstringNein
includeConfigbooleanNein
countAllbooleanNein
includei10nbooleanNein
localestringNein
modulesstringNein
isCrawlerbooleanNein
includeNotificationCountbooleanNein
asTreebooleanNein
maxTreeDepthnumberNein
useFullTranslationIdsbooleanNein
parentIdstringNein
searchTextstringNein
hashTagsArrayNein
userIdstringNein
customConfigStrstringNein
afterCommentIdstringNein
beforeCommentIdstringNein

Antwort

Gibt zurück: GetCommentsPublic200Response

Beispiel

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

getCommentText Internal Link

Parameter

NameTypErforderlichBeschreibung
tenantIdstringJa
commentIdstringJa
editKeystringNein
ssostringNein

Antwort

Gibt zurück: GetCommentText200Response

Beispiel

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

getCommentVoteUserNames Internal Link

Parameter

NameTypErforderlichBeschreibung
tenantIdstringJa
commentIdstringJa
dirnumberJa
ssostringNein

Antwort

Gibt zurück: GetCommentVoteUserNames200Response

Beispiel

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

lockComment Internal Link

Parameter

NameTypErforderlichBeschreibung
tenantIdstringJa
commentIdstringJa
broadcastIdstringJa
ssostringNein

Antwort

Gibt zurück: LockComment200Response

Beispiel

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

pinComment Internal Link

Parameter

NameTypErforderlichBeschreibung
tenantIdstringJa
commentIdstringJa
broadcastIdstringJa
ssostringNein

Antwort

Gibt zurück: PinComment200Response

Beispiel

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

saveComment Internal Link

Parameter

NameTypeRequiredDescription
tenantIdstringJa
createCommentParamsCreateCommentParamsJa
isLivebooleanNein
doSpamCheckbooleanNein
sendEmailsbooleanNein
populateNotificationsbooleanNein

Antwort

Gibt zurück: SaveComment200Response

Beispiel

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

saveCommentsBulk Internal Link

Parameter

NameTypeErforderlichBeschreibung
tenantIdstringJa
createCommentParamsArrayJa
isLivebooleanNein
doSpamCheckbooleanNein
sendEmailsbooleanNein
populateNotificationsbooleanNein

Antwort

Gibt zurück: Array<SaveComment200Response

Beispiel

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

setCommentText Internal Link


Parameters

NameTypErforderlichBeschreibung
tenantIdstringJa
commentIdstringJa
broadcastIdstringJa
commentTextUpdateRequestCommentTextUpdateRequestJa
editKeystringNein
ssostringNein

Antwort

Gibt zurück: SetCommentText200Response

Beispiel

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

unBlockUserFromComment Internal Link

Parameter

NameTypErforderlichBeschreibung
tenantIdstringJa
idstringJa
unBlockFromCommentParamsUnBlockFromCommentParamsJa
userIdstringNein
anonUserIdstringNein

Antwort

Gibt zurück: UnBlockCommentPublic200Response

Beispiel

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

unFlagComment Internal Link

Parameter

NameTypErforderlichBeschreibung
tenantIdstringJa
idstringJa
userIdstringNein
anonUserIdstringNein

Antwort

Gibt zurück: FlagComment200Response

Beispiel

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

unLockComment Internal Link

Parameter

NameTypErforderlichBeschreibung
tenantIdstringJa
commentIdstringJa
broadcastIdstringJa
ssostringNein

Antwort

Gibt zurück: LockComment200Response

Beispiel

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

unPinComment Internal Link

Parameter

NameTypErforderlichBeschreibung
tenantIdstringJa
commentIdstringJa
broadcastIdstringJa
ssostringNein

Antwort

Gibt zurück: PinComment200Response

Beispiel

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

updateComment Internal Link

Parameter

NameTypErforderlichBeschreibung
tenantIdstringJa
idstringJa
updatableCommentParamsUpdatableCommentParamsJa
contextUserIdstringNein
doSpamCheckbooleanNein
isLivebooleanNein

Antwort

Gibt zurück: FlagCommentPublic200Response

Beispiel

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

voteComment Internal Link


Parameter

NameTypErforderlichBeschreibung
tenantIdstringJa
commentIdstringJa
urlIdstringJa
broadcastIdstringJa
voteBodyParamsVoteBodyParamsJa
sessionIdstringNein
ssostringNein

Antwort

Gibt zurück: VoteComment200Response

Beispiel

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

getCommentsForUser Internal Link


Parameter

NameTypErforderlichBeschreibung
userIdstringNein
directionSortDirectionsNein
repliesToUserIdstringNein
pagenumberNein
includei10nbooleanNein
localestringNein
isCrawlerbooleanNein

Antwort

Gibt zurück: GetCommentsForUser200Response

Beispiel

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

addDomainConfig Internal Link

Parameter

NameTypErforderlichBeschreibung
tenantIdstringJa
addDomainConfigParamsAddDomainConfigParamsJa

Antwort

Gibt zurück: AddDomainConfig200Response


deleteDomainConfig Internal Link


Parameter

NameTypErforderlichBeschreibung
tenantIdstringJa
domainstringJa

Antwort

Gibt zurück: DeleteDomainConfig200Response


getDomainConfig Internal Link

Parameter

NameTypErforderlichBeschreibung
tenantIdstringJa
domainstringJa

Antwort

Gibt zurück: GetDomainConfig200Response


getDomainConfigs Internal Link


Parameter

NameTypErforderlichBeschreibung
tenantIdstringJa

Antwort

Gibt zurück: GetDomainConfigs200Response


patchDomainConfig Internal Link


Parameter

NameTypErforderlichBeschreibung
tenantIdstringJa
domainToUpdatestringJa
patchDomainConfigParamsPatchDomainConfigParamsJa

Antwort

Gibt zurück: GetDomainConfig200Response


putDomainConfig Internal Link

Parameter

NameTypErforderlichBeschreibung
tenantIdstringJa
domainToUpdatestringJa
updateDomainConfigParamsUpdateDomainConfigParamsJa

Antwort

Gibt zurück: GetDomainConfig200Response


createEmailTemplate Internal Link

Parameter

NameTypErforderlichBeschreibung
tenantIdstringJa
createEmailTemplateBodyCreateEmailTemplateBodyJa

Antwort

Gibt zurück: CreateEmailTemplate200Response

Beispiel

Beispiel für createEmailTemplate
Copy Copy
1
2const tenantId: string = "tenant_4f2b1c9e";
3const createEmailTemplateBody: CreateEmailTemplateBody = {
4 name: "New Comment Notification",
5 subject: "Someone replied to your discussion",
6 fromName: "Community Team",
7 fromAddress: "no-reply@community.example.com",
8 htmlBody: "<p>\{{comment.author}} replied: \{{comment.text}}</p>",
9 plaintextBody: "\{{comment.author}} replied: \{{comment.text}}",
10 previewText: "A new reply on a discussion you follow",
11 isDefault: false // optionale Kennzeichnung zur Demonstration der Verwendung eines optionalen Parameters
12};
13const result: CreateEmailTemplate200Response = await createEmailTemplate(tenantId, createEmailTemplateBody);
14

deleteEmailTemplate Internal Link

Parameter

NameTypErforderlichBeschreibung
tenantIdstringJa
idstringJa

Antwort

Gibt zurück: FlagCommentPublic200Response

Beispiel

deleteEmailTemplate Beispiel
Copy Copy
1
2const tenantId: string = "tenant_9c4f1b2a";
3const id: string = "emailtmpl_4d2b9a5e";
4const requestorNote: string | undefined = undefined; // optionale Metadaten (nicht für die Funktion erforderlich)
5const result: FlagCommentPublic200Response = await deleteEmailTemplate(tenantId, id);
6

deleteEmailTemplateRenderError Internal Link

Parameter

NameTypErforderlichBeschreibung
tenantIdstringJa
idstringJa
errorIdstringJa

Antwort

Gibt zurück: FlagCommentPublic200Response

Beispiel

deleteEmailTemplateRenderError Beispiel
Copy Copy
1
2const tenantId: string = 'tenant-72f3b4';
3const templateId: string = 'email_template-9c3a1';
4let providedErrorId: string | undefined = undefined; // optionaler Wert, könnte woanders gesetzt werden
5const errorId: string = providedErrorId ?? 'render_err-5d2f7';
6const result: FlagCommentPublic200Response = await deleteEmailTemplateRenderError(tenantId, templateId, errorId);
7

getEmailTemplate Internal Link

Parameter

NameTypErforderlichBeschreibung
tenantIdstringJa
idstringJa

Antwort

Gibt zurück: GetEmailTemplate200Response

Beispiel

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

getEmailTemplateDefinitions Internal Link


Parameter

NameTypErforderlichBeschreibung
tenantIdstringJa

Antwort

Gibt zurück: GetEmailTemplateDefinitions200Response

Beispiel

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

getEmailTemplateRenderErrors Internal Link


Parameter

NameTypErforderlichBeschreibung
tenantIdstringJa
idstringJa
skipnumberNein

Antwort

Gibt zurück: GetEmailTemplateRenderErrors200Response

Beispiel

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

getEmailTemplates Internal Link

Parameter

NameTypErforderlichBeschreibung
tenantIdstringJa
skipnumberNein

Antwort

Gibt zurück: GetEmailTemplates200Response

Beispiel

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

renderEmailTemplate Internal Link

Parameter

NameTypErforderlichBeschreibung
tenantIdstringJa
renderEmailTemplateBodyRenderEmailTemplateBodyJa
localestringNein

Antwort

Gibt zurück: RenderEmailTemplate200Response

Beispiel

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

updateEmailTemplate Internal Link

Parameter

NameTypErforderlichBeschreibung
tenantIdstringJa
idstringJa
updateEmailTemplateBodyUpdateEmailTemplateBodyJa

Antwort

Gibt zurück: FlagCommentPublic200Response

Beispiel

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

getEventLog Internal Link

req tenantId urlId userIdWS

Parameter

NameTypErforderlichBeschreibung
tenantIdstringJa
urlIdstringJa
userIdWSstringJa
startTimenumberJa
endTimenumberNein

Antwort

Gibt zurück: GetEventLog200Response

Beispiel

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

getGlobalEventLog Internal Link

req tenantId urlId userIdWS

Parameter

NameTypErforderlichBeschreibung
tenantIdstringJa
urlIdstringJa
userIdWSstringJa
startTimenumberJa
endTimenumberNein

Antwort

Gibt zurück: GetEventLog200Response

Beispiel

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

createFeedPost Internal Link

Parameter

NameTypErforderlichBeschreibung
tenantIdstringJa
createFeedPostParamsCreateFeedPostParamsJa
broadcastIdstringNein
isLivebooleanNein
doSpamCheckbooleanNein
skipDupCheckbooleanNein

Antwort

Gibt zurück: CreateFeedPost200Response

Beispiel

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

createFeedPostPublic Internal Link

Parameter

NameTypErforderlichBeschreibung
tenantIdstringJa
createFeedPostParamsCreateFeedPostParamsJa
broadcastIdstringNein
ssostringNein

Antwort

Gibt zurück: CreateFeedPostPublic200Response

Beispiel

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

deleteFeedPostPublic Internal Link

Parameter

NameTypErforderlichBeschreibung
tenantIdstringJa
postIdstringJa
broadcastIdstringNein
ssostringNein

Antwort

Gibt zurück: DeleteFeedPostPublic200Response

Beispiel

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

getFeedPosts Internal Link

req tenantId afterId

Parameter

NameTypeErforderlichBeschreibung
tenantIdstringJa
afterIdstringNein
limitnumberNein
tagsArrayNein

Antwort

Gibt zurück: GetFeedPosts200Response

Beispiel

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

getFeedPostsPublic Internal Link

req tenantId afterId

Parameter

NameTypErforderlichBeschreibung
tenantIdstringJa
afterIdstringNein
limitnumberNein
tagsArrayNein
ssostringNein
isCrawlerbooleanNein
includeUserInfobooleanNein

Antwort

Gibt zurück: GetFeedPostsPublic200Response

Beispiel

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

getFeedPostsStats Internal Link

Parameter

NameTypErforderlichBeschreibung
tenantIdstringJa
postIdsArrayJa
ssostringNein

Antwort

Gibt zurück: GetFeedPostsStats200Response

Beispiel

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

getUserReactsPublic Internal Link

Parameter

NameTypeRequiredDescription
tenantIdstringJa
postIdsArrayNein
ssostringNein

Antwort

Gibt zurück: GetUserReactsPublic200Response

Beispiel

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

reactFeedPostPublic Internal Link


Parameter

NameTypErforderlichBeschreibung
tenantIdstringJa
postIdstringJa
reactBodyParamsReactBodyParamsJa
isUndobooleanNein
broadcastIdstringNein
ssostringNein

Antwort

Gibt zurück: ReactFeedPostPublic200Response

Beispiel

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

updateFeedPost Internal Link


Parameter

NameTypErforderlichBeschreibung
tenantIdstringJa
idstringJa
feedPostFeedPostJa

Antwort

Gibt zurück: FlagCommentPublic200Response

Beispiel

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

updateFeedPostPublic Internal Link

Parameter

NameTypErforderlichBeschreibung
tenantIdstringJa
postIdstringJa
updateFeedPostParamsUpdateFeedPostParamsJa
broadcastIdstringNein
ssostringNein

Antwort

Gibt zurück: CreateFeedPostPublic200Response

Beispiel

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

flagCommentPublic Internal Link

Parameter

NameTypErforderlichBeschreibung
tenantIdstringJa
commentIdstringJa
isFlaggedbooleanJa
ssostringNein

Antwort

Gibt zurück: FlagCommentPublic200Response

Beispiel

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

getGifLarge Internal Link

Parameter

NameTypErforderlichBeschreibung
tenantIdstringJa
largeInternalURLSanitizedstringJa

Antwort

Gibt zurück: GetGifLarge200Response

Beispiel

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

getGifsSearch Internal Link

Parameter

NameTypErforderlichBeschreibung
tenantIdstringJa
searchstringJa
localestringNein
ratingstringNein
pagenumberNein

Antwort

Gibt zurück: GetGifsSearch200Response

Beispiel

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

getGifsTrending Internal Link


Parameter

NameTypErforderlichBeschreibung
tenantIdstringJa
localestringNein
ratingstringNein
pagenumberNein

Antwort

Gibt zurück: GetGifsTrending200Response

Beispiel

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

addHashTag Internal Link

Parameter

NameTypErforderlichBeschreibung
tenantIdstringNein
createHashTagBodyCreateHashTagBodyNein

Antwort

Gibt zurück: AddHashTag200Response

Beispiel

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

addHashTagsBulk Internal Link


Parameter

NameTypErforderlichBeschreibung
tenantIdstringNein
bulkCreateHashTagsBodyBulkCreateHashTagsBodyNein

Antwort

Gibt zurück: AddHashTagsBulk200Response

Beispiel

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

deleteHashTag Internal Link

Parameter

NameTypErforderlichBeschreibung
tagstringJa
tenantIdstringNein
deleteHashTagRequestDeleteHashTagRequestNein

Antwort

Gibt zurück: FlagCommentPublic200Response

Beispiel

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

getHashTags Internal Link

Parameter

NameTypErforderlichBeschreibung
tenantIdstringJa
pagenumberNein

Antwort

Gibt zurück: GetHashTags200Response

Beispiel

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

patchHashTag Internal Link

Parameter

NameTypErforderlichBeschreibung
tagstringJa
tenantIdstringNein
updateHashTagBodyUpdateHashTagBodyNein

Antwort

Gibt zurück: PatchHashTag200Response

Beispiel

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

createModerator Internal Link

Parameter

NameTypErforderlichBeschreibung
tenantIdstringJa
createModeratorBodyCreateModeratorBodyJa

Antwort

Gibt zurück: CreateModerator200Response

Beispiel

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

deleteModerator Internal Link

Parameter

NameTypeErforderlichBeschreibung
tenantIdstringJa
idstringJa
sendEmailstringNein

Antwort

Gibt zurück: FlagCommentPublic200Response

Beispiel

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

getModerator Internal Link


Parameter

NameTypErforderlichBeschreibung
tenantIdstringJa
idstringJa

Antwort

Gibt zurück: GetModerator200Response

Beispiel

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

getModerators Internal Link

Parameter

NameTypeRequiredDescription
tenantIdstringJa
skipnumberNein

Response

Gibt zurück: GetModerators200Response

Beispiel

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

sendInvite Internal Link

Parameter

NameTypErforderlichBeschreibung
tenantIdstringJa
idstringJa
fromNamestringJa

Antwort

Gibt zurück: FlagCommentPublic200Response

Beispiel

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

updateModerator Internal Link

Parameter

NameTypErforderlichBeschreibung
tenantIdstringJa
idstringJa
updateModeratorBodyUpdateModeratorBodyJa

Antwort

Gibt zurück: FlagCommentPublic200Response

Beispiel

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

deleteNotificationCount Internal Link

Parameter

NameTypErforderlichBeschreibung
tenantIdstringJa
idstringJa

Antwort

Gibt zurück: FlagCommentPublic200Response

Beispiel

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

getCachedNotificationCount Internal Link

Parameter

NameTypErforderlichBeschreibung
tenantIdstringJa
idstringJa

Antwort

Gibt zurück: GetCachedNotificationCount200Response

Beispiel

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

getNotificationCount Internal Link

Parameter

NameTypErforderlichBeschreibung
tenantIdstringJa
userIdstringNein
urlIdstringNein
fromCommentIdstringNein
viewedbooleanNein
typestringNein

Antwort

Gibt zurück: GetNotificationCount200Response

Beispiel

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

getNotifications Internal Link

Parameter

NameTypErforderlichBeschreibung
tenantIdstringJa
userIdstringNein
urlIdstringNein
fromCommentIdstringNein
viewedbooleanNein
typestringNein
skipnumberNein

Antwort

Gibt zurück: GetNotifications200Response

Beispiel

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

updateNotification Internal Link

Parameter

NameTypeErforderlichBeschreibung
tenantIdstringJa
idstringJa
updateNotificationBodyUpdateNotificationBodyJa
userIdstringNein

Antwort

Gibt zurück: FlagCommentPublic200Response

Beispiel

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

createV1PageReact Internal Link


Parameter

NameTypErforderlichBeschreibung
tenantIdstringJa
urlIdstringJa
titlestringNein

Antwort

Gibt zurück: CreateV1PageReact200Response

Beispiel

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

createV2PageReact Internal Link


Parameter

NameTypErforderlichBeschreibung
tenantIdstringJa
urlIdstringJa
idstringJa
titlestringNein

Antwort

Gibt zurück: CreateV2PageReact200Response

Beispiel

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

deleteV1PageReact Internal Link

Parameter

NameTypErforderlichBeschreibung
tenantIdstringJa
urlIdstringJa

Antwort

Gibt zurück: DeleteV1PageReact200Response

Beispiel

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

deleteV2PageReact Internal Link

Parameter

NameTypErforderlichBeschreibung
tenantIdstringJa
urlIdstringJa
idstringJa

Antwort

Gibt zurück: DeleteV2PageReact200Response

Beispiel

deleteV2PageReact Beispiel
Copy Copy
1
2const tenantId: string = "tenant_79021";
3const urlId: string = "blog/my-first-post";
4const id: string = "reaction_9f8b7c";
5let includeHistory: boolean | undefined = undefined; // optionales Flag, in einigen Aufrufen verwendet
6
7const result: DeleteV2PageReact200Response = await deleteV2PageReact(tenantId, urlId, id);
8console.log(result);
9

getV1PageLikes Internal Link

Parameter

NameTypErforderlichBeschreibung
tenantIdstringJa
urlIdstringJa

Antwort

Gibt zurück: GetV1PageLikes200Response

Beispiel

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

getV2PageReacts Internal Link

Parameter

NameTypErforderlichBeschreibung
tenantIdstringJa
urlIdstringJa

Antwort

Gibt zurück: GetV2PageReacts200Response

Beispiel

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

getV2PageReactUsers Internal Link

Parameter

NameTypErforderlichBeschreibung
tenantIdstringJa
urlIdstringJa
idstringJa

Antwort

Gibt zurück: GetV2PageReactUsers200Response

Beispiel

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

addPage Internal Link


Parameter

NameTypErforderlichBeschreibung
tenantIdstringJa
createAPIPageDataCreateAPIPageDataJa

Antwort

Gibt zurück: AddPageAPIResponse


deletePage Internal Link

Parameter

NameTypErforderlichBeschreibung
tenantIdstringJa
idstringJa

Antwort

Gibt zurück: DeletePageAPIResponse


getOfflineUsers Internal Link

Frühere Kommentatoren auf der Seite, die DERZEIT NICHT online sind. Nach displayName sortiert. Verwenden Sie dies nachdem Sie /users/online ausgeschöpft haben, um einen "Members"-Abschnitt darzustellen. Cursor-Pagination auf commenterName: der Server durchläuft den partiellen {tenantId, urlId, commenterName} Index ab afterName vorwärts mittels $gt, keine $skip-Kosten.

Parameter

NameTypeRequiredDescription
tenantIdstringJa
urlIdstringJa
afterNamestringNein
afterUserIdstringNein

Antwort

Gibt zurück: GetOfflineUsers200Response

Beispiel

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

getOnlineUsers Internal Link


Zurzeit online befindliche Zuschauer einer Seite: Personen, deren websocket session gerade auf die Seite abonniert ist. Gibt anonCount + totalCount zurück (raumweite Abonnenten, einschließlich anonymer Zuschauer, die wir nicht aufzählen).

Parameter

NameTypErforderlichBeschreibung
tenantIdstringJa
urlIdstringJa
afterNamestringNein
afterUserIdstringNein

Antwort

Gibt zurück: GetOnlineUsers200Response

Beispiel

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

getPageByURLId Internal Link


Parameter

NameTypErforderlichBeschreibung
tenantIdstringJa
urlIdstringJa

Antwort

Gibt zurück: GetPageByURLIdAPIResponse


getPages Internal Link

Parameter

NameTypErforderlichBeschreibung
tenantIdstringJa

Antwort

Gibt zurück: GetPagesAPIResponse


getPagesPublic Internal Link

Listet Seiten für einen Mandanten. Wird vom FChat-Desktop-Client verwendet, um dessen Raumliste zu füllen. enableFChat muss in der aufgelösten benutzerdefinierten Konfiguration für jede Seite auf true gesetzt sein. Seiten, die SSO erfordern, werden anhand der Gruppenberechtigungen des anfragenden Benutzers gefiltert.

Parameter

NameTypErforderlichBeschreibung
tenantIdstringJa
cursorstringNein
limitnumberNein
qstringNein
sortByPagesSortByNein
hasCommentsbooleanNein

Antwort

Gibt zurück: GetPagesPublic200Response

Beispiel

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

getUsersInfo Internal Link

Massen-Benutzerinformationen für einen tenant. Gibt für die angegebenen userIds Anzeigeinformationen aus User / SSOUser zurück. Wird vom Kommentar-Widget verwendet, um Benutzer zu ergänzen, die gerade via a presence event erschienen sind. Kein Seitenkontext: Die Privatsphäre wird einheitlich durchgesetzt (private Profile werden maskiert).

Parameter

NameTypErforderlichBeschreibung
tenantIdstringYes
idsstringYes

Antwort

Gibt zurück: GetUsersInfo200Response

Beispiel

getUsersInfo Beispiel
Copy Copy
1
2const tenantId: string = 'acme-tenant-007';
3const userIdsList: string[] = ['user_12a', 'user_34b', 'user_56c'];
4const separator: string | undefined = undefined; // optional; wenn undefined, wird standardmäßig ein Komma verwendet
5const ids: string = userIdsList.join(separator ?? ',');
6const usersInfo: GetUsersInfo200Response = await getUsersInfo(tenantId, ids);
7

patchPage Internal Link

Parameter

NameTypErforderlichBeschreibung
tenantIdstringJa
idstringJa
updateAPIPageDataUpdateAPIPageDataJa

Antwort

Gibt zurück: PatchPageAPIResponse


deletePendingWebhookEvent Internal Link


Parameter

NameTypErforderlichBeschreibung
tenantIdstringJa
idstringJa

Antwort

Gibt zurück: FlagCommentPublic200Response

Beispiel

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

getPendingWebhookEventCount Internal Link

Parameter

NameTypErforderlichBeschreibung
tenantIdstringJa
commentIdstringNein
externalIdstringNein
eventTypestringNein
typestringNein
domainstringNein
attemptCountGTnumberNein

Antwort

Gibt zurück: GetPendingWebhookEventCount200Response

Beispiel

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

getPendingWebhookEvents Internal Link

Parameter

NameTypErforderlichBeschreibung
tenantIdstringJa
commentIdstringNein
externalIdstringNein
eventTypestringNein
typestringNein
domainstringNein
attemptCountGTnumberNein
skipnumberNein

Antwort

Gibt zurück: GetPendingWebhookEvents200Response

Beispiel

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

createQuestionConfig Internal Link

Parameter

NameTypErforderlichBeschreibung
tenantIdstringJa
createQuestionConfigBodyCreateQuestionConfigBodyJa

Antwort

Gibt zurück: CreateQuestionConfig200Response

Beispiel

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

deleteQuestionConfig Internal Link

Parameter

NameTypErforderlichBeschreibung
tenantIdstringJa
idstringJa

Antwort

Gibt zurück: FlagCommentPublic200Response

Beispiel

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

getQuestionConfig Internal Link

Parameter

NameTypeErforderlichBeschreibung
tenantIdstringJa
idstringJa

Antwort

Gibt zurück: GetQuestionConfig200Response

Beispiel

getQuestionConfig Beispiel
Copy Copy
1
2const tenantId: string = "acme-corp-47";
3const questionId: string = "q-4f2b9a";
4const includeDrafts: boolean | undefined = undefined; // Platzhalter für optionalen Parameter
5const result: GetQuestionConfig200Response = await getQuestionConfig(tenantId, questionId);
6console.log(result);
7

getQuestionConfigs Internal Link

Parameter

NameTypErforderlichBeschreibung
tenantIdstringJa
skipnumberNein

Antwort

Gibt zurück: GetQuestionConfigs200Response

Beispiel

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

updateQuestionConfig Internal Link

Parameter

NameTypErforderlichBeschreibung
tenantIdstringJa
idstringJa
updateQuestionConfigBodyUpdateQuestionConfigBodyJa

Antwort

Gibt zurück: FlagCommentPublic200Response

Beispiel

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

createQuestionResult Internal Link

Parameter

NameTypErforderlichBeschreibung
tenantIdstringJa
createQuestionResultBodyCreateQuestionResultBodyJa

Response

Gibt zurück: CreateQuestionResult200Response

Beispiel

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

deleteQuestionResult Internal Link

Parameter

NameTypErforderlichBeschreibung
tenantIdstringJa
idstringJa

Antwort

Rückgabe: FlagCommentPublic200Response

Beispiel

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

getQuestionResult Internal Link

Parameter

NameTypErforderlichBeschreibung
tenantIdstringJa
idstringJa

Antwort

Gibt zurück: GetQuestionResult200Response

Beispiel

Beispiel für getQuestionResult
Copy Copy
1
2const tenantId: string = 'tenant_9f3b2a7c9';
3const questionId: string = 'q_8d4f1b2c3a';
4const options: { includeMeta?: boolean } = { includeMeta: true }; // Demonstration eines optionalen Parameters
5const result: GetQuestionResult200Response = await getQuestionResult(tenantId, questionId);
6const apiStatus: APIStatus | undefined = (result as unknown as { apiStatus?: APIStatus }).apiStatus;
7const question: QuestionResult | undefined = (result as unknown as { question?: QuestionResult }).question;
8

getQuestionResults Internal Link

Parameter

NameTypErforderlichBeschreibung
tenantIdstringJa
urlIdstringNein
userIdstringNein
startDatestringNein
questionIdstringNein
questionIdsstringNein
skipnumberNein

Antwort

Gibt zurück: GetQuestionResults200Response

Beispiel

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

updateQuestionResult Internal Link

Parameter

NameTypeErforderlichBeschreibung
tenantIdstringJa
idstringJa
updateQuestionResultBodyUpdateQuestionResultBodyJa

Antwort

Gibt zurück: FlagCommentPublic200Response

Beispiel

Beispiel für updateQuestionResult
Copy Copy
1
2const tenantId: string = "tenant_prod_84b2";
3const id: string = "question_9f3a";
4const updateQuestionResultBody: UpdateQuestionResultBody = {
5 outcome: "accepted",
6 confidence: 0.88,
7 moderatorId: "moderator_17",
8 notes: "Validated by automated review" // optionales Feld enthalten
9};
10const result: FlagCommentPublic200Response = await updateQuestionResult(tenantId, id, updateQuestionResultBody);
11

aggregateQuestionResults Internal Link

Parameter

NameTypErforderlichBeschreibung
tenantIdstringJa
questionIdstringNein
questionIdsArrayNein
urlIdstringNein
timeBucketAggregateTimeBucketNein
startDateDateNein
forceRecalculatebooleanNein

Antwort

Gibt zurück: AggregateQuestionResults200Response

Beispiel

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

bulkAggregateQuestionResults Internal Link


Parameter

NameTypErforderlichBeschreibung
tenantIdstringJa
bulkAggregateQuestionResultsRequestBulkAggregateQuestionResultsRequestJa
forceRecalculatebooleanNein

Antwort

Gibt zurück: BulkAggregateQuestionResults200Response

Beispiel

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

combineCommentsWithQuestionResults Internal Link

Parameter

NameTypErforderlichBeschreibung
tenantIdstringJa
questionIdstringNein
questionIdsArrayNein
urlIdstringNein
startDateDateNein
forceRecalculatebooleanNein
minValuenumberNein
maxValuenumberNein
limitnumberNein

Antwort

Gibt zurück: CombineCommentsWithQuestionResults200Response

Beispiel

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

addSSOUser Internal Link


Parameter

NameTypErforderlichBeschreibung
tenantIdstringJa
createAPISSOUserDataCreateAPISSOUserDataJa

Antwort

Gibt zurück: AddSSOUserAPIResponse


deleteSSOUser Internal Link


Parameter

NameTypErforderlichBeschreibung
tenantIdstringJa
idstringJa
deleteCommentsbooleanNein
commentDeleteModestringNein

Antwort

Gibt zurück: DeleteSSOUserAPIResponse


getSSOUserByEmail Internal Link

Parameter

NameTypErforderlichBeschreibung
tenantIdstringJa
emailstringJa

Antwort

Gibt zurück: GetSSOUserByEmailAPIResponse


getSSOUserById Internal Link

Parameter

NameTypErforderlichBeschreibung
tenantIdstringJa
idstringJa

Antwort

Gibt zurück: GetSSOUserByIdAPIResponse


getSSOUsers Internal Link


Parameter

NameTypErforderlichBeschreibung
tenantIdstringJa
skipnumberNein

Antwort

Gibt zurück: GetSSOUsers200Response


patchSSOUser Internal Link

Parameter

NameTypErforderlichBeschreibung
tenantIdstringJa
idstringJa
updateAPISSOUserDataUpdateAPISSOUserDataJa
updateCommentsbooleanNein

Antwort

Gibt zurück: PatchSSOUserAPIResponse


putSSOUser Internal Link

Parameter

NameTypErforderlichBeschreibung
tenantIdstringJa
idstringJa
updateAPISSOUserDataUpdateAPISSOUserDataJa
updateCommentsbooleanNein

Antwort

Gibt zurück: PutSSOUserAPIResponse

Beispiel

putSSOUser Beispiel
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

Parameter

NameTypErforderlichBeschreibung
tenantIdstringJa
createAPIUserSubscriptionDataCreateAPIUserSubscriptionDataJa

Antwort

Gibt zurück: CreateSubscriptionAPIResponse

Beispiel

createSubscription Beispiel
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, // optionaler Parameter zur Demonstration
9 metadata: { campaign: "spring_launch" } // optionaler Parameter zur Demonstration
10};
11const result: CreateSubscriptionAPIResponse = await createSubscription(tenantId, createAPIUserSubscriptionData);
12

deleteSubscription Internal Link

Parameter

NameTypErforderlichBeschreibung
tenantIdstringJa
idstringJa
userIdstringNein

Antwort

Gibt zurück: DeleteSubscriptionAPIResponse


getSubscriptions Internal Link

Parameter

NameTypErforderlichBeschreibung
tenantIdstringJa
userIdstringNein

Antwort

Gibt zurück: GetSubscriptionsAPIResponse

Beispiel

getSubscriptions Beispiel
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

Parameter

NameTypErforderlichBeschreibung
tenantIdstringJa
idstringJa
updateAPIUserSubscriptionDataUpdateAPIUserSubscriptionDataJa
userIdstringNein

Antwort

Gibt zurück: UpdateSubscriptionAPIResponse

Beispiel

Beispiel für 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

Parameter

NameTypErforderlichBeschreibung
tenantIdstringJa
yearNumbernumberNein
monthNumbernumberNein
dayNumbernumberNein
skipnumberNein

Antwort

Gibt zurück: GetTenantDailyUsages200Response

Beispiel

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

createTenantPackage Internal Link

Parameter

NameTypErforderlichBeschreibung
tenantIdstringJa
createTenantPackageBodyCreateTenantPackageBodyJa

Antwort

Gibt zurück: CreateTenantPackage200Response

Beispiel

createTenantPackage Beispiel
Copy Copy
1
2const tenantId: string = "tenant_7890";
3const createTenantPackageBody: CreateTenantPackageBody = {
4 packageName: "Growth Plan",
5 maxSeats: 2500,
6 features: {
7 moderation: true,
8 analytics: true,
9 sso: { enabled: true, provider: "saml" }
10 },
11 billing: { interval: "monthly", priceCents: 19900 },
12 // Beispiel für einen optionalen Parameter: notes ist nicht erforderlich, wird aber angegeben
13 notes: "Onboarding bundle with priority support"
14};
15const result: CreateTenantPackage200Response = await createTenantPackage(tenantId, createTenantPackageBody);
16

deleteTenantPackage Internal Link


Parameter

NameTypErforderlichBeschreibung
tenantIdstringJa
idstringJa

Antwort

Gibt zurück: FlagCommentPublic200Response

Beispiel

Beispiel für deleteTenantPackage
Copy Copy
1
2const tenantId: string = 'acme-corp-tenant-01';
3const packageId: string = 'pkg-2026-06-15-001';
4const dryRun: boolean | undefined = undefined; // Beispiel für ein optionales Flag (nicht von der Funktion erforderlich)
5const result: FlagCommentPublic200Response = await deleteTenantPackage(tenantId, packageId);
6

getTenantPackage Internal Link

Parameter

NameTypeErforderlichBeschreibung
tenantIdstringJa
idstringJa

Antwort

Gibt zurück: GetTenantPackage200Response

Beispiel

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

getTenantPackages Internal Link

Parameter

NameTypErforderlichBeschreibung
tenantIdstringJa
skipnumberNein

Antwort

Gibt zurück: GetTenantPackages200Response

Beispiel

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

replaceTenantPackage Internal Link


Parameter

NameTypErforderlichBeschreibung
tenantIdstringJa
idstringJa
replaceTenantPackageBodyReplaceTenantPackageBodyJa

Antwort

Gibt zurück: FlagCommentPublic200Response

Beispiel

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

updateTenantPackage Internal Link

Parameter

NameTypErforderlichBeschreibung
tenantIdstringJa
idstringJa
updateTenantPackageBodyUpdateTenantPackageBodyJa

Antwort

Gibt zurück: FlagCommentPublic200Response

Beispiel

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

createTenantUser Internal Link

Parameter

NameTypErforderlichBeschreibung
tenantIdstringJa
createTenantUserBodyCreateTenantUserBodyJa

Antwort

Gibt zurück: CreateTenantUser200Response

Beispiel

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

deleteTenantUser Internal Link

Parameter

NameTypErforderlichBeschreibung
tenantIdstringJa
idstringJa
deleteCommentsstringNein
commentDeleteModestringNein

Antwort

Gibt zurück: FlagCommentPublic200Response

Beispiel

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

getTenantUser Internal Link

Parameter

NameTypErforderlichBeschreibung
tenantIdstringYes
idstringYes

Antwort

Gibt zurück: GetTenantUser200Response

Beispiel

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

getTenantUsers Internal Link

Parameter

NameTypErforderlichBeschreibung
tenantIdstringJa
skipnumberNein

Antwort

Gibt zurück: GetTenantUsers200Response

Beispiel

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

replaceTenantUser Internal Link

Parameter

NameTypErforderlichBeschreibung
tenantIdstringJa
idstringJa
replaceTenantUserBodyReplaceTenantUserBodyJa
updateCommentsstringNein

Antwort

Gibt zurück: FlagCommentPublic200Response

Beispiel

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


Parameter

NameTypErforderlichBeschreibung
tenantIdstringJa
idstringJa
redirectURLstringNein

Antwort

Gibt zurück: FlagCommentPublic200Response

Beispiel

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

updateTenantUser Internal Link

Parameter

NameTypErforderlichBeschreibung
tenantIdstringJa
idstringJa
updateTenantUserBodyUpdateTenantUserBodyJa
updateCommentsstringNein

Antwort

Gibt zurück: FlagCommentPublic200Response

Beispiel

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

createTenant Internal Link

Parameter

NameTypErforderlichBeschreibung
tenantIdstringJa
createTenantBodyCreateTenantBodyJa

Antwort

Gibt zurück: CreateTenant200Response

Beispiel

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

deleteTenant Internal Link

Parameter

NameTypeErforderlichBeschreibung
tenantIdstringJa
idstringJa
surestringNein

Antwort

Gibt zurück: FlagCommentPublic200Response

Beispiel

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

getTenant Internal Link


Parameter

NameTypErforderlichBeschreibung
tenantIdstringJa
idstringJa

Antwort

Rückgabe: GetTenant200Response

Beispiel

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

getTenants Internal Link

Parameter

NameTypErforderlichBeschreibung
tenantIdstringJa
metastringNein
skipnumberNein

Antwort

Gibt zurück: GetTenants200Response

Beispiel

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

updateTenant Internal Link


Parameter

NameTypErforderlichBeschreibung
tenantIdstringJa
idstringJa
updateTenantBodyUpdateTenantBodyJa

Antwort

Gibt zurück: FlagCommentPublic200Response

Beispiel

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

changeTicketState Internal Link

Parameter

NameTypErforderlichBeschreibung
tenantIdstringJa
userIdstringJa
idstringJa
changeTicketStateBodyChangeTicketStateBodyJa

Antwort

Gibt zurück: ChangeTicketState200Response

Beispiel

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

createTicket Internal Link

Parameter

NameTypErforderlichBeschreibung
tenantIdstringJa
userIdstringJa
createTicketBodyCreateTicketBodyJa

Antwort

Gibt zurück: CreateTicket200Response

Beispiel

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

getTicket Internal Link

Parameter

NameTypErforderlichBeschreibung
tenantIdstringJa
idstringJa
userIdstringNein

Antwort

Gibt zurück: GetTicket200Response

Beispiel

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

getTickets Internal Link

Parameter

NameTypErforderlichBeschreibung
tenantIdstringJa
userIdstringNein
statenumberNein
skipnumberNein
limitnumberNein

Antwort

Gibt zurück: GetTickets200Response

Beispiel

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

getTranslations Internal Link

Parameter

NameTypErforderlichBeschreibung
namespacestringJa
componentstringJa
localestringNein
useFullTranslationIdsbooleanNein

Antwort

Gibt zurück: GetTranslations200Response

Beispiel

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

uploadImage Internal Link

Bild hochladen und skalieren

Parameter

NameTypErforderlichBeschreibung
tenantIdstringJa
fileBlobJa
sizePresetSizePresetNein
urlIdstringNein

Antwort

Gibt zurück: UploadImageResponse

getUserBadgeProgressById Internal Link

Parameter

NameTypErforderlichBeschreibung
tenantIdstringJa
idstringJa

Antwort

Gibt zurück: GetUserBadgeProgressById200Response

Beispiel

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

getUserBadgeProgressByUserId Internal Link

Parameter

NameTypErforderlichBeschreibung
tenantIdstringJa
userIdstringJa

Antwort

Gibt zurück: GetUserBadgeProgressById200Response

Beispiel

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

getUserBadgeProgressList Internal Link

Parameter

NameTypErforderlichBeschreibung
tenantIdstringJa
userIdstringNein
limitnumberNein
skipnumberNein

Antwort

Gibt zurück: GetUserBadgeProgressList200Response

Beispiel

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

createUserBadge Internal Link

Parameter

NameTypErforderlichBeschreibung
tenantIdstringJa
createUserBadgeParamsCreateUserBadgeParamsJa

Antwort

Gibt zurück: CreateUserBadge200Response

Beispiel

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

deleteUserBadge Internal Link

Parameter

NameTypErforderlichBeschreibung
tenantIdstringJa
idstringJa

Antwort

Gibt zurück: UpdateUserBadge200Response

Beispiel

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

getUserBadge Internal Link

Parameter

NameTypErforderlichBeschreibung
tenantIdstringJa
idstringJa

Antwort

Gibt zurück: GetUserBadge200Response

Beispiel

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

getUserBadges Internal Link


Parameter

NameTypErforderlichBeschreibung
tenantIdstringJa
userIdstringNein
badgeIdstringNein
typenumberNein
displayedOnCommentsbooleanNein
limitnumberNein
skipnumberNein

Antwort

Gibt zurück: GetUserBadges200Response

Beispiel

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

updateUserBadge Internal Link

Parameter

NameTypErforderlichBeschreibung
tenantIdstringJa
idstringJa
updateUserBadgeParamsUpdateUserBadgeParamsJa

Antwort

Gibt zurück: UpdateUserBadge200Response

Beispiel

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

getUserNotificationCount Internal Link


Parameter

NameTypeErforderlichBeschreibung
tenantIdstringJa
ssostringNein

Antwort

Gibt zurück: GetUserNotificationCount200Response

Beispiel

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

getUserNotifications Internal Link

Parameter

NameTypErforderlichBeschreibung
tenantIdstringJa
urlIdstringNein
pageSizenumberNein
afterIdstringNein
includeContextbooleanNein
afterCreatedAtnumberNein
unreadOnlybooleanNein
dmOnlybooleanNein
noDmbooleanNein
includeTranslationsbooleanNein
includeTenantNotificationsbooleanNein
ssostringNein

Antwort

Gibt zurück: GetUserNotifications200Response

Beispiel

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

resetUserNotificationCount Internal Link

Parameter

NameTypErforderlichBeschreibung
tenantIdstringJa
ssostringNein

Antwort

Gibt zurück: ResetUserNotifications200Response

Beispiel

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

resetUserNotifications Internal Link

Parameter

NameTypErforderlichBeschreibung
tenantIdstringJa
afterIdstringNein
afterCreatedAtnumberNein
unreadOnlybooleanNein
dmOnlybooleanNein
noDmbooleanNein
ssostringNein

Antwort

Gibt zurück: ResetUserNotifications200Response

Beispiel

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

updateUserNotificationCommentSubscriptionStatus Internal Link

Benachrichtigungen für einen bestimmten Kommentar aktivieren oder deaktivieren.

Parameters

NameTypErforderlichBeschreibung
tenantIdstringYes
notificationIdstringYes
optedInOrOutUpdateUserNotificationCommentSubscriptionStatusOptedInOrOutEnumYes
commentIdstringYes
ssostringNo

Response

Gibt zurück: UpdateUserNotificationStatus200Response

Example

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

updateUserNotificationPageSubscriptionStatus Internal Link

Benachrichtigungen für eine Seite aktivieren oder deaktivieren. Wenn Benutzer für eine Seite abonniert sind, werden Benachrichtigungen für neue Root-Kommentare erstellt, und auch

Parameter

NameTypErforderlichBeschreibung
tenantIdstringJa
urlIdstringJa
urlstringJa
pageTitlestringJa
subscribedOrUnsubscribedUpdateUserNotificationPageSubscriptionStatusSubscribedOrUnsubscribedEnumJa
ssostringNein

Antwort

Gibt zurück: UpdateUserNotificationStatus200Response

Beispiel

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

updateUserNotificationStatus Internal Link

Parameter

NameTypErforderlichBeschreibung
tenantIdstringJa
notificationIdstringJa
newStatusUpdateUserNotificationStatusNewStatusEnumJa
ssostringNein

Antwort

Gibt zurück: UpdateUserNotificationStatus200Response

Beispiel

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

getUserPresenceStatuses Internal Link

Parameter

NameTypErforderlichBeschreibung
tenantIdstringJa
urlIdWSstringJa
userIdsstringJa

Antwort

Gibt zurück: GetUserPresenceStatuses200Response

Beispiel

getUserPresenceStatuses Beispiel
Copy Copy
1
2const tenantId: string = 'tenant_42';
3const urlIdWS: string = 'wss://comments.fastsite.com/ws/tenant_42';
4const userIds: string = 'user_9012,user_3478';
5const includePresenceMetadata: boolean | undefined = true; // Beispiel für einen optionalen Parameter
6const presenceStatuses: GetUserPresenceStatuses200Response = await getUserPresenceStatuses(tenantId, urlIdWS, userIds);
7

searchUsers Internal Link

Parameter

NameTypErforderlichBeschreibung
tenantIdstringJa
urlIdstringJa
usernameStartsWithstringNein
mentionGroupIdsArrayNein
ssostringNein
searchSectionSearchUsersSearchSectionEnumNein

Antwort

Gibt zurück: SearchUsers200Response

Beispiel

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

getUser Internal Link

Parameter

NameTypErforderlichBeschreibung
tenantIdstringJa
idstringJa

Antwort

Gibt zurück: GetUser200Response

Beispiel

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

createVote Internal Link

Parameter

NameTypErforderlichBeschreibung
tenantIdstringJa
commentIdstringJa
directionCreateVoteDirectionEnumJa
userIdstringNein
anonUserIdstringNein

Antwort

Rückgabe: VoteComment200Response

Beispiel

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

deleteVote Internal Link

Parameter

NameTypErforderlichBeschreibung
tenantIdstringJa
idstringJa
editKeystringNein

Antwort

Gibt zurück: DeleteCommentVote200Response

Beispiel

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

getVotes Internal Link

Parameter

NameTypErforderlichBeschreibung
tenantIdstringJa
urlIdstringJa

Antwort

Gibt zurück: GetVotes200Response

Beispiel

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

getVotesForUser Internal Link

Parameter

NameTypeErforderlichBeschreibung
tenantIdstringJa
urlIdstringJa
userIdstringNein
anonUserIdstringNein

Antwort

Gibt zurück: GetVotesForUser200Response

Beispiel

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

Benötigen Sie Hilfe?

Wenn Sie auf Probleme stoßen oder Fragen zum JavaScript-/TypeScript-SDK haben, bitte:

Mitwirken

Beiträge sind willkommen! Bitte besuchen Sie das GitHub-Repository für Richtlinien zur Mitarbeit.