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-Events (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);
  }
}

aggregieren Internal Link


Fasst Dokumente zusammen, indem sie gruppiert werden (falls groupBy angegeben ist) und mehrere Operationen angewendet werden. Verschiedene Operationen (z. B. sum, countDistinct, avg usw.) werden unterstützt.

Parameter

NameTypErforderlichBeschreibung
tenantIdstringJa
aggregationRequestAggregationRequestJa
parentTenantIdstringNein
includeStatsbooleanNein

Antwort

Gibt zurück: AggregationResponse


Audit-Protokolle abrufen 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_9a8b7c';
3const limit: number = 100;
4const skip: number = 0;
5const after: number = Date.now() - 30 * 24 * 60 * 60 * 1000; // vor 30 Tagen
6const before: number = Date.now();
7const auditLogs: GetAuditLogs200Response = await getAuditLogs(tenantId, limit, skip, undefined, after, before);
8

Vom Kommentar blockieren (öffentlich) Internal Link

Parameter

NameTypErforderlichBeschreibung
tenantIdstringJa
commentIdstringJa
publicBlockFromCommentParamsPublicBlockFromCommentParamsJa
ssostringNein

Antwort

Gibt zurück: BlockFromCommentPublic200Response

Beispiel

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

Kommentar entsperren (öffentlich) Internal Link

Parameter

NameTypErforderlichBeschreibung
tenantIdstringJa
commentIdstringJa
publicBlockFromCommentParamsPublicBlockFromCommentParamsJa
ssostringNein

Antwort

Gibt zurück: UnBlockCommentPublic200Response

Beispiel

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

Gesperrte Kommentare prüfen Internal Link

Parameter

NameTypErforderlichBeschreibung
tenantIdstringJa
commentIdsstringJa
ssostringNein

Antwort

Gibt zurück: CheckedCommentsForBlocked200Response

Beispiel

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

Benutzer vom Kommentar blockieren Internal Link

Parameter

NameTypErforderlichBeschreibung
tenantIdstringJa
idstringJa
blockFromCommentParamsBlockFromCommentParamsJa
userIdstringNein
anonUserIdstringNein

Antwort

Gibt zurück: BlockFromCommentPublic200Response

Beispiel

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

Öffentlichen Kommentar erstellen Internal Link

Parameter

NameTypErforderlichBeschreibung
tenantIdstringJa
urlIdstringJa
broadcastIdstringJa
commentDataCommentDataJa
sessionIdstringNein
ssostringNein

Antwort

Rückgabe: CreateCommentPublic200Response

Beispiel

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

Kommentar löschen Internal Link

Parameter

NameTypErforderlichBeschreibung
tenantIdstringJa
idstringJa
contextUserIdstringNein
isLivebooleanNein

Antwort

Gibt zurück: DeleteComment200Response

Beispiel

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

Öffentlichen Kommentar löschen Internal Link

Parameter

NameTypErforderlichBeschreibung
tenantIdstringYes
commentIdstringYes
broadcastIdstringYes
editKeystringNo
ssostringNo

Antwort

Gibt zurück: DeleteCommentPublic200Response

Beispiel

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

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

Kommentar melden Internal Link

Parameter

NameTypErforderlichBeschreibung
tenantIdstringJa
idstringJa
userIdstringNein
anonUserIdstringNein

Antwort

Gibt zurück: FlagComment200Response

Beispiel

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

Kommentar abrufen Internal Link

Parameter

NameTypErforderlichBeschreibung
tenantIdstringJa
idstringJa

Antwort

Gibt zurück: GetComment200Response

Beispiel

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

Kommentare abrufen Internal Link

Parameter

NameTypErforderlichBeschreibung
tenantIdstringJa
pagenumberNein
limitnumberNein
skipnumberNein
asTreebooleanNein
skipChildrennumberNein
limitChildrennumberNein
maxTreeDepthnumberNein
urlIdstringNein
userIdstringNein
anonUserIdstringNein
contextUserIdstringNein
hashTagstringNein
parentIdstringNein
directionSortDirectionsNein

Antwort

Gibt zurück: GetComments200Response

Beispiel

getComments Beispiel
Copy Copy
1
2const tenantId: string = 'tenant_acme_42';
3const response: GetComments200Response = await getComments(
4 tenantId,
5 1, // Seite
6 20, // Limit
7 0, // Überspringen
8 true, // als Baumstruktur
9 1, // Kinder überspringen
10 3, // maximale Kinderanzahl
11 4, // maximale Baumtiefe
12 'articles/2026/new-product-launch', // URL-ID
13 'user_7890', // Benutzer-ID
14 'anon_4f3b2', // anonyme Benutzer-ID
15 undefined, // Kontext-Benutzer-ID
16 '#launch', // Hashtag
17 undefined // Eltern-ID
18);
19

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

Kommentartext abrufen Internal Link

Parameter

NameTypErforderlichBeschreibung
tenantIdstringJa
commentIdstringJa
editKeystringNein
ssostringNein

Antwort

Gibt zurück: GetCommentText200Response

Beispiel

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

Nutzernamen der Kommentarwertungen abrufen Internal Link

Parameter

NameTypErforderlichBeschreibung
tenantIdstringJa
commentIdstringJa
dirnumberJa
ssostringNein

Antwort

Gibt zurück: GetCommentVoteUserNames200Response

Beispiel

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

Kommentar sperren Internal Link

Parameter

NameTypErforderlichBeschreibung
tenantIdstringJa
commentIdstringJa
broadcastIdstringJa
ssostringNein

Antwort

Gibt zurück: LockComment200Response

Beispiel

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

Kommentar anpinnen Internal Link

Parameter

NameTypErforderlichBeschreibung
tenantIdstringJa
commentIdstringJa
broadcastIdstringJa
ssostringNein

Antwort

Gibt zurück: PinComment200Response

Beispiel

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

Kommentar speichern Internal Link

Parameter

NameTypErforderlichBeschreibung
tenantIdstringJa
createCommentParamsCreateCommentParamsJa
isLivebooleanNein
doSpamCheckbooleanNein
sendEmailsbooleanNein
populateNotificationsbooleanNein

Antwort

Gibt zurück: SaveComment200Response

Beispiel

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

Kommentare im Stapel speichern Internal Link

Parameter

NameTypErforderlichBeschreibung
tenantIdstringJa
createCommentParamsArrayJa
isLivebooleanNein
doSpamCheckbooleanNein
sendEmailsbooleanNein
populateNotificationsbooleanNein

Antwort

Gibt zurück: Array<SaveComment200Response

Beispiel

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

Kommentartext setzen Internal Link

Parameter

NameTypErforderlichBeschreibung
tenantIdstringJa
commentIdstringJa
broadcastIdstringJa
commentTextUpdateRequestCommentTextUpdateRequestJa
editKeystringNein
ssostringNein

Antwort

Gibt zurück: SetCommentText200Response

Beispiel

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

Benutzer vom Kommentar entsperren Internal Link

Parameter

NameTypErforderlichBeschreibung
tenantIdstringJa
idstringJa
unBlockFromCommentParamsUnBlockFromCommentParamsJa
userIdstringNein
anonUserIdstringNein

Antwort

Gibt zurück: UnBlockCommentPublic200Response

Beispiel

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

Kommentarmeldung zurücksetzen Internal Link

Parameter

NameTypErforderlichBeschreibung
tenantIdstringJa
idstringJa
userIdstringNein
anonUserIdstringNein

Antwort

Gibt zurück: FlagComment200Response

Beispiel

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

Kommentar entsperren Internal Link

Parameter

NameTypErforderlichBeschreibung
tenantIdstringJa
commentIdstringJa
broadcastIdstringJa
ssostringNein

Antwort

Gibt zurück: LockComment200Response

Beispiel

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

Kommentar von Pinnung entfernen 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_7f9d2a3b';
3const commentId: string = 'comment_842b9c1f';
4const broadcastId: string = 'bcast_frontpage_202603';
5const sso: string = 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.exampleSignature';
6
7const result: PinComment200Response = await unPinComment(tenantId, commentId, broadcastId, sso);
8

Kommentar aktualisieren Internal Link

Parameter

NameTypErforderlichBeschreibung
tenantIdstringJa
idstringJa
updatableCommentParamsUpdatableCommentParamsJa
contextUserIdstringNein
doSpamCheckbooleanNein
isLivebooleanNein

Antwort

Gibt zurück: FlagCommentPublic200Response

Beispiel

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

Kommentar bewerten 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_9f8b7c';
3const commentId: string = 'cmt_42f3a1';
4const urlId: string = 'articles/ai-trends-2026';
5const broadcastId: string = 'web';
6const voteBodyParams: VoteBodyParams = { vote: 1, reason: 'Insightful and on-topic' };
7const sessionId: string = 'sess_6d2b4c9e';
8const sso: string = 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9';
9const result: VoteComment200Response = await voteComment(tenantId, commentId, urlId, broadcastId, voteBodyParams, sessionId, sso);
10

Kommentare für Benutzer abrufen Internal Link

Parameter

NameTypErforderlichBeschreibung
userIdstringNein
tenantIdstringNein
urlIdstringNein
pagenumberNein
directionSortDirectionsNein
lastGenDatenumberNein
repliesToUserIdstringNein
fetchPageForCommentIdstringNein
includei10nbooleanNein
useFullTranslationIdsbooleanNein
localestringNein
includeConfigbooleanNein
includeNotificationCountbooleanNein
countAllbooleanNein
ssostringNein

Antwort

Gibt zurück: GetCommentsForUserResponse

Beispiel

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

Domain-Konfiguration hinzufügen Internal Link

Parameter

NameTypErforderlichBeschreibung
tenantIdstringJa
addDomainConfigParamsAddDomainConfigParamsJa

Antwort

Gibt zurück: AddDomainConfig200Response


Domain-Konfiguration löschen Internal Link


Parameter

NameTypErforderlichBeschreibung
tenantIdstringJa
domainstringJa

Antwort

Gibt zurück: DeleteDomainConfig200Response


Domain-Konfiguration abrufen Internal Link

Parameter

NameTypErforderlichBeschreibung
tenantIdstringJa
domainstringJa

Antwort

Gibt zurück: GetDomainConfig200Response


Domain-Konfigurationen abrufen Internal Link


Parameter

NameTypErforderlichBeschreibung
tenantIdstringJa

Antwort

Gibt zurück: GetDomainConfigs200Response


Domain-Konfiguration patchen Internal Link


Parameter

NameTypErforderlichBeschreibung
tenantIdstringJa
domainToUpdatestringJa
patchDomainConfigParamsPatchDomainConfigParamsJa

Antwort

Gibt zurück: GetDomainConfig200Response


Domain-Konfiguration ersetzen (PUT) Internal Link

Parameter

NameTypErforderlichBeschreibung
tenantIdstringJa
domainToUpdatestringJa
updateDomainConfigParamsUpdateDomainConfigParamsJa

Antwort

Gibt zurück: GetDomainConfig200Response


E-Mail-Vorlage erstellen Internal Link

Parameter

NameTypErforderlichBeschreibung
tenantIdstringJa
createEmailTemplateBodyCreateEmailTemplateBodyJa

Antwort

Gibt zurück: CreateEmailTemplate200Response

Beispiel

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

E-Mail-Vorlage löschen Internal Link

Parameter

NameTypErforderlichBeschreibung
tenantIdstringYes
idstringYes

Antwort

Gibt zurück: FlagCommentPublic200Response

Beispiel

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

Render-Fehler der E-Mail-Vorlage löschen Internal Link

Parameter

NameTypErforderlichBeschreibung
tenantIdstringJa
idstringJa
errorIdstringJa

Antwort

Gibt zurück: FlagCommentPublic200Response

Beispiel

deleteEmailTemplateRenderError Beispiel
Copy Copy
1
2const tenantId: string = "tenant_7a1d2f9b";
3const id: string = "email_template_42b1";
4const errorId: string = "render_err_2026-04-24_7f3c";
5const includeStackTrace: boolean | undefined = undefined; // optionales Flag-Beispiel
6
7const response: FlagCommentPublic200Response = await deleteEmailTemplateRenderError(tenantId, id, errorId);
8// Wenn ein optionales Optionsobjekt unterstützt würde, könnte es so aussehen:
9// await deleteEmailTemplateRenderError(tenantId, id, errorId /*, { includeStackTrace } */);
10

E-Mail-Vorlage abrufen Internal Link

Parameter

NameTypErforderlichBeschreibung
tenantIdstringJa
idstringJa

Antwort

Gibt zurück: GetEmailTemplate200Response

Beispiel

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

Definitionen der E-Mail-Vorlagen abrufen Internal Link

Parameter

NameTypErforderlichBeschreibung
tenantIdstringJa

Antwort

Gibt zurück: GetEmailTemplateDefinitions200Response

Beispiel

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

Render-Fehler der E-Mail-Vorlagen abrufen Internal Link

Parameter

NameTypErforderlichBeschreibung
tenantIdstringJa
idstringJa
skipnumberNein

Antwort

Gibt zurück: GetEmailTemplateRenderErrors200Response

Beispiel

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

E-Mail-Vorlagen abrufen Internal Link

Parameter

NameTypErforderlichBeschreibung
tenantIdstringJa
skipnumberNein

Antwort

Gibt zurück: GetEmailTemplates200Response

Beispiel

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

E-Mail-Vorlage rendern Internal Link

Parameter

NameTypErforderlichBeschreibung
tenantIdstringJa
renderEmailTemplateBodyRenderEmailTemplateBodyJa
localestringNein

Antwort

Gibt zurück: RenderEmailTemplate200Response

Beispiel

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

E-Mail-Vorlage aktualisieren Internal Link


Parameter

NameTypErforderlichBeschreibung
tenantIdstringJa
idstringJa
updateEmailTemplateBodyUpdateEmailTemplateBodyJa

Antwort

Gibt zurück: FlagCommentPublic200Response

Beispiel

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

Ereignisprotokoll abrufen Internal Link

req tenantId urlId userIdWS

Parameter

NameTypErforderlichBeschreibung
tenantIdstringJa
urlIdstringJa
userIdWSstringJa
startTimenumberJa
endTimenumberJa

Antwort

Gibt zurück: GetEventLog200Response

Beispiel

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

Globales Ereignisprotokoll abrufen Internal Link

req tenantId urlId userIdWS

Parameter

NameTypErforderlichBeschreibung
tenantIdstringJa
urlIdstringJa
userIdWSstringJa
startTimenumberJa
endTimenumberJa

Antwort

Gibt zurück: GetEventLog200Response

Beispiel

getGlobalEventLog Beispiel
Copy Copy
1
2const tenantId: string = "tenant-84b2f1";
3const urlId: string = "article-6721";
4const userIdWS: string = "ws-conn-9a3c";
5const startTime: number = Date.now() - 7 * 24 * 60 * 60 * 1000; // vor 7 Tagen
6const endTimeOptional: number | undefined = undefined; // optionales Ende des Zeitraums
7const endTime: number = endTimeOptional ?? Date.now();
8const eventLog: GetEventLog200Response = await getGlobalEventLog(tenantId, urlId, userIdWS, startTime, endTime);
9

Feed-Beitrag erstellen Internal Link

Parameter

NameTypErforderlichBeschreibung
tenantIdstringJa
createFeedPostParamsCreateFeedPostParamsJa
broadcastIdstringNein
isLivebooleanNein
doSpamCheckbooleanNein
skipDupCheckbooleanNein

Antwort

Rückgabe: CreateFeedPost200Response

Beispiel

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

Öffentlichen Feed-Beitrag erstellen Internal Link

Parameter

NameTypErforderlichBeschreibung
tenantIdstringJa
createFeedPostParamsCreateFeedPostParamsJa
broadcastIdstringNein
ssostringNein

Antwort

Gibt zurück: CreateFeedPostPublic200Response

Beispiel

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

Öffentlichen Feed-Beitrag löschen Internal Link

Parameter

NameTypeErforderlichBeschreibung
tenantIdstringJa
postIdstringJa
broadcastIdstringNein
ssostringNein

Antwort

Gibt zurück: DeleteFeedPostPublic200Response

Beispiel

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

Feed-Beiträge abrufen Internal Link

req tenantId afterId

Parameter

NameTypErforderlichBeschreibung
tenantIdstringJa
afterIdstringNein
limitnumberNein
tagsArrayNein

Antwort

Gibt zurück: GetFeedPosts200Response

Beispiel

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

Öffentliche Feed-Beiträge abrufen 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
2const tenantId: string = 'tenant_acme_01';
3const afterId: string = 'fp_20260301_042';
4const limit: number = 25;
5const tags: Array<string> = ['technology', 'announcement'];
6const sso: string = 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VyIjoiamRvZSJ9.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c';
7const isCrawler: boolean = false;
8const includeUserInfo: boolean = true;
9const response: GetFeedPostsPublic200Response = await getFeedPostsPublic(tenantId, afterId, limit, tags, sso, isCrawler, includeUserInfo);
10

Statistiken der Feed-Beiträge abrufen Internal Link


Parameter

NameTypErforderlichBeschreibung
tenantIdstringJa
postIdsArrayJa
ssostringNein

Antwort

Gibt zurück: GetFeedPostsStats200Response

Beispiel

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

Öffentliche Nutzerreaktionen abrufen Internal Link

Parameter

NameTypErforderlichBeschreibung
tenantIdstringJa
postIdsArrayNein
ssostringNein

Antwort

Gibt zurück: GetUserReactsPublic200Response

Beispiel

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

Öffentliche Reaktion auf Feed-Beitrag Internal Link


Parameter

NameTypErforderlichBeschreibung
tenantIdstringJa
postIdstringJa
reactBodyParamsReactBodyParamsJa
isUndobooleanNein
broadcastIdstringNein
urlIdstringNein
ssostringNein

Antwort

Gibt zurück: ReactFeedPostPublic200Response

Beispiel

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

Feed-Beitrag aktualisieren Internal Link

Parameter

NameTypErforderlichBeschreibung
tenantIdstringJa
idstringJa
feedPostFeedPostJa

Antwort

Gibt zurück: FlagCommentPublic200Response

Beispiel

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

Öffentlichen Feed-Beitrag aktualisieren Internal Link

Parameter

NameTypErforderlichBeschreibung
tenantIdstringJa
postIdstringJa
updateFeedPostParamsUpdateFeedPostParamsJa
broadcastIdstringNein
ssostringNein

Antwort

Gibt zurück: CreateFeedPostPublic200Response

Beispiel

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

Kommentar öffentlich melden Internal Link

Parameter

NameTypErforderlichBeschreibung
tenantIdstringJa
commentIdstringJa
isFlaggedbooleanJa
ssostringNein

Antwort

Gibt zurück: FlagCommentPublic200Response

Beispiel

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

Großes GIF abrufen Internal Link

Parameter

NameTypErforderlichBeschreibung
tenantIdstringJa
largeInternalURLSanitizedstringJa

Antwort

Gibt zurück: GifGetLargeResponse

Beispiel

Beispiel für getGifLarge
Copy Copy
1
2const tenantId: string = 'tenant_8a92f4';
3const largeInternalURLSanitized: string = 'https://cdn.streamingco.com/gifs/product-demo-large.gif';
4let maybeStatus: APIStatus | undefined = undefined; // optionale Metadaten, wenn verfügbar
5const response: GifGetLargeResponse = await getGifLarge(tenantId, largeInternalURLSanitized);
6

Gifs suchen Internal Link

Parameter

NameTypErforderlichBeschreibung
tenantIdstringJa
searchstringJa
localestringNein
ratingstringNein
pagenumberNein

Antwort

Gibt zurück: GifSearchResponse

Beispiel

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

Trendende Gifs abrufen Internal Link

Parameters

NameTypErforderlichBeschreibung
tenantIdstringJa
localestringNein
ratingstringNein
pagenumberNein

Response

Gibt zurück: GifSearchResponse

Beispiel

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

Hashtag hinzufügen Internal Link


Parameter

NameTypeErforderlichBeschreibung
tenantIdstringNein
createHashTagBodyCreateHashTagBodyNein

Antwort

Gibt zurück: AddHashTag200Response

Beispiel

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

Hashtags im Stapel hinzufügen Internal Link

Parameter

NameTypErforderlichBeschreibung
tenantIdstringNein
bulkCreateHashTagsBodyBulkCreateHashTagsBodyNein

Antwort

Gibt zurück: AddHashTagsBulk200Response

Beispiel

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

Hashtag löschen Internal Link

Parameter

NameTypErforderlichBeschreibung
tagstringJa
tenantIdstringNein
deleteHashTagRequestDeleteHashTagRequestNein

Antwort

Gibt zurück: FlagCommentPublic200Response

Beispiel

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

Hashtags abrufen Internal Link

Parameter

NameTypErforderlichBeschreibung
tenantIdstringJa
pagenumberNein

Antwort

Gibt zurück: GetHashTags200Response

Beispiel

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

Hashtag patchen Internal Link

Parameter

NameTypErforderlichBeschreibung
tagstringJa
tenantIdstringNein
updateHashTagBodyUpdateHashTagBodyNein

Antwort

Gibt zurück: PatchHashTag200Response

Beispiel

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

Moderator erstellen Internal Link

Parameter

NameTypErforderlichBeschreibung
tenantIdstringJa
createModeratorBodyCreateModeratorBodyJa

Antwort

Gibt zurück: CreateModerator200Response

Beispiel

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

Moderator löschen Internal Link

Parameter

NameTypeErforderlichBeschreibung
tenantIdstringJa
idstringJa
sendEmailstringNein

Antwort

Gibt zurück: FlagCommentPublic200Response

Beispiel

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

Moderator abrufen Internal Link

Parameter

NameTypErforderlichBeschreibung
tenantIdstringJa
idstringJa

Antwort

Gibt zurück: GetModerator200Response

Beispiel

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

Moderatoren abrufen Internal Link

Parameter

NameTypErforderlichBeschreibung
tenantIdstringJa
skipnumberNein

Antwort

Gibt zurück: GetModerators200Response

Beispiel

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

Einladung senden Internal Link

Parameter

NameTypErforderlichBeschreibung
tenantIdstringJa
idstringJa
fromNamestringJa

Antwort

Gibt zurück: FlagCommentPublic200Response

Beispiel

sendInvite-Beispiel
Copy Copy
1
2const tenantId: string = 'acme-corp-128';
3const id: string = 'comment-8421f';
4const fromName: string = 'Marcus Lindström';
5const note: string | undefined = undefined; // Beispiel für optionalen Parameter
6const response: FlagCommentPublic200Response = await sendInvite(tenantId, id, fromName);
7

Moderator aktualisieren Internal Link

Parameter

NameTypErforderlichBeschreibung
tenantIdstringJa
idstringJa
updateModeratorBodyUpdateModeratorBodyJa

Antwort

Gibt zurück: FlagCommentPublic200Response

Beispiel

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

Benachrichtigungsanzahl löschen Internal Link

Parameter

NameTypErforderlichBeschreibung
tenantIdstringJa
idstringJa

Antwort

Gibt zurück: FlagCommentPublic200Response

Beispiel

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

Zwischengespeicherte Benachrichtigungsanzahl abrufen Internal Link

Parameter

NameTypErforderlichBeschreibung
tenantIdstringJa
idstringJa

Antwort

Gibt zurück: GetCachedNotificationCount200Response

Beispiel

getCachedNotificationCount Beispiel
Copy Copy
1
2const tenantId: string = 'tenant_acme_42';
3const id: string = 'user_00012345';
4const includeUnreadOnly: boolean | undefined = true; // optionales Parameter-Flag (dargestellt)
5const result: GetCachedNotificationCount200Response = await getCachedNotificationCount(tenantId, id);
6

Benachrichtigungsanzahl abrufen Internal Link

Parameter

NameTypErforderlichBeschreibung
tenantIdstringJa
userIdstringNein
urlIdstringNein
fromCommentIdstringNein
viewedbooleanNein
typestringNein

Antwort

Gibt zurück: GetNotificationCount200Response

Beispiel

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

Benachrichtigungen abrufen 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_84b3f2";
3const userId: string = "user_1279";
4const urlId: string = "https://www.example.com/articles/2026/03/25/new-feature";
5const fromCommentId: string = "cmt_5421";
6const viewed: boolean = false;
7const type: string = "mention";
8const skip: number = 0;
9const notifications: GetNotifications200Response = await getNotifications(tenantId, userId, urlId, fromCommentId, viewed, type, skip);
10

Benachrichtigung aktualisieren Internal Link

Parameter

NameTypErforderlichBeschreibung
tenantIdstringJa
idstringJa
updateNotificationBodyUpdateNotificationBodyJa
userIdstringNein

Antwort

Gibt zurück: FlagCommentPublic200Response

Beispiel

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

Seite hinzufügen Internal Link


Parameter

NameTypErforderlichBeschreibung
tenantIdstringJa
createAPIPageDataCreateAPIPageDataJa

Antwort

Gibt zurück: AddPageAPIResponse


Seite löschen Internal Link

Parameter

NameTypErforderlichBeschreibung
tenantIdstringJa
idstringJa

Antwort

Gibt zurück: DeletePageAPIResponse


Seite nach URL-ID abrufen Internal Link


Parameter

NameTypErforderlichBeschreibung
tenantIdstringJa
urlIdstringJa

Antwort

Gibt zurück: GetPageByURLIdAPIResponse


Seiten abrufen Internal Link

Parameter

NameTypErforderlichBeschreibung
tenantIdstringJa

Antwort

Gibt zurück: GetPagesAPIResponse


Seite patchen Internal Link

Parameter

NameTypErforderlichBeschreibung
tenantIdstringJa
idstringJa
updateAPIPageDataUpdateAPIPageDataJa

Antwort

Gibt zurück: PatchPageAPIResponse


Ausstehendes Webhook-Ereignis löschen Internal Link

Parameter

NameTypErforderlichBeschreibung
tenantIdstringJa
idstringJa

Antwort

Gibt zurück: FlagCommentPublic200Response

Beispiel

Beispiel für deletePendingWebhookEvent
Copy Copy
1
2const tenantId: string = "tenant_7f3b2a";
3const webhookEventId: string = "wh_evt_9a8c7d1234";
4const dryRun: boolean | undefined = undefined; // optionales Flagbeispiel (für diesen Aufruf nicht erforderlich)
5const result: FlagCommentPublic200Response = await deletePendingWebhookEvent(tenantId, webhookEventId);
6

Anzahl ausstehender Webhook-Ereignisse abrufen Internal Link

Parameter

NameTypErforderlichBeschreibung
tenantIdstringJa
commentIdstringNein
externalIdstringNein
eventTypestringNein
typestringNein
domainstringNein
attemptCountGTnumberNein

Antwort

Gibt zurück: GetPendingWebhookEventCount200Response

Beispiel

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

Ausstehende Webhook-Ereignisse abrufen 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_9b3f7c';
3const commentId: string | undefined = undefined;
4const externalId: string | undefined = 'external-572a';
5const eventType: string | undefined = 'comment.updated';
6const type: string | undefined = 'outbound';
7const domain: string | undefined = 'reviews.example.com';
8const attemptCountGT: number | undefined = 1;
9const skip: number | undefined = 20;
10
11const result: GetPendingWebhookEvents200Response = await getPendingWebhookEvents(
12 tenantId,
13 commentId,
14 externalId,
15 eventType,
16 type,
17 domain,
18 attemptCountGT,
19 skip
20);
21

Frage-Konfiguration erstellen Internal Link

Parameter

NameTypErforderlichBeschreibung
tenantIdstringJa
createQuestionConfigBodyCreateQuestionConfigBodyJa

Antwort

Gibt zurück: CreateQuestionConfig200Response

Beispiel

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

Frage-Konfiguration löschen Internal Link

Parameter

NameTypErforderlichBeschreibung
tenantIdstringJa
idstringJa

Antwort

Gibt zurück: FlagCommentPublic200Response

Beispiel

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

Frage-Konfiguration abrufen Internal Link


Parameter

NameTypErforderlichBeschreibung
tenantIdstringJa
idstringJa

Antwort

Gibt zurück: GetQuestionConfig200Response

Beispiel

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

Frage-Konfigurationen abrufen Internal Link

Parameter

NameTypErforderlichBeschreibung
tenantIdstringYes
skipnumberNo

Antwort

Gibt zurück: GetQuestionConfigs200Response

Beispiel

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

Frage-Konfiguration aktualisieren Internal Link


Parameter

NameTypErforderlichBeschreibung
tenantIdstringJa
idstringJa
updateQuestionConfigBodyUpdateQuestionConfigBodyJa

Antwort

Gibt zurück: FlagCommentPublic200Response

Beispiel

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

Frageergebnis erstellen Internal Link

Parameter

NameTypErforderlichBeschreibung
tenantIdstringYes
createQuestionResultBodyCreateQuestionResultBodyYes

Antwort

Gibt zurück: CreateQuestionResult200Response

Beispiel

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

Frageergebnis löschen Internal Link

Parameter

NameTypErforderlichBeschreibung
tenantIdstringJa
idstringJa

Antwort

Gibt zurück: FlagCommentPublic200Response

Beispiel

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

Frageergebnis abrufen Internal Link


Parameter

NameTypErforderlichBeschreibung
tenantIdstringJa
idstringJa

Antwort

Gibt zurück: GetQuestionResult200Response

Beispiel

getQuestionResult Beispiel
Copy Copy
1
2const tenantId: string = 'acme-corp-42';
3const id: string = 'question-9f8b7c';
4const includeComments: boolean | undefined = true; // Beispiel für einen optionalen Parameter
5const result: GetQuestionResult200Response = await getQuestionResult(tenantId, id);
6console.log(result);
7

Frageergebnisse abrufen Internal Link

Parameter

NameTypeErforderlichBeschreibung
tenantIdstringJa
urlIdstringNein
userIdstringNein
startDatestringNein
questionIdstringNein
questionIdsstringNein
skipnumberNein

Antwort

Gibt zurück: GetQuestionResults200Response

Beispiel

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

Frageergebnis aktualisieren Internal Link

Parameter

NameTypErforderlichBeschreibung
tenantIdstringJa
idstringJa
updateQuestionResultBodyUpdateQuestionResultBodyJa

Antwort

Gibt zurück: FlagCommentPublic200Response

Beispiel

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

Frageergebnisse aggregieren Internal Link

Parameter

NameTypErforderlichBeschreibung
tenantIdstringYes
questionIdstringNo
questionIdsArrayNo
urlIdstringNo
timeBucketAggregateTimeBucketNo
startDateDateNo
forceRecalculatebooleanNo

Antwort

Gibt zurück: AggregateQuestionResults200Response

Beispiel

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

Frageergebnisse im Stapel aggregieren Internal Link

Parameter

NameTypErforderlichBeschreibung
tenantIdstringJa
bulkAggregateQuestionResultsRequestBulkAggregateQuestionResultsRequestJa
forceRecalculatebooleanNein

Antwort

Gibt zurück: BulkAggregateQuestionResults200Response

Beispiel

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

Kommentare mit Frageergebnissen kombinieren 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-acme-001';
3const questionId: string | undefined = 'q-analytics-42';
4const questionIds: string[] | undefined = ['q-analytics-42', 'q-feedback-17'];
5const urlId: string | undefined = 'url-987654';
6const startDate: Date | undefined = new Date('2026-01-01T00:00:00Z');
7const forceRecalculate: boolean | undefined = true;
8const minValue: number | undefined = 1;
9const maxValue: number | undefined = 5;
10const limit: number | undefined = 250;
11const result: CombineCommentsWithQuestionResults200Response = await combineCommentsWithQuestionResults(
12 tenantId,
13 questionId,
14 questionIds,
15 urlId,
16 startDate,
17 forceRecalculate,
18 minValue,
19 maxValue,
20 limit
21);
22

SSO-Benutzer hinzufügen Internal Link


Parameter

NameTypErforderlichBeschreibung
tenantIdstringJa
createAPISSOUserDataCreateAPISSOUserDataJa

Antwort

Gibt zurück: AddSSOUserAPIResponse


SSO-Benutzer löschen Internal Link


Parameter

NameTypErforderlichBeschreibung
tenantIdstringJa
idstringJa
deleteCommentsbooleanNein
commentDeleteModestringNein

Antwort

Gibt zurück: DeleteSSOUserAPIResponse


SSO-Benutzer per E-Mail abrufen Internal Link

Parameter

NameTypErforderlichBeschreibung
tenantIdstringJa
emailstringJa

Antwort

Gibt zurück: GetSSOUserByEmailAPIResponse


SSO-Benutzer per ID abrufen Internal Link

Parameter

NameTypErforderlichBeschreibung
tenantIdstringJa
idstringJa

Antwort

Gibt zurück: GetSSOUserByIdAPIResponse


SSO-Benutzer abrufen Internal Link


Parameter

NameTypErforderlichBeschreibung
tenantIdstringJa
skipnumberNein

Antwort

Gibt zurück: GetSSOUsers200Response


SSO-Benutzer patchen Internal Link

Parameter

NameTypErforderlichBeschreibung
tenantIdstringJa
idstringJa
updateAPISSOUserDataUpdateAPISSOUserDataJa
updateCommentsbooleanNein

Antwort

Gibt zurück: PatchSSOUserAPIResponse


SSO-Benutzer ersetzen (PUT) 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

Abonnement erstellen 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

Abonnement löschen Internal Link

Parameter

NameTypErforderlichBeschreibung
tenantIdstringJa
idstringJa
userIdstringNein

Antwort

Gibt zurück: DeleteSubscriptionAPIResponse


Abonnements abrufen 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

Abonnement aktualisieren 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

Tägliche Mandanten-Nutzung abrufen Internal Link

Parameter

NameTypErforderlichBeschreibung
tenantIdstringJa
yearNumbernumberNein
monthNumbernumberNein
dayNumbernumberNein
skipnumberNein

Antwort

Gibt zurück: GetTenantDailyUsages200Response

Beispiel

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

Mandantenpaket erstellen Internal Link

Parameter

NameTypErforderlichBeschreibung
tenantIdstringYes
createTenantPackageBodyCreateTenantPackageBodyYes

Antwort

Gibt zurück: CreateTenantPackage200Response

Beispiel

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

Mandantenpaket löschen Internal Link

Parameter

NameTypErforderlichBeschreibung
tenantIdstringJa
idstringJa

Antwort

Gibt zurück: FlagCommentPublic200Response

Beispiel

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

Mandantenpaket abrufen Internal Link

Parameter

NameTypErforderlichBeschreibung
tenantIdstringJa
idstringJa

Antwort

Gibt zurück: GetTenantPackage200Response

Beispiel

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

Mandantenpakete abrufen Internal Link

Parameter

NameTypErforderlichBeschreibung
tenantIdstringJa
skipnumberNein

Antwort

Gibt zurück: GetTenantPackages200Response

Beispiel

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

Mandantenpaket ersetzen Internal Link


Parameter

NameTypErforderlichBeschreibung
tenantIdstringJa
idstringJa
replaceTenantPackageBodyReplaceTenantPackageBodyJa

Antwort

Gibt zurück: FlagCommentPublic200Response

Beispiel

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

Mandantenpaket aktualisieren Internal Link

Parameter

NameTypErforderlichBeschreibung
tenantIdstringJa
idstringJa
updateTenantPackageBodyUpdateTenantPackageBodyJa

Antwort

Gibt zurück: FlagCommentPublic200Response

Beispiel

updateTenantPackage Beispiel
Copy Copy
1
2(async () => {
3 const tenantId: string = "tenant_sf_001";
4 const id: string = "pkg-premium-v2";
5 const updateTenantPackageBody: UpdateTenantPackageBody = {
6 name: "San Francisco Premium",
7 enabled: true,
8 customConfig: { maxComments: 500 },
9 tosConfig: { required: true } // optionale Felder werden durch Anwesenheit gezeigt; andere ausgelassen
10 } as UpdateTenantPackageBody;
11 const result: FlagCommentPublic200Response = await updateTenantPackage(tenantId, id, updateTenantPackageBody);
12 console.log(result);
13})();
14

Mandanten-Benutzer erstellen Internal Link

Parameter

NameTypErforderlichBeschreibung
tenantIdstringJa
createTenantUserBodyCreateTenantUserBodyJa

Antwort

Gibt zurück: CreateTenantUser200Response

Beispiel

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

Mandanten-Benutzer löschen Internal Link

Parameter

NameTypErforderlichBeschreibung
tenantIdstringJa
idstringJa
deleteCommentsstringNein
commentDeleteModestringNein

Antwort

Gibt zurück: FlagCommentPublic200Response

Beispiel

deleteTenantUser Beispiel
Copy Copy
1
2async function run(): Promise<void> {
3 const tenantId: string = "acme_corp_tenant_9f1a2b";
4 const id: string = "user_4d2a1b6c";
5 const deleteComments: string = "true"; // entfernt auch die Kommentare des Benutzers
6 const commentDeleteMode: string = "permanent"; // "permanent" oder "soft"
7 const result: FlagCommentPublic200Response = await deleteTenantUser(tenantId, id, deleteComments, commentDeleteMode);
8 console.log(result);
9}
10run();
11

Mandanten-Benutzer abrufen Internal Link

Parameter

NameTypErforderlichBeschreibung
tenantIdstringJa
idstringJa

Antwort

Gibt zurück: GetTenantUser200Response

Beispiel

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

Mandanten-Benutzer abrufen (Liste) Internal Link

Parameters

NameTypErforderlichBeschreibung
tenantIdstringJa
skipnumberNein

Response

Gibt zurück: GetTenantUsers200Response

Beispiel

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

Mandanten-Benutzer ersetzen Internal Link

Parameter

NameTypErforderlichBeschreibung
tenantIdstringJa
idstringJa
replaceTenantUserBodyReplaceTenantUserBodyJa
updateCommentsstringNein

Antwort

Gibt zurück: FlagCommentPublic200Response

Beispiel

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

Parameter

NameTypErforderlichBeschreibung
tenantIdstringJa
idstringJa
redirectURLstringNein

Antwort

Gibt zurück: FlagCommentPublic200Response

Beispiel

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

Mandanten-Benutzer aktualisieren Internal Link

Parameter

NameTypErforderlichBeschreibung
tenantIdstringJa
idstringJa
updateTenantUserBodyUpdateTenantUserBodyJa
updateCommentsstringNein

Antwort

Gibt zurück: FlagCommentPublic200Response

Beispiel

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

Mandanten erstellen Internal Link

Parameter

NameTypErforderlichBeschreibung
tenantIdstringJa
createTenantBodyCreateTenantBodyJa

Antwort

Gibt zurück: CreateTenant200Response

Beispiel

createTenant Beispiel
Copy Copy
1
2const tenantId: string = 'acme-corp-001';
3const createTenantBody: CreateTenantBody = {
4 name: 'Acme Corporation',
5 domainConfiguration: { primaryDomain: 'comments.acme.com', enforceHttps: true } as APIDomainConfiguration,
6 billingInfo: { planId: 'enterprise', contactEmail: 'billing@acme.com' } as BillingInfo
7 // optionale Felder wie ssoConfig oder customConfig wurden absichtlich weggelassen
8} as CreateTenantBody;
9
10const result: CreateTenant200Response = await createTenant(tenantId, createTenantBody);
11

Mandanten löschen Internal Link

Parameter

NameTypErforderlichBeschreibung
tenantIdstringJa
idstringJa
surestringNein

Antwort

Gibt zurück: FlagCommentPublic200Response

Beispiel

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

Mandanten abrufen Internal Link

Parameter

NameTypErforderlichBeschreibung
tenantIdstringJa
idstringJa

Antwort

Gibt zurück: GetTenant200Response

Beispiel

getTenant Beispiel
Copy Copy
1
2const tenantId: string = "tenant_9f4b2c1a";
3const idOverride: string | undefined = undefined; // optionale Überschreibung, falls verfügbar
4const id: string = idOverride ?? "site_3e7a6b2f";
5const response: GetTenant200Response = await getTenant(tenantId, id);
6console.log(response);
7

Mandanten abrufen (Liste) Internal Link

Parameter

NameTypErforderlichBeschreibung
tenantIdstringJa
metastringNein
skipnumberNein

Antwort

Gibt zurück: GetTenants200Response

Beispiel

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

Mandanten aktualisieren Internal Link

Parameter

NameTypErforderlichBeschreibung
tenantIdstringJa
idstringJa
updateTenantBodyUpdateTenantBodyJa

Antwort

Gibt zurück: FlagCommentPublic200Response

Beispiel

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

Ticketstatus ändern Internal Link

Parameter

NameTypErforderlichBeschreibung
tenantIdstringJa
userIdstringJa
idstringJa
changeTicketStateBodyChangeTicketStateBodyJa

Antwort

Gibt zurück: ChangeTicketState200Response

Beispiel

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

Ticket erstellen Internal Link

Parameter

NameTypErforderlichBeschreibung
tenantIdstringJa
userIdstringJa
createTicketBodyCreateTicketBodyJa

Antwort

Gibt zurück: CreateTicket200Response

Beispiel

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

Ticket abrufen Internal Link

Parameter

NameTypErforderlichBeschreibung
tenantIdstringJa
idstringJa
userIdstringNein

Antwort

Gibt zurück: GetTicket200Response

Beispiel

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

Tickets abrufen Internal Link

Parameter

NameTypErforderlichBeschreibung
tenantIdstringJa
userIdstringNein
statenumberNein
skipnumberNein
limitnumberNein

Antwort

Gibt zurück: GetTickets200Response

Beispiel

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

Übersetzungen abrufen Internal Link

Parameter

NameTypErforderlichBeschreibung
namespacestringJa
componentstringJa
localestringNein
useFullTranslationIdsbooleanNein

Antwort

Gibt zurück: GetTranslationsResponse

Beispiel

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

Bild hochladen Internal Link

Bild hochladen und skalieren

Parameter

NameTypErforderlichBeschreibung
tenantIdstringJa
fileBlobJa
sizePresetSizePresetNein
urlIdstringNein

Antwort

Gibt zurück: UploadImageResponse

Abzeichenfortschritt des Benutzers per ID abrufen Internal Link

Parameter

NameTypErforderlichBeschreibung
tenantIdstringJa
idstringJa

Antwort

Gibt zurück: GetUserBadgeProgressById200Response

Beispiel

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

Abzeichenfortschritt des Benutzers per Benutzer-ID abrufen Internal Link

Parameter

NameTypErforderlichBeschreibung
tenantIdstringJa
userIdstringJa

Antwort

Gibt zurück: GetUserBadgeProgressById200Response

Beispiel

getUserBadgeProgressByUserId Beispiel
Copy Copy
1
2const tenantId: string = 'tenant_7f9c2d3b';
3const maybeUserId: string | undefined = 'user_4b8e1f9a'; // optionale Quelle (kann undefined sein)
4const userId: string = maybeUserId ?? 'user_fallback0001';
5const result: GetUserBadgeProgressById200Response = await getUserBadgeProgressByUserId(tenantId, userId);
6console.log(result);
7

Liste des Abzeichenfortschritts abrufen Internal Link

Parameter

NameTypErforderlichBeschreibung
tenantIdstringJa
userIdstringNein
limitnumberNein
skipnumberNein

Antwort

Gibt zurück: GetUserBadgeProgressList200Response

Beispiel

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

Benutzerabzeichen erstellen Internal Link

Parameter

NameTypErforderlichBeschreibung
tenantIdstringJa
createUserBadgeParamsCreateUserBadgeParamsJa

Antwort

Gibt zurück: CreateUserBadge200Response

Beispiel

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

Benutzerabzeichen löschen Internal Link

Parameter

NameTypErforderlichBeschreibung
tenantIdstringJa
idstringJa

Antwort

Gibt zurück: UpdateUserBadge200Response

Beispiel

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

Benutzerabzeichen abrufen Internal Link

Parameter

NameTypErforderlichBeschreibung
tenantIdstringJa
idstringJa

Antwort

Gibt zurück: GetUserBadge200Response

Beispiel

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

Benutzerabzeichen abrufen (Liste) Internal Link

Parameter

NameTypErforderlichBeschreibung
tenantIdstringJa
userIdstringNein
badgeIdstringNein
typenumberNein
displayedOnCommentsbooleanNein
limitnumberNein
skipnumberNein

Antwort

Gibt zurück: GetUserBadges200Response

Beispiel

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

Benutzerabzeichen aktualisieren Internal Link

Parameter

NameTypErforderlichBeschreibung
tenantIdstringJa
idstringJa
updateUserBadgeParamsUpdateUserBadgeParamsJa

Antwort

Gibt zurück: UpdateUserBadge200Response

Beispiel

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

Benutzer-Benachrichtigungsanzahl abrufen Internal Link

Parameter

NameTypErforderlichBeschreibung
tenantIdstringJa
ssostringNein

Antwort

Gibt zurück: GetUserNotificationCount200Response

Beispiel

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

Benutzer-Benachrichtigungen abrufen Internal Link

Parameter

NameTypErforderlichBeschreibung
tenantIdstringJa
pageSizenumberNein
afterIdstringNein
includeContextbooleanNein
afterCreatedAtnumberNein
unreadOnlybooleanNein
dmOnlybooleanNein
noDmbooleanNein
includeTranslationsbooleanNein
ssostringNein

Antwort

Gibt zurück: GetUserNotifications200Response

Beispiel

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

Benutzer-Benachrichtigungsanzahl zurücksetzen Internal Link

Parameter

NameTypErforderlichBeschreibung
tenantIdstringJa
ssostringNein

Antwort

Gibt zurück: ResetUserNotifications200Response

Beispiel

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

Benutzer-Benachrichtigungen zurücksetzen Internal Link

Parameter

NameTypErforderlichBeschreibung
tenantIdstringJa
afterIdstringNein
afterCreatedAtnumberNein
unreadOnlybooleanNein
dmOnlybooleanNein
noDmbooleanNein
ssostringNein

Antwort

Gibt zurück: ResetUserNotifications200Response

Beispiel

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

Kommentar-Abonnementstatus des Benutzers aktualisieren Internal Link


Benachrichtigungen für einen bestimmten Kommentar aktivieren oder deaktivieren.

Parameter

NameTypErforderlichBeschreibung
tenantIdstringJa
notificationIdstringJa
optedInOrOutUpdateUserNotificationCommentSubscriptionStatusOptedInOrOutEnumJa
commentIdstringJa
ssostringNein

Antwort

Gibt zurück: UpdateUserNotificationStatus200Response

Beispiel

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

Seiten-Abonnementstatus des Benutzers aktualisieren Internal Link


Aktivieren oder deaktivieren Sie Benachrichtigungen für eine Seite. Wenn Benutzer für eine Seite abonniert sind, werden Benachrichtigungen erstellt für neue Root-Kommentare, 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 = 'acme-tenant-42';
3const urlId: string = 'blog-launch-2026';
4const url: string = 'https://acme.example.com/blog/launch-march-2026';
5const pageTitle: string = 'Acme Product Launch — March 2026';
6const subscribedOrUnsubscribed: UpdateUserNotificationPageSubscriptionStatusSubscribedOrUnsubscribedEnum = UpdateUserNotificationPageSubscriptionStatusSubscribedOrUnsubscribedEnum.Subscribed;
7const sso: string = 'sso_jwt_eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9';
8const response: UpdateUserNotificationStatus200Response = await updateUserNotificationPageSubscriptionStatus(tenantId, urlId, url, pageTitle, subscribedOrUnsubscribed, sso);
9

Benachrichtigungsstatus des Benutzers aktualisieren Internal Link

Parameter

NameTypErforderlichBeschreibung
tenantIdstringJa
notificationIdstringJa
newStatusUpdateUserNotificationStatusNewStatusEnumJa
ssostringNein

Antwort

Gibt zurück: UpdateUserNotificationStatus200Response

Beispiel

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

Anwesenheitsstatus der Benutzer abrufen Internal Link

Parameter

NameTypErforderlichBeschreibung
tenantIdstringJa
urlIdWSstringJa
userIdsstringJa

Antwort

Gibt zurück: GetUserPresenceStatuses200Response

Beispiel

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

Benutzer suchen 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_8392';
3const urlId: string = 'articles/2026/03/25/fastcomments-release';
4const usernameStartsWith: string = 'jo';
5const mentionGroupIds: Array<string> = ['editors', 'senior-writers'];
6const sso: string = 'sso_jwt_eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9';
7const searchSection: SearchUsersSearchSectionEnum = SearchUsersSearchSectionEnum.ALL;
8const result: SearchUsers200Response = await searchUsers(tenantId, urlId, usernameStartsWith, mentionGroupIds, sso, searchSection);
9

Benutzer abrufen Internal Link

Parameter

NameTypErforderlichBeschreibung
tenantIdstringJa
idstringJa

Antwort

Gibt zurück: GetUser200Response

Beispiel

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

Stimme erstellen Internal Link

Parameter

NameTypErforderlichBeschreibung
tenantIdstringJa
commentIdstringJa
directionCreateVoteDirectionEnumJa
userIdstringNein
anonUserIdstringNein

Antwort

Gibt zurück: VoteComment200Response

Beispiel

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

Stimme löschen Internal Link

Parameter

NameTypErforderlichBeschreibung
tenantIdstringJa
idstringJa
editKeystringNein

Antwort

Gibt zurück: DeleteCommentVote200Response

Beispiel

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

Stimmen abrufen Internal Link

Parameter

NameTypErforderlichBeschreibung
tenantIdstringJa
urlIdstringJa

Antwort

Rückgabe: GetVotes200Response

Beispiel

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

Stimmen für Benutzer abrufen Internal Link

Parameter

NameTypErforderlichBeschreibung
tenantIdstringJa
urlIdstringJa
userIdstringNein
anonUserIdstringNein

Antwort

Gibt zurück: GetVotesForUser200Response

Beispiel

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

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.