FastComments.com

FastComments JavaScript/TypeScript SDK

Dit is de officiële JavaScript/TypeScript SDK voor FastComments.

Beheer reacties, gebruikers, SSO en moderatie vanuit Node.js of de browser.

Repository

Bekijk op GitHub


Installatie Internal Link

npm

npm install fastcomments-sdk

API-documentatie Internal Link


Volledige API-referentie: docs/api/README.md

Browser- versus servercompatibiliteit Internal Link

Deze SDK gebruikt dubbele toegangspunten om optimale compatibiliteit te waarborgen en runtime-fouten te voorkomen:

  • fastcomments-sdk/browser - Browserveilige versie met native fetch
  • fastcomments-sdk/server - Volledige Node.js-versie met SSO-ondersteuning
  • fastcomments-sdk (standaard) - Alleen types, veilig om overal te importeren

Openbare versus beveiligde API's Internal Link


De SDK biedt drie hoofd-API-klassen:

  • DefaultApi - Beveiligde endpoints die uw API-sleutel vereisen voor authenticatie. Gebruik deze voor serverzijde-bewerkingen.
  • PublicApi - Publieke endpoints die kunnen worden benaderd zonder API-sleutel. Deze kunnen rechtstreeks vanuit browsers/mobiele apparaten/etc. worden aangeroepen.
  • HiddenApi - Interne/admin endpoints voor geavanceerde gebruikssituaties.

Voorbeeld: Public API gebruiken (browser-veilig)

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

const publicApi = new PublicApi();

// Haal reacties op voor een pagina (geen API-sleutel vereist)
const response = await publicApi.getCommentsPublic({
  tenantId: 'your-tenant-id',
  urlId: 'page-url-id'
});

Voorbeeld: Default API gebruiken (alleen serverzijde)

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

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

// Haal reacties op met volledige beheerdersrechten
const response = await defaultApi.getComments({
  tenantId: 'your-tenant-id',
  urlId: 'page-url-id'
});

SSO (Single Sign-On)-integratie Internal Link

FastComments ondersteunt SSO om te integreren met uw bestaande gebruikersauthenticatiesysteem. SSO-functionaliteit is alleen beschikbaar in de server-export omdat het Node.js crypto-functies vereist.

Eenvoudige SSO (Alleen serverzijde)

Eenvoudige SSO moet aan de serverzijde worden gegenereerd en naar de client worden gestuurd:

// Code aan de serverzijde (Node.js/backend)
import { FastCommentsSSO, PublicApi } from 'fastcomments-sdk/server';

// Maak eenvoudige SSO met de ingebouwde helper  
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();

// Stuur ssoToken naar uw client-side code
// Client-side code kan dit token vervolgens gebruiken met de browser SDK

Beveiligde SSO (Server-side, aanbevolen)

Beveiligde SSO moet aan de serverzijde worden geïmplementeerd en biedt betere beveiliging:

// Code aan de serverzijde (Node.js/backend)
import { FastCommentsSSO, PublicApi } from 'fastcomments-sdk/server';

// Maak beveiligde SSO met de ingebouwde helper
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();

// Gebruik met API-aanroepen op de server
const publicApi = new PublicApi();
const response = await publicApi.getCommentsPublic({
  tenantId: 'your-tenant-id',
  urlId: 'page-url-id',
  sso: JSON.stringify(ssoConfig)
});

// Of stuur ssoConfig naar de client voor gebruik in de browser

SSO gebruiken vanuit de browser (met door de server gegenereerd token)

// Code aan de clientzijde (browser)
import { PublicApi } from 'fastcomments-sdk/browser';

// Haal SSO-token op van uw server-endpoint
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 // Gebruik het door de server gegenereerde SSO-token
});

SSO met het aanmaken van een reactie

// Server-side: Maak SSO en reactie
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)
});

Veelvoorkomende gebruiksscenario's Internal Link

Reacties ophalen voor een pagina

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

Een reactie aanmaken

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

Stemmen op een reactie

const voteResponse = await sdk.publicApi.voteComment({
  voteBodyParams: {
    commentId: 'comment-id',
    direction: 1 // 1 voor omhoog stemmen, -1 voor omlaag stemmen
  }
});

Gebruikersbeheer (vereist API-sleutel)

// Zoeken naar gebruikers (vereist DefaultApi)
const users = await sdk.defaultApi.searchUsers({
  tenantId: 'your-tenant-id',
  urlId: 'page-id',
  usernameStartsWith: 'john'
});

Live-evenementen (Realtime-updates) Internal Link

Abonneer op live-evenementen om realtime updates te ontvangen voor reacties, stemmen en andere activiteiten.

Paginaniveau-evenementen

Luister naar live-evenementen op een specifieke pagina (reacties, stemmen, enz.):

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

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

// Abonneer op live-evenementen voor een pagina
const subscription = subscribeToChanges(
  config,
  'your-tenant-id', // tenantIdWS
  'page-url-id',    // urlIdWS  
  'user-session-id', // userIdWS (haal dit uit het antwoord van getComments)
  (event: LiveEvent) => {
    console.log('Live event received:', event);
    
    switch (event.type) {
      case LiveEventType.new_comment:
        console.log('New comment:', event.comment);
        // Werk je UI bij met de nieuwe reactie
        break;
      case LiveEventType.new_vote:
        console.log('New vote:', event.vote);
        // Werk de stemaantallen in je UI bij
        break;
      case LiveEventType.updated_comment:
        console.log('Comment updated:', event.comment);
        break;
      default:
        console.log('Other event type:', event.type);
    }
    
    return true; // Geef true terug als het event is verwerkt
  },
  (isConnected: boolean) => {
    console.log('Connection status:', isConnected ? 'Connected' : 'Disconnected');
  }
);

// Sluit de subscription wanneer klaar
subscription.close();

Abonneer op gebruikersgebeurtenissen

Luister naar gebruiker-specifieke gebeurtenissen (meldingen, vermeldingen, enz.):

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

const userConfig = {
  userIdWS: 'user-session-id', // Verkrijg dit uit het antwoord van getComments
};

// Abonneer op de persoonlijke feed van de gebruiker
const userSubscription = subscribeToUserFeed(
  userConfig,
  (event: LiveEvent) => {
    console.log('User event received:', event);
    
    switch (event.type) {
      case LiveEventType.notification:
        console.log('New notification:', event.notification);
        // Toon melding in je UI
        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');
  }
);

// Sluit wanneer klaar
userSubscription.close();

Het verkrijgen van userIdWS

De userIdWS-parameter is vereist voor live-evenementen en kan worden verkregen uit API-responses:

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

// Extraheer userIdWS uit het antwoord
const userIdWS = response.data?.userSessionInfo?.userIdWS;

if (userIdWS) {
  // Nu kun je je abonneren op live-evenementen
  const subscription = subscribeToChanges(config, tenantIdWS, urlIdWS, userIdWS, handleEvent);
}

Broadcast-ID's Internal Link

Je ziet dat je in sommige API-aanroepen een broadcastId moet doorgeven. Wanneer je events ontvangt, krijg je deze ID terug, zodat je het event kunt negeren als je van plan bent om wijzigingen optimistisch op de client toe te passen (wat je waarschijnlijk wilt doen omdat het de beste ervaring biedt). Geef hier een UUID door. De ID moet uniek genoeg zijn om niet twee keer in een browsersessie voor te komen.

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() // Unieke ID voor deze bewerking
  }
});

Foutafhandeling 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);
  }
}

Aggregeren Internal Link


Aggregeert documenten door ze te groeperen (als groupBy is opgegeven) en meerdere bewerkingen toe te passen. Verschillende bewerkingen (bijv. sum, countDistinct, avg, enz.) worden ondersteund.

Parameters

NaamTypeVereistBeschrijving
tenantIdstringYes
aggregationRequestAggregationRequestYes
parentTenantIdstringNo
includeStatsbooleanNo

Antwoord

Retourneert: Aggregate200Response

Voorbeeld

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

Auditlogs ophalen Internal Link

Parameters

NameTypeRequiredBeschrijving
tenantIdstringYes
limitnumberNo
skipnumberNo
orderSORTDIRNo
afternumberNo
beforenumberNo

Response

Retourneert: GetAuditLogs200Response

Voorbeeld

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

Blokkeren van openbare reactie Internal Link


Parameters

NaamTypeVereistBeschrijving
tenantIdstringJa
commentIdstringJa
publicBlockFromCommentParamsPublicBlockFromCommentParamsJa
ssostringNee

Respons

Retourneert: BlockFromCommentPublic200Response

Voorbeeld

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

Deblokkeren van openbare reactie Internal Link

Parameters

NaamTypeVerplichtBeschrijving
tenantIdstringJa
commentIdstringJa
publicBlockFromCommentParamsPublicBlockFromCommentParamsJa
ssostringNee

Response

Geeft terug: UnBlockCommentPublic200Response

Voorbeeld

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

Controleren op geblokkeerde reacties Internal Link

Parameters

NaamTypeVereistBeschrijving
tenantIdstringJa
commentIdsstringJa
ssostringNee

Antwoord

Retourneert: CheckedCommentsForBlocked200Response

Voorbeeld

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

Gebruiker blokkeren voor reactie Internal Link

Parameters

NaamTypeVereistBeschrijving
tenantIdstringJa
idstringJa
blockFromCommentParamsBlockFromCommentParamsJa
userIdstringNee
anonUserIdstringNee

Respons

Geeft terug: BlockFromCommentPublic200Response

Voorbeeld

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

Openbare reactie aanmaken Internal Link

Parameters

NaamTypeVereistBeschrijving
tenantIdstringJa
urlIdstringJa
broadcastIdstringJa
commentDataCommentDataJa
sessionIdstringNee
ssostringNee

Respons

Retourneert: CreateCommentPublic200Response

Voorbeeld

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

Reactie verwijderen Internal Link


Parameters

NaamTypeVereistBeschrijving
tenantIdstringJa
idstringJa
contextUserIdstringNee
isLivebooleanNee

Respons

Retourneert: DeleteComment200Response

Voorbeeld

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

Openbare reactie verwijderen Internal Link

Parameters

NaamTypeVereistBeschrijving
tenantIdstringJa
commentIdstringJa
broadcastIdstringJa
editKeystringNee
ssostringNee

Antwoord

Retourneert: DeleteCommentPublic200Response

Voorbeeld

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

Stem op reactie verwijderen Internal Link

Parameters

NameTypeRequiredDescription
tenantIdstringJa
commentIdstringJa
voteIdstringJa
urlIdstringJa
broadcastIdstringJa
editKeystringNee
ssostringNee

Respons

Geeft terug: DeleteCommentVote200Response

Voorbeeld

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

Reactie rapporteren Internal Link

Parameters

NaamTypeVereistBeschrijving
tenantIdstringJa
idstringJa
userIdstringNee
anonUserIdstringNee

Antwoord

Retourneert: FlagComment200Response

Voorbeeld

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

Reactie ophalen Internal Link

Parameters

NameTypeRequiredDescription
tenantIdstringYes
idstringYes

Respons

Retourneert: GetComment200Response

Voorbeeld

getComment Voorbeeld
Copy Copy
1
2const tenantId: string = 'tenant_6f1a2b';
3const commentId: string = 'cmt_4d9e8f';
4const includeReplies: boolean | undefined = true; // voorbeeld van optionele parameter (niet doorgegeven aan getComment)
5const result: GetComment200Response = await getComment(tenantId, commentId);
6console.log('Fetched comment for tenant:', tenantId, 'comment id:', commentId);
7console.log('API response received:', result);
8

Reacties ophalen Internal Link

Parameters

NaamTypeVereistBeschrijving
tenantIdstringJa
pagenumberNee
limitnumberNee
skipnumberNee
asTreebooleanNee
skipChildrennumberNee
limitChildrennumberNee
maxTreeDepthnumberNee
urlIdstringNee
userIdstringNee
anonUserIdstringNee
contextUserIdstringNee
hashTagstringNee
parentIdstringNee
directionSortDirectionsNee
fromDatenumberNee
toDatenumberNee

Respons

Geeft terug: GetComments200Response

Voorbeeld

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

Openbare reacties ophalen Internal Link

req tenantId urlId

Parameters

NaamTypeVereistBeschrijving
tenantIdstringJa
urlIdstringJa
pagenumberNee
directionSortDirectionsNee
ssostringNee
skipnumberNee
skipChildrennumberNee
limitnumberNee
limitChildrennumberNee
countChildrenbooleanNee
fetchPageForCommentIdstringNee
includeConfigbooleanNee
countAllbooleanNee
includei10nbooleanNee
localestringNee
modulesstringNee
isCrawlerbooleanNee
includeNotificationCountbooleanNee
asTreebooleanNee
maxTreeDepthnumberNee
useFullTranslationIdsbooleanNee
parentIdstringNee
searchTextstringNee
hashTagsArrayNee
userIdstringNee
customConfigStrstringNee
afterCommentIdstringNee
beforeCommentIdstringNee

Response

Retourneert: GetCommentsPublic200Response

Voorbeeld

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

Reactietekst ophalen Internal Link

Parameters

NaamTypeVereistBeschrijving
tenantIdstringJa
commentIdstringJa
editKeystringNee
ssostringNee

Antwoord

Retourneert: GetCommentText200Response

Voorbeeld

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

Gebruikersnamen van stemmers ophalen Internal Link

Parameters

NaamTypeVereistBeschrijving
tenantIdstringJa
commentIdstringJa
dirnumberJa
ssostringNee

Respons

Retourneert: GetCommentVoteUserNames200Response

Voorbeeld

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

Reactie vergrendelen Internal Link

Parameters

NaamTypeVerplichtBeschrijving
tenantIdstringJa
commentIdstringJa
broadcastIdstringJa
ssostringNee

Respons

Retourneert: LockComment200Response

Voorbeeld

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

Reactie vastzetten Internal Link

Parameters

NaamTypeVereistBeschrijving
tenantIdstringJa
commentIdstringJa
broadcastIdstringJa
ssostringNee

Antwoord

Geeft terug: PinComment200Response

Voorbeeld

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

Reactie bewaren Internal Link


Parameters

NaamTypeVereistBeschrijving
tenantIdstringYes
createCommentParamsCreateCommentParamsYes
isLivebooleanNo
doSpamCheckbooleanNo
sendEmailsbooleanNo
populateNotificationsbooleanNo

Response

Retourneert: SaveComment200Response

Example

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

Reacties in bulk opslaan Internal Link

Parameters

NaamTypeVereistBeschrijving
tenantIdstringJa
createCommentParamsArrayJa
isLivebooleanNee
doSpamCheckbooleanNee
sendEmailsbooleanNee
populateNotificationsbooleanNee

Respons

Retourneert: Array<SaveComment200Response

Voorbeeld

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

Reactietekst instellen Internal Link


Parameters

NameTypeRequiredDescription
tenantIdstringJa
commentIdstringJa
broadcastIdstringJa
commentTextUpdateRequestCommentTextUpdateRequestJa
editKeystringNee
ssostringNee

Response

Retourneert: SetCommentText200Response

Voorbeeld

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

Deblokkeren gebruiker voor reactie Internal Link

Parameters

NaamTypeVereistBeschrijving
tenantIdstringJa
idstringJa
unBlockFromCommentParamsUnBlockFromCommentParamsJa
userIdstringNee
anonUserIdstringNee

Antwoord

Geeft terug: UnBlockCommentPublic200Response

Voorbeeld

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

Markering van reactie verwijderen Internal Link

Parameters

NaamTypeVereistBeschrijving
tenantIdstringJa
idstringJa
userIdstringNee
anonUserIdstringNee

Respons

Retourneert: FlagComment200Response

Voorbeeld

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

Reactie ontgrendelen Internal Link

Parameters

NaamTypeVereistBeschrijving
tenantIdstringJa
commentIdstringJa
broadcastIdstringJa
ssostringNee

Antwoord

Geeft terug: LockComment200Response

Voorbeeld

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

Reactie loszetten Internal Link

Parameters

NaamTypeVereistBeschrijving
tenantIdstringJa
commentIdstringJa
broadcastIdstringJa
ssostringNee

Respons

Geeft terug: PinComment200Response

Voorbeeld

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

Reactie bijwerken Internal Link


Parameters

NameTypeRequiredDescription
tenantIdstringJa
idstringJa
updatableCommentParamsUpdatableCommentParamsJa
contextUserIdstringNee
doSpamCheckbooleanNee
isLivebooleanNee

Respons

Retourneert: FlagCommentPublic200Response

Voorbeeld

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

Stem op reactie Internal Link

Parameters

NaamTypeVereistBeschrijving
tenantIdstringJa
commentIdstringJa
urlIdstringJa
broadcastIdstringJa
voteBodyParamsVoteBodyParamsJa
sessionIdstringNee
ssostringNee

Respons

Retourneert: VoteComment200Response

Voorbeeld

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

Reacties voor gebruiker ophalen Internal Link

Parameters

NaamTypeVereistBeschrijving
userIdstringNee
directionSortDirectionsNee
repliesToUserIdstringNee
pagenumberNee
includei10nbooleanNee
localestringNee
isCrawlerbooleanNee

Respons

Retourneert: GetCommentsForUser200Response

Voorbeeld

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

Domeinconfiguratie toevoegen Internal Link

Parameters

NaamTypeVereistBeschrijving
tenantIdstringJa
addDomainConfigParamsAddDomainConfigParamsJa

Respons

Retourneert: AddDomainConfig200Response

Domeinconfiguratie verwijderen Internal Link

Parameters

NaamTypeVereistBeschrijving
tenantIdstringJa
domainstringJa

Respons

Geeft terug: DeleteDomainConfig200Response


Domeinconfiguratie ophalen Internal Link


Parameters

NaamTypeVereistBeschrijving
tenantIdstringJa
domainstringJa

Antwoord

Retourneert: GetDomainConfig200Response


Domeinconfiguraties ophalen Internal Link


Parameters

NaamTypeVerplichtBeschrijving
tenantIdstringJa

Antwoord

Retourneert: GetDomainConfigs200Response


Domeinconfiguratie bijwerken (PATCH) Internal Link

Parameters

NaamTypeVereistBeschrijving
tenantIdstringJa
domainToUpdatestringJa
patchDomainConfigParamsPatchDomainConfigParamsJa

Respons

Retourneert: GetDomainConfig200Response


Domeinconfiguratie vervangen (PUT) Internal Link

Parameters

NaamTypeVerplichtBeschrijving
tenantIdstringJa
domainToUpdatestringJa
updateDomainConfigParamsUpdateDomainConfigParamsJa

Respons

Retourneert: GetDomainConfig200Response

E-mailsjabloon maken Internal Link

Parameters

NaamTypeVereistBeschrijving
tenantIdstringJa
createEmailTemplateBodyCreateEmailTemplateBodyJa

Antwoord

Geeft terug: CreateEmailTemplate200Response

Voorbeeld

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

E-mailsjabloon verwijderen Internal Link

Parameters

NaamTypeVereistBeschrijving
tenantIdstringJa
idstringJa

Respons

Retourneert: FlagCommentPublic200Response

Voorbeeld

deleteEmailTemplate Voorbeeld
Copy Copy
1
2const tenantId: string = "tenant_9c4f1b2a";
3const id: string = "emailtmpl_4d2b9a5e";
4const requestorNote: string | undefined = undefined; // optionele metadata (niet vereist door de functie)
5const result: FlagCommentPublic200Response = await deleteEmailTemplate(tenantId, id);
6

Renderfout e-mailsjabloon verwijderen Internal Link

Parameters

NaamTypeVereistBeschrijving
tenantIdstringJa
idstringJa
errorIdstringJa

Respons

Retourneert: FlagCommentPublic200Response

Voorbeeld

deleteEmailTemplateRenderError Voorbeeld
Copy Copy
1
2const tenantId: string = 'tenant-72f3b4';
3const templateId: string = 'email_template-9c3a1';
4let providedErrorId: string | undefined = undefined; // optionele waarde, kan elders ingesteld worden
5const errorId: string = providedErrorId ?? 'render_err-5d2f7';
6const result: FlagCommentPublic200Response = await deleteEmailTemplateRenderError(tenantId, templateId, errorId);
7

E-mailsjabloon ophalen Internal Link


Parameters

NaamTypeVereistBeschrijving
tenantIdstringJa
idstringJa

Antwoord

Retourneert: GetEmailTemplate200Response

Voorbeeld

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

Definities van e-mailsjablonen ophalen Internal Link


Parameters

NaamTypeVereistBeschrijving
tenantIdstringJa

Antwoord

Retourneert: GetEmailTemplateDefinitions200Response

Voorbeeld

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

Renderfouten e-mailsjablonen ophalen Internal Link

Parameters

NaamTypeVereistBeschrijving
tenantIdstringYes
idstringYes
skipnumberNo

Respons

Geeft terug: GetEmailTemplateRenderErrors200Response

Voorbeeld

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

E-mailsjablonen ophalen Internal Link


Parameters

NaamTypeVerplichtBeschrijving
tenantIdstringJa
skipnumberNee

Respons

Geeft terug: GetEmailTemplates200Response

Voorbeeld

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

E-mailsjabloon renderen Internal Link

Parameters

NaamTypeVereistBeschrijving
tenantIdstringYes
renderEmailTemplateBodyRenderEmailTemplateBodyYes
localestringNo

Antwoord

Retourneert: RenderEmailTemplate200Response

Voorbeeld

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

E-mailsjabloon bijwerken Internal Link

Parameters

NaamTypeVereistBeschrijving
tenantIdstringJa
idstringJa
updateEmailTemplateBodyUpdateEmailTemplateBodyJa

Respons

Retourneert: FlagCommentPublic200Response

Voorbeeld

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

Gebeurtenislog ophalen Internal Link

req tenantId urlId userIdWS

Parameters

NaamTypeVereistBeschrijving
tenantIdstringJa
urlIdstringJa
userIdWSstringJa
startTimenumberJa
endTimenumberNee

Respons

Retourneert: GetEventLog200Response

Voorbeeld

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

Globale gebeurtenislog ophalen Internal Link


req tenantId urlId userIdWS

Parameters

NaamTypeVereistBeschrijving
tenantIdstringJa
urlIdstringJa
userIdWSstringJa
startTimenumberJa
endTimenumberNee

Antwoord

Retourneert: GetEventLog200Response

Voorbeeld

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

Feed-bericht aanmaken Internal Link

Parameters

NameTypeVereistBeschrijving
tenantIdstringJa
createFeedPostParamsCreateFeedPostParamsJa
broadcastIdstringNee
isLivebooleanNee
doSpamCheckbooleanNee
skipDupCheckbooleanNee

Respons

Retourneert: CreateFeedPost200Response

Voorbeeld

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

Openbaar feed-bericht aanmaken Internal Link

Parameters

NaamTypeVereistBeschrijving
tenantIdstringJa
createFeedPostParamsCreateFeedPostParamsJa
broadcastIdstringNee
ssostringNee

Antwoord

Retourneert: CreateFeedPostPublic200Response

Voorbeeld

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

Openbaar feed-bericht verwijderen Internal Link

Parameters

NameTypeRequiredDescription
tenantIdstringJa
postIdstringJa
broadcastIdstringNee
ssostringNee

Respons

Geeft terug: DeleteFeedPostPublic200Response

Voorbeeld

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

Feed-berichten ophalen Internal Link

req tenantId afterId

Parameters

NaamTypeVereistBeschrijving
tenantIdstringJa
afterIdstringNee
limitnumberNee
tagsArrayNee

Antwoord

Retourneert: GetFeedPosts200Response

Voorbeeld

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

Openbare feed-berichten ophalen Internal Link

req tenantId afterId

Parameters

NameTypeRequiredDescription
tenantIdstringJa
afterIdstringNee
limitnumberNee
tagsArrayNee
ssostringNee
isCrawlerbooleanNee
includeUserInfobooleanNee

Response

Retourneert: GetFeedPostsPublic200Response

Voorbeeld

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

Statistieken feed-berichten ophalen Internal Link

Parameters

NaamTypeVereistBeschrijving
tenantIdstringJa
postIdsArrayJa
ssostringNee

Respons

Retourneert: GetFeedPostsStats200Response

Voorbeeld

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

Publieke gebruikersreacties ophalen Internal Link

Parameters

NaamTypeVereistBeschrijving
tenantIdstringJa
postIdsArrayNee
ssostringNee

Respons

Retourneert: GetUserReactsPublic200Response

Voorbeeld

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

Reageren op openbaar feed-bericht Internal Link

Parameters

NaamTypeVereistBeschrijving
tenantIdstringJa
postIdstringJa
reactBodyParamsReactBodyParamsJa
isUndobooleanNee
broadcastIdstringNee
ssostringNee

Response

Retourneert: ReactFeedPostPublic200Response

Voorbeeld

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

Feed-bericht bijwerken Internal Link

Parameters

NaamTypeVereistBeschrijving
tenantIdstringJa
idstringJa
feedPostFeedPostJa

Respons

Retourneert: FlagCommentPublic200Response

Voorbeeld

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

Openbaar feed-bericht bijwerken Internal Link

Parameters

NaamTypeVerplichtBeschrijving
tenantIdstringJa
postIdstringJa
updateFeedPostParamsUpdateFeedPostParamsJa
broadcastIdstringNee
ssostringNee

Response

Retourneert: CreateFeedPostPublic200Response

Voorbeeld

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

Openbare reactie rapporteren Internal Link


Parameters

NaamTypeVereistBeschrijving
tenantIdstringJa
commentIdstringJa
isFlaggedbooleanJa
ssostringNee

Respons

Retourneert: FlagCommentPublic200Response

Voorbeeld

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

Grote GIF ophalen Internal Link

Parameters

NaamTypeVereistBeschrijving
tenantIdstringJa
largeInternalURLSanitizedstringJa

Respons

Retourneert: GetGifLarge200Response

Voorbeeld

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

GIF's zoeken Internal Link

Parameters

NaamTypeVerplichtBeschrijving
tenantIdstringJa
searchstringJa
localestringNee
ratingstringNee
pagenumberNee

Response

Retourneert: GetGifsSearch200Response

Voorbeeld

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

Populaire GIF's ophalen Internal Link

Parameters

NaamTypeVerplichtBeschrijving
tenantIdstringJa
localestringNee
ratingstringNee
pagenumberNee

Respons

Geeft terug: GetGifsTrending200Response

Voorbeeld

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

Hashtag toevoegen Internal Link


Parameters

NaamTypeVereistBeschrijving
tenantIdstringNee
createHashTagBodyCreateHashTagBodyNee

Response

Retourneert: AddHashTag200Response

Voorbeeld

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

Hashtags in bulk toevoegen Internal Link


Parameters

NaamTypeVerplichtBeschrijving
tenantIdstringNee
bulkCreateHashTagsBodyBulkCreateHashTagsBodyNee

Respons

Geeft terug: AddHashTagsBulk200Response

Voorbeeld

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

Hashtag verwijderen Internal Link

Parameters

NaamTypeVerplichtBeschrijving
tagstringJa
tenantIdstringNee
deleteHashTagRequestDeleteHashTagRequestNee

Antwoord

Retourneert: FlagCommentPublic200Response

Voorbeeld

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

Hashtags ophalen Internal Link

Parameters

NaamTypeVereistBeschrijving
tenantIdstringJa
pagenumberNee

Antwoord

Retourneert: GetHashTags200Response

Voorbeeld

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

Hashtag bijwerken (PATCH) Internal Link

Parameters

NaamTypeVereistBeschrijving
tagstringJa
tenantIdstringNee
updateHashTagBodyUpdateHashTagBodyNee

Respons

Retourneert: PatchHashTag200Response

Voorbeeld

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

Moderator aanmaken Internal Link

Parameters

NaamTypeVerplichtBeschrijving
tenantIdstringJa
createModeratorBodyCreateModeratorBodyJa

Antwoord

Retourneert: CreateModerator200Response

Voorbeeld

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

Moderator verwijderen Internal Link

Parameters

NaamTypeVereistBeschrijving
tenantIdstringJa
idstringJa
sendEmailstringNee

Respons

Retourneert: FlagCommentPublic200Response

Voorbeeld

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

Moderator ophalen Internal Link

Parameters

NameTypeRequiredDescription
tenantIdstringJa
idstringJa

Respons

Retourneert: GetModerator200Response

Voorbeeld

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

Moderators ophalen Internal Link

Parameters

NaamTypeVereistBeschrijving
tenantIdstringJa
skipnumberNee

Response

Geeft terug: GetModerators200Response

Voorbeeld

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

Uitnodiging verzenden Internal Link

Parameters

NaamTypeVereistBeschrijving
tenantIdstringJa
idstringJa
fromNamestringJa

Respons

Retourneert: FlagCommentPublic200Response

Voorbeeld

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

Moderator bijwerken Internal Link

Parameters

NameTypeRequiredDescription
tenantIdstringJa
idstringJa
updateModeratorBodyUpdateModeratorBodyJa

Respons

Retourneert: FlagCommentPublic200Response

Voorbeeld

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

Aantal meldingen verwijderen Internal Link


Parameters

NaamTypeVereistBeschrijving
tenantIdstringJa
idstringJa

Antwoord

Retourneert: FlagCommentPublic200Response

Voorbeeld

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

Gecachte meldingen-aantal ophalen Internal Link

Parameters

NaamTypeVereistBeschrijving
tenantIdstringJa
idstringJa

Antwoord

Retourneert: GetCachedNotificationCount200Response

Voorbeeld

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

Aantal meldingen ophalen Internal Link

Parameters

NaamTypeVereistBeschrijving
tenantIdstringJa
userIdstringNee
urlIdstringNee
fromCommentIdstringNee
viewedbooleanNee
typestringNee

Respons

Geeft terug: GetNotificationCount200Response

Voorbeeld

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

Meldingen ophalen Internal Link

Parameters

NaamTypeVereistBeschrijving
tenantIdstringJa
userIdstringNee
urlIdstringNee
fromCommentIdstringNee
viewedbooleanNee
typestringNee
skipnumberNee

Response

Retourneert: GetNotifications200Response

Voorbeeld

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

Melding bijwerken Internal Link

Parameters

NameTypeRequiredDescription
tenantIdstringJa
idstringJa
updateNotificationBodyUpdateNotificationBodyJa
userIdstringNee

Response

Retourneert: FlagCommentPublic200Response

Voorbeeld

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

Pagina-reactie V1 aanmaken Internal Link

Parameters

NaamTypeVerplichtBeschrijving
tenantIdstringJa
urlIdstringJa
titlestringNee

Antwoord

Retourneert: CreateV1PageReact200Response

Voorbeeld

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

Pagina-reactie V2 aanmaken Internal Link

Parameters

NaamTypeVereistBeschrijving
tenantIdstringJa
urlIdstringJa
idstringJa
titlestringNee

Antwoord

Geeft terug: CreateV2PageReact200Response

Voorbeeld

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

Pagina-reactie V1 verwijderen Internal Link


Parameters

NaamTypeVereistBeschrijving
tenantIdstringJa
urlIdstringJa

Respons

Retourneert: DeleteV1PageReact200Response

Voorbeeld

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

Pagina-reactie V2 verwijderen Internal Link

Parameters

NaamTypeVereistBeschrijving
tenantIdstringYes
urlIdstringYes
idstringYes

Respons

Geeft terug: DeleteV2PageReact200Response

Voorbeeld

deleteV2PageReact Voorbeeld
Copy Copy
1
2const tenantId: string = "tenant_79021";
3const urlId: string = "blog/my-first-post";
4const id: string = "reaction_9f8b7c";
5let includeHistory: boolean | undefined = undefined; // optionele vlag, wordt bij sommige aanroepen gebruikt
6
7const result: DeleteV2PageReact200Response = await deleteV2PageReact(tenantId, urlId, id);
8console.log(result);
9

Pagina-likes V1 ophalen Internal Link

Parameters

NameTypeVereistBeschrijving
tenantIdstringJa
urlIdstringJa

Response

Retourneert: GetV1PageLikes200Response

Voorbeeld

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

Pagina-reacties V2 ophalen Internal Link


Parameters

NaamTypeVereistBeschrijving
tenantIdstringJa
urlIdstringJa

Respons

Retourneert: GetV2PageReacts200Response

Voorbeeld

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

Gebruikers van pagina-reacties V2 ophalen Internal Link

Parameters

NaamTypeVereistBeschrijving
tenantIdstringJa
urlIdstringJa
idstringJa

Respons

Retourneert: GetV2PageReactUsers200Response

Voorbeeld

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

Pagina toevoegen Internal Link

Parameters

NaamTypeVerplichtBeschrijving
tenantIdstringJa
createAPIPageDataCreateAPIPageDataJa

Antwoord

Retourneert: AddPageAPIResponse


Pagina verwijderen Internal Link

Parameters

NaamTypeVereistBeschrijving
tenantIdstringJa
idstringJa

Antwoord

Retourneert: DeletePageAPIResponse


Offline gebruikers ophalen Internal Link

Vorige commentatoren op de pagina die OP DIT MOMENT NIET online zijn. Gesorteerd op displayName. Gebruik dit nadat u /users/online hebt uitgeput om een "Leden"-sectie weer te geven. Cursor-paginering op commenterName: de server doorloopt de gedeeltelijke {tenantId, urlId, commenterName} index vanaf afterName vooruit via $gt, geen $skip-kosten.

Parameters

NaamTypeVereistBeschrijving
tenantIdstringJa
urlIdstringJa
afterNamestringNee
afterUserIdstringNee

Response

Retourneert: GetOfflineUsers200Response

Voorbeeld

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

Online gebruikers ophalen Internal Link

Momenteel online kijkers van een pagina: personen waarvan de websocket-sessie op dit moment op de pagina is geabonneerd. Geeft anonCount + totalCount terug (kamerbrede abonnees, inclusief anonieme kijkers die we niet opsommen).

Parameters

NaamTypeVerplichtOmschrijving
tenantIdstringYes
urlIdstringYes
afterNamestringNo
afterUserIdstringNo

Antwoord

Geeft terug: GetOnlineUsers200Response

Voorbeeld

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

Pagina ophalen via URL-id Internal Link


Parameters

NameTypeRequiredDescription
tenantIdstringJa
urlIdstringJa

Respons

Retourneert: GetPageByURLIdAPIResponse


Pagina's ophalen Internal Link


Parameters

NaamTypeVereistBeschrijving
tenantIdstringJa

Response

Retourneert: GetPagesAPIResponse


Openbare pagina's ophalen Internal Link

Lijst met pagina's voor een tenant. Gebruikt door de FChat-desktopclient om zijn kamerlijst te vullen. Vereist dat enableFChat de waarde true heeft in de opgeloste aangepaste configuratie voor elke pagina. Pagina's die SSO vereisen worden gefilterd op basis van de groepsrechten van de aanvragende gebruiker.

Parameters

NaamTypeVereistBeschrijving
tenantIdstringJa
cursorstringNee
limitnumberNee
qstringNee
sortByPagesSortByNee
hasCommentsbooleanNee

Antwoord

Retourneert: GetPagesPublic200Response

Voorbeeld

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

Gebruikersinformatie ophalen Internal Link

Bulk gebruikersinformatie voor een tenant. Gegeven userIds, retourneer weergave-informatie van User / SSOUser. Wordt gebruikt door de commentaarwidget om gebruikers te verrijken die zojuist verschenen via een presence-evenement. Geen paginacontext: privacy wordt uniform gehandhaafd (privéprofielen worden gemaskeerd).

Parameters

NaamTypeVerplichtBeschrijving
tenantIdstringJa
idsstringJa

Respons

Retourneert: GetUsersInfo200Response

Voorbeeld

Voorbeeld getUsersInfo
Copy Copy
1
2const tenantId: string = 'acme-tenant-007';
3const userIdsList: string[] = ['user_12a', 'user_34b', 'user_56c'];
4const separator: string | undefined = undefined; // optioneel; als undefined standaard komma gebruiken
5const ids: string = userIdsList.join(separator ?? ',');
6const usersInfo: GetUsersInfo200Response = await getUsersInfo(tenantId, ids);
7

Pagina bijwerken (PATCH) Internal Link


Parameters

NaamTypeVereistBeschrijving
tenantIdstringJa
idstringJa
updateAPIPageDataUpdateAPIPageDataJa

Antwoord

Retourneert: PatchPageAPIResponse


In afwachting webhook-event verwijderen Internal Link

Parameters

NaamTypeVerplichtBeschrijving
tenantIdstringJa
idstringJa

Respons

Retourneert: FlagCommentPublic200Response

Voorbeeld

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

Aantal in afwachting webhook-events ophalen Internal Link

Parameters

NaamTypeVereistBeschrijving
tenantIdstringJa
commentIdstringNee
externalIdstringNee
eventTypestringNee
typestringNee
domainstringNee
attemptCountGTnumberNee

Respons

Geeft terug: GetPendingWebhookEventCount200Response

Voorbeeld

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

In afwachting webhook-events ophalen Internal Link

Parameters

NameTypeVereistBeschrijving
tenantIdstringJa
commentIdstringNee
externalIdstringNee
eventTypestringNee
typestringNee
domainstringNee
attemptCountGTnumberNee
skipnumberNee

Respons

Retourneert: GetPendingWebhookEvents200Response

Voorbeeld

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

Vraagconfiguratie aanmaken Internal Link

Parameters

NaamTypeVereistBeschrijving
tenantIdstringJa
createQuestionConfigBodyCreateQuestionConfigBodyJa

Respons

Retourneert: CreateQuestionConfig200Response

Voorbeeld

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

Vraagconfiguratie verwijderen Internal Link

Parameters

NaamTypeVereistBeschrijving
tenantIdstringJa
idstringJa

Antwoord

Retourneert: FlagCommentPublic200Response

Voorbeeld

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

Vraagconfiguratie ophalen Internal Link


Parameters

NaamTypeVereistBeschrijving
tenantIdstringJa
idstringJa

Respons

Retourneert: GetQuestionConfig200Response

Voorbeeld

getQuestionConfig Voorbeeld
Copy Copy
1
2const tenantId: string = "acme-corp-47";
3const questionId: string = "q-4f2b9a";
4const includeDrafts: boolean | undefined = undefined; // tijdelijke aanduiding voor optionele parameter
5const result: GetQuestionConfig200Response = await getQuestionConfig(tenantId, questionId);
6console.log(result);
7

Vraagconfiguraties ophalen Internal Link

Parameters

NameTypeRequiredDescription
tenantIdstringJa
skipnumberNee

Antwoord

Retourneert: GetQuestionConfigs200Response

Voorbeeld

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

Vraagconfiguratie bijwerken Internal Link

Parameters

NaamTypeVereistBeschrijving
tenantIdstringJa
idstringJa
updateQuestionConfigBodyUpdateQuestionConfigBodyJa

Response

Retourneert: FlagCommentPublic200Response

Voorbeeld

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

Vraagresultaat aanmaken Internal Link

Parameters

NaamTypeVereistBeschrijving
tenantIdstringJa
createQuestionResultBodyCreateQuestionResultBodyJa

Response

Geeft terug: CreateQuestionResult200Response

Voorbeeld

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

Vraagresultaat verwijderen Internal Link

Parameters

NaamTypeVereistBeschrijving
tenantIdstringJa
idstringJa

Respons

Retourneert: FlagCommentPublic200Response

Voorbeeld

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

Vraagresultaat ophalen Internal Link

Parameters

NaamTypeVereistBeschrijving
tenantIdstringJa
idstringJa

Response

Retourneert: GetQuestionResult200Response

Voorbeeld

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

Vraagresultaten ophalen Internal Link

Parameters

NameTypeRequiredDescription
tenantIdstringJa
urlIdstringNee
userIdstringNee
startDatestringNee
questionIdstringNee
questionIdsstringNee
skipnumberNee

Antwoord

Retourneert: GetQuestionResults200Response

Voorbeeld

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

Vraagresultaat bijwerken Internal Link

Parameters

NameTypeRequiredDescription
tenantIdstringJa
idstringJa
updateQuestionResultBodyUpdateQuestionResultBodyJa

Respons

Retourneert: FlagCommentPublic200Response

Voorbeeld

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

Vraagresultaten aggregeren Internal Link

Parameters

NaamTypeVereistBeschrijving
tenantIdstringJa
questionIdstringNee
questionIdsArrayNee
urlIdstringNee
timeBucketAggregateTimeBucketNee
startDateDateNee
forceRecalculatebooleanNee

Respons

Retourneert: AggregateQuestionResults200Response

Voorbeeld

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

Vraagresultaten in bulk aggregeren Internal Link


Parameters

NaamTypeVereistBeschrijving
tenantIdstringJa
bulkAggregateQuestionResultsRequestBulkAggregateQuestionResultsRequestJa
forceRecalculatebooleanNee

Antwoord

Retourneert: BulkAggregateQuestionResults200Response

Voorbeeld

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

Reacties combineren met vraagresultaten Internal Link

Parameters

NaamTypeVereistBeschrijving
tenantIdstringJa
questionIdstringNee
questionIdsArrayNee
urlIdstringNee
startDateDateNee
forceRecalculatebooleanNee
minValuenumberNee
maxValuenumberNee
limitnumberNee

Response

Retourneert: CombineCommentsWithQuestionResults200Response

Voorbeeld

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

SSO-gebruiker toevoegen Internal Link


Parameters

NaamTypeVereistBeschrijving
tenantIdstringJa
createAPISSOUserDataCreateAPISSOUserDataJa

Antwoord

Retourneert: AddSSOUserAPIResponse


SSO-gebruiker verwijderen Internal Link


Parameters

NaamTypeVereistBeschrijving
tenantIdstringJa
idstringJa
deleteCommentsbooleanNee
commentDeleteModestringNee

Respons

Geeft terug: DeleteSSOUserAPIResponse


SSO-gebruiker ophalen op e-mail Internal Link


Parameters

NaamTypeVereistBeschrijving
tenantIdstringJa
emailstringJa

Response

Retourneert: GetSSOUserByEmailAPIResponse


SSO-gebruiker ophalen op id Internal Link

Parameters

NaamTypeVereistBeschrijving
tenantIdstringJa
idstringJa

Respons

Retourneert: GetSSOUserByIdAPIResponse


SSO-gebruikers ophalen Internal Link

Parameters

NaamTypeVerplichtBeschrijving
tenantIdstringJa
skipnumberNee

Respons

Retourneert: GetSSOUsers200Response

SSO-gebruiker bijwerken (PATCH) Internal Link

Parameters

NameTypeRequiredDescription
tenantIdstringJa
idstringJa
updateAPISSOUserDataUpdateAPISSOUserDataJa
updateCommentsbooleanNee

Response

Retourneert: PatchSSOUserAPIResponse

SSO-gebruiker vervangen (PUT) Internal Link

Parameters

NaamTypeVereistBeschrijving
tenantIdstringJa
idstringJa
updateAPISSOUserDataUpdateAPISSOUserDataJa
updateCommentsbooleanNee

Respons

Retourneert: PutSSOUserAPIResponse

Voorbeeld

putSSOUser Voorbeeld
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 aanmaken Internal Link

Parameters

NaamTypeVereistBeschrijving
tenantIdstringJa
createAPIUserSubscriptionDataCreateAPIUserSubscriptionDataJa

Antwoord

Retourneert: CreateSubscriptionAPIResponse

Voorbeeld

createSubscription Voorbeeld
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, // optionele parameter gedemonstreerd
9 metadata: { campaign: "spring_launch" } // optionele parameter gedemonstreerd
10};
11const result: CreateSubscriptionAPIResponse = await createSubscription(tenantId, createAPIUserSubscriptionData);
12

Abonnement verwijderen Internal Link


Parameters

NaamTypeVereistBeschrijving
tenantIdstringJa
idstringJa
userIdstringNee

Antwoord

Retourneert: DeleteSubscriptionAPIResponse


Abonnementen ophalen Internal Link

Parameters

NaamTypeVereistBeschrijving
tenantIdstringJa
userIdstringNee

Response

Retourneert: GetSubscriptionsAPIResponse

Voorbeeld

getSubscriptions Voorbeeld
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 bijwerken Internal Link

Parameters

NaamTypeVereistBeschrijving
tenantIdstringYes
idstringYes
updateAPIUserSubscriptionDataUpdateAPIUserSubscriptionDataYes
userIdstringNo

Respons

Retourneert: UpdateSubscriptionAPIResponse

Voorbeeld

updateSubscription Voorbeeld
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

Dagelijks gebruik per tenant ophalen Internal Link

Parameters

NaamTypeVereistBeschrijving
tenantIdstringJa
yearNumbernumberNee
monthNumbernumberNee
dayNumbernumberNee
skipnumberNee

Antwoord

Retourneert: GetTenantDailyUsages200Response

Voorbeeld

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

Tenantpakket aanmaken Internal Link

Parameters

NaamTypeVereistBeschrijving
tenantIdstringJa
createTenantPackageBodyCreateTenantPackageBodyJa

Antwoord

Retourneert: CreateTenantPackage200Response

Voorbeeld

createTenantPackage Voorbeeld
Copy Copy
1
2const tenantId: string = "tenant_7890";
3const createTenantPackageBody: CreateTenantPackageBody = {
4 packageName: "Growth Plan",
5 maxSeats: 2500,
6 features: {
7 moderation: true,
8 analytics: true,
9 sso: { enabled: true, provider: "saml" }
10 },
11 billing: { interval: "monthly", priceCents: 19900 },
12 // optionele parameter gedemonstreerd: notes is niet verplicht maar wel opgegeven
13 notes: "Onboarding bundle with priority support"
14};
15const result: CreateTenantPackage200Response = await createTenantPackage(tenantId, createTenantPackageBody);
16

Tenantpakket verwijderen Internal Link

Parameters

NaamTypeVereistBeschrijving
tenantIdstringJa
idstringJa

Respons

Retourneert: FlagCommentPublic200Response

Voorbeeld

deleteTenantPackage Voorbeeld
Copy Copy
1
2const tenantId: string = 'acme-corp-tenant-01';
3const packageId: string = 'pkg-2026-06-15-001';
4const dryRun: boolean | undefined = undefined; // optioneel vlagvoorbeeld (niet vereist door de functie)
5const result: FlagCommentPublic200Response = await deleteTenantPackage(tenantId, packageId);
6

Tenantpakket ophalen Internal Link

Parameters

NaamTypeVereistBeschrijving
tenantIdstringJa
idstringJa

Antwoord

Retourneert: GetTenantPackage200Response

Voorbeeld

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

Tenantpakketten ophalen Internal Link

Parameters

NaamTypeVereistBeschrijving
tenantIdstringJa
skipnumberNee

Antwoord

Retourneert: GetTenantPackages200Response

Voorbeeld

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

Tenantpakket vervangen Internal Link

Parameters

NaamTypeVereistBeschrijving
tenantIdstringJa
idstringJa
replaceTenantPackageBodyReplaceTenantPackageBodyJa

Antwoord

Retourneert: FlagCommentPublic200Response

Voorbeeld

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

Tenantpakket bijwerken Internal Link

Parameters

NameTypeRequiredDescription
tenantIdstringJa
idstringJa
updateTenantPackageBodyUpdateTenantPackageBodyJa

Antwoord

Retourneert: FlagCommentPublic200Response

Voorbeeld

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

Tenantgebruiker aanmaken Internal Link

Parameters

NaamTypeVereistBeschrijving
tenantIdstringYes
createTenantUserBodyCreateTenantUserBodyYes

Respons

Retourneert: CreateTenantUser200Response

Voorbeeld

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

Tenantgebruiker verwijderen Internal Link

Parameters

NaamTypeVereistBeschrijving
tenantIdstringJa
idstringJa
deleteCommentsstringNee
commentDeleteModestringNee

Respons

Retourneert: FlagCommentPublic200Response

Voorbeeld

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

Tenantgebruiker ophalen Internal Link

Parameters

NaamTypeVereistBeschrijving
tenantIdstringJa
idstringJa

Antwoord

Retourneert: GetTenantUser200Response

Voorbeeld

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

Tenantgebruikers ophalen Internal Link

Parameters

NameTypeRequiredDescription
tenantIdstringJa
skipnumberNee

Antwoord

Retourneert: GetTenantUsers200Response

Voorbeeld

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

Tenantgebruiker vervangen Internal Link

Parameters

NaamTypeVereistBeschrijving
tenantIdstringJa
idstringJa
replaceTenantUserBodyReplaceTenantUserBodyJa
updateCommentsstringNee

Respons

Retourneert: FlagCommentPublic200Response

Voorbeeld

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

Parameters

NaamTypeVereistBeschrijving
tenantIdstringJa
idstringJa
redirectURLstringNee

Respons

Retourneert: FlagCommentPublic200Response

Voorbeeld

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

Tenantgebruiker bijwerken Internal Link

Parameters

NaamTypeVereistBeschrijving
tenantIdstringJa
idstringJa
updateTenantUserBodyUpdateTenantUserBodyJa
updateCommentsstringNee

Antwoord

Retourneert: FlagCommentPublic200Response

Voorbeeld

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

Huurder aanmaken Internal Link

Parameters

NaamTypeVereistBeschrijving
tenantIdstringJa
createTenantBodyCreateTenantBodyJa

Antwoord

Retourneert: CreateTenant200Response

Voorbeeld

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

Huurder verwijderen Internal Link

Parameters

NaamTypeVereistBeschrijving
tenantIdstringJa
idstringJa
surestringNee

Antwoord

Retourneert: FlagCommentPublic200Response

Voorbeeld

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

Huurder ophalen Internal Link

Parameters

NaamTypeVereistBeschrijving
tenantIdstringJa
idstringJa

Respons

Retourneert: GetTenant200Response

Voorbeeld

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

Huurders ophalen Internal Link

Parameters

NaamTypeVereistBeschrijving
tenantIdstringJa
metastringNee
skipnumberNee

Respons

Retourneert: GetTenants200Response

Voorbeeld

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

Huurder bijwerken Internal Link

Parameters

NaamTypeVereistBeschrijving
tenantIdstringJa
idstringJa
updateTenantBodyUpdateTenantBodyJa

Respons

Retourneert: FlagCommentPublic200Response

Voorbeeld

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

Ticketstatus wijzigen Internal Link


Parameters

NameTypeRequiredDescription
tenantIdstringJa
userIdstringJa
idstringJa
changeTicketStateBodyChangeTicketStateBodyJa

Antwoord

Geeft terug: ChangeTicketState200Response

Voorbeeld

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

Ticket aanmaken Internal Link

Parameters

NaamTypeVereistBeschrijving
tenantIdstringJa
userIdstringJa
createTicketBodyCreateTicketBodyJa

Antwoord

Retourneert: CreateTicket200Response

Voorbeeld

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

Ticket ophalen Internal Link


Parameters

NaamTypeVerplichtBeschrijving
tenantIdstringJa
idstringJa
userIdstringNee

Antwoord

Retourneert: GetTicket200Response

Voorbeeld

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

Tickets ophalen Internal Link


Parameters

NaamTypeVereistBeschrijving
tenantIdstringJa
userIdstringNee
statenumberNee
skipnumberNee
limitnumberNee

Antwoord

Geeft terug: GetTickets200Response

Voorbeeld

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

Vertalingen ophalen Internal Link

Parameters

NameTypeRequiredDescription
namespacestringJa
componentstringJa
localestringNee
useFullTranslationIdsbooleanNee

Respons

Retourneert: GetTranslations200Response

Voorbeeld

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

Afbeelding uploaden Internal Link

Een afbeelding uploaden en formaat wijzigen

Parameters

NaamTypeVerplichtBeschrijving
tenantIdstringJa
fileBlobJa
sizePresetSizePresetNee
urlIdstringNee

Respons

Geeft terug: UploadImageResponse

Voortgang gebruikersbadge ophalen op id Internal Link

Parameters

NaamTypeVereistOmschrijving
tenantIdstringJa
idstringJa

Antwoord

Retourneert: GetUserBadgeProgressById200Response

Voorbeeld

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

Voortgang gebruikersbadge ophalen op gebruikers-id Internal Link

Parameters

NaamTypeVerplichtBeschrijving
tenantIdstringYes
userIdstringYes

Respons

Retourneert: GetUserBadgeProgressById200Response

Voorbeeld

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

Lijst voortgang gebruikersbadges ophalen Internal Link

Parameters

NameTypeRequiredDescription
tenantIdstringJa
userIdstringNo
limitnumberNo
skipnumberNo

Respons

Geeft terug: GetUserBadgeProgressList200Response

Voorbeeld

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

Gebruikersbadge aanmaken Internal Link

Parameters

NaamTypeVereistBeschrijving
tenantIdstringJa
createUserBadgeParamsCreateUserBadgeParamsJa

Respons

Retourneert: CreateUserBadge200Response

Voorbeeld

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

Gebruikersbadge verwijderen Internal Link

Parameters

NaamTypeVereistBeschrijving
tenantIdstringJa
idstringJa

Respons

Retourneert: UpdateUserBadge200Response

Voorbeeld

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

Gebruikersbadge ophalen Internal Link

Parameters

NaamTypeVereistBeschrijving
tenantIdstringJa
idstringJa

Response

Retourneert: GetUserBadge200Response

Voorbeeld

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

Gebruikersbadges ophalen Internal Link

Parameters

NaamTypeVereistBeschrijving
tenantIdstringJa
userIdstringNee
badgeIdstringNee
typenumberNee
displayedOnCommentsbooleanNee
limitnumberNee
skipnumberNee

Response

Retourneert: GetUserBadges200Response

Voorbeeld

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

Gebruikersbadge bijwerken Internal Link

Parameters

NaamTypeVerplichtBeschrijving
tenantIdstringJa
idstringJa
updateUserBadgeParamsUpdateUserBadgeParamsJa

Respons

Retourneert: UpdateUserBadge200Response

Voorbeeld

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

Aantal gebruikersmeldingen ophalen Internal Link


Parameters

NaamTypeVereistBeschrijving
tenantIdstringJa
ssostringNee

Response

Retourneert: GetUserNotificationCount200Response

Voorbeeld

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

Gebruikersmeldingen ophalen Internal Link

Parameters

NaamTypeVereistBeschrijving
tenantIdstringJa
urlIdstringNee
pageSizenumberNee
afterIdstringNee
includeContextbooleanNee
afterCreatedAtnumberNee
unreadOnlybooleanNee
dmOnlybooleanNee
noDmbooleanNee
includeTranslationsbooleanNee
includeTenantNotificationsbooleanNee
ssostringNee

Response

Retourneert: GetUserNotifications200Response

Voorbeeld

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

Aantal gebruikersmeldingen resetten Internal Link


Parameters

NaamTypeVereistBeschrijving
tenantIdstringJa
ssostringNee

Respons

Retourneert: ResetUserNotifications200Response

Voorbeeld

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

Gebruikersmeldingen resetten Internal Link

Parameters

NameTypeRequiredDescription
tenantIdstringJa
afterIdstringNee
afterCreatedAtnumberNee
unreadOnlybooleanNee
dmOnlybooleanNee
noDmbooleanNee
ssostringNee

Respons

Retourneert: ResetUserNotifications200Response

Voorbeeld

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

Abonnementsstatus reacties van gebruiker bijwerken Internal Link


Schakel meldingen in of uit voor een specifieke reactie.

Parameters

NaamTypeVereistBeschrijving
tenantIdstringJa
notificationIdstringJa
optedInOrOutUpdateUserNotificationCommentSubscriptionStatusOptedInOrOutEnumJa
commentIdstringJa
ssostringNee

Antwoord

Geeft terug: UpdateUserNotificationStatus200Response

Voorbeeld

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

Abonnementsstatus pagina's van gebruiker bijwerken Internal Link


Schakel meldingen in of uit voor een pagina. Wanneer gebruikers op een pagina geabonneerd zijn, worden er meldingen aangemaakt voor nieuwe root-opmerkingen, en ook

Parameters

NaamTypeVereistBeschrijving
tenantIdstringJa
urlIdstringJa
urlstringJa
pageTitlestringJa
subscribedOrUnsubscribedUpdateUserNotificationPageSubscriptionStatusSubscribedOrUnsubscribedEnumJa
ssostringNee

Response

Retourneert: UpdateUserNotificationStatus200Response

Voorbeeld

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

Gebruikersmelding status bijwerken Internal Link

Parameters

NaamTypeVereistBeschrijving
tenantIdstringJa
notificationIdstringJa
newStatusUpdateUserNotificationStatusNewStatusEnumJa
ssostringNee

Response

Retourneert: UpdateUserNotificationStatus200Response

Voorbeeld

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

Aanwezigheidsstatussen van gebruikers ophalen Internal Link

Parameters

NaamTypeVerplichtBeschrijving
tenantIdstringJa
urlIdWSstringJa
userIdsstringJa

Antwoord

Geeft terug: GetUserPresenceStatuses200Response

Voorbeeld

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

Gebruikers zoeken Internal Link

Parameters

NaamTypeVereistBeschrijving
tenantIdstringJa
urlIdstringJa
usernameStartsWithstringNee
mentionGroupIdsArrayNee
ssostringNee
searchSectionSearchUsersSearchSectionEnumNee

Respons

Retourneert: SearchUsers200Response

Voorbeeld

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

Gebruiker ophalen Internal Link

Parameters

NaamTypeVereistBeschrijving
tenantIdstringYes
idstringYes

Antwoord

Retourneert: GetUser200Response

Voorbeeld

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

Stem aanmaken Internal Link

Parameters

NaamTypeVereistBeschrijving
tenantIdstringJa
commentIdstringJa
directionCreateVoteDirectionEnumJa
userIdstringNee
anonUserIdstringNee

Antwoord

Geeft terug: VoteComment200Response

Voorbeeld

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

Stem verwijderen Internal Link

Parameters

NaamTypeVereistBeschrijving
tenantIdstringJa
idstringJa
editKeystringNee

Respons

Retourneert: DeleteCommentVote200Response

Voorbeeld

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

Stemmen ophalen Internal Link


Parameters

NaamTypeVereistBeschrijving
tenantIdstringJa
urlIdstringJa

Respons

Retourneert: GetVotes200Response

Voorbeeld

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

Stemmen voor gebruiker ophalen Internal Link

Parameters

NameTypeRequiredDescription
tenantIdstringJa
urlIdstringJa
userIdstringNee
anonUserIdstringNee

Respons

Retourneert: GetVotesForUser200Response

Voorbeeld

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

Hulp nodig?

Als u problemen ondervindt of vragen heeft over de JavaScript/TypeScript SDK, kunt u:

Bijdragen

Bijdragen zijn welkom! Bezoek de GitHub-repository voor richtlijnen voor bijdragen.