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

Compatibiliteit browser vs server 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

Publieke vs 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 gebruikssituaties 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);
  }
}

aggregate Internal Link

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

Parameters

NaamTypeVereistBeschrijving
tenantIdstringJa
aggregationRequestAggregationRequestJa
parentTenantIdstringNee
includeStatsbooleanNee

Antwoord

Retourneert: AggregationResponse


getAuditLogs Internal Link

Parameters

NaamTypeVereistBeschrijving
tenantIdstringJa
limitnumberNee
skipnumberNee
orderSORTDIRNee
afternumberNee
beforenumberNee

Response

Retourneert: GetAuditLogs200Response

Voorbeeld

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

blockFromCommentPublic Internal Link

Parameters

NaamTypeVereistBeschrijving
tenantIdstringJa
commentIdstringJa
publicBlockFromCommentParamsPublicBlockFromCommentParamsJa
ssostringNee

Response

Geeft terug: BlockFromCommentPublic200Response

Voorbeeld

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

unBlockCommentPublic Internal Link

Parameters

NaamTypeVereistBeschrijving
tenantIdstringJa
commentIdstringJa
publicBlockFromCommentParamsPublicBlockFromCommentParamsJa
ssostringNee

Respons

Retourneert: UnBlockCommentPublic200Response

Voorbeeld

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

checkedCommentsForBlocked Internal Link

Parameters

NameTypeVereistBeschrijving
tenantIdstringJa
commentIdsstringJa
ssostringNee

Respons

Retourneert: CheckedCommentsForBlocked200Response

Voorbeeld

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

blockUserFromComment Internal Link


Parameters

NaamTypeVereistBeschrijving
tenantIdstringJa
idstringJa
blockFromCommentParamsBlockFromCommentParamsJa
userIdstringNee
anonUserIdstringNee

Respons

Retourneert: BlockFromCommentPublic200Response

Voorbeeld

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

createCommentPublic Internal Link

Parameters

NameTypeRequiredDescription
tenantIdstringJa
urlIdstringJa
broadcastIdstringJa
commentDataCommentDataJa
sessionIdstringNee
ssostringNee

Respons

Geeft terug: CreateCommentPublic200Response

Voorbeeld

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

deleteComment Internal Link

Parameters

NaamTypeVerplichtBeschrijving
tenantIdstringJa
idstringJa
contextUserIdstringNee
isLivebooleanNee

Respons

Retourneert: DeleteComment200Response

Voorbeeld

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

deleteCommentPublic Internal Link

Parameters

NaamTypeVereistBeschrijving
tenantIdstringYes
commentIdstringYes
broadcastIdstringYes
editKeystringNo
ssostringNo

Respons

Retourneert: DeleteCommentPublic200Response

Voorbeeld

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

deleteCommentVote Internal Link

Parameters

NaamTypeVereistBeschrijving
tenantIdstringJa
commentIdstringJa
voteIdstringJa
urlIdstringJa
broadcastIdstringJa
editKeystringNee
ssostringNee

Respons

Retourneert: DeleteCommentVote200Response

Voorbeeld

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

flagComment Internal Link

Parameters

NaamTypeVereistBeschrijving
tenantIdstringJa
idstringJa
userIdstringNee
anonUserIdstringNee

Respons

Retourneert: FlagComment200Response

Voorbeeld

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

getComment Internal Link

Parameters

NaamTypeVereistBeschrijving
tenantIdstringJa
idstringJa

Respons

Retourneert: GetComment200Response

Voorbeeld

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

getComments Internal Link

Parameters

NameTypeRequiredDescription
tenantIdstringJa
pagenumberNee
limitnumberNee
skipnumberNee
asTreebooleanNee
skipChildrennumberNee
limitChildrennumberNee
maxTreeDepthnumberNee
urlIdstringNee
userIdstringNee
anonUserIdstringNee
contextUserIdstringNee
hashTagstringNee
parentIdstringNee
directionSortDirectionsNee

Respons

Retourneert: GetComments200Response

Voorbeeld

getComments Voorbeeld
Copy Copy
1
2const tenantId: string = 'tenant_acme_42';
3const response: GetComments200Response = await getComments(
4 tenantId,
5 1, // pagina (page)
6 20, // limiet (limit)
7 0, // overslaan (skip)
8 true, // als boom (asTree)
9 1, // kinderen overslaan (skipChildren)
10 3, // limiet voor kinderen (limitChildren)
11 4, // maximale boomdiepte (maxTreeDepth)
12 'articles/2026/new-product-launch', // URL-id (urlId)
13 'user_7890', // gebruiker-id (userId)
14 'anon_4f3b2', // anonieme gebruiker-id (anonUserId)
15 undefined, // context gebruiker-id (contextUserId)
16 '#launch', // hashtag (hashTag)
17 undefined // ouder-id (parentId)
18);
19

getCommentsPublic Internal Link

req tenantId urlId

Parameters

NaamTypeVerplichtBeschrijving
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

Respons

Geeft terug: GetCommentsPublic200Response

Voorbeeld

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

getCommentText Internal Link

Parameters

NaamTypeVerplichtBeschrijving
tenantIdstringJa
commentIdstringJa
editKeystringNee
ssostringNee

Antwoord

Retourneert: GetCommentText200Response

Voorbeeld

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

getCommentVoteUserNames Internal Link

Parameters

NaamTypeVereistBeschrijving
tenantIdstringYes
commentIdstringYes
dirnumberYes
ssostringNo

Respons

Retourneert: GetCommentVoteUserNames200Response

Voorbeeld

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

lockComment Internal Link

Parameters

NameTypeRequiredDescription
tenantIdstringJa
commentIdstringJa
broadcastIdstringJa
ssostringNee

Respons

Retourneert: LockComment200Response

Voorbeeld

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

pinComment Internal Link

Parameters

NaamTypeVereistBeschrijving
tenantIdstringJa
commentIdstringJa
broadcastIdstringJa
ssostringNee

Respons

Retourneert: PinComment200Response

Voorbeeld

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

saveComment Internal Link

Parameters

NaamTypeVereistBeschrijving
tenantIdstringJa
createCommentParamsCreateCommentParamsJa
isLivebooleanNee
doSpamCheckbooleanNee
sendEmailsbooleanNee
populateNotificationsbooleanNee

Respons

Retourneert: SaveComment200Response

Voorbeeld

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

saveCommentsBulk Internal Link

Parameters

NaamTypeVereistBeschrijving
tenantIdstringJa
createCommentParamsArrayJa
isLivebooleanNee
doSpamCheckbooleanNee
sendEmailsbooleanNee
populateNotificationsbooleanNee

Respons

Retourneert: Array<SaveComment200Response

Voorbeeld

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

setCommentText Internal Link

Parameters

NaamTypeVereistBeschrijving
tenantIdstringJa
commentIdstringJa
broadcastIdstringJa
commentTextUpdateRequestCommentTextUpdateRequestJa
editKeystringNee
ssostringNee

Antwoord

Retourneert: SetCommentText200Response

Voorbeeld

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

unBlockUserFromComment Internal Link

Parameters

NaamTypeVereistBeschrijving
tenantIdstringJa
idstringJa
unBlockFromCommentParamsUnBlockFromCommentParamsJa
userIdstringNee
anonUserIdstringNee

Response

Retourneert: UnBlockCommentPublic200Response

Voorbeeld

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

unFlagComment Internal Link

Parameters

NaamTypeVereistBeschrijving
tenantIdstringJa
idstringJa
userIdstringNee
anonUserIdstringNee

Respons

Retourneert: FlagComment200Response

Voorbeeld

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

unLockComment Internal Link

Parameters

NaamTypeVereistBeschrijving
tenantIdstringJa
commentIdstringJa
broadcastIdstringJa
ssostringNee

Respons

Retourneert: LockComment200Response

Voorbeeld

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

unPinComment Internal Link

Parameters

NaamTypeVereistBeschrijving
tenantIdstringJa
commentIdstringJa
broadcastIdstringJa
ssostringNee

Respons

Geeft terug: PinComment200Response

Voorbeeld

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

updateComment Internal Link

Parameters

NaamTypeVereistBeschrijving
tenantIdstringJa
idstringJa
updatableCommentParamsUpdatableCommentParamsJa
contextUserIdstringNee
doSpamCheckbooleanNee
isLivebooleanNee

Respons

Retourneert: FlagCommentPublic200Response

Voorbeeld

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

voteComment Internal Link

Parameters

NaamTypeVereistBeschrijving
tenantIdstringJa
commentIdstringJa
urlIdstringJa
broadcastIdstringJa
voteBodyParamsVoteBodyParamsJa
sessionIdstringNee
ssostringNee

Reactie

Retourneert: VoteComment200Response

Voorbeeld

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

getCommentsForUser Internal Link

Parameters

NaamTypeVereistBeschrijving
userIdstringNo
tenantIdstringNo
urlIdstringNo
pagenumberNo
directionSortDirectionsNo
lastGenDatenumberNo
repliesToUserIdstringNo
fetchPageForCommentIdstringNo
includei10nbooleanNo
useFullTranslationIdsbooleanNo
localestringNo
includeConfigbooleanNo
includeNotificationCountbooleanNo
countAllbooleanNo
ssostringNo

Respons

Geeft terug: GetCommentsForUserResponse

Voorbeeld

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

addDomainConfig Internal Link

Parameters

NaamTypeVereistBeschrijving
tenantIdstringJa
addDomainConfigParamsAddDomainConfigParamsJa

Respons

Retourneert: AddDomainConfig200Response

deleteDomainConfig Internal Link

Parameters

NaamTypeVereistBeschrijving
tenantIdstringJa
domainstringJa

Respons

Geeft terug: DeleteDomainConfig200Response


getDomainConfig Internal Link


Parameters

NaamTypeVereistBeschrijving
tenantIdstringJa
domainstringJa

Antwoord

Retourneert: GetDomainConfig200Response


getDomainConfigs Internal Link


Parameters

NaamTypeVerplichtBeschrijving
tenantIdstringJa

Antwoord

Retourneert: GetDomainConfigs200Response


patchDomainConfig Internal Link

Parameters

NaamTypeVereistBeschrijving
tenantIdstringJa
domainToUpdatestringJa
patchDomainConfigParamsPatchDomainConfigParamsJa

Respons

Retourneert: GetDomainConfig200Response


putDomainConfig Internal Link

Parameters

NaamTypeVerplichtBeschrijving
tenantIdstringJa
domainToUpdatestringJa
updateDomainConfigParamsUpdateDomainConfigParamsJa

Respons

Retourneert: GetDomainConfig200Response

createEmailTemplate Internal Link

Parameters

NameTypeRequiredDescription
tenantIdstringJa
createEmailTemplateBodyCreateEmailTemplateBodyJa

Respons

Geeft terug: CreateEmailTemplate200Response

Voorbeeld

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

deleteEmailTemplate Internal Link


Parameters

NaamTypeVereistBeschrijving
tenantIdstringJa
idstringJa

Respons

Retourneert: FlagCommentPublic200Response

Voorbeeld

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

deleteEmailTemplateRenderError Internal Link

Parameters

NameTypeRequiredDescription
tenantIdstringJa
idstringJa
errorIdstringJa

Respons

Retourneert: FlagCommentPublic200Response

Voorbeeld

Voorbeeld van deleteEmailTemplateRenderError
Copy Copy
1
2const tenantId: string = "tenant_7a1d2f9b";
3const id: string = "email_template_42b1";
4const errorId: string = "render_err_2026-04-24_7f3c";
5const includeStackTrace: boolean | undefined = undefined; // voorbeeld van een optionele vlag
6
7const response: FlagCommentPublic200Response = await deleteEmailTemplateRenderError(tenantId, id, errorId);
8// Als een optioneel opties-object ondersteund zou worden, zou het er ongeveer zo uitzien:
9// await deleteEmailTemplateRenderError(tenantId, id, errorId /*, { includeStackTrace } */);
10

getEmailTemplate Internal Link

Parameters

NaamTypeVereistBeschrijving
tenantIdstringJa
idstringJa

Antwoord

Retourneert: GetEmailTemplate200Response

Voorbeeld

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

getEmailTemplateDefinitions Internal Link

Parameters

NaamTypeVereistBeschrijving
tenantIdstringJa

Respons

Retourneert: GetEmailTemplateDefinitions200Response

Voorbeeld

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

getEmailTemplateRenderErrors Internal Link

Parameters

NameTypeRequiredBeschrijving
tenantIdstringYes
idstringYes
skipnumberNo

Antwoord

Retourneert: GetEmailTemplateRenderErrors200Response

Voorbeeld

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

getEmailTemplates Internal Link

Parameters

NaamTypeVereistBeschrijving
tenantIdstringJa
skipnumberNee

Antwoord

Retourneert: GetEmailTemplates200Response

Voorbeeld

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

renderEmailTemplate Internal Link

Parameters

NaamTypeVereistBeschrijving
tenantIdstringJa
renderEmailTemplateBodyRenderEmailTemplateBodyJa
localestringNee

Respons

Retourneert: RenderEmailTemplate200Response

Voorbeeld

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

updateEmailTemplate Internal Link

Parameters

NaamTypeVereistBeschrijving
tenantIdstringJa
idstringJa
updateEmailTemplateBodyUpdateEmailTemplateBodyJa

Respons

Retourneert: FlagCommentPublic200Response

Voorbeeld

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

getEventLog Internal Link

vereist tenantId urlId userIdWS

Parameters

NaamTypeVereistBeschrijving
tenantIdstringJa
urlIdstringJa
userIdWSstringJa
startTimenumberJa
endTimenumberJa

Antwoord

Retourneert: GetEventLog200Response

Voorbeeld

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

getGlobalEventLog Internal Link


req tenantId urlId userIdWS

Parameters

NaamTypeVereistBeschrijving
tenantIdstringJa
urlIdstringJa
userIdWSstringJa
startTimenumberJa
endTimenumberJa

Respons

Geeft terug: GetEventLog200Response

Voorbeeld

getGlobalEventLog Voorbeeld
Copy Copy
1
2const tenantId: string = "tenant-84b2f1";
3const urlId: string = "article-6721";
4const userIdWS: string = "ws-conn-9a3c";
5const startTime: number = Date.now() - 7 * 24 * 60 * 60 * 1000; // 7 dagen geleden
6const endTimeOptional: number | undefined = undefined; // optioneel einde van tijdsbestek
7const endTime: number = endTimeOptional ?? Date.now();
8const eventLog: GetEventLog200Response = await getGlobalEventLog(tenantId, urlId, userIdWS, startTime, endTime);
9

createFeedPost Internal Link

Parameters

NaamTypeVereistBeschrijving
tenantIdstringJa
createFeedPostParamsCreateFeedPostParamsJa
broadcastIdstringNee
isLivebooleanNee
doSpamCheckbooleanNee
skipDupCheckbooleanNee

Response

Retourneert: CreateFeedPost200Response

Voorbeeld

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

createFeedPostPublic Internal Link

Parameters

NaamTypeVereistBeschrijving
tenantIdstringJa
createFeedPostParamsCreateFeedPostParamsJa
broadcastIdstringNee
ssostringNee

Antwoord

Retourneert: CreateFeedPostPublic200Response

Voorbeeld

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

deleteFeedPostPublic Internal Link

Parameters

NaamTypeVereistBeschrijving
tenantIdstringJa
postIdstringJa
broadcastIdstringNee
ssostringNee

Respons

Retourneert: DeleteFeedPostPublic200Response

Voorbeeld

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

getFeedPosts Internal Link

req tenantId afterId

Parameters

NaamTypeVereistBeschrijving
tenantIdstringJa
afterIdstringNee
limitnumberNee
tagsArrayNee

Antwoord

Retourneert: GetFeedPosts200Response

Voorbeeld

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

getFeedPostsPublic Internal Link

req tenantId afterId

Parameters

NaamTypeVereistBeschrijving
tenantIdstringJa
afterIdstringNee
limitnumberNee
tagsArrayNee
ssostringNee
isCrawlerbooleanNee
includeUserInfobooleanNee

Antwoord

Retourneert: GetFeedPostsPublic200Response

Voorbeeld

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

getFeedPostsStats Internal Link

Parameters

NaamTypeVereistBeschrijving
tenantIdstringJa
postIdsArrayJa
ssostringNee

Respons

Retourneert: GetFeedPostsStats200Response

Voorbeeld

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

getUserReactsPublic Internal Link

Parameters

NaamTypeVereistBeschrijving
tenantIdstringJa
postIdsArrayNee
ssostringNee

Respons

Retourneert: GetUserReactsPublic200Response

Voorbeeld

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

reactFeedPostPublic Internal Link

Parameters

NaamTypeVereistBeschrijving
tenantIdstringJa
postIdstringJa
reactBodyParamsReactBodyParamsJa
isUndobooleanNee
broadcastIdstringNee
urlIdstringNee
ssostringNee

Respons

Retourneert: ReactFeedPostPublic200Response

Voorbeeld

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

updateFeedPost Internal Link

Parameters

NaamTypeVereistBeschrijving
tenantIdstringJa
idstringJa
feedPostFeedPostJa

Respons

Retourneert: FlagCommentPublic200Response

Voorbeeld

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

updateFeedPostPublic Internal Link

Parameters

NaamTypeVereistBeschrijving
tenantIdstringJa
postIdstringJa
updateFeedPostParamsUpdateFeedPostParamsJa
broadcastIdstringNee
ssostringNee

Respons

Retourneert: CreateFeedPostPublic200Response

Voorbeeld

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

flagCommentPublic Internal Link

Parameters

NaamTypeVereistBeschrijving
tenantIdstringJa
commentIdstringJa
isFlaggedbooleanJa
ssostringNee

Respons

Geeft terug: FlagCommentPublic200Response

Voorbeeld

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

getGifLarge Internal Link

Parameters

NaamTypeVereistBeschrijving
tenantIdstringJa
largeInternalURLSanitizedstringJa

Respons

Retourneert: GifGetLargeResponse

Voorbeeld

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

getGifsSearch Internal Link

Parameters

NaamTypeVereistBeschrijving
tenantIdstringJa
searchstringJa
localestringNee
ratingstringNee
pagenumberNee

Antwoord

Geeft terug: GifSearchResponse

Voorbeeld

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

getGifsTrending Internal Link

Parameters

NaamTypeVereistBeschrijving
tenantIdstringJa
localestringNee
ratingstringNee
pagenumberNee

Antwoord

Geeft terug: GifSearchResponse

Voorbeeld

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

addHashTag Internal Link

Parameters

NaamTypeVereistBeschrijving
tenantIdstringNee
createHashTagBodyCreateHashTagBodyNee

Respons

Retourneert: AddHashTag200Response

Voorbeeld

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

addHashTagsBulk Internal Link

Parameters

NaamTypeVereistBeschrijving
tenantIdstringNee
bulkCreateHashTagsBodyBulkCreateHashTagsBodyNee

Antwoord

Geeft terug: AddHashTagsBulk200Response

Voorbeeld

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

deleteHashTag Internal Link

Parameters

NaamTypeVerplichtBeschrijving
tagstringYes
tenantIdstringNo
deleteHashTagRequestDeleteHashTagRequestNo

Antwoord

Retourneert: FlagCommentPublic200Response

Voorbeeld

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

getHashTags Internal Link

Parameters

NaamTypeVereistBeschrijving
tenantIdstringJa
pagenumberNee

Respons

Retourneert: GetHashTags200Response

Voorbeeld

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

patchHashTag Internal Link

Parameters

NaamTypeVerplichtBeschrijving
tagstringJa
tenantIdstringNee
updateHashTagBodyUpdateHashTagBodyNee

Response

Retourneert: PatchHashTag200Response

Voorbeeld

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

createModerator Internal Link

Parameteren

NaamTypeVereistBeschrijving
tenantIdstringJa
createModeratorBodyCreateModeratorBodyJa

Reactie

Retourneert: CreateModerator200Response

Voorbeeld

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

deleteModerator Internal Link


Parameters

NaamTypeVereistBeschrijving
tenantIdstringJa
idstringJa
sendEmailstringNee

Respons

Retourneert: FlagCommentPublic200Response

Voorbeeld

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

getModerator Internal Link

Parameters

NaamTypeVereistBeschrijving
tenantIdstringJa
idstringJa

Antwoord

Retourneert: GetModerator200Response

Voorbeeld

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

getModerators Internal Link

Parameters

NaamTypeVereistBeschrijving
tenantIdstringJa
skipnumberNee

Respons

Retourneert: GetModerators200Response

Voorbeeld

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

sendInvite Internal Link

Parameters

NaamTypeVereistBeschrijving
tenantIdstringJa
idstringJa
fromNamestringJa

Antwoord

Retourneert: FlagCommentPublic200Response

Voorbeeld

sendInvite Voorbeeld
Copy Copy
1
2const tenantId: string = 'acme-corp-128';
3const id: string = 'comment-8421f';
4const fromName: string = 'Marcus Lindström';
5const note: string | undefined = undefined; // voorbeeld van een optionele parameter
6const response: FlagCommentPublic200Response = await sendInvite(tenantId, id, fromName);
7

updateModerator Internal Link

Parameters

NaamTypeVereistBeschrijving
tenantIdstringJa
idstringJa
updateModeratorBodyUpdateModeratorBodyJa

Respons

Retourneert: FlagCommentPublic200Response

Voorbeeld

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

deleteNotificationCount Internal Link

Parameters

NaamTypeVerplichtBeschrijving
tenantIdstringJa
idstringJa

Antwoord

Retourneert: FlagCommentPublic200Response

Voorbeeld

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

getCachedNotificationCount Internal Link

Parameters

NaamTypeVereistBeschrijving
tenantIdstringJa
idstringJa

Antwoord

Retourneert: GetCachedNotificationCount200Response

Voorbeeld

getCachedNotificationCount Voorbeeld
Copy Copy
1
2const tenantId: string = 'tenant_acme_42';
3const id: string = 'user_00012345';
4const includeUnreadOnly: boolean | undefined = true; // optionele parametervlag (gedemonstreerd)
5const result: GetCachedNotificationCount200Response = await getCachedNotificationCount(tenantId, id);
6

getNotificationCount Internal Link

Parameters

NaamTypeVereistBeschrijving
tenantIdstringJa
userIdstringNee
urlIdstringNee
fromCommentIdstringNee
viewedbooleanNee
typestringNee

Respons

Retourneert: GetNotificationCount200Response

Voorbeeld

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

getNotifications Internal Link

Parameters

NameTypeVerplichtBeschrijving
tenantIdstringJa
userIdstringNee
urlIdstringNee
fromCommentIdstringNee
viewedbooleanNee
typestringNee
skipnumberNee

Respons

Retourneert: GetNotifications200Response

Voorbeeld

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

updateNotification Internal Link

Parameters

NaamTypeVereistBeschrijving
tenantIdstringJa
idstringJa
updateNotificationBodyUpdateNotificationBodyJa
userIdstringNee

Respons

Retourneert: FlagCommentPublic200Response

Voorbeeld

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

addPage Internal Link

Parameters

NaamTypeVerplichtBeschrijving
tenantIdstringJa
createAPIPageDataCreateAPIPageDataJa

Antwoord

Retourneert: AddPageAPIResponse


deletePage Internal Link

Parameters

NaamTypeVereistBeschrijving
tenantIdstringJa
idstringJa

Antwoord

Retourneert: DeletePageAPIResponse


getPageByURLId Internal Link


Parameters

NameTypeRequiredDescription
tenantIdstringJa
urlIdstringJa

Respons

Retourneert: GetPageByURLIdAPIResponse


getPages Internal Link


Parameters

NaamTypeVereistBeschrijving
tenantIdstringJa

Response

Retourneert: GetPagesAPIResponse


patchPage Internal Link


Parameters

NaamTypeVereistBeschrijving
tenantIdstringJa
idstringJa
updateAPIPageDataUpdateAPIPageDataJa

Antwoord

Retourneert: PatchPageAPIResponse


deletePendingWebhookEvent Internal Link

Parameters

NaamTypeVereistBeschrijving
tenantIdstringJa
idstringJa

Response

Retourneert: FlagCommentPublic200Response

Voorbeeld

deletePendingWebhookEvent Voorbeeld
Copy Copy
1
2const tenantId: string = "tenant_7f3b2a";
3const webhookEventId: string = "wh_evt_9a8c7d1234";
4const dryRun: boolean | undefined = undefined; // optional flag example (not required by this call)
5const result: FlagCommentPublic200Response = await deletePendingWebhookEvent(tenantId, webhookEventId);
6

getPendingWebhookEventCount Internal Link

Parameters

NaamTypeVereistBeschrijving
tenantIdstringJa
commentIdstringNee
externalIdstringNee
eventTypestringNee
typestringNee
domainstringNee
attemptCountGTnumberNee

Response

Retourneert: GetPendingWebhookEventCount200Response

Voorbeeld

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

getPendingWebhookEvents Internal Link

Parameters

NaamTypeVereistBeschrijving
tenantIdstringJa
commentIdstringNee
externalIdstringNee
eventTypestringNee
typestringNee
domainstringNee
attemptCountGTnumberNee
skipnumberNee

Respons

Retourneert: GetPendingWebhookEvents200Response

Voorbeeld

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

createQuestionConfig Internal Link

Parameters

NaamTypeVereistBeschrijving
tenantIdstringJa
createQuestionConfigBodyCreateQuestionConfigBodyJa

Antwoord

Retourneert: CreateQuestionConfig200Response

Voorbeeld

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

deleteQuestionConfig Internal Link

Parameters

NaamTypeVereistBeschrijving
tenantIdstringJa
idstringJa

Respons

Retourneert: FlagCommentPublic200Response

Voorbeeld

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

getQuestionConfig Internal Link

Parameters

NaamTypeVereistBeschrijving
tenantIdstringJa
idstringJa

Respons

Retourneert: GetQuestionConfig200Response

Voorbeeld

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

getQuestionConfigs Internal Link

Parameters

NameTypeRequiredDescription
tenantIdstringJa
skipnumberNee

Respons

Retourneert: GetQuestionConfigs200Response

Voorbeeld

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

updateQuestionConfig Internal Link

Parameters

NaamTypeVereistBeschrijving
tenantIdstringYes
idstringYes
updateQuestionConfigBodyUpdateQuestionConfigBodyYes

Response

Retourneert: FlagCommentPublic200Response

Voorbeeld

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

createQuestionResult Internal Link

Parameters

NameTypeRequiredDescription
tenantIdstringJa
createQuestionResultBodyCreateQuestionResultBodyJa

Response

Retourneert: CreateQuestionResult200Response

Example

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

deleteQuestionResult Internal Link

Parameters

NaamTypeVereistBeschrijving
tenantIdstringJa
idstringJa

Antwoord

Retourneert: FlagCommentPublic200Response

Voorbeeld

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

getQuestionResult Internal Link

Parameters

NameTypeRequiredDescription
tenantIdstringJa
idstringJa

Respons

Retourneert: GetQuestionResult200Response

Voorbeeld

getQuestionResult Voorbeeld
Copy Copy
1
2const tenantId: string = 'acme-corp-42';
3const id: string = 'question-9f8b7c';
4const includeComments: boolean | undefined = true; // voorbeeld van optionele parameter
5const result: GetQuestionResult200Response = await getQuestionResult(tenantId, id);
6console.log(result);
7

getQuestionResults Internal Link

Parameters

NaamTypeVereistBeschrijving
tenantIdstringYes
urlIdstringNo
userIdstringNo
startDatestringNo
questionIdstringNo
questionIdsstringNo
skipnumberNo

Respons

Retourneert: GetQuestionResults200Response

Voorbeeld

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

updateQuestionResult Internal Link

Parameters

NaamTypeVereistBeschrijving
tenantIdstringYes
idstringYes
updateQuestionResultBodyUpdateQuestionResultBodyYes

Respons

Geeft terug: FlagCommentPublic200Response

Voorbeeld

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

aggregateQuestionResults Internal Link

Parameters

NaamTypeVereistBeschrijving
tenantIdstringJa
questionIdstringNee
questionIdsArrayNee
urlIdstringNee
timeBucketAggregateTimeBucketNee
startDateDateNee
forceRecalculatebooleanNee

Antwoord

Retourneert: AggregateQuestionResults200Response

Voorbeeld

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

bulkAggregateQuestionResults Internal Link

Parameters

NaamTypeVereistBeschrijving
tenantIdstringJa
bulkAggregateQuestionResultsRequestBulkAggregateQuestionResultsRequestJa
forceRecalculatebooleanNee

Antwoord

Retourneert: BulkAggregateQuestionResults200Response

Voorbeeld

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

combineCommentsWithQuestionResults Internal Link

Parameters

NaamTypeVereistBeschrijving
tenantIdstringJa
questionIdstringNee
questionIdsArrayNee
urlIdstringNee
startDateDateNee
forceRecalculatebooleanNee
minValuenumberNee
maxValuenumberNee
limitnumberNee

Respons

Retourneert: CombineCommentsWithQuestionResults200Response

Voorbeeld

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

addSSOUser Internal Link


Parameters

NaamTypeVereistBeschrijving
tenantIdstringJa
createAPISSOUserDataCreateAPISSOUserDataJa

Antwoord

Retourneert: AddSSOUserAPIResponse


deleteSSOUser Internal Link


Parameters

NaamTypeVereistBeschrijving
tenantIdstringJa
idstringJa
deleteCommentsbooleanNee
commentDeleteModestringNee

Respons

Geeft terug: DeleteSSOUserAPIResponse


getSSOUserByEmail Internal Link


Parameters

NaamTypeVereistBeschrijving
tenantIdstringJa
emailstringJa

Response

Retourneert: GetSSOUserByEmailAPIResponse


getSSOUserById Internal Link

Parameters

NaamTypeVereistBeschrijving
tenantIdstringJa
idstringJa

Respons

Retourneert: GetSSOUserByIdAPIResponse


getSSOUsers Internal Link

Parameters

NaamTypeVerplichtBeschrijving
tenantIdstringJa
skipnumberNee

Respons

Retourneert: GetSSOUsers200Response

patchSSOUser Internal Link

Parameters

NameTypeRequiredDescription
tenantIdstringJa
idstringJa
updateAPISSOUserDataUpdateAPISSOUserDataJa
updateCommentsbooleanNee

Response

Retourneert: PatchSSOUserAPIResponse

putSSOUser 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

createSubscription 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

deleteSubscription Internal Link


Parameters

NaamTypeVereistBeschrijving
tenantIdstringJa
idstringJa
userIdstringNee

Antwoord

Retourneert: DeleteSubscriptionAPIResponse


getSubscriptions 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

updateSubscription 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

getTenantDailyUsages Internal Link

Parameters

NaamTypeVerplichtBeschrijving
tenantIdstringJa
yearNumbernumberNee
monthNumbernumberNee
dayNumbernumberNee
skipnumberNee

Respons

Retourneert: GetTenantDailyUsages200Response

Voorbeeld

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

createTenantPackage Internal Link

Parameters

NaamTypeVerplichtBeschrijving
tenantIdstringJa
createTenantPackageBodyCreateTenantPackageBodyJa

Respons

Retourneert: CreateTenantPackage200Response

Voorbeeld

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

deleteTenantPackage Internal Link

Parameters

NaamTypeVereistBeschrijving
tenantIdstringJa
idstringJa

Respons

Geeft terug: FlagCommentPublic200Response

Voorbeeld

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

getTenantPackage Internal Link

Parameters

NaamTypeVereistBeschrijving
tenantIdstringJa
idstringJa

Respons

Retourneert: GetTenantPackage200Response

Voorbeeld

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

getTenantPackages Internal Link

Parameters

NaamTypeVereistBeschrijving
tenantIdstringJa
skipnumberNee

Respons

Geeft terug: GetTenantPackages200Response

Voorbeeld

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

replaceTenantPackage Internal Link

Parameters

NameTypeRequiredDescription
tenantIdstringJa
idstringJa
replaceTenantPackageBodyReplaceTenantPackageBodyJa

Respons

Retourneert: FlagCommentPublic200Response

Voorbeeld

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

updateTenantPackage Internal Link

Parameters

NameTypeRequiredDescription
tenantIdstringJa
idstringJa
updateTenantPackageBodyUpdateTenantPackageBodyJa

Antwoord

Retourneert: FlagCommentPublic200Response

Voorbeeld

updateTenantPackage Voorbeeld
Copy Copy
1
2(async () => {
3 const tenantId: string = "tenant_sf_001";
4 const id: string = "pkg-premium-v2";
5 const updateTenantPackageBody: UpdateTenantPackageBody = {
6 name: "San Francisco Premium",
7 enabled: true,
8 customConfig: { maxComments: 500 },
9 tosConfig: { required: true } // optionele velden getoond door aanwezigheid; overige weggelaten
10 } as UpdateTenantPackageBody;
11 const result: FlagCommentPublic200Response = await updateTenantPackage(tenantId, id, updateTenantPackageBody);
12 console.log(result);
13})();
14

createTenantUser Internal Link

Parameters

NameTypeRequiredDescription
tenantIdstringYes
createTenantUserBodyCreateTenantUserBodyYes

Respons

Retourneert: CreateTenantUser200Response

Voorbeeld

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

deleteTenantUser Internal Link


Parameters

NaamTypeVerplichtBeschrijving
tenantIdstringJa
idstringJa
deleteCommentsstringNee
commentDeleteModestringNee

Respons

Retourneert: FlagCommentPublic200Response

Voorbeeld

deleteTenantUser Voorbeeld
Copy Copy
1
2async function run(): Promise<void> {
3 const tenantId: string = "acme_corp_tenant_9f1a2b";
4 const id: string = "user_4d2a1b6c";
5 const deleteComments: string = "true"; // verwijder ook de reacties van de gebruiker
6 const commentDeleteMode: string = "permanent"; // "permanent" of "soft"
7 const result: FlagCommentPublic200Response = await deleteTenantUser(tenantId, id, deleteComments, commentDeleteMode);
8 console.log(result);
9}
10run();
11

getTenantUser Internal Link

Parameters

NaamTypeVerplichtBeschrijving
tenantIdstringJa
idstringJa

Respons

Geeft terug: GetTenantUser200Response

Voorbeeld

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

getTenantUsers Internal Link

Parameters

NaamTypeVereistBeschrijving
tenantIdstringJa
skipnumberNee

Response

Retourneert: GetTenantUsers200Response

Example

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

replaceTenantUser Internal Link

Parameters

NameTypeRequiredDescription
tenantIdstringJa
idstringJa
replaceTenantUserBodyReplaceTenantUserBodyJa
updateCommentsstringNee

Respons

Retourneert: FlagCommentPublic200Response

Voorbeeld

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

Parameters

NaamTypeVereistBeschrijving
tenantIdstringJa
idstringJa
redirectURLstringNee

Response

Retourneert: FlagCommentPublic200Response

Voorbeeld

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

updateTenantUser Internal Link


Parameters

NameTypeRequiredDescription
tenantIdstringJa
idstringJa
updateTenantUserBodyUpdateTenantUserBodyJa
updateCommentsstringNee

Respons

Geeft terug: FlagCommentPublic200Response

Voorbeeld

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

createTenant Internal Link


Parameters

NaamTypeVerplichtBeschrijving
tenantIdstringJa
createTenantBodyCreateTenantBodyJa

Respons

Geeft terug: CreateTenant200Response

Voorbeeld

createTenant Voorbeeld
Copy Copy
1
2const tenantId: string = 'acme-corp-001';
3const createTenantBody: CreateTenantBody = {
4 name: 'Acme Corporation',
5 domainConfiguration: { primaryDomain: 'comments.acme.com', enforceHttps: true } as APIDomainConfiguration,
6 billingInfo: { planId: 'enterprise', contactEmail: 'billing@acme.com' } as BillingInfo
7 // optionele velden zoals ssoConfig of customConfig zijn opzettelijk weggelaten
8} as CreateTenantBody;
9
10const result: CreateTenant200Response = await createTenant(tenantId, createTenantBody);
11

deleteTenant Internal Link

Parameters

NaamTypeVereistBeschrijving
tenantIdstringJa
idstringJa
surestringNee

Antwoord

Geeft terug: FlagCommentPublic200Response

Voorbeeld

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

getTenant Internal Link

Parameters

NaamTypeVereistBeschrijving
tenantIdstringJa
idstringJa

Respons

Retourneert: GetTenant200Response

Voorbeeld

getTenant Voorbeeld
Copy Copy
1
2const tenantId: string = "tenant_9f4b2c1a";
3const idOverride: string | undefined = undefined; // optionele override, indien beschikbaar
4const id: string = idOverride ?? "site_3e7a6b2f";
5const response: GetTenant200Response = await getTenant(tenantId, id);
6console.log(response);
7

getTenants Internal Link

Parameters

NaamTypeVereistBeschrijving
tenantIdstringJa
metastringNee
skipnumberNee

Respons

Retourneert: GetTenants200Response

Voorbeeld

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

updateTenant Internal Link

Parameters

NaamTypeVereistBeschrijving
tenantIdstringJa
idstringJa
updateTenantBodyUpdateTenantBodyJa

Response

Geeft terug: FlagCommentPublic200Response

Voorbeeld

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

changeTicketState Internal Link

Parameters

NaamTypeVerplichtBeschrijving
tenantIdstringJa
userIdstringJa
idstringJa
changeTicketStateBodyChangeTicketStateBodyJa

Response

Retourneert: ChangeTicketState200Response

Voorbeeld

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

createTicket Internal Link

Parameters

NaamTypeVereistBeschrijving
tenantIdstringJa
userIdstringJa
createTicketBodyCreateTicketBodyJa

Respons

Retourneert: CreateTicket200Response

Voorbeeld

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

getTicket Internal Link

Parameters

NaamTypeVereistBeschrijving
tenantIdstringJa
idstringJa
userIdstringNee

Respons

Retourneert: GetTicket200Response

Voorbeeld

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

getTickets Internal Link

Parameters

NaamTypeVereistBeschrijving
tenantIdstringJa
userIdstringNee
statenumberNee
skipnumberNee
limitnumberNee

Antwoord

Geeft terug: GetTickets200Response

Voorbeeld

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

getTranslations Internal Link

Parameters

NaamTypeVerplichtBeschrijving
namespacestringJa
componentstringJa
localestringNee
useFullTranslationIdsbooleanNee

Respons

Retourneert: GetTranslationsResponse

Voorbeeld

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

uploadImage Internal Link

Een afbeelding uploaden en formaat wijzigen

Parameters

NaamTypeVerplichtBeschrijving
tenantIdstringJa
fileBlobJa
sizePresetSizePresetNee
urlIdstringNee

Respons

Geeft terug: UploadImageResponse

getUserBadgeProgressById Internal Link

Parameters

NaamTypeVereistBeschrijving
tenantIdstringJa
idstringJa

Antwoord

Retourneert: GetUserBadgeProgressById200Response

Voorbeeld

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

getUserBadgeProgressByUserId Internal Link

Parameters

NaamTypeVereistBeschrijving
tenantIdstringJa
userIdstringJa

Respons

Retourneert: GetUserBadgeProgressById200Response

Voorbeeld

getUserBadgeProgressByUserId Voorbeeld
Copy Copy
1
2const tenantId: string = 'tenant_7f9c2d3b';
3const maybeUserId: string | undefined = 'user_4b8e1f9a'; // optionele bron (kan undefined zijn)
4const userId: string = maybeUserId ?? 'user_fallback0001';
5const result: GetUserBadgeProgressById200Response = await getUserBadgeProgressByUserId(tenantId, userId);
6console.log(result);
7

getUserBadgeProgressList Internal Link

Parameters

NaamTypeVereistBeschrijving
tenantIdstringJa
userIdstringNee
limitnumberNee
skipnumberNee

Antwoord

Retourneert: GetUserBadgeProgressList200Response

Voorbeeld

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

createUserBadge Internal Link

Parameters

NaamTypeVereistBeschrijving
tenantIdstringJa
createUserBadgeParamsCreateUserBadgeParamsJa

Response

Retourneert: CreateUserBadge200Response

Voorbeeld

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

deleteUserBadge Internal Link

Parameters

NaamTypeVereistBeschrijving
tenantIdstringJa
idstringJa

Respons

Retourneert: UpdateUserBadge200Response

Voorbeeld

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

getUserBadge Internal Link

Parameters

NameTypeRequiredDescription
tenantIdstringJa
idstringJa

Respons

Retourneert: GetUserBadge200Response

Voorbeeld

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

getUserBadges Internal Link

Parameters

NaamTypeVereistBeschrijving
tenantIdstringJa
userIdstringNee
badgeIdstringNee
typenumberNee
displayedOnCommentsbooleanNee
limitnumberNee
skipnumberNee

Antwoord

Retourneert: GetUserBadges200Response

Voorbeeld

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

updateUserBadge Internal Link

Parameters

NaamTypeVereistBeschrijving
tenantIdstringJa
idstringJa
updateUserBadgeParamsUpdateUserBadgeParamsJa

Respons

Retourneert: UpdateUserBadge200Response

Voorbeeld

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

getUserNotificationCount Internal Link


Parameters

NaamTypeVereistBeschrijving
tenantIdstringJa
ssostringNee

Respons

Retourneert: GetUserNotificationCount200Response

Voorbeeld

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

getUserNotifications Internal Link

Parameters

NaamTypeVereistBeschrijving
tenantIdstringJa
pageSizenumberNee
afterIdstringNee
includeContextbooleanNee
afterCreatedAtnumberNee
unreadOnlybooleanNee
dmOnlybooleanNee
noDmbooleanNee
includeTranslationsbooleanNee
ssostringNee

Respons

Retourneert: GetUserNotifications200Response

Voorbeeld

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

resetUserNotificationCount Internal Link

Parameters

NaamTypeVereistBeschrijving
tenantIdstringJa
ssostringNee

Respons

Retourneert: ResetUserNotifications200Response

Voorbeeld

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

resetUserNotifications Internal Link

Parameters

NaamTypeVereistBeschrijving
tenantIdstringJa
afterIdstringNee
afterCreatedAtnumberNee
unreadOnlybooleanNee
dmOnlybooleanNee
noDmbooleanNee
ssostringNee

Respons

Retourneert: ResetUserNotifications200Response

Voorbeeld

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

updateUserNotificationCommentSubscriptionStatus Internal Link


Schakel meldingen in of uit voor een specifieke opmerking.

Parameters

NameTypeRequiredDescription
tenantIdstringJa
notificationIdstringJa
optedInOrOutUpdateUserNotificationCommentSubscriptionStatusOptedInOrOutEnumJa
commentIdstringJa
ssostringNee

Antwoord

Retourneert: UpdateUserNotificationStatus200Response

Voorbeeld

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

updateUserNotificationPageSubscriptionStatus Internal Link

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

Parameters

NaamTypeVereistBeschrijving
tenantIdstringJa
urlIdstringJa
urlstringJa
pageTitlestringJa
subscribedOrUnsubscribedUpdateUserNotificationPageSubscriptionStatusSubscribedOrUnsubscribedEnumJa
ssostringNee

Respons

Retourneert: UpdateUserNotificationStatus200Response

Voorbeeld

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

updateUserNotificationStatus Internal Link

Parameters

NaamTypeVereistBeschrijving
tenantIdstringJa
notificationIdstringJa
newStatusUpdateUserNotificationStatusNewStatusEnumJa
ssostringNee

Respons

Retourneert: UpdateUserNotificationStatus200Response

Voorbeeld

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

getUserPresenceStatuses Internal Link

Parameters

NaamTypeVereistBeschrijving
tenantIdstringJa
urlIdWSstringJa
userIdsstringJa

Respons

Retourneert: GetUserPresenceStatuses200Response

Voorbeeld

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

searchUsers Internal Link

Parameters

NaamTypeVereistBeschrijving
tenantIdstringJa
urlIdstringJa
usernameStartsWithstringNee
mentionGroupIdsArrayNee
ssostringNee
searchSectionSearchUsersSearchSectionEnumNee

Respons

Geeft terug: SearchUsers200Response

Voorbeeld

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

getUser Internal Link

Parameters

NaamTypeVereistBeschrijving
tenantIdstringJa
idstringJa

Response

Retourneert: GetUser200Response

Voorbeeld

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

createVote Internal Link

Parameters

NaamTypeVereistBeschrijving
tenantIdstringJa
commentIdstringJa
directionCreateVoteDirectionEnumJa
userIdstringNee
anonUserIdstringNee

Respons

Retourneert: VoteComment200Response

Voorbeeld

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

deleteVote Internal Link

Parameters

NameTypeRequiredDescription
tenantIdstringJa
idstringJa
editKeystringNee

Response

Geeft terug: DeleteCommentVote200Response

Voorbeeld

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

getVotes Internal Link

Parameters

NaamTypeVereistBeschrijving
tenantIdstringYes
urlIdstringYes

Respons

Retourneert: GetVotes200Response

Voorbeeld

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

getVotesForUser Internal Link

Parameters

NameTypeRequiredDescription
tenantIdstringJa
urlIdstringJa
userIdstringNee
anonUserIdstringNee

Respons

Retourneert: GetVotesForUser200Response

Voorbeeld

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

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.