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


AI-coderingsagenten Internal Link

skills.sh

Geef je code‑agent de FastComments‑context die hij nodig heeft – widgets, configuratie, Secure SSO, de REST‑API en de SDK’s:

npx skills add fastcomments/skills

Werkt met Claude Code, Codex, Cursor, Copilot, Gemini en elke andere agent die de skills CLI ondersteunt.

Installatie Internal Link

npm

npm install fastcomments-sdk

API-documentatie Internal Link


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

Browser- versus servercompatibiliteit Internal Link

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

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

Openbare versus beveiligde API's Internal Link

De SDK biedt deze API-klassen:

  • DefaultApi - Beveiligde endpoints die uw API-sleutel vereisen voor authenticatie. Gebruik deze voor server-side operaties.
  • PublicApi - Publieke endpoints die toegankelijk zijn zonder API-sleutel. Deze kunnen direct vanuit browsers/mobiele apparaten/etc. worden aangeroepen.
  • ModerationApi - Moderator-dashboard endpoints (moderatie van opmerkingen, bans, badges, vertrouwensfactor, zoeken). Geauthenticeerd via de sessie van de moderator; geef de sso query-parameter door voor SSO-geauthenticeerde moderators.
  • HiddenApi - Interne/admin endpoints voor geavanceerde gebruikssituaties.

Voorbeeld: Public API gebruiken (browser-veilig)

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

const publicApi = new PublicApi();

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

Voorbeeld: Default API gebruiken (alleen server-side)

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

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

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

Voorbeeld: Moderation API gebruiken

import { createFastCommentsSDK } from 'fastcomments-sdk/server';

const sdk = createFastCommentsSDK({ /* basePath, enz. */ });

// Aanroepen geauthenticeerd als moderator (sessie-cookie, of geef `sso` door voor een SSO-moderator).
const comments = await sdk.moderationApi.getApiComments({
  tenantId: 'your-tenant-id'
});

await sdk.moderationApi.postSetCommentSpamStatus({
  commentId: 'comment-id',
  spam: true
});

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 (real‑time 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);
}

Uitzend‑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);
  }
}

createAgentTenant Internal Link

Creates a new trial account for an AI agent without a human signup. No API key is needed to call this.

The response contains the tenant id, an API key that works immediately against the REST API and the MCP server, and a claim URL. Give the claim URL to the human you are working for: opening it while logged in to FastComments attaches the account to them. Unclaimed accounts, and their keys, are deleted 72 hours after creation. Until claimed, the account has the standard trial limits.

Parameters

NameTypeRequiredDescription
createAgentTenantBodyCreateAgentTenantBodyYes

Response

Returns: CreateAgentTenantResponse

Example

createAgentTenant Voorbeeld
Copy Copy
1
2const tenantBody: CreateAgentTenantBody = {
3 name: "Acme Corp",
4 domain: "acme.example.com",
5 contactEmail: "admin@acme.example.com", // optional
6 planId: 3 // optional
7};
8
9const result: CreateAgentTenantResponse = await createAgentTenant(tenantBody);
10

aggregate Internal Link

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

Parameters

NameTypeRequiredDescription
tenantIdstringYes
aggregationRequestAggregationRequestYes
parentTenantIdstringNo
includeStatsbooleanNo

Respons

Retourneert: AggregateResponse

Voorbeeld

Aggregaat Voorbeeld
Copy Copy
1
2const tenantId: string = "tenant-12345";
3
4const aggregationRequest: AggregationRequest = {
5 predicates: [
6 {
7 field: "status",
8 operator: "eq",
9 value: { type: "string", value: "approved" }
10 }
11 ],
12 operations: [
13 { type: "count", field: "commentId" }
14 ],
15 sort: { field: "createdAt", direction: "desc" }
16};
17
18const parentTenantId: string = "parent-001";
19const includeStats: boolean = true;
20
21const result: AggregateResponse = await aggregate(
22 tenantId,
23 aggregationRequest,
24 parentTenantId,
25 includeStats
26);
27

getAuditLogs Internal Link

Parameters

NaamTypeVereistBeschrijving
tenantIdstringYes
limitnumberNo
skipnumberNo
orderSORTDIRNo
afternumberNo
beforenumberNo
usernamestringNo
ipstringNo
crudTypestringNo
resourceNamestringNo
targetIdstringNo
targetstringNo
includeManagedTenantsbooleanNo

Response

Retourneert: GetAuditLogsResponse

Voorbeeld

getAuditLogs Voorbeeld
Copy Copy
1
2async function fetchAuditLogs(): Promise<void> {
3 const tenantId: string = "tenant_12345";
4 const limit: number = 50;
5 const skip: number = 0;
6 const order: SORTDIR = { direction: "DESC" };
7 const after: number = Date.now() - 86400000; // 1 day ago
8 const before: number = Date.now();
9 const username: string = "alice.smith";
10 const ip: string = "198.51.100.23";
11 const crudType: string = "CREATE";
12 const resourceName: string = "thread";
13 const targetId: string = "thread_45678";
14 const target: string = "forum_12";
15 const includeManagedTenants: boolean = false;
16
17 const logs: GetAuditLogsResponse = await getAuditLogs(
18 tenantId,
19 limit,
20 skip,
21 order,
22 after,
23 before,
24 username,
25 ip,
26 crudType,
27 resourceName,
28 targetId,
29 target,
30 includeManagedTenants
31 );
32
33 console.log(logs);
34}
35
36fetchAuditLogs();
37

blockFromCommentPublic Internal Link

Parameters

NaamTypeVerplichtBeschrijving
tenantIdstringJa
commentIdstringJa
publicBlockFromCommentParamsPublicBlockFromCommentParamsJa
ssostringNee

Response

Retourneert: BlockSuccess

Example

blockFromCommentPublic Voorbeeld
Copy Copy
1
2async function demoBlock() {
3 const tenantId: string = "tenant_9f8b7c";
4 const commentId: string = "comment_3e2d1a";
5 const blockParams: PublicBlockFromCommentParams = {
6 reason: "harassment",
7 expiresInHours: 48
8 };
9 const ssoToken: string = "sso_5g6h7i";
10
11 const resultWithSso: BlockSuccess = await blockFromCommentPublic(tenantId, commentId, blockParams, ssoToken);
12 const resultWithoutSso: BlockSuccess = await blockFromCommentPublic(tenantId, commentId, blockParams);
13}
14

unBlockCommentPublic Internal Link

Parameters

NaamTypeVerplichtBeschrijving
tenantIdstringJa
commentIdstringJa
publicBlockFromCommentParamsPublicBlockFromCommentParamsJa
ssostringNee

Response

Returns: UnblockSuccess

Example

unBlockCommentPublic Voorbeeld
Copy Copy
1
2const tenantId: string = "c9f1e2a4-5b6d-4f8a-9c2e-123456789abc";
3const commentId: string = "d3b2c1a9-8f7e-4d6b-9a0b-987654321def";
4
5const unblockParams: PublicBlockFromCommentParams = {
6 reason: "User request resolved",
7 moderatorId: "mod-456"
8};
9
10const ssoToken: string = "sso-token-789xyz";
11
12const unblockResult: UnblockSuccess = await unBlockCommentPublic(tenantId, commentId, unblockParams, ssoToken);
13const unblockResultNoSso: UnblockSuccess = await unBlockCommentPublic(tenantId, commentId, unblockParams);
14

checkedCommentsForBlocked Internal Link


Parameters

NaamTypeVerplichtBeschrijving
tenantIdstringJa
commentIdsstringJa
ssostringNee

Respons

Retourneert: CheckBlockedCommentsResponse

Voorbeeld

checkedCommentsForBlocked Voorbeeld
Copy Copy
1
2(async () => {
3 const tenantId: string = "tenant_12345";
4 const commentIds: string = "cmt_9876,cmt_5432";
5 const ssoToken: string = "sso_user_abc123";
6
7 const responseWithSso: CheckBlockedCommentsResponse = await checkedCommentsForBlocked(tenantId, commentIds, ssoToken);
8 const responseWithoutSso: CheckBlockedCommentsResponse = await checkedCommentsForBlocked(tenantId, commentIds);
9})();
10

blockUserFromComment Internal Link

Parameters

NaamTypeVerplichtBeschrijving
tenantIdstringJa
idstringJa
blockFromCommentParamsBlockFromCommentParamsJa
userIdstringNee
anonUserIdstringNee

Respons

Retourneert: BlockSuccess

Voorbeeld

Voorbeeld blockUserFromComment
Copy Copy
1
2async function demo() {
3 const tenantId: string = "tenant-123e4567-e89b-12d3-a456-426614174000";
4 const commentId: string = "cmt-9876543210";
5 const blockParams: BlockFromCommentParams = {
6 reason: "spam",
7 durationHours: 24
8 };
9 const userId: string = "user-abc123";
10 const anonUserId: string = "anon-xyz789";
11 const result: BlockSuccess = await blockUserFromComment(tenantId, commentId, blockParams, userId, anonUserId);
12 console.log(result);
13}
14demo();
15

createCommentPublic Internal Link

Parameters

NaamTypeVerplichtBeschrijving
tenantIdstringJa
urlIdstringJa
broadcastIdstringJa
commentDataCommentDataJa
sessionIdstringNee
ssostringNee

Respons

Returns: SaveCommentsResponseWithPresence

Voorbeeld

Voorbeeld createCommentPublic
Copy Copy
1
2async function runExample() {
3 const tenantId: string = "tenant-456";
4 const urlId: string = "url-789";
5 const broadcastId: string = "broadcast-101112";
6 const commentData: CommentData = { text: "This is a comment", userId: "user-123" };
7 const sessionId: string = "session-131415";
8 const sso: string = "sso-token-xyz";
9 const result: SaveCommentsResponseWithPresence = await createCommentPublic(tenantId, urlId, broadcastId, commentData, sessionId, sso);
10 const resultNoOpt: SaveCommentsResponseWithPresence = await createCommentPublic(tenantId, urlId, broadcastId, commentData);
11}
12

deleteComment Internal Link

Parameters

NaamTypeVerplichtBeschrijving
tenantIdstringJa
idstringJa
contextUserIdstringNee
isLivebooleanNee

Respons

Retourneert: DeleteCommentResult

Voorbeeld

deleteComment voorbeeld
Copy Copy
1
2async function removeComment(): Promise<void> {
3 const tenantId: string = "tenant_12345";
4 const commentId: string = "comment_9876";
5 const contextUserId: string = "user_42";
6 const result: DeleteCommentResult = await deleteComment(tenantId, commentId, contextUserId, true);
7 console.log(result);
8}
9removeComment();
10

deleteCommentPublic Internal Link

Parameters

NaamTypeVerplichtBeschrijving
tenantIdstringYes
commentIdstringYes
broadcastIdstringYes
editKeystringNo
ssostringNo

Respons

Retourneert: PublicAPIDeleteCommentResponse

Voorbeeld

deleteCommentPublic Voorbeeld
Copy Copy
1
2(async () => {
3 const tenantId: string = "tenant_12345";
4 const commentId: string = "cmt_9876";
5 const broadcastId: string = "brd_5555";
6 const editKey: string = "edit_abc123";
7 const sso: string = "sso_token_xyz";
8
9 const resultWithoutOptional: PublicAPIDeleteCommentResponse = await deleteCommentPublic(tenantId, commentId, broadcastId);
10 const resultWithOptional: PublicAPIDeleteCommentResponse = await deleteCommentPublic(tenantId, commentId, broadcastId, editKey, sso);
11})();
12

deleteCommentVote Internal Link

Parameters

NaamTypeVereistBeschrijving
tenantIdstringJa
commentIdstringJa
voteIdstringJa
urlIdstringJa
broadcastIdstringJa
editKeystringNee
ssostringNee

Respons

Retourneert: VoteDeleteResponse

Voorbeeld

deleteCommentVote Voorbeeld
Copy Copy
1
2const tenantId: string = "tenant_12345";
3const commentId: string = "cmt_9876";
4const voteId: string = "vote_555";
5const urlId: string = "url_abcde";
6const broadcastId: string = "brd_2023";
7const editKey: string = "edit_abc123"; // optioneel
8const ssoToken: string = "sso_token_xyz"; // optioneel
9
10// Aanroep met alleen de vereiste parameters en één optioneel
11const deleteResult: VoteDeleteResponse = await deleteCommentVote(
12 tenantId,
13 commentId,
14 voteId,
15 urlId,
16 broadcastId,
17 editKey
18);
19
20// Aanroep met beide optionele parameters
21const deleteResultWithSSO: VoteDeleteResponse = await deleteCommentVote(
22 tenantId,
23 commentId,
24 voteId,
25 urlId,
26 broadcastId,
27 editKey,
28 ssoToken
29);
30

flagComment Internal Link

Parameters

NaamTypeVerplichtBeschrijving
tenantIdstringJa
idstringJa
userIdstringNee
anonUserIdstringNee

Response

Retourneert: FlagCommentResponse

Example

flagComment voorbeeld
Copy Copy
1
2(async () => {
3 const tenantId: string = "acme-corp";
4 const commentId: string = "comment-20230915-001";
5 const userId: string = "user-42";
6 const anonUserId: string = "anon-abc123";
7
8 const response: FlagCommentResponse = await flagComment(tenantId, commentId, userId, anonUserId);
9 console.log(response);
10})();
11

getComment Internal Link

Parameters

NaamTypeVereistBeschrijving
tenantIdstringJa
idstringJa

Respons

Retourneert: APIGetCommentResponse

Voorbeeld

getComment Voorbeeld
Copy Copy
1
2async function fetchComment(): Promise<void> {
3 const tenantId: string = "acme-corp";
4 const commentId: string = "cmt_1234567890";
5
6 const response: APIGetCommentResponse = await getComment(tenantId, commentId);
7 const comment: APIComment | undefined = response.comment;
8
9 // Demonstratie van optionele velden
10 const badgeInfo: CommentUserBadgeInfo | undefined = comment?.user?.badge;
11 const hashtags: CommentUserHashTagInfo[] | undefined = comment?.user?.hashtags;
12 const mentions: CommentUserMentionInfo[] | undefined = comment?.user?.mentions;
13 const meta: APICommentBaseMeta | undefined = comment?.meta;
14
15 console.log(comment?.id, badgeInfo?.type);
16}
17
18fetchComment();
19

getComments Internal Link

Parameters

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

Respons

Retourneert: APIGetCommentsResponse

Voorbeeld

getComments Voorbeeld
Copy Copy
1
2async function loadComments(): Promise<void> {
3 const tenantId: string = "acme-corp";
4 const page: number = 1;
5 const limit: number = 50;
6 const asTree: boolean = false;
7 const direction: SortDirections = "asc";
8 const fromDate: number = Date.now() - 30 * 24 * 60 * 60 * 1000; // 30 days ago
9 const toDate: number = Date.now();
10
11 const commentsResponse: APIGetCommentsResponse = await getComments(
12 tenantId,
13 page,
14 limit,
15 undefined,
16 asTree,
17 undefined,
18 undefined,
19 undefined,
20 undefined,
21 undefined,
22 undefined,
23 undefined,
24 undefined,
25 undefined,
26 direction,
27 fromDate,
28 toDate
29 );
30
31 console.log(commentsResponse);
32}
33

getCommentsPublic Internal Link

req tenantId urlId

Parameters

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

Response

Returns: GetCommentsResponseWithPresencePublicComment

Example

getCommentsPublic Voorbeeld
Copy Copy
1
2async function loadComments(): Promise<void> {
3 const tenantId: string = "tenant-42",
4 urlId: string = "post-2023-09-15",
5 page: number = 1,
6 direction: SortDirections = "desc",
7 limit: number = 30,
8 includeConfig: boolean = true,
9 locale: string = "en-US",
10 isCrawler: boolean = false,
11 asTree: boolean = true,
12 maxTreeDepth: number = 2,
13 searchText: string = "fastcomments",
14 hashTags: string[] = ["fastcomments","typescript"],
15 userId: string = "user-123";
16
17 const result: GetCommentsResponseWithPresencePublicComment = await getCommentsPublic(
18 tenantId,
19 urlId,
20 page,
21 direction,
22 undefined,
23 undefined,
24 undefined,
25 limit,
26 undefined,
27 undefined,
28 undefined,
29 includeConfig,
30 undefined,
31 undefined,
32 locale,
33 undefined,
34 isCrawler,
35 undefined,
36 asTree,
37 maxTreeDepth,
38 undefined,
39 undefined,
40 searchText,
41 hashTags,
42 userId
43 );
44}
45

getCommentText Internal Link

Parameters

NaamTypeVerplichtBeschrijving
tenantIdstringJa
commentIdstringJa
editKeystringNee
ssostringNee

Respons

Retourneert: PublicAPIGetCommentTextResponse

Voorbeeld

Voorbeeld getCommentText
Copy Copy
1
2const tenantId: string = "acme-corp-tenant";
3const commentId: string = "comment-987654321";
4const editKey: string = "edit-key-abc123";
5const sso: string = "sso-token-xyz789";
6
7const commentWithEdit: PublicAPIGetCommentTextResponse = await getCommentText(
8 tenantId,
9 commentId,
10 editKey,
11 sso
12);
13
14const commentBasic: PublicAPIGetCommentTextResponse = await getCommentText(
15 tenantId,
16 commentId
17);
18

getCommentVoteUserNames Internal Link

Parameters

NameTypeRequiredDescription
tenantIdstringYes
commentIdstringYes
dirnumberYes
ssostringNo

Response

Retourneert: GetCommentVoteUserNamesSuccessResponse

Voorbeeld

getCommentVoteUserNames Voorbeeld
Copy Copy
1
2async function example() {
3 const tenantId: string = 'tenant-9876';
4 const commentId: string = 'comment-abc123';
5 const dir: number = 1;
6 const ssoToken: string = 'sso-xyz789';
7
8 const resultWithSso: GetCommentVoteUserNamesSuccessResponse = await getCommentVoteUserNames(tenantId, commentId, dir, ssoToken);
9 const resultWithoutSso: GetCommentVoteUserNamesSuccessResponse = await getCommentVoteUserNames(tenantId, commentId, dir);
10}
11

lockComment Internal Link

Parameters

NaamTypeVereistBeschrijving
tenantIdstringJa
commentIdstringJa
broadcastIdstringJa
ssostringNee

Respons

Retourneert: APIEmptyResponse

Voorbeeld

lockComment Voorbeeld
Copy Copy
1
2async function demoLockComment() {
3 const tenantId: string = "tenant_12345";
4 const commentId: string = "cmt_9876";
5 const broadcastId: string = "brd_5555";
6 const ssoToken: string = "sso_user_abc";
7
8 const resultWithSso: APIEmptyResponse = await lockComment(tenantId, commentId, broadcastId, ssoToken);
9 const resultWithoutSso: APIEmptyResponse = await lockComment(tenantId, commentId, broadcastId);
10}
11
12demoLockComment();
13

pinComment Internal Link

Parameters

NaamTypeVerplichtBeschrijving
tenantIdstringJa
commentIdstringJa
broadcastIdstringJa
ssostringNee

Response

Retourneert: ChangeCommentPinStatusResponse

Example

pinComment Voorbeeld
Copy Copy
1
2async function demoPinComment() {
3 const tenantId: string = "tenant_12345";
4 const commentId: string = "cmt_98765";
5 const broadcastId: string = "brd_54321";
6
7 const resultWithoutSso: ChangeCommentPinStatusResponse = await pinComment(tenantId, commentId, broadcastId);
8 const ssoToken: string = "sso_abcde12345";
9 const resultWithSso: ChangeCommentPinStatusResponse = await pinComment(tenantId, commentId, broadcastId, ssoToken);
10}
11
12demoPinComment();
13

saveComment Internal Link

Parameters

NaamTypeVerplichtBeschrijving
tenantIdstringJa
createCommentParamsCreateCommentParamsJa
isLivebooleanNee
doSpamCheckbooleanNee
sendEmailsbooleanNee
populateNotificationsbooleanNee

Response

Retourneert: APISaveCommentResponse

Example

saveComment Voorbeeld
Copy Copy
1
2const tenantId: string = "tenant_12345";
3
4const commentParams: CreateCommentParams = {
5 content: "This is a comment with a mention and a hashtag.",
6 userId: "user_987",
7 mentions: [
8 { userId: "user_123", start: 27, end: 34 }
9 ] as CommentUserMentionInfo[],
10 hashtags: [
11 { tag: "feedback", start: 45, end: 53 }
12 ] as CommentUserHashTagInfo[],
13 poll: {
14 question: "Do you like this feature?",
15 options: ["Yes", "No"]
16 } as CommentPollInput,
17};
18
19const response: APISaveCommentResponse = await saveComment(
20 tenantId,
21 commentParams,
22 true, // isLive
23 true, // doSpamCheck
24 false, // sendEmails
25 true // populateNotifications
26);
27

saveCommentsBulk Internal Link

Parameters

NaamTypeVerplichtBeschrijving
tenantIdstringJa
createCommentParamsArrayJa
isLivebooleanNee
doSpamCheckbooleanNee
sendEmailsbooleanNee
populateNotificationsbooleanNee

Respons

Retourneert: Array<SaveCommentsBulkResponse

Voorbeeld

saveCommentsBulk Voorbeeld
Copy Copy
1
2const tenantId: string = "tenant_12345";
3
4const mention1: CommentUserMentionInfo = {
5 userId: "user_002",
6 start: 10,
7 end: 20,
8};
9
10const hashtag1: CommentUserHashTagInfo = {
11 tag: "news",
12 start: 30,
13 end: 35,
14};
15
16const poll1: CommentPollInput = {
17 question: "Did you find this helpful?",
18 options: ["Yes", "No"],
19};
20
21const commentA: CreateCommentParams = {
22 content: "This is a great article!",
23 userId: "user_001",
24 mentions: [mention1],
25 hashtags: [hashtag1],
26 poll: poll1,
27};
28
29const commentB: CreateCommentParams = {
30 content: "I have a question about the topic.",
31 userId: "user_003",
32};
33
34const createCommentParams: CreateCommentParams[] = [commentA, commentB];
35
36const isLive: boolean = true;
37const doSpamCheck: boolean = false;
38const sendEmails: boolean = true;
39const populateNotifications: boolean = false;
40
41const results: SaveCommentsBulkResponse[] = await saveCommentsBulk(
42 tenantId,
43 createCommentParams,
44 isLive,
45 doSpamCheck,
46 sendEmails,
47 populateNotifications
48);
49

setCommentText Internal Link

Parameters

NaamTypeVerplichtBeschrijving
tenantIdstringJa
commentIdstringJa
broadcastIdstringJa
commentTextUpdateRequestCommentTextUpdateRequestJa
editKeystringNee
ssostringNee

Respons

Retourneert: PublicAPISetCommentTextResponse

Voorbeeld

setCommentText Voorbeeld
Copy Copy
1
2(async () => {
3 const tenantId: string = "tenant_12345";
4 const commentId: string = "cmt_98765";
5 const broadcastId: string = "brd_54321";
6 const commentTextUpdateRequest: CommentTextUpdateRequest = {
7 text: "Revised comment text with additional details."
8 };
9 const editKey: string = "edit_abc123";
10 const sso: string = "sso_token_456def";
11
12 const response: PublicAPISetCommentTextResponse = await setCommentText(
13 tenantId,
14 commentId,
15 broadcastId,
16 commentTextUpdateRequest,
17 editKey,
18 sso
19 );
20})();
21

unBlockUserFromComment Internal Link

Parameters

NaamTypeVereistBeschrijving
tenantIdstringJa
idstringJa
unBlockFromCommentParamsUnBlockFromCommentParamsJa
userIdstringNee
anonUserIdstringNee

Respons

Retourneert: UnblockSuccess

Voorbeeld

unBlockUserFromComment Voorbeeld
Copy Copy
1
2(async () => {
3 const tenantId: string = "tenant-9f8b7c6d";
4 const commentId: string = "comment-4a3b2c1d";
5 const params: UnBlockFromCommentParams = {
6 reason: "User appealed the block",
7 adminNote: "Reviewed and unblocked"
8 };
9 const userId: string = "user-5e6f7g8h";
10 const anonUserId: string = "anon-1a2b3c4d";
11 const result: UnblockSuccess = await unBlockUserFromComment(
12 tenantId,
13 commentId,
14 params,
15 userId,
16 anonUserId
17 );
18 console.log(result);
19})();
20

unFlagComment Internal Link

Parameters

NaamTypeVereistBeschrijving
tenantIdstringJa
idstringJa
userIdstringNee
anonUserIdstringNee

Respons

Retourneert: FlagCommentResponse

Voorbeeld

unFlagComment Voorbeeld
Copy Copy
1
2async function runExample() {
3 const tenantId: string = "acme-corp";
4 const commentId: string = "cmt-20230915-001";
5 const userId: string = "user-42";
6
7 const unflaggedByUser: FlagCommentResponse = await unFlagComment(tenantId, commentId, userId);
8 const unflaggedByAnon: FlagCommentResponse = await unFlagComment(tenantId, commentId, undefined, "anon-xyz");
9
10 console.log(unflaggedByUser, unflaggedByAnon);
11}
12

unLockComment Internal Link

Parameters

NaamTypeVerplichtBeschrijving
tenantIdstringJa
commentIdstringJa
broadcastIdstringJa
ssostringNee

Respons

Retourneert: APIEmptyResponse

Voorbeeld

unLockComment Voorbeeld
Copy Copy
1
2async function demoUnlock() {
3 const tenantId: string = "acme-corp";
4 const commentId: string = "cmt_1234567890";
5 const broadcastId: string = "brd_987654321";
6 const ssoToken: string = "sso_abcdef123456";
7
8 const resultWithoutSso: APIEmptyResponse = await unLockComment(tenantId, commentId, broadcastId);
9 const resultWithSso: APIEmptyResponse = await unLockComment(tenantId, commentId, broadcastId, ssoToken);
10}
11

unPinComment Internal Link

Parameters

NaamTypeVerplichtBeschrijving
tenantIdstringJa
commentIdstringJa
broadcastIdstringJa
ssostringNee

Respons

Retourneert: ChangeCommentPinStatusResponse

Voorbeeld

unPinComment Voorbeeld
Copy Copy
1
2(async () => {
3 const tenantId: string = "acme-corp";
4 const commentId: string = "comment-20230915-001";
5 const broadcastId: string = "broadcast-2023-09-15";
6 const ssoToken: string = "sso-abc123";
7
8 const result: ChangeCommentPinStatusResponse = await unPinComment(tenantId, commentId, broadcastId, ssoToken);
9 const resultWithoutSso: ChangeCommentPinStatusResponse = await unPinComment(tenantId, commentId, broadcastId);
10})();
11

updateComment Internal Link

Parameters

NaamTypeVereistBeschrijving
tenantIdstringJa
idstringJa
updatableCommentParamsUpdatableCommentParamsJa
contextUserIdstringNee
doSpamCheckbooleanNee
isLivebooleanNee

Response

Retourneert: APIEmptyResponse

Example

updateComment Voorbeeld
Copy Copy
1
2const tenantId: string = "c1a2b3d4-5678-90ab-cdef-1234567890ab";
3const commentId: string = "comment-9876543210";
4const updateParams: UpdatableCommentParams = {
5 content: "Edited comment content",
6 isApproved: true
7};
8
9const contextUserId: string = "user-11223344";
10const doSpamCheck: boolean = true;
11const isLive: boolean = false;
12
13const response: APIEmptyResponse = await updateComment(
14 tenantId,
15 commentId,
16 updateParams,
17 contextUserId,
18 doSpamCheck,
19 isLive
20);
21

voteComment Internal Link

Parameters

NaamTypeVerplichtBeschrijving
tenantIdstringYes
commentIdstringYes
urlIdstringYes
broadcastIdstringYes
voteBodyParamsVoteBodyParamsYes
sessionIdstringNo
ssostringNo

Respons

Retourneert: VoteResponse

Voorbeeld

voteComment voorbeeld
Copy Copy
1
2async function runVote() {
3 const tenantId: string = 'tenant_001';
4 const commentId: string = 'cmt_987654';
5 const urlId: string = 'url_12345';
6 const broadcastId: string = 'brd_56789';
7 const voteBody: VoteBodyParams = { direction: 'up' };
8 const sessionId: string = 'sess_abc123';
9 const sso: string = 'sso_token_xyz';
10 const response: VoteResponse = await voteComment(
11 tenantId,
12 commentId,
13 urlId,
14 broadcastId,
15 voteBody,
16 sessionId,
17 sso
18 );
19 console.log(response);
20}
21runVote();
22

getCommentsForUser Internal Link

Parameters

NaamTypeVerplichtBeschrijving
userIdstringNo
directionSortDirectionsNo
repliesToUserIdstringNo
pagenumberNo
includei10nbooleanNo
localestringNo
isCrawlerbooleanNo

Respons

Retourneert: GetCommentsForUserResponse

Voorbeeld

getCommentsForUser Voorbeeld
Copy Copy
1
2const userId: string = '550e8400-e29b-41d4-a716-446655440000';
3const direction: SortDirections = SortDirections.Descending;
4const page: number = 3;
5const includei10n: boolean = true;
6const locale: string = 'fr-FR';
7const isCrawler: boolean = false;
8
9const commentsResponse: GetCommentsForUserResponse = await getCommentsForUser(
10 userId,
11 direction,
12 undefined,
13 page,
14 includei10n,
15 locale,
16 isCrawler
17);
18

addDomainConfig Internal Link

Parameters

NaamTypeVereistBeschrijving
tenantIdstringJa
addDomainConfigParamsAddDomainConfigParamsJa

Respons

Retourneert: AddDomainConfigResponse

Voorbeeld

addDomainConfig Voorbeeld
Copy Copy
1
2(async () => {
3 const tenantId: string = 'tenant_12345';
4 const config: AddDomainConfigParams = {
5 domain: 'myblog.example.com',
6 enabled: true,
7 // beschrijving is optioneel en hier weggelaten
8 };
9 const response: AddDomainConfigResponse = await addDomainConfig(tenantId, config);
10 console.log(response);
11})();
12

deleteDomainConfig Internal Link

Parameters

NameTypeRequiredDescription
tenantIdstringYes
domainstringYes

Respons

Retourneert: DeleteDomainConfigResponse

Voorbeeld

deleteDomainConfig Voorbeeld
Copy Copy
1
2async function runExample() {
3 const tenantId: string = 'acme-corp';
4 const domain: string = 'blog.acme.com';
5 const response: DeleteDomainConfigResponse = await deleteDomainConfig(tenantId, domain);
6 console.log(response);
7}
8runExample();
9

getDomainConfig Internal Link

Parameters

NameTypeRequiredDescription
tenantIdstringYes
domainstringYes

Respons

Returns: GetDomainConfigResponse

Voorbeeld

getDomainConfig Voorbeeld
Copy Copy
1
2async function main() {
3 const tenantId: string = "acme-corp-123";
4 const domain: string = "blog.acme.com";
5 const config: GetDomainConfigResponse = await getDomainConfig(tenantId, domain);
6 console.log(config);
7}
8main();
9

getDomainConfigs Internal Link

Parameters

NaamTypeVereistBeschrijving
tenantIdstringJa

Respons

Retourneert: GetDomainConfigsResponse

Voorbeeld

getDomainConfigs Voorbeeld
Copy Copy
1
2async function fetchDomainConfigs(): Promise<void> {
3 const tenantId: string = "acme-corp-567";
4 const configs: GetDomainConfigsResponse = await getDomainConfigs(tenantId);
5 console.log(configs);
6}
7

patchDomainConfig Internal Link

Parameters

NameTypeRequiredDescription
tenantIdstringJa
domainToUpdatestringJa
patchDomainConfigParamsPatchDomainConfigParamsJa

Response

Retourneert: PatchDomainConfigResponse

Voorbeeld

patchDomainConfig Voorbeeld
Copy Copy
1
2async function updateDomainConfig() {
3 const tenantId: string = "tenant_98765";
4 const domainToUpdate: string = "forum.mycompany.com";
5 const patchParams: PatchDomainConfigParams = {
6 enableComments: true,
7 moderationLevel: "strict",
8 allowAnonymous: false, // optionele parameter gedemonstreerd
9 };
10 const response: PatchDomainConfigResponse = await patchDomainConfig(tenantId, domainToUpdate, patchParams);
11 console.log(response);
12}
13
14updateDomainConfig();
15

putDomainConfig Internal Link

Parameters

NaamTypeVerplichtBeschrijving
tenantIdstringJa
domainToUpdatestringJa
updateDomainConfigParamsUpdateDomainConfigParamsJa

Respons

Retourneert: PutDomainConfigResponse

Voorbeeld

putDomainConfig Voorbeeld
Copy Copy
1
2async function runExample() {
3 const tenantId: string = 'tenant-9f8c7b1a';
4 const domainToUpdate: string = 'comments.mywebsite.org';
5 const updateDomainConfigParams: UpdateDomainConfigParams = {
6 enableModeration: true,
7 // optioneel veld weggelaten, bijv., maxCommentLength?: number
8 };
9 const result: PutDomainConfigResponse = await putDomainConfig(
10 tenantId,
11 domainToUpdate,
12 updateDomainConfigParams,
13 );
14 console.log(result);
15}
16runExample();
17

createEmailTemplate Internal Link

Parameters

NaamTypeVereistBeschrijving
tenantIdstringJa
createEmailTemplateBodyCreateEmailTemplateBodyJa

Respons

Retourneert: CreateEmailTemplateResponse

Voorbeeld

createEmailTemplate Voorbeeld
Copy Copy
1
2const tenantId: string = "tenant_9f8b7c6d";
3
4const templateBody: CreateEmailTemplateBody = {
5 name: "Weekly Summary",
6 subject: "Your weekly activity report",
7 // optioneel veld
8 replyTo: "no-reply@myapp.com",
9 htmlContent: "<p>Hello \{{userName}}, here is your summary...</p>"
10};
11
12const response: CreateEmailTemplateResponse = await createEmailTemplate(tenantId, templateBody);
13
14console.log(response.template.id);
15

deleteEmailTemplate Internal Link

Parameters

NaamTypeVereistBeschrijving
tenantIdstringJa
idstringJa

Respons

Retourneert: APIEmptyResponse

Voorbeeld

deleteEmailTemplate Voorbeeld
Copy Copy
1
2interface APIStatus {
3 code: number;
4 message: string;
5}
6
7interface APIEmptyResponse {
8 status?: APIStatus;
9}
10
11(async () => {
12 const tenantId: string = "tenant_12345";
13 const templateId: string = "template_987";
14
15 const result: APIEmptyResponse = await deleteEmailTemplate(tenantId, templateId);
16})();
17

deleteEmailTemplateRenderError Internal Link


Parameters

NaamTypeVerplichtBeschrijving
tenantIdstringJa
idstringJa
errorIdstringJa

Respons

Retourneert: APIEmptyResponse

Voorbeeld

deleteEmailTemplateRenderError Voorbeeld
Copy Copy
1
2async function removeRenderError() {
3 const tenantId: string = "acme-corp-tenant";
4 const templateId: string = "welcome-email-template";
5 const errorId: string = "render-err-20230915";
6
7 const result: APIEmptyResponse = await deleteEmailTemplateRenderError(tenantId, templateId, errorId);
8}
9

getEmailTemplate Internal Link

Parameters

NaamTypeVerplichtBeschrijving
tenantIdstringJa
idstringJa

Respons

Retourneert: GetEmailTemplateResponse

Voorbeeld

getEmailTemplate Voorbeeld
Copy Copy
1
2async function fetchTemplate() {
3 const tenantId: string = "acme-corp-123";
4 const templateId: string = "welcome-email-456";
5 const response: GetEmailTemplateResponse = await getEmailTemplate(tenantId, templateId);
6 const status: APIStatus | undefined = response.status;
7 const customTemplate: CustomEmailTemplate | undefined = response.template;
8}
9

getEmailTemplateDefinitions Internal Link

Parameters

NaamTypeVerplichtBeschrijving
tenantIdstringJa

Respons

Retourneert: GetEmailTemplateDefinitionsResponse

Voorbeeld

getEmailTemplateDefinitions Voorbeeld
Copy Copy
1
2async function fetchEmailTemplates() {
3 const tenantId: string = "acme-corp-456";
4 const result: GetEmailTemplateDefinitionsResponse = await getEmailTemplateDefinitions(tenantId);
5 const status: APIStatus = result.status;
6 const definitions: EmailTemplateDefinition[] = result.definitions ?? [];
7 console.log(`Status: ${status.code}, Templates: ${definitions.length}`);
8}
9

getEmailTemplateRenderErrors Internal Link

Parameters

NaamTypeVerplichtBeschrijving
tenantIdstringJa
idstringJa
skipnumberNee

Respons

Retourneert: GetEmailTemplateRenderErrorsResponse

Voorbeeld

getEmailTemplateRenderErrors Voorbeeld
Copy Copy
1
2async function demo() {
3 const tenantId: string = "tenant_12345";
4 const templateId: string = "template_9876";
5
6 const resultWithSkip: GetEmailTemplateRenderErrorsResponse = await getEmailTemplateRenderErrors(tenantId, templateId, 10);
7 const resultWithoutSkip: GetEmailTemplateRenderErrorsResponse = await getEmailTemplateRenderErrors(tenantId, templateId);
8
9 console.log(resultWithSkip, resultWithoutSkip);
10}
11demo();
12

getEmailTemplates Internal Link

Parameters

NaamTypeVerplichtBeschrijving
tenantIdstringJa
skipnumberNee

Respons

Retourneert: GetEmailTemplatesResponse

Voorbeeld

getEmailTemplates Voorbeeld
Copy Copy
1
2async function fetchEmailTemplates() {
3 const tenantId: string = "acme-corp-123";
4 const skip: number = 20;
5 const templatesWithSkip: GetEmailTemplatesResponse = await getEmailTemplates(tenantId, skip);
6 const templatesWithoutSkip: GetEmailTemplatesResponse = await getEmailTemplates(tenantId);
7}
8

renderEmailTemplate Internal Link

Parameters

NaamTypeVereistBeschrijving
tenantIdstringJa
renderEmailTemplateBodyRenderEmailTemplateBodyJa
localestringNee

Respons

Retourneert: RenderEmailTemplateResponse

Voorbeeld

renderEmailTemplate Voorbeeld
Copy Copy
1
2const tenantId: string = "c1a2b3d4-5678-90ab-cdef-1234567890ab";
3
4const templateBody: RenderEmailTemplateBody = {
5 templateId: "welcome-email",
6 variables: {
7 userName: "Jane Doe",
8 signupDate: "2024-04-01"
9 }
10};
11
12const locale: string = "en-US";
13
14(async () => {
15 const rendered: RenderEmailTemplateResponse = await renderEmailTemplate(
16 tenantId,
17 templateBody,
18 locale
19 );
20 console.log(rendered);
21})();
22

updateEmailTemplate Internal Link

Parameters

NaamTypeVereistBeschrijving
tenantIdstringJa
idstringJa
updateEmailTemplateBodyUpdateEmailTemplateBodyJa

Respons

Retourneert: APIEmptyResponse

Voorbeeld

updateEmailTemplate Voorbeeld
Copy Copy
1
2async function runUpdate() {
3 const tenantId: string = "tenant_12345";
4 const templateId: string = "template_67890";
5
6 const updateBody: UpdateEmailTemplateBody = {
7 subject: "New Comment Notification",
8 // htmlContent is optional and omitted
9 // htmlContent is optioneel en weggelaten
10 status: { code: 200, message: "Active" } // APIStatus
11 };
12
13 const response: APIEmptyResponse = await updateEmailTemplate(tenantId, templateId, updateBody);
14 console.log(response);
15}
16

getEventLog Internal Link

req tenantId urlId userIdWS

Parameters

NaamTypeVerplichtBeschrijving
tenantIdstringJa
urlIdstringJa
userIdWSstringJa
startTimenumberJa
endTimenumberNee

Respons

Retourneert: GetEventLogResponse

Voorbeeld

getEventLog Voorbeeld
Copy Copy
1
2const tenantId: string = "tenant_12345";
3const urlId: string = "url_9876";
4const userIdWS: string = "user_abcde";
5const startTime: number = Date.now() - 86_400_000; // 24 uur geleden
6const endTime: number = Date.now();
7
8const fullLog: GetEventLogResponse = await getEventLog(tenantId, urlId, userIdWS, startTime, endTime);
9const partialLog: GetEventLogResponse = await getEventLog(tenantId, urlId, userIdWS, startTime);
10

getGlobalEventLog Internal Link

req tenantId urlId userIdWS

Parameters

NaamTypeVereistBeschrijving
tenantIdstringJa
urlIdstringJa
userIdWSstringJa
startTimenumberJa
endTimenumberNee

Respons

Retourneert: GetEventLogResponse

Voorbeeld

getGlobalEventLog Voorbeeld
Copy Copy
1
2async function fetchEventLogs() {
3 const tenantId: string = "tenant_12345";
4 const urlId: string = "url_9876";
5 const userIdWS: string = "user_ws_abcde";
6 const startTime: number = Date.now() - 24 * 60 * 60 * 1000; // 24 uur geleden
7 const endTime: number = Date.now();
8
9 const logWithEnd: GetEventLogResponse = await getGlobalEventLog(tenantId, urlId, userIdWS, startTime, endTime);
10 const logWithoutEnd: GetEventLogResponse = await getGlobalEventLog(tenantId, urlId, userIdWS, startTime);
11}
12

createFeedPost Internal Link

Parameters

NaamTypeVerplichtBeschrijving
tenantIdstringJa
createFeedPostParamsCreateFeedPostParamsJa
broadcastIdstringNee
isLivebooleanNee
doSpamCheckbooleanNee
skipDupCheckbooleanNee

Respons

Retourneert: CreateFeedPostsResponse

Voorbeeld

createFeedPost voorbeeld
Copy Copy
1
2(async () => {
3 const tenantId: string = "c1a2b3d4-5678-90ab-cdef-1234567890ab";
4 const broadcastId: string = "b1c2d3e4-5678-90ab-cdef-1234567890cd";
5 const isLive: boolean = true;
6 const doSpamCheck: boolean = false;
7 const skipDupCheck: boolean = true;
8
9 const mediaAsset: FeedPostMediaItemAsset = {
10 url: "https://cdn.example.com/photos/sunrise.jpg",
11 type: "image/jpeg"
12 };
13 const mediaItem: FeedPostMediaItem = {
14 asset: mediaAsset,
15 caption: "Sunrise over the mountains"
16 };
17 const linkItem: FeedPostLink = {
18 url: "https://blog.example.com/tech-trends-2024",
19 title: "Top Tech Trends for 2024"
20 };
21 const postParams: CreateFeedPostParams = {
22 text: "Excited to share the latest tech trends!",
23 media: [mediaItem],
24 link: linkItem
25 };
26
27 const response: CreateFeedPostsResponse = await createFeedPost(
28 tenantId,
29 postParams,
30 broadcastId,
31 isLive,
32 doSpamCheck,
33 skipDupCheck
34 );
35 console.log(response);
36})();
37

createFeedPostPublic Internal Link

Parameters

NaamTypeVerplichtBeschrijving
tenantIdstringJa
createFeedPostParamsCreateFeedPostParamsJa
broadcastIdstringNee
ssostringNee

Respons

Retourneert: CreateFeedPostResponse

Voorbeeld

createFeedPostPublic Voorbeeld
Copy Copy
1
2const tenantId: string = "tenant_12345";
3
4const mediaAsset: FeedPostMediaItemAsset = {
5 url: "https://cdn.example.com/image.jpg",
6 width: 800,
7 height: 600,
8 mimeType: "image/jpeg"
9};
10
11const mediaItem: FeedPostMediaItem = {
12 type: "image",
13 asset: mediaAsset,
14 caption: "Sunset over the hills"
15};
16
17const link: FeedPostLink = {
18 url: "https://example.com/blog/post",
19 title: "Exciting New Features",
20 description: "Read about our latest updates."
21};
22
23const createFeedPostParams: CreateFeedPostParams = {
24 content: "Check out our latest blog post!",
25 media: [mediaItem],
26 link: link,
27 visibility: "public"
28};
29
30const broadcastId: string = "broadcast_9876";
31const sso: string = "sso_token_abc123";
32
33const response: CreateFeedPostResponse = await createFeedPostPublic(
34 tenantId,
35 createFeedPostParams,
36 broadcastId,
37 sso
38);
39

deleteFeedPostPublic Internal Link

Parameters

NaamTypeVerplichtBeschrijving
tenantIdstringYes
postIdstringYes
broadcastIdstringNo
ssostringNo

Respons

Retourneert: DeleteFeedPostPublicResponse

Voorbeeld

deleteFeedPostPublic Voorbeeld
Copy Copy
1
2(async () => {
3 const tenantId: string = "tenant_12345";
4 const postId: string = "post_98765";
5 const broadcastId: string = "broadcast_abcde";
6 const sso: string = "sso_token_xyz";
7
8 const responseWithOpts: DeleteFeedPostPublicResponse = await deleteFeedPostPublic(
9 tenantId,
10 postId,
11 broadcastId,
12 sso
13 );
14
15 const responseWithoutOpts: DeleteFeedPostPublicResponse = await deleteFeedPostPublic(
16 tenantId,
17 postId
18 );
19})();
20

getFeedPosts Internal Link

req tenantId afterId

Parameters

NaamTypeVerplichtBeschrijving
tenantIdstringJa
afterIdstringNee
limitnumberNee
tagsArrayNee

Respons

Retourneert: GetFeedPostsResponse

Voorbeeld

getFeedPosts Voorbeeld
Copy Copy
1
2async function loadFeed() {
3 const tenantId: string = '123e4567-e89b-12d3-a456-426614174000';
4 const afterId: string = 'post_987654321';
5 const limit: number = 25;
6 const tags: string[] = ['technology', 'innovation'];
7 const response: GetFeedPostsResponse = await getFeedPosts(tenantId, afterId, limit, tags);
8 console.log(response);
9}
10loadFeed();
11

getFeedPostsPublic Internal Link

req tenantId afterId

Parameters

NameTypeRequiredDescription
tenantIdstringYes
afterIdstringNo
limitnumberNo
tagsArrayNo
ssostringNo
isCrawlerbooleanNo
includeUserInfobooleanNo

Respons

Retourneert: PublicFeedPostsResponse

Voorbeeld

getFeedPostsPublic Voorbeeld
Copy Copy
1
2const tenantId: string = "acme-corp-tenant";
3const afterId: string = "post-20230915-abc123";
4const limit: number = 15;
5const tags: string[] = ["technology", "innovation"];
6const sso: string = "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VySWQiOiIxMjM0NSJ9.s3cr3tSignature";
7const isCrawler: boolean = false;
8const includeUserInfo: boolean = true;
9
10const feedResponse: PublicFeedPostsResponse = await getFeedPostsPublic(
11 tenantId,
12 afterId,
13 limit,
14 tags,
15 sso,
16 isCrawler,
17 includeUserInfo
18);
19

getFeedPostsStats Internal Link

Parameters

NaamTypeVereistBeschrijving
tenantIdstringJa
postIdsArrayJa
ssostringNee

Respons

Retourneert: FeedPostsStatsResponse

Voorbeeld

Voorbeeld getFeedPostsStats
Copy Copy
1
2const tenantId: string = "tenant-9f8b7c6d";
3const postIds: string[] = ["post-1a2b3c", "post-4d5e6f", "post-7g8h9i"];
4const ssoToken: string = "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...";
5const feedStats: FeedPostsStatsResponse = await getFeedPostsStats(tenantId, postIds, ssoToken);
6

getUserReactsPublic Internal Link

Parameters

NaamTypeVereistBeschrijving
tenantIdstringYes
postIdsArrayNo
ssostringNo

Respons

Retourneert: UserReactsResponse

Voorbeeld

getUserReactsPublic Voorbeeld
Copy Copy
1
2const tenantId: string = "tenant_12345";
3const postIds: string[] = ["post_abc", "post_def"];
4const ssoToken: string = "sso_token_987";
5
6const fullResponse: UserReactsResponse = await getUserReactsPublic(tenantId, postIds, ssoToken);
7const minimalResponse: UserReactsResponse = await getUserReactsPublic(tenantId);
8

reactFeedPostPublic Internal Link

Parameters

NaamTypeVereistBeschrijving
tenantIdstringJa
postIdstringJa
reactBodyParamsReactBodyParamsJa
isUndobooleanNee
broadcastIdstringNee
ssostringNee

Respons

Retourneert: ReactFeedPostResponse

Voorbeeld

reactFeedPostPublic Voorbeeld
Copy Copy
1
2async function demoReact() {
3 const tenantId: string = "tenant_12345";
4 const postId: string = "post_98765";
5 const reactBodyParams: ReactBodyParams = {
6 type: "like",
7 userId: "user_abcde"
8 };
9 const response: ReactFeedPostResponse = await reactFeedPostPublic(
10 tenantId,
11 postId,
12 reactBodyParams,
13 true,
14 "broadcast_001",
15 "sso_token_xyz"
16 );
17}
18

updateFeedPost Internal Link

Parameters

NaamTypeVereistBeschrijving
tenantIdstringJa
idstringJa
feedPostFeedPostJa

Respons

Retourneert: APIEmptyResponse

Voorbeeld

updateFeedPost Voorbeeld
Copy Copy
1
2async function runUpdate() {
3 const tenantId: string = "tenant_12345";
4 const postId: string = "post_98765";
5
6 const mediaAsset: FeedPostMediaItemAsset = {
7 url: "https://cdn.example.com/image.jpg",
8 width: 800,
9 height: 600,
10 mimeType: "image/jpeg"
11 };
12
13 const mediaItem: FeedPostMediaItem = {
14 type: "image",
15 asset: mediaAsset,
16 caption: "Sunrise over the hills"
17 };
18
19 const link: FeedPostLink = {
20 url: "https://example.com/blog",
21 title: "Latest Blog Post",
22 description: "Insights on recent developments"
23 };
24
25 const feedPost: FeedPost = {
26 title: "Daily Highlights",
27 content: "Check out today’s top stories.",
28 mediaItems: [mediaItem], // optioneel
29 links: [link] // optioneel
30 };
31
32 const response: APIEmptyResponse = await updateFeedPost(tenantId, postId, feedPost);
33 console.log(response);
34}
35
36runUpdate();
37

updateFeedPostPublic Internal Link

Parameters

NaamTypeVereistBeschrijving
tenantIdstringJa
postIdstringJa
updateFeedPostParamsUpdateFeedPostParamsJa
broadcastIdstringNee
ssostringNee

Respons

Retourneert: CreateFeedPostResponse

Voorbeeld

updateFeedPostPublic Voorbeeld
Copy Copy
1
2// Definieer parameters
3const tenantId: string = "tenant_12345";
4const postId: string = "post_98765";
5
6const mediaAsset: FeedPostMediaItemAsset = {
7 url: "https://cdn.example.com/image.jpg",
8 width: 800,
9 height: 600,
10 mimeType: "image/jpeg"
11};
12
13const mediaItem: FeedPostMediaItem = {
14 type: "image",
15 asset: mediaAsset,
16 caption: "A beautiful scenery"
17};
18
19const link: FeedPostLink = {
20 url: "https://example.com/article",
21 title: "Interesting Article",
22 description: "An article about TypeScript best practices."
23};
24
25const updateParams: UpdateFeedPostParams = {
26 content: "Updated post content with new media and link.",
27 media: [mediaItem],
28 link: link,
29 isPublic: true
30};
31
32const broadcastId: string = "broadcast_001";
33const sso: string = "sso_token_abc123";
34
35const response: CreateFeedPostResponse = await updateFeedPostPublic(
36 tenantId,
37 postId,
38 updateParams,
39 broadcastId,
40 sso
41);
42

flagCommentPublic Internal Link

Parameters

NaamTypeVereistBeschrijving
tenantIdstringJa
commentIdstringJa
isFlaggedbooleanJa
ssostringNee

Respons

Retourneert: APIEmptyResponse

Voorbeeld

flagCommentPublic Voorbeeld
Copy Copy
1
2const tenantId: string = "tenant_42";
3const commentId: string = "comment_1001";
4const isFlagged: boolean = true;
5const sso: string = "sso_user_5678";
6
7const resultWithSso: APIEmptyResponse = await flagCommentPublic(tenantId, commentId, isFlagged, sso);
8const resultWithoutSso: APIEmptyResponse = await flagCommentPublic(tenantId, commentId, false);
9

getGifLarge Internal Link

Parameters

NaamTypeVereistBeschrijving
tenantIdstringJa
largeInternalURLSanitizedstringJa

Respons

Retourneert: GifGetLargeResponse

Voorbeeld

getGifLarge Voorbeeld
Copy Copy
1
2async function runExample() {
3 const tenantId: string = "c1a2b3d4-5678-90ab-cdef-1234567890ab";
4 const largeInternalURLSanitized: string = "https://cdn.fastcomments.com/gifs/large/abc123.gif";
5 const response: GifGetLargeResponse = await getGifLarge(tenantId, largeInternalURLSanitized);
6 console.log(response);
7}
8

getGifsSearch Internal Link

Parameters

NaamTypeVereistBeschrijving
tenantIdstringJa
searchstringJa
localestringNee
ratingstringNee
pagenumberNee

Respons

Retourneert: GetGifsSearchResponse

Voorbeeld

getGifsSearch Voorbeeld
Copy Copy
1
2async function runExample() {
3 const tenantId: string = "tenant_9876";
4 const search: string = "celebration fireworks";
5 const locale: string = "fr-FR";
6 const rating: string = "g";
7 const page: number = 1;
8
9 const fullResult: GetGifsSearchResponse = await getGifsSearch(tenantId, search, locale, rating, page);
10 const minimalResult: GetGifsSearchResponse = await getGifsSearch(tenantId, "dog memes");
11}
12
13runExample();
14

getGifsTrending Internal Link

Parameters

NaamTypeVerplichtBeschrijving
tenantIdstringJa
localestringNee
ratingstringNee
pagenumberNee

Response

Returns: GetGifsTrendingResponse

Voorbeeld

getGifsTrending Voorbeeld
Copy Copy
1
2async function runExample(): Promise<void> {
3 const tenantId: string = "tenant_9f8b7c6d";
4 const locale: string = "en-US";
5 const rating: string = "PG-13";
6 const page: number = 1;
7
8 const trendingAll: GetGifsTrendingResponse = await getGifsTrending(tenantId, locale, rating, page);
9 console.log(trendingAll);
10
11 // Alleen de verplichte parameter gebruiken
12 const trendingMinimal: GetGifsTrendingResponse = await getGifsTrending(tenantId);
13 console.log(trendingMinimal);
14}
15
16runExample();
17

addHashTag Internal Link

Parameters

NaamTypeVereistBeschrijving
tenantIdstringJa
createHashTagBodyCreateHashTagBodyNee

Respons

Retourneert: CreateHashTagResponse

Voorbeeld

addHashTag Voorbeeld
Copy Copy
1
2const tenantId: string = "c3f5e8b2-9d4a-4f6a-8b2c-1a2b3c4d5e6f";
3
4const tagPayload: CreateHashTagBody = {
5 tag: "typescript",
6 description: "Discussions about TypeScript"
7};
8
9const responseWithBody: CreateHashTagResponse = await addHashTag(tenantId, tagPayload);
10const responseWithoutBody: CreateHashTagResponse = await addHashTag(tenantId);
11

addHashTagsBulk Internal Link

Parameters

NaamTypeVereistBeschrijving
tenantIdstringJa
bulkCreateHashTagsBodyBulkCreateHashTagsBodyNee

Respons

Retourneert: BulkCreateHashTagsResponse

Voorbeeld

addHashTagsBulk Voorbeeld
Copy Copy
1
2const tenantId: string = "tenant_9f8b7c6d";
3
4const tags: BulkCreateHashTagsBodyTagsInner[] = [
5 { name: "typescript", color: "#3178c6" },
6 { name: "fastcomments", color: "#ff6600" }
7];
8
9const bulkBody: BulkCreateHashTagsBody = { tags };
10
11const resultWithBody: BulkCreateHashTagsResponse = await addHashTagsBulk(tenantId, bulkBody);
12
13const resultWithoutBody: BulkCreateHashTagsResponse = await addHashTagsBulk(tenantId);
14

deleteHashTag Internal Link

Parameters

NaamTypeVerplichtBeschrijving
tenantIdstringJa
tagstringJa
deleteHashTagRequestBodyDeleteHashTagRequestBodyNee

Respons

Retourneert: APIEmptyResponse

Voorbeeld

deleteHashTag Voorbeeld
Copy Copy
1
2const tenantId: string = "tenant_42";
3const tag: string = "high-priority";
4
5const requestBody: DeleteHashTagRequestBody = {
6 // vul velden in indien nodig
7};
8
9const resultWithBody: APIEmptyResponse = await deleteHashTag(tenantId, tag, requestBody);
10const resultWithoutBody: APIEmptyResponse = await deleteHashTag(tenantId, tag);
11

getHashTags Internal Link

Parameters

NaamTypeVerplichtBeschrijving
tenantIdstringJa
pagenumberNee

Respons

Retourneert: GetHashTagsResponse

Voorbeeld

getHashTags Voorbeeld
Copy Copy
1
2(async () => {
3 const tenantId: string = "acme-corp-123";
4 const page: number = 1;
5 const result: GetHashTagsResponse = await getHashTags(tenantId, page);
6 console.log(result);
7})();
8

patchHashTag Internal Link

Parameters

NaamTypeVerplichtBeschrijving
tenantIdstringJa
tagstringJa
updateHashTagBodyUpdateHashTagBodyNee

Respons

Retourneert: UpdateHashTagResponse

Voorbeeld

patchHashTag Voorbeeld
Copy Copy
1
2(async () => {
3 const tenantId: string = "tenant_12345";
4 const tag: string = "news";
5
6 // Aanroep zonder optionele body
7 const responseWithoutBody: UpdateHashTagResponse = await patchHashTag(tenantId, tag);
8
9 // Voorbereiden body voor update
10 const updateBody: UpdateHashTagBody = {
11 name: "Latest News",
12 description: "Tag for the most recent news articles"
13 };
14
15 const responseWithBody: UpdateHashTagResponse = await patchHashTag(tenantId, tag, updateBody);
16})();
17

getMe Internal Link

Identificeert de gebruikte referentie: de tenant waartoe deze behoort en, voor OAuth‑tokens, de gebruiker die deze heeft geautoriseerd.
Integraties gebruiken dit om een verbinding te testen en te labelen.

Parameters

NaamTypeVerplichtBeschrijving
tenantIdstringJa

Reactie

Retourneert: GetMeResponse

Voorbeeld

getMe Voorbeeld
Copy Copy
1
2(async () => {
3 const tenantId: string = "acme-corp-tenant";
4 const me: GetMeResponse = await getMe(tenantId);
5 const authType: MeAuthType = me.auth.type;
6 const scopes: OAuthScope[] = me.auth.scopes ?? [];
7 const status: APIStatus = me.status;
8})();
9

deleteModerationVote Internal Link

Parameters

NaamTypeVereistBeschrijving
tenantIdstringJa
commentIdstringJa
voteIdstringJa
broadcastIdstringNee
ssostringNee

Respons

Retourneert: VoteDeleteResponse

Voorbeeld

deleteModerationVote Voorbeeld
Copy Copy
1
2async function runDeleteModerationVote(): Promise<void> {
3 const tenantId: string = "tenant_9f8b7c6a";
4 const commentId: string = "comment_4d3e2f1a";
5 const voteId: string = "vote_12345abcde";
6 const broadcastId: string | undefined = "broadcast_2023_09_15";
7 const sso: string | undefined = "sso_user_7890token";
8
9 const result: VoteDeleteResponse = await deleteModerationVote(
10 tenantId,
11 commentId,
12 voteId,
13 broadcastId,
14 sso
15 );
16
17 console.log(result);
18}
19

getApiComments Internal Link

Parameters

NameTypeRequiredDescription
tenantIdstringJa
pagenumberNee
countnumberNee
textSearchstringNee
byIPFromCommentstringNee
filtersstringNee
searchFiltersstringNee
sortsstringNee
demobooleanNee
ssostringNee

Response

Retourneert: ModerationAPIGetCommentsResponse

Voorbeeld

Voorbeeld getApiComments
Copy Copy
1
2async function fetchComments(): Promise<void> {
3 const tenantId: string = "tenant_12345";
4 const page: number = 2;
5 const count: number = 20;
6 const textSearch: string = "typescript";
7 const byIPFromComment: string = "192.168.1.100";
8 const filters: string = "spam,offensive";
9 const searchFilters: string = "user:john";
10 const sorts: string = "date_desc";
11 const demo: boolean = true;
12 const sso: string = "sso_token_abc";
13
14 const response: ModerationAPIGetCommentsResponse = await getApiComments(
15 tenantId,
16 page,
17 count,
18 textSearch,
19 byIPFromComment,
20 filters,
21 searchFilters,
22 sorts,
23 demo,
24 sso
25 );
26}
27
28fetchComments();
29

getApiExportStatus Internal Link

Parameters

NaamTypeVerplichtBeschrijving
tenantIdstringYes
batchJobIdstringNo
ssostringNo

Respons

Retourneert: ModerationExportStatusResponse

Voorbeeld

Voorbeeld getApiExportStatus
Copy Copy
1
2async function run() {
3 const tenantId: string = "tenant_12345";
4 const batchJobId: string = "job_98765";
5 const ssoToken: string = "sso_abcde12345";
6
7 const statusOnlyTenant: ModerationExportStatusResponse = await getApiExportStatus(tenantId);
8 const statusWithBatch: ModerationExportStatusResponse = await getApiExportStatus(tenantId, batchJobId);
9 const statusFull: ModerationExportStatusResponse = await getApiExportStatus(tenantId, batchJobId, ssoToken);
10}
11run();
12

getApiIds Internal Link

Parameters

NaamTypeVereistBeschrijving
tenantIdstringYes
textSearchstringNo
byIPFromCommentstringNo
filtersstringNo
searchFiltersstringNo
afterIdstringNo
demobooleanNo
ssostringNo

Respons

Retourneert: ModerationAPIGetCommentIdsResponse

Voorbeeld

Voorbeeld getApiIds
Copy Copy
1
2async function run(): Promise<void> {
3 const tenantId: string = "acme-corp";
4 const textSearch: string = "offensive language";
5 const byIPFromComment: string = "203.0.113.45";
6 const filters: string = "status:unmoderated";
7 const searchFilters: string = "author:alice";
8 const afterId: string = "cmt_00123";
9 const demo: boolean = true;
10 const sso: string = "sso_9f8e7d6c";
11
12 const fullResult: ModerationAPIGetCommentIdsResponse = await getApiIds(
13 tenantId,
14 textSearch,
15 byIPFromComment,
16 filters,
17 searchFilters,
18 afterId,
19 demo,
20 sso
21 );
22
23 const minimalResult: ModerationAPIGetCommentIdsResponse = await getApiIds(tenantId);
24}
25

getBanUsersFromComment Internal Link

Parameters

NaamTypeVereistBeschrijving
tenantIdstringYes
commentIdstringYes
ssostringNo

Respons

Retourneert: GetBannedUsersFromCommentResponse

Voorbeeld

getBanUsersFromComment Voorbeeld
Copy Copy
1
2const tenantId: string = "tenant_9f8b7c";
3const commentId: string = "comment_a1b2c3";
4const ssoToken: string = "sso_abc123";
5
6const bannedUsers: GetBannedUsersFromCommentResponse = await getBanUsersFromComment(tenantId, commentId, ssoToken);
7const bannedUsersNoSso: GetBannedUsersFromCommentResponse = await getBanUsersFromComment(tenantId, commentId);
8

getCommentBanStatus Internal Link

Parameters

NaamTypeVerplichtBeschrijving
tenantIdstringJa
commentIdstringJa
ssostringNee

Respons

Retourneert: GetCommentBanStatusResponse

Voorbeeld

getCommentBanStatus Voorbeeld
Copy Copy
1
2(async () => {
3 const tenantId: string = "tenant_12345";
4 const commentId: string = "cmt_987654";
5 const ssoToken: string = "sso_user_abc";
6
7 const statusWithSso: GetCommentBanStatusResponse = await getCommentBanStatus(tenantId, commentId, ssoToken);
8 const statusWithoutSso: GetCommentBanStatusResponse = await getCommentBanStatus(tenantId, commentId);
9})();
10

getCommentChildren Internal Link

Parameters

NaamTypeVerplichtBeschrijving
tenantIdstringJa
commentIdstringJa
ssostringNee

Respons

Retourneert: ModerationAPIChildCommentsResponse

Voorbeeld

Voorbeeld getCommentChildren
Copy Copy
1
2async function fetchChildren() {
3 const tenantId: string = "tenant_12345";
4 const commentId: string = "cmt_98765";
5 const ssoToken: string = "sso_user_abc123";
6
7 const responseWithSSO: ModerationAPIChildCommentsResponse = await getCommentChildren(tenantId, commentId, ssoToken);
8 const responseWithoutSSO: ModerationAPIChildCommentsResponse = await getCommentChildren(tenantId, commentId);
9}
10
11fetchChildren();
12

getCount Internal Link

Parameters

NaamTypeVereistBeschrijving
tenantIdstringJa
textSearchstringNee
byIPFromCommentstringNee
filterstringNee
searchFiltersstringNee
demobooleanNee
ssostringNee

Respons

Retourneert: ModerationAPICountCommentsResponse

Voorbeeld

getCount Voorbeeld
Copy Copy
1
2const tenantId: string = "tenant_12345";
3
4const basicCount: ModerationAPICountCommentsResponse = await getCount(tenantId);
5
6const detailedCount: ModerationAPICountCommentsResponse = await getCount(
7 tenantId,
8 "spam",
9 "192.168.1.100",
10 "status:pending",
11 "user:john",
12 true,
13 "sso_token_abc"
14);
15

getCounts Internal Link


Parameters

NaamTypeVerplichtBeschrijving
tenantIdstringJa
ssostringNee

Respons

Retourneert: GetBannedUsersCountResponse

Voorbeeld

getCounts Voorbeeld
Copy Copy
1
2async function run() {
3 const tenantId: string = "tenant_9876";
4 const ssoToken: string = "sso_user_42";
5
6 const resultWithOnlyTenant: GetBannedUsersCountResponse = await getCounts(tenantId);
7 const resultWithBoth: GetBannedUsersCountResponse = await getCounts(tenantId, ssoToken);
8}
9
10run();
11

getLogs Internal Link

Parameters

NaamTypeVerplichtBeschrijving
tenantIdstringJa
commentIdstringJa
ssostringNee

Respons

Retourneert: ModerationAPIGetLogsResponse

Voorbeeld

getLogs Voorbeeld
Copy Copy
1
2(async () => {
3 const tenantId: string = "acme-corp-123";
4 const commentId: string = "cmt_4567890";
5 const ssoToken: string = "sso_abcdef123456";
6
7 const logsWithSso: ModerationAPIGetLogsResponse = await getLogs(tenantId, commentId, ssoToken);
8 const logsWithoutSso: ModerationAPIGetLogsResponse = await getLogs(tenantId, commentId);
9})();
10

getManualBadges Internal Link


Parameters

NaamTypeVerplichtBeschrijving
tenantIdstringJa
ssostringNee

Respons

Retourneert: GetTenantManualBadgesResponse

Voorbeeld

getManualBadges Voorbeeld
Copy Copy
1
2async function fetchBadges() {
3 const tenantId: string = "tenant-987654321";
4 const ssoToken: string = "sso-token-abc123";
5
6 const badgesWithSso: GetTenantManualBadgesResponse = await getManualBadges(tenantId, ssoToken);
7 const badgesWithoutSso: GetTenantManualBadgesResponse = await getManualBadges(tenantId);
8}
9

getManualBadgesForUser Internal Link

Parameters

NaamTypeVerplichtBeschrijving
tenantIdstringJa
badgesUserIdstringNee
commentIdstringNee
ssostringNee

Respons

Retourneert: GetUserManualBadgesResponse

Voorbeeld

getManualBadgesForUser Voorbeeld
Copy Copy
1
2async () => {
3 const tenantId: string = "tenant_12345";
4 const badgesUserId: string | undefined = "user_98765";
5 const commentId: string | undefined = "comment_abcde";
6 const sso: string | undefined = "sso_token_xyz";
7
8 const basicResponse: GetUserManualBadgesResponse = await getManualBadgesForUser(tenantId);
9 const fullResponse: GetUserManualBadgesResponse = await getManualBadgesForUser(
10 tenantId,
11 badgesUserId,
12 commentId,
13 sso
14 );
15
16 console.log(basicResponse, fullResponse);
17}();
18

getModerationComment Internal Link

Parameters

NaamTypeVerplichtBeschrijving
tenantIdstringJa
commentIdstringJa
includeEmailbooleanNee
includeIPbooleanNee
ssostringNee

Response

Retourneert: ModerationAPICommentResponse

Example

Voorbeeld getModerationComment
Copy Copy
1
2async function fetchComments() {
3 const tenantId: string = "acme-corp";
4 const commentId: string = "cmt_1234567890";
5
6 // Aanroep met alleen verplichte parameters
7 const basicResponse: ModerationAPICommentResponse = await getModerationComment(tenantId, commentId);
8
9 // Aanroep met optionele parameters
10 const includeEmail: boolean = true;
11 const includeIP: boolean = false;
12 const sso: string = "sso-token-abc123";
13 const detailedResponse: ModerationAPICommentResponse = await getModerationComment(
14 tenantId,
15 commentId,
16 includeEmail,
17 includeIP,
18 sso
19 );
20}
21

getModerationCommentText Internal Link


Parameters

NaamTypeVerplichtBeschrijving
tenantIdstringJa
commentIdstringJa
ssostringNee

Respons

Retourneert: GetCommentTextResponse

Voorbeeld

getModerationCommentText Voorbeeld
Copy Copy
1
2async function fetchComment() {
3 const tenantId: string = "tenant_12345";
4 const commentId: string = "cmt_98765";
5 const ssoToken: string = "sso_abcde12345";
6
7 const commentWithoutSso: GetCommentTextResponse = await getModerationCommentText(tenantId, commentId);
8 const commentWithSso: GetCommentTextResponse = await getModerationCommentText(tenantId, commentId, ssoToken);
9}
10
11fetchComment();
12

getPreBanSummary Internal Link

Parameters

NaamTypeVerplichtBeschrijving
tenantIdstringYes
commentIdstringYes
includeByUserIdAndEmailbooleanNo
includeByIPbooleanNo
includeByEmailDomainbooleanNo
ssostringNo

Respons

Retourneert: PreBanSummary

Voorbeeld

getPreBanSummary Voorbeeld
Copy Copy
1
2async function fetchSummary(): Promise<void> {
3 const tenantId: string = "tenant_12345";
4 const commentId: string = "cmt_98765";
5 const includeByUserIdAndEmail: boolean = true;
6 const includeByIP: boolean = false;
7 const includeByEmailDomain: boolean = true;
8 const sso: string = "sso_token_abc";
9
10 const summary: PreBanSummary = await getPreBanSummary(
11 tenantId,
12 commentId,
13 includeByUserIdAndEmail,
14 includeByIP,
15 includeByEmailDomain,
16 sso
17 );
18
19 console.log(summary);
20}
21
22fetchSummary();
23

getSearchCommentsSummary Internal Link

Parameters

NaamTypeVerplichtBeschrijving
tenantIdstringJa
valuestringNee
filtersstringNee
searchFiltersstringNee
ssostringNee

Respons

Retourneert: ModerationCommentSearchResponse

Voorbeeld

getSearchCommentsSummary Voorbeeld
Copy Copy
1
2async function runSearch() {
3 const tenantId: string = "tenant_12345";
4 const value: string = "spam";
5 const filters: string = "status:pending";
6 const searchFilters: string = "author:john";
7 const sso: string = "sso_token_abc";
8
9 const result: ModerationCommentSearchResponse = await getSearchCommentsSummary(
10 tenantId,
11 value,
12 filters,
13 searchFilters,
14 sso
15 );
16
17 console.log(result);
18}
19
20runSearch();
21

getSearchPages Internal Link

Parameters

NameTypeRequiredDescription
tenantIdstringYes
valuestringNo
ssostringNo

Respons

Retourneert: ModerationPageSearchResponse

Voorbeeld

getSearchPages Voorbeeld
Copy Copy
1
2const tenantId: string = "acme-corp-123";
3const searchValue: string = "spam";
4const ssoToken: string = "sso-abc123def456";
5
6const result1: ModerationPageSearchResponse = await getSearchPages(tenantId);
7const result2: ModerationPageSearchResponse = await getSearchPages(tenantId, searchValue);
8const result3: ModerationPageSearchResponse = await getSearchPages(tenantId, searchValue, ssoToken);
9

getSearchSites Internal Link

Parameters

NaamTypeVerplichtBeschrijving
tenantIdstringJa
valuestringNee
ssostringNee

Respons

Retourneert: ModerationSiteSearchResponse

Voorbeeld

Voorbeeld getSearchSites
Copy Copy
1
2async function runSearches(): Promise<void> {
3 const tenantId: string = "tenant-987654";
4 const query: string = "offensive content";
5 const ssoToken: string = "sso-token-xyz";
6
7 const fullResult: ModerationSiteSearchResponse = await getSearchSites(tenantId, query, ssoToken);
8 const minimalResult: ModerationSiteSearchResponse = await getSearchSites(tenantId);
9}
10
11runSearches();
12

getSearchSuggest Internal Link

Parameters

NaamTypeVerplichtBeschrijving
tenantIdstringJa
textSearchstringNee
ssostringNee

Respons

Retourneert: ModerationSuggestResponse

Voorbeeld

getSearchSuggest Voorbeeld
Copy Copy
1
2(async () => {
3 const tenantId: string = "tenant-9f8b7c6d";
4 const textSearch: string = "harassment";
5 const sso: string = "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...";
6 const suggestResponse: ModerationSuggestResponse = await getSearchSuggest(tenantId, textSearch, sso);
7 const minimalResponse: ModerationSuggestResponse = await getSearchSuggest(tenantId);
8})();
9

getSearchUsers Internal Link

Parameters

NaamTypeVereistBeschrijving
tenantIdstringJa
valuestringNee
ssostringNee

Respons

Retourneert: ModerationUserSearchResponse

Voorbeeld

getSearchUsers Voorbeeld
Copy Copy
1
2async function runSearch() {
3 const tenantId: string = "tenant-9876";
4 const emailFragment: string = "jane";
5 const ssoToken: string = "sso-token-456";
6
7 const resultWithAll: ModerationUserSearchResponse = await getSearchUsers(tenantId, emailFragment, ssoToken);
8 const resultWithTenantOnly: ModerationUserSearchResponse = await getSearchUsers(tenantId);
9}
10

getTrustFactor Internal Link

Parameters

NaamTypeVerplichtBeschrijving
tenantIdstringJa
userIdstringNee
ssostringNee

Respons

Retourneert: GetUserTrustFactorResponse

Voorbeeld

getTrustFactor voorbeeld
Copy Copy
1
2async function demo() {
3 const tenantId: string = "tenant_12345";
4 const userId: string = "user_98765";
5 const sso: string = "sso_token_abcde";
6
7 const trustFactor: GetUserTrustFactorResponse = await getTrustFactor(tenantId);
8 const trustFactorWithUser: GetUserTrustFactorResponse = await getTrustFactor(tenantId, userId);
9 const trustFactorFull: GetUserTrustFactorResponse = await getTrustFactor(tenantId, userId, sso);
10}
11

getUserBanPreference Internal Link

Parameters

NaamTypeVerplichtBeschrijving
tenantIdstringJa
ssostringNee

Response

Retourneert: APIModerateGetUserBanPreferencesResponse

Example

getUserBanPreference Voorbeeld
Copy Copy
1
2async function demoGetUserBanPreference() {
3 const tenantId: string = "tenant_987654321";
4 const ssoToken: string = "sso_user_abc123xyz";
5
6 const responseWithSso: APIModerateGetUserBanPreferencesResponse = await getUserBanPreference(tenantId, ssoToken);
7 const responseWithoutSso: APIModerateGetUserBanPreferencesResponse = await getUserBanPreference(tenantId);
8}
9

getUserInternalProfile Internal Link

Parameters

NameTypeRequiredDescription
tenantIdstringYes
commentIdstringNo
ssostringNo

Respons

Retourneert: GetUserInternalProfileResponse

Voorbeeld

Voorbeeld getUserInternalProfile
Copy Copy
1
2async function demo() {
3 const tenantId: string = "tenant_12345";
4 const commentId: string = "cmt_9876";
5 const ssoToken: string = "sso_abcde12345";
6
7 const profileOnly: GetUserInternalProfileResponse = await getUserInternalProfile(tenantId);
8 const profileWithComment: GetUserInternalProfileResponse = await getUserInternalProfile(tenantId, commentId);
9 const fullProfile: GetUserInternalProfileResponse = await getUserInternalProfile(tenantId, commentId, ssoToken);
10}
11
12demo();
13

postAdjustCommentVotes Internal Link

Parameters

NaamTypeVerplichtBeschrijving
tenantIdstringJa
commentIdstringJa
adjustCommentVotesParamsAdjustCommentVotesParamsJa
broadcastIdstringNee
ssostringNee

Respons

Retourneert: AdjustVotesResponse

Voorbeeld

postAdjustCommentVotes Voorbeeld
Copy Copy
1
2const tenantId: string = "acme-corp";
3const commentId: string = "cmt_987654321";
4const adjustParams: AdjustCommentVotesParams = { voteDelta: 1 };
5const broadcastId: string = "brd_112233";
6const sso: string = "sso-token-xyz";
7
8const result: AdjustVotesResponse = await postAdjustCommentVotes(
9 tenantId,
10 commentId,
11 adjustParams,
12 broadcastId,
13 sso
14);
15

postApiExport Internal Link

Parameters

NaamTypeVereistBeschrijving
tenantIdstringJa
textSearchstringNee
byIPFromCommentstringNee
filtersstringNee
searchFiltersstringNee
sortsstringNee
ssostringNee

Respons

Retourneert: ModerationExportResponse

Voorbeeld

postApiExport Voorbeeld
Copy Copy
1
2async function runExport() {
3 const tenantId: string = "c9f1e2b4-8a6d-4f3a-9d2e-5b6c7d8e9f0a";
4 const textSearch: string = "spam";
5 const byIPFromComment: string = "203.0.113.45";
6 const filters: string = "status:pending";
7 const searchFilters: string = "createdAt>2023-01-01";
8 const sorts: string = "createdAt:desc";
9 const sso: string = "sso-token-abc123";
10
11 const fullExport: ModerationExportResponse = await postApiExport(
12 tenantId,
13 textSearch,
14 byIPFromComment,
15 filters,
16 searchFilters,
17 sorts,
18 sso
19 );
20
21 const minimalExport: ModerationExportResponse = await postApiExport(tenantId);
22
23 console.log(fullExport, minimalExport);
24}
25runExport();
26

postBanUserFromComment Internal Link

Parameters

NaamTypeVerplichtBeschrijving
tenantIdstringJa
commentIdstringJa
banEmailbooleanNee
banEmailDomainbooleanNee
banIPbooleanNee
deleteAllUsersCommentsbooleanNee
bannedUntilstringNee
isShadowBanbooleanNee
updateIdstringNee
banReasonstringNee
ssostringNee

Response

Retourneert: BanUserFromCommentResult

Example

postBanUserFromComment voorbeeld
Copy Copy
1
2async function banUserExample(): Promise<void> {
3 const result: BanUserFromCommentResult = await postBanUserFromComment(
4 "tenant_42",
5 "comment_1001",
6 true, // banEmail
7 undefined, // banEmailDomain (weggelaten)
8 true, // banIP
9 false, // deleteAllUsersComments
10 "2025-01-01T00:00:00Z", // bannedUntil
11 true, // isShadowBan
12 undefined, // updateId (weggelaten)
13 "Harassment", // banReason
14 undefined // sso (weggelaten)
15 );
16
17 console.log(result);
18}
19

postBanUserUndo Internal Link

Parameters

NaamTypeVerplichtBeschrijving
tenantIdstringJa
banUserUndoParamsBanUserUndoParamsJa
ssostringNee

Respons

Retourneert: APIEmptyResponse

Voorbeeld

postBanUserUndo Voorbeeld
Copy Copy
1
2const tenantId: string = "tenant_9876";
3
4const undoParams: BanUserUndoParams = {
5 userId: "user_12345",
6 // extra verplichte velden kunnen hier worden toegevoegd
7};
8
9const resultWithoutSSO: APIEmptyResponse = await postBanUserUndo(tenantId, undoParams);
10
11const ssoToken: string = "sso_abcdef123456";
12
13const resultWithSSO: APIEmptyResponse = await postBanUserUndo(tenantId, undoParams, ssoToken);
14

postBulkPreBanSummary Internal Link

Parameters

NaamTypeVereistBeschrijving
tenantIdstringJa
bulkPreBanParamsBulkPreBanParamsJa
includeByUserIdAndEmailbooleanNee
includeByIPbooleanNee
includeByEmailDomainbooleanNee
ssostringNee

Respons

Retourneert: BulkPreBanSummary

Voorbeeld

postBulkPreBanSummary Voorbeeld
Copy Copy
1
2const tenantId: string = "c1f2e3d4-5678-90ab-cdef-1234567890ab";
3
4const bulkPreBanParams: BulkPreBanParams = {
5 userIds: ["user123"],
6 emails: ["spam@example.com"],
7 ips: ["192.0.2.1"],
8 emailDomains: ["example.com"]
9};
10
11const includeByUserIdAndEmail: boolean = true;
12const includeByIP: boolean = false;
13const includeByEmailDomain: boolean = true;
14const sso: string = "sso-token-abc123";
15
16const summary: BulkPreBanSummary = await postBulkPreBanSummary(
17 tenantId,
18 bulkPreBanParams,
19 includeByUserIdAndEmail,
20 includeByIP,
21 includeByEmailDomain,
22 sso
23);
24

postCommentsByIds Internal Link

Parameters

NaamTypeVereistBeschrijving
tenantIdstringJa
commentsByIdsParamsCommentsByIdsParamsJa
ssostringNee

Respons

Retourneert: ModerationAPIChildCommentsResponse

Voorbeeld

postCommentsByIds Voorbeeld
Copy Copy
1
2const tenantId: string = 'tenant-9f8b7c6d-1234-5678-90ab-cdef12345678';
3const commentsByIdsParams: CommentsByIdsParams = {
4 commentIds: ['comment-1', 'comment-2'],
5 includeUserBadges: true
6};
7const responseWithoutSso: ModerationAPIChildCommentsResponse = await postCommentsByIds(tenantId, commentsByIdsParams);
8const sso: string = 'sso-abc123def456';
9const responseWithSso: ModerationAPIChildCommentsResponse = await postCommentsByIds(tenantId, commentsByIdsParams, sso);
10

postFlagComment Internal Link

Parameters

NaamTypeVereistBeschrijving
tenantIdstringJa
commentIdstringJa
broadcastIdstringNee
ssostringNee

Respons

Retourneert: APIEmptyResponse

Voorbeeld

postFlagComment Voorbeeld
Copy Copy
1
2async function runExample() {
3 const tenantId: string = "tenant_12345";
4 const commentId: string = "cmt_98765";
5
6 // Alleen vereiste parameters
7 const result1: APIEmptyResponse = await postFlagComment(tenantId, commentId);
8
9 // Inclusief optionele parameters
10 const broadcastId: string = "brd_54321";
11 const sso: string = "user@example.com";
12 const result2: APIEmptyResponse = await postFlagComment(tenantId, commentId, broadcastId, sso);
13
14 console.log(result1, result2);
15}
16runExample();
17

postRemoveComment Internal Link

Parameters

NaamTypeVereistBeschrijving
tenantIdstringYes
commentIdstringYes
broadcastIdstringNo
ssostringNo

Respons

Retourneert: PostRemoveCommentApiResponse

Voorbeeld

postRemoveComment Voorbeeld
Copy Copy
1
2async function removeCommentExample() {
3 const tenantId: string = "tenant_12345";
4 const commentId: string = "cmt_98765";
5 const broadcastId: string = "brd_555";
6 const sso: string = "sso_token_abc";
7
8 const response: PostRemoveCommentApiResponse = await postRemoveComment(
9 tenantId,
10 commentId,
11 broadcastId,
12 sso
13 );
14 console.log(response);
15}
16
17removeCommentExample();
18

postRestoreDeletedComment Internal Link

Parameters

NaamTypeVerplichtBeschrijving
tenantIdstringJa
commentIdstringJa
broadcastIdstringNee
ssostringNee

Respons

Retourneert: APIEmptyResponse

Voorbeeld

postRestoreDeletedComment voorbeeld
Copy Copy
1
2const tenantId: string = "tenant_12345";
3const commentId: string = "cmt_98765";
4
5const resultRequired: APIEmptyResponse = await postRestoreDeletedComment(tenantId, commentId);
6
7const broadcastId: string = "brd_001";
8const sso: string = "sso_token_abc123";
9
10const resultAll: APIEmptyResponse = await postRestoreDeletedComment(
11 tenantId,
12 commentId,
13 broadcastId,
14 sso
15);
16

postSetCommentApprovalStatus Internal Link

Parameters

NaamTypeVerplichtBeschrijving
tenantIdstringJa
commentIdstringJa
approvedbooleanNee
broadcastIdstringNee
ssostringNee

Respons

Retourneert: SetCommentApprovedResponse

Voorbeeld

postSetCommentApprovalStatus Voorbeeld
Copy Copy
1
2(async () => {
3 const tenantId: string = "tenant_001";
4 const commentId: string = "comment_123";
5 const approved: boolean = false;
6 const broadcastId: string = "broadcast_456";
7 const sso: string = "sso_789";
8
9 const result: SetCommentApprovedResponse = await postSetCommentApprovalStatus(
10 tenantId,
11 commentId,
12 approved,
13 broadcastId,
14 sso
15 );
16
17 const minimalResult: SetCommentApprovedResponse = await postSetCommentApprovalStatus(
18 tenantId,
19 commentId
20 );
21})();
22

postSetCommentReviewStatus Internal Link

Parameters

NaamTypeVerplichtBeschrijving
tenantIdstringJa
commentIdstringJa
reviewedbooleanNee
broadcastIdstringNee
ssostringNee

Respons

Retourneert: APIEmptyResponse

Voorbeeld

postSetCommentReviewStatus Voorbeeld
Copy Copy
1
2const tenantId: string = "tenant_12345";
3const commentId: string = "cmt_98765";
4const reviewed: boolean = true;
5const broadcastId: string = "brd_001";
6const sso: string = "sso_token_abc";
7
8const result: APIEmptyResponse = await postSetCommentReviewStatus(
9 tenantId,
10 commentId,
11 reviewed,
12 broadcastId,
13 sso
14);
15

postSetCommentSpamStatus Internal Link

Parameters

NameTypeRequiredDescription
tenantIdstringYes
commentIdstringYes
spambooleanNo
permNotSpambooleanNo
broadcastIdstringNo
ssostringNo

Respons

Retourneert: APIEmptyResponse

Voorbeeld

postSetCommentSpamStatus Voorbeeld
Copy Copy
1
2const tenantId: string = "tenant_42";
3const commentId: string = "comment_1001";
4
5const spam: boolean = true;
6const permNotSpam: boolean = false;
7const broadcastId: string = "broadcast_2023";
8const sso: string = "sso_user_5678";
9
10const resultFull: APIEmptyResponse = await postSetCommentSpamStatus(
11 tenantId,
12 commentId,
13 spam,
14 permNotSpam,
15 broadcastId,
16 sso
17);
18
19const resultMinimal: APIEmptyResponse = await postSetCommentSpamStatus(
20 tenantId,
21 commentId
22);
23

postSetCommentText Internal Link

Parameters

NaamTypeVerplichtBeschrijving
tenantIdstringJa
commentIdstringJa
setCommentTextParamsSetCommentTextParamsJa
broadcastIdstringNee
ssostringNee

Response

Retourneert: SetCommentTextResponse

Example

postSetCommentText Voorbeeld
Copy Copy
1
2const tenantId: string = "tenant_12345";
3const commentId: string = "cmt_9876";
4const setCommentTextParams: SetCommentTextParams = {
5 text: "Revised comment after user edit.",
6 format: "plain"
7};
8const broadcastId: string = "broadcast_2023_09";
9
10const response: SetCommentTextResponse = await postSetCommentText(
11 tenantId,
12 commentId,
13 setCommentTextParams,
14 broadcastId
15);
16
17console.log(response);
18

postUnFlagComment Internal Link

Parameters

NameTypeRequiredDescription
tenantIdstringYes
commentIdstringYes
broadcastIdstringNo
ssostringNo

Respons

Retourneert: APIEmptyResponse

Voorbeeld

postUnFlagComment Voorbeeld
Copy Copy
1
2async function runExample() {
3 const tenantId: string = "tenant_12345";
4 const commentId: string = "comment_98765";
5 const broadcastId: string = "broadcast_55555";
6 const sso: string = "sso_token_abcde";
7
8 const result1: APIEmptyResponse = await postUnFlagComment(tenantId, commentId);
9 const result2: APIEmptyResponse = await postUnFlagComment(tenantId, commentId, broadcastId, sso);
10}
11
12runExample();
13

postVote Internal Link

Parameters

NaamTypeVereistBeschrijving
tenantIdstringJa
commentIdstringJa
directionstringNee
broadcastIdstringNee
ssostringNee

Respons

Retourneert: VoteResponse

Voorbeeld

postVote Voorbeeld
Copy Copy
1
2async function runVoteExamples(): Promise<void> {
3 const tenantId: string = "acme-corp";
4 const commentId: string = "cmt_1234567890";
5
6 // Aanroep met alleen verplichte parameters
7 const simpleVote: VoteResponse = await postVote(tenantId, commentId);
8
9 // Aanroep met optionele parameters
10 const direction: string = "down";
11 const broadcastId: string = "brd_987654321";
12 const sso: string = "user-42";
13 const detailedVote: VoteResponse = await postVote(tenantId, commentId, direction, broadcastId, sso);
14
15 console.log(simpleVote, detailedVote);
16}
17

putAwardBadge Internal Link

Parameters

NaamTypeVerplichtBeschrijving
tenantIdstringYes
badgeIdstringYes
userIdstringNo
commentIdstringNo
broadcastIdstringNo
ssostringNo

Respons

Retourneert: AwardUserBadgeResponse

Voorbeeld

putAwardBadge Voorbeeld
Copy Copy
1
2async function awardBadgeExample(): Promise<void> {
3 const tenantId: string = "tenant_42";
4 const badgeId: string = "badge_superstar";
5 const userId: string = "user_1001";
6 const commentId: string = "comment_2023";
7
8 const result: AwardUserBadgeResponse = await putAwardBadge(
9 tenantId,
10 badgeId,
11 userId,
12 commentId
13 );
14
15 console.log(result);
16}
17

putCloseThread Internal Link

Parameters

NaamTypeVerplichtBeschrijving
tenantIdstringJa
urlIdstringJa
ssostringNee

Response

Retourneert: APIEmptyResponse

Example

putCloseThread Voorbeeld
Copy Copy
1
2(async () => {
3 const tenantId: string = "my-company";
4 const urlId: string = "post-2023-09-15";
5 const ssoToken: string = "sso-abc123def";
6
7 const resultWithSso: APIEmptyResponse = await putCloseThread(tenantId, urlId, ssoToken);
8 const resultWithoutSso: APIEmptyResponse = await putCloseThread(tenantId, urlId);
9})();
10

putRemoveBadge Internal Link

Parameters

NaamTypeVerplichtBeschrijving
tenantIdstringJa
badgeIdstringJa
userIdstringNee
commentIdstringNee
broadcastIdstringNee
ssostringNee

Respons

Retourneert: RemoveUserBadgeResponse

Voorbeeld

putRemoveBadge Voorbeeld
Copy Copy
1
2async function demoRemoveBadge() {
3 const tenantId: string = "tenant_42";
4 const badgeId: string = "badge_gold";
5 const userId: string = "user_1001";
6 const commentId: string = "comment_20230915";
7 const broadcastId: string = "broadcast_live_01";
8 const sso: string = "sso_abcdef123456";
9
10 const result: RemoveUserBadgeResponse = await putRemoveBadge(
11 tenantId,
12 badgeId,
13 userId,
14 commentId,
15 broadcastId,
16 sso
17 );
18
19 console.log(result);
20}
21

putReopenThread Internal Link

Parameters

NaamTypeVerplichtBeschrijving
tenantIdstringJa
urlIdstringJa
ssostringNee

Respons

Retourneert: APIEmptyResponse

Voorbeeld

putReopenThread Voorbeeld
Copy Copy
1
2async function reopenThreadExample() {
3 const tenantId: string = "tenant_12345";
4 const urlId: string = "post-9876";
5 const sso: string = "user-abc123";
6
7 const responseWithoutSso: APIEmptyResponse = await putReopenThread(tenantId, urlId);
8 const responseWithSso: APIEmptyResponse = await putReopenThread(tenantId, urlId, sso);
9}
10
11reopenThreadExample();
12

setTrustFactor Internal Link

Parameters

NameTypeRequiredDescription
tenantIdstringJa
userIdstringNee
trustFactorstringNee
ssostringNee

Response

Retourneert: SetUserTrustFactorResponse

Voorbeeld

setTrustFactor voorbeeld
Copy Copy
1
2async function demoSetTrustFactor() {
3 const tenantId: string = "acme-corp";
4 const userId: string = "user-9876";
5 const trustFactor: string = "high";
6 const sso: string = "sso-token-xyz";
7
8 const fullResponse: SetUserTrustFactorResponse = await setTrustFactor(
9 tenantId,
10 userId,
11 trustFactor,
12 sso
13 );
14
15 const minimalResponse: SetUserTrustFactorResponse = await setTrustFactor(tenantId);
16}
17

createModerator Internal Link

Parameters

NaamTypeVereistBeschrijving
tenantIdstringJa
createModeratorBodyCreateModeratorBodyJa

Respons

Retourneert: CreateModeratorResponse

Voorbeeld

createModerator Voorbeeld
Copy Copy
1
2const tenantId: string = "tenant_12345";
3
4const moderatorPayload: CreateModeratorBody = {
5 userId: "user_9876",
6 // optioneel veld; kan worden weggelaten indien niet nodig
7 notes: "Temporary moderator for event"
8};
9
10const response: CreateModeratorResponse = await createModerator(tenantId, moderatorPayload);
11

deleteModerator Internal Link

Parameters

NameTypeRequiredDescription
tenantIdstringYes
idstringYes
sendEmailstringNo

Response

Retourneert: APIEmptyResponse

Example

deleteModerator Voorbeeld
Copy Copy
1
2(async () => {
3 const tenantId: string = "tenant_12345";
4 const moderatorId: string = "mod_9876";
5 const notifyEmail: string = "admin@company.com";
6
7 const resultWithEmail: APIEmptyResponse = await deleteModerator(tenantId, moderatorId, notifyEmail);
8 const resultWithoutEmail: APIEmptyResponse = await deleteModerator(tenantId, moderatorId);
9})();
10

getModerator Internal Link

Parameters

NaamTypeVerplichtBeschrijving
tenantIdstringJa
idstringJa

Respons

Retourneert: GetModeratorResponse

Voorbeeld

getModerator Voorbeeld
Copy Copy
1
2async function fetchModerator() {
3 const tenantId: string = "c9f1e2b3-4d5a-6f78-90ab-cdef12345678";
4 const moderatorId: string = "mod-987654";
5 const response: GetModeratorResponse = await getModerator(tenantId, moderatorId);
6 const isActive: boolean | undefined = response.moderator?.isActive;
7 const statusCode: number | undefined = response.status?.code;
8}
9

getModerators Internal Link

Parameters

NaamTypeVerplichtBeschrijving
tenantIdstringYes
skipnumberNo

Respons

Retourneert: GetModeratorsResponse

Voorbeeld

getModerators Voorbeeld
Copy Copy
1
2const tenantId: string = "tenant_987654321";
3
4const moderators: GetModeratorsResponse = await getModerators(tenantId);
5
6const skip: number = 20;
7const moreModerators: GetModeratorsResponse = await getModerators(tenantId, skip);
8

sendInvite Internal Link

Parameters

NaamTypeVereistBeschrijving
tenantIdstringJa
idstringJa
fromNamestringJa

Respons

Retourneert: APIEmptyResponse

Voorbeeld

sendInvite Voorbeeld
Copy Copy
1
2const tenantId: string = "tenant-987654321";
3const id: string = "user-123456789";
4const fromName: string = "Alice Johnson";
5
6const result: APIEmptyResponse = await sendInvite(tenantId, id, fromName);
7console.log(result);
8

updateModerator Internal Link


Parameters

NaamTypeVereistBeschrijving
tenantIdstringJa
idstringJa
updateModeratorBodyUpdateModeratorBodyJa

Respons

Retourneert: APIEmptyResponse

Voorbeeld

updateModerator Voorbeeld
Copy Copy
1
2const tenantId: string = "tenant_9f8b7c6d";
3const moderatorId: string = "mod_12345";
4
5const updateBody: UpdateModeratorBody = {
6 isActive: true,
7 // role?: string is optioneel en hier weggelaten
8};
9
10const result: APIEmptyResponse = await updateModerator(tenantId, moderatorId, updateBody);
11

deleteNotificationCount Internal Link


Parameters

NaamTypeVerplichtBeschrijving
tenantIdstringJa
idstringJa

Respons

Retourneert: APIEmptyResponse

Voorbeeld

deleteNotificationCount Voorbeeld
Copy Copy
1
2let tenantId: string = "tenant-42f9b8c1";
3let notificationId: string = "notif-7e3a9d4f";
4
5const result: APIEmptyResponse = await deleteNotificationCount(tenantId, notificationId);
6

getCachedNotificationCount Internal Link

Parameters

NaamTypeVerplichtBeschrijving
tenantIdstringJa
idstringJa

Response

Retourneert: GetCachedNotificationCountResponse

Example

getCachedNotificationCount voorbeeld
Copy Copy
1
2(async () => {
3 const tenantId: string = "tenant_12345";
4 const id: string = "user_9876";
5 const response: GetCachedNotificationCountResponse = await getCachedNotificationCount(tenantId, id);
6})();
7

getNotificationCount Internal Link

Parameters

NaamTypeVerplichtBeschrijving
tenantIdstringJa
userIdstringNee
urlIdstringNee
fromCommentIdstringNee
viewedbooleanNee
typestringNee

Respons

Retourneert: GetNotificationCountResponse

Voorbeeld

getNotificationCount Voorbeeld
Copy Copy
1
2const tenantId: string = "acme-corp";
3const userId: string = "user-12345";
4const urlId: string = "https://app.example.com/dashboard";
5const fromCommentId: string = "cmt-9876";
6const viewed: boolean = false;
7const type: string = "reply";
8
9const notificationCount: GetNotificationCountResponse = await getNotificationCount(
10 tenantId,
11 userId,
12 urlId,
13 fromCommentId,
14 viewed,
15 type
16);
17

getNotifications Internal Link

Parameters

NaamTypeVereistBeschrijving
tenantIdstringJa
userIdstringNee
urlIdstringNee
fromCommentIdstringNee
viewedbooleanNee
typestringNee
skipnumberNee

Respons

Retourneert: GetNotificationsResponse

Voorbeeld

getNotifications Voorbeeld
Copy Copy
1
2async function fetchNotifications(): Promise<void> {
3 const tenantId: string = "tenant_42";
4 const userId: string = "user_1001";
5 const urlId: string = "url_2023";
6 const viewed: boolean = true;
7 const skip: number = 0;
8
9 const notifications: GetNotificationsResponse = await getNotifications(
10 tenantId,
11 userId,
12 urlId,
13 undefined,
14 viewed,
15 undefined,
16 skip
17 );
18
19 console.log(notifications);
20}
21

updateNotification Internal Link

Parameters

NaamTypeVerplichtBeschrijving
tenantIdstringYes
idstringYes
updateNotificationBodyUpdateNotificationBodyYes
userIdstringNo

Respons

Retourneert: APIEmptyResponse

Voorbeeld

updateNotification Voorbeeld
Copy Copy
1
2async function main(): Promise<void> {
3 const tenantId: string = "tenant-abc123";
4 const notificationId: string = "notif-9876";
5 const updateBody: UpdateNotificationBody = {
6 title: "System Maintenance",
7 message: "Scheduled maintenance at 02:00 UTC.",
8 enabled: true
9 };
10 const userId: string = "user-42";
11
12 const resultWithoutUser: APIEmptyResponse = await updateNotification(tenantId, notificationId, updateBody);
13 const resultWithUser: APIEmptyResponse = await updateNotification(tenantId, notificationId, updateBody, userId);
14}
15

createV1PageReact Internal Link

Parameters

NaamTypeVerplichtBeschrijving
tenantIdstringJa
urlIdstringJa
titlestringNee
ssostringNee

Respons

Retourneert: CreateV1PageReact

Voorbeeld

createV1PageReact Voorbeeld
Copy Copy
1
2const tenantId: string = "my-tenant-123";
3const urlId: string = "article-456";
4
5const pageTitle: string = "Understanding TypeScript Generics";
6const ssoToken: string = "user-789-token";
7
8const fullResult: CreateV1PageReact = await createV1PageReact(tenantId, urlId, pageTitle, ssoToken);
9const minimalResult: CreateV1PageReact = await createV1PageReact(tenantId, urlId);
10

createV2PageReact Internal Link

Parameters

NaamTypeVerplichtBeschrijving
tenantIdstringJa
urlIdstringJa
idstringJa
titlestringNee
ssostringNee

Response

Retourneert: CreateV1PageReact

Voorbeeld

createV2PageReact Voorbeeld
Copy Copy
1
2async function run() {
3 const tenantId: string = "acme-corp";
4 const urlId: string = "product-page-123";
5 const pageId: string = "page-456";
6 const pageTitle: string = "Product Overview";
7 const ssoToken: string = "jwt-token-abc123";
8
9 const pageFull: CreateV1PageReact = await createV2PageReact(tenantId, urlId, pageId, pageTitle, ssoToken);
10 const pageTitleOnly: CreateV1PageReact = await createV2PageReact(tenantId, urlId, pageId, pageTitle);
11 const pageMinimal: CreateV1PageReact = await createV2PageReact(tenantId, urlId, pageId);
12}
13run();
14

deleteV1PageReact Internal Link

Parameters

NaamTypeVerplichtBeschrijving
tenantIdstringYes
urlIdstringYes
ssostringNo

Respons

Retourneert: CreateV1PageReact

Voorbeeld

deleteV1PageReact Voorbeeld
Copy Copy
1
2async function runExamples() {
3 const tenantId: string = "tenant_9f8b7c6d";
4 const urlId: string = "blog/post-2024-06-15";
5 const ssoToken: string = "sso_user_42";
6
7 const resultWithSso: CreateV1PageReact = await deleteV1PageReact(tenantId, urlId, ssoToken);
8 const resultWithoutSso: CreateV1PageReact = await deleteV1PageReact(tenantId, urlId);
9}
10

deleteV2PageReact Internal Link

Parameters

NaamTypeVereistBeschrijving
tenantIdstringJa
urlIdstringJa
idstringJa
ssostringNee

Response

Retourneert: CreateV1PageReact

Example

deleteV2PageReact voorbeeld
Copy Copy
1
2async function runDeleteExamples() {
3 const tenantId: string = "tenant_12345";
4 const urlId: string = "page_98765";
5 const commentId: string = "comment_abcde";
6
7 // Aanroep zonder optionele sso
8 const resultWithoutSso: CreateV1PageReact = await deleteV2PageReact(tenantId, urlId, commentId);
9
10 // Aanroep met optionele sso
11 const ssoToken: string = "sso_token_xyz";
12 const resultWithSso: CreateV1PageReact = await deleteV2PageReact(tenantId, urlId, commentId, ssoToken);
13}
14

getV1PageLikes Internal Link

Parameters

NameTypeRequiredDescription
tenantIdstringJa
urlIdstringJa
ssostringNee

Response

Retourneert: GetV1PageLikes

Example

getV1PageLikes voorbeeld
Copy Copy
1
2(async () => {
3 const tenantId: string = "tenant_12345";
4 const urlId: string = "https://myblog.com/post/42";
5 const ssoToken: string = "sso_user_987";
6
7 const likesWithSSO: GetV1PageLikes = await getV1PageLikes(tenantId, urlId, ssoToken);
8 const likesWithoutSSO: GetV1PageLikes = await getV1PageLikes(tenantId, urlId);
9})();
10

getV2PageReacts Internal Link

Parameters

NaamTypeVereistBeschrijving
tenantIdstringYes
urlIdstringYes
ssostringNo

Response

Retourneert: GetV2PageReacts

Voorbeeld

getV2PageReacts Voorbeeld
Copy Copy
1
2const tenantId: string = "tenant-42";
3const urlId: string = "article-9876";
4const ssoToken: string = "sso-abc123";
5
6const reactsWithSso: GetV2PageReacts = await getV2PageReacts(tenantId, urlId, ssoToken);
7const reactsWithoutSso: GetV2PageReacts = await getV2PageReacts(tenantId, urlId);
8

getV2PageReactUsers Internal Link

Parameters

NaamTypeVerplichtBeschrijving
tenantIdstringJa
urlIdstringJa
idstringJa
ssostringNee

Respons

Retourneert: GetV2PageReactUsersResponse

Voorbeeld

getV2PageReactUsers Voorbeeld
Copy Copy
1
2async function demoGetUsers() {
3 const tenantId: string = "d4e5f6a7-89ab-4cde-f012-3456789abcde";
4 const urlId: string = "blog/2024/06/fastcomments-typescript";
5 const userId: string = "user_123456789";
6 const ssoToken: string = "sso_token_abcdef123456";
7
8 const responseWithSso: GetV2PageReactUsersResponse = await getV2PageReactUsers(tenantId, urlId, userId, ssoToken);
9 const responseWithoutSso: GetV2PageReactUsersResponse = await getV2PageReactUsers(tenantId, urlId, userId);
10}
11

addPage Internal Link

Parameters

NaamTypeVerplichtBeschrijving
tenantIdstringJa
createAPIPageDataCreateAPIPageDataJa

Respons

Retourneert: AddPageAPIResponse

Voorbeeld

addPage Voorbeeld
Copy Copy
1
2const tenantId: string = "tenant_9f8432b1-4c2e-4f9d-8a5d-7bc9e2f6d9a0";
3
4const pageData: CreateAPIPageData = {
5 url: "https://example.com/articles/fastcomments-intro",
6 title: "FastComments Introduction",
7 description: "An introductory guide to FastComments API usage.",
8 tags: ["fastcomments", "api", "tutorial"],
9 metadata: {
10 author: "Jane Doe",
11 publishedAt: "2024-03-15T08:00:00Z"
12 }
13};
14
15const response: AddPageAPIResponse = await addPage(tenantId, pageData);
16

deletePage Internal Link

Parameters

NameTypeRequiredDescription
tenantIdstringYes
idstringYes

Respons

Retourneert: DeletePageAPIResponse

Voorbeeld

deletePage Voorbeeld
Copy Copy
1
2async function example() {
3 const tenantId: string = "acme-corp-001";
4 const pageId: string = "page-987654321";
5 const result: DeletePageAPIResponse = await deletePage(tenantId, pageId);
6 console.log(result);
7}
8example();
9

getOfflineUsers Internal Link

Past commenters on the page who are NOT currently online. Sorted by displayName.
Eerdere commentatoren op de pagina die NIET momenteel online zijn. Gesorteerd op displayName.

Use this after exhausting /users/online to render a "Members" section.
Gebruik dit nadat /users/online is uitgeput om een "Members"-sectie weer te geven.

Cursor pagination on commenterName: server walks the partial {tenantId, urlId, commenterName} index from afterName forward via $gt, no $skip cost.
Cursor-paginering op commenterName: server doorloopt de partiële {tenantId, urlId, commenterName} index vanaf afterName vooruit via $gt, zonder $skip‑kost.

Parameters

NaamTypeVerplichtBeschrijving
tenantIdstringJa
urlIdstringJa
afterNamestringNee
afterUserIdstringNee

Respons

Retourneert: PageUsersOfflineResponse

Voorbeeld

getOfflineUsers Voorbeeld
Copy Copy
1
2async function fetchOfflineUsers(): Promise<void> {
3 const tenantId: string = "tenant_12345";
4 const urlId: string = "page_9876";
5 const afterName: string = "John Doe";
6 const afterUserId: string = "user_abc123";
7
8 const offlineResponse: PageUsersOfflineResponse = await getOfflineUsers(
9 tenantId,
10 urlId,
11 afterName,
12 afterUserId
13 );
14
15 console.log(offlineResponse);
16}
17

getOnlineUsers Internal Link


Momenteel online kijkers van een pagina: mensen waarvan de websocketsessie momenteel op de pagina is geabonneerd.
Retourneert anonCount + totalCount (abonnees in de hele ruimte, inclusief anonieme kijkers die we niet opsommen).

Parameters

NaamTypeVereistBeschrijving
tenantIdstringJa
urlIdstringJa
afterNamestringNee
afterUserIdstringNee

Response

Retourneert: PageUsersOnlineResponse

Example

getOnlineUsers Voorbeeld
Copy Copy
1
2async function fetchOnlineUsers() {
3 const tenantId: string = "tenant_12345";
4 const urlId: string = "article-9876";
5 const afterName: string | undefined = "john_doe";
6 const afterUserId: string | undefined = "user_456";
7
8 const onlineUsers: PageUsersOnlineResponse = await getOnlineUsers(
9 tenantId,
10 urlId,
11 afterName,
12 afterUserId
13 );
14
15 console.log(onlineUsers);
16}
17
18fetchOnlineUsers();
19

getPageByURLId Internal Link

Parameters

NaamTypeVereistBeschrijving
tenantIdstringYes
urlIdstringYes

Respons

Retourneert: GetPageByURLIdAPIResponse

Voorbeeld

getPageByURLId Voorbeeld
Copy Copy
1
2(async () => {
3 const tenantId: string = "tenant_12345";
4 const urlId: string = "url_9876";
5
6 const response: GetPageByURLIdAPIResponse = await getPageByURLId(tenantId, urlId);
7 const page: APIPage | undefined = response.page;
8})();
9

getPages Internal Link

Parameters

NaamTypeVerplichtBeschrijving
tenantIdstringJa

Respons

Retourneert: GetPagesAPIResponse

Voorbeeld

Voorbeeld getPages
Copy Copy
1
2const tenantId: string = "tenant_12345";
3
4(async () => {
5 const response: GetPagesAPIResponse = await getPages(tenantId);
6 const firstPage: APIPage | undefined = response.pages?.[0];
7 console.log(firstPage?.title);
8})();
9

getPagesPublic Internal Link

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

Parameters

NaamTypeVerplichtBeschrijving
tenantIdstringYes
cursorstringNo
limitnumberNo
qstringNo
sortByPagesSortByNo
hasCommentsbooleanNo

Respons

Retourneert: GetPublicPagesResponse

Voorbeeld

getPagesPublic Voorbeeld
Copy Copy
1
2async function fetchPublicPages() {
3 const tenantId: string = "tenant_12345";
4 const cursor: string = "page_5";
5 const limit: number = 20;
6 const query: string = "support";
7 const hasComments: boolean = true;
8
9 const response: GetPublicPagesResponse = await getPagesPublic(
10 tenantId,
11 cursor,
12 limit,
13 query,
14 undefined,
15 hasComments
16 );
17
18 console.log(response);
19}
20

getUsersInfo Internal Link

Bulk gebruikersinformatie voor een tenant. Gegeven userIds, retourneer weergave‑informatie van User / SSOUser.
Gebruikt door de commentaarwidget om gebruikers die net verschenen via een presence‑event te verrijken.
Geen paginacontext: privacy wordt uniform afgedwongen (privéprofielen worden gemaskeerd).

Parameters

NaamTypeVerplichtBeschrijving
tenantIdstringJa
idsstringJa

Response

Returns: PageUsersInfoResponse

Example

getUsersInfo voorbeeld
Copy Copy
1
2async function fetchUsersInfo(): Promise<void> {
3 const tenantId: string = "tenant_12345";
4 const ids: string = "user_001,user_002";
5 const response: PageUsersInfoResponse = await getUsersInfo(tenantId, ids);
6 console.log(response);
7}
8fetchUsersInfo();
9

patchPage Internal Link

Parameters

NaamTypeVereistBeschrijving
tenantIdstringJa
idstringJa
updateAPIPageDataUpdateAPIPageDataJa

Respons

Retourneert: PatchPageAPIResponse

Voorbeeld

patchPage Voorbeeld
Copy Copy
1
2(async () => {
3 const tenantId: string = "tenant_12345";
4 const pageId: string = "page_98765";
5
6 const updateData: UpdateAPIPageData = {
7 title: "Updated FAQ Page"
8 // description?: string kan worden weggelaten
9 };
10
11 const response: PatchPageAPIResponse = await patchPage(tenantId, pageId, updateData);
12})();
13

deletePendingWebhookEvent Internal Link

Parameters

NaamTypeVerplichtBeschrijving
tenantIdstringJa
idstringJa

Response

Retourneert: APIEmptyResponse

Example

deletePendingWebhookEvent Voorbeeld
Copy Copy
1
2async function runDeletion() {
3 const tenantId: string = "tenant-42f7b9c2";
4 const eventId: string = "webhook-event-8a7d6c5b";
5 const result: APIEmptyResponse = await deletePendingWebhookEvent(tenantId, eventId);
6 console.log(result);
7}
8

getPendingWebhookEventCount Internal Link

Parameters

NaamTypeVerplichtBeschrijving
tenantIdstringJa
commentIdstringNee
externalIdstringNee
eventTypestringNee
typestringNee
domainstringNee
attemptCountGTnumberNee

Respons

Retourneert: GetPendingWebhookEventCountResponse

Voorbeeld

Voorbeeld getPendingWebhookEventCount
Copy Copy
1
2async function runExample() {
3 const tenantId: string = "tenant_42";
4 const commentId: string = "comment_1001";
5 const eventType: string = "comment.deleted";
6 const domain: string = "myblog.com";
7
8 const result: GetPendingWebhookEventCountResponse = await getPendingWebhookEventCount(
9 tenantId,
10 commentId,
11 undefined,
12 eventType,
13 undefined,
14 domain
15 );
16
17 console.log(result);
18}
19
20runExample();
21

getPendingWebhookEvents Internal Link

Parameters

NaamTypeVerplichtBeschrijving
tenantIdstringYes
commentIdstringNo
externalIdstringNo
eventTypestringNo
typestringNo
domainstringNo
attemptCountGTnumberNo
skipnumberNo

Respons

Retourneert: GetPendingWebhookEventsResponse

Voorbeeld

getPendingWebhookEvents Voorbeeld
Copy Copy
1
2const tenantId: string = "123e4567-e89b-12d3-a456-426614174000";
3const commentId: string = "cmt_987654321";
4const externalId: string = "ext_abc123";
5const eventType: string = "comment_created";
6const type: string = "outbound";
7const domain: string = "myblog.com";
8const attemptCountGT: number = 2;
9const skip: number = 10;
10
11const pendingEvents: GetPendingWebhookEventsResponse = await getPendingWebhookEvents(
12 tenantId,
13 commentId,
14 externalId,
15 eventType,
16 type,
17 domain,
18 attemptCountGT,
19 skip
20);
21

createPollVote Internal Link

Record a vote on a poll, or move an existing one to a different option. A voter has at most one vote per poll, so calling this again for the same voter moves their vote rather than adding one.

Dit registreert een stem op een poll, of verplaatst een bestaande naar een andere optie. Een kiezer heeft maximaal één stem per poll, dus het opnieuw aanroepen voor dezelfde kiezer verplaatst hun stem in plaats van er een toe te voegen.

This obeys the site's poll settings: if voting is set to logged-in users only, a vote with just an anonUserId is rejected, and anonymous votes are rate limited per IP per poll.

Dit volgt de poll‑instellingen van de site: als stemmen is ingesteld op alleen ingelogde gebruikers, wordt een stem met alleen een anonUserId afgewezen, en anonieme stemmen worden per IP per poll beperkt.

Parameters

NaamTypeVerplichtBeschrijving
tenantIdstringYes
createPollVoteBodyCreatePollVoteBodyYes

Response

Returns: CreatePollVoteResponse

Example

createPollVote Voorbeeld
Copy Copy
1
2(async () => {
3 const tenantId: string = "acme-corp-tenant";
4
5 const vote: CreatePollVoteBody = {
6 pollId: "poll-2024-09",
7 optionId: "option-A"
8 // userId is optional and omitted here
9 };
10
11 const result: CreatePollVoteResponse = await createPollVote(tenantId, vote);
12 console.log(result);
13})();
14

deletePollVote Internal Link

Trek een stem terug. De optie waarop het werd uitgebracht, geeft de telling terug.

Parameters

NaamTypeVerplichtBeschrijving
tenantIdstringJa
idstringJa

Response

Retourneert: DeletePollVoteResponse

Example

deletePollVote Voorbeeld
Copy Copy
1
2async function runDeletePollVoteExample(): Promise<void> {
3 const tenantId: string = "tenant_42abc";
4 const pollId: string = "poll_7f9e2d";
5
6 const result: DeletePollVoteResponse = await deletePollVote(tenantId, pollId);
7
8 console.log(result);
9}
10

getPollVote Internal Link

Parameters

NaamTypeVerplichtBeschrijving
tenantIdstringJa
idstringJa

Respons

Retourneert: GetPollVoteResponse

Voorbeeld

getPollVote Voorbeeld
Copy Copy
1
2async function fetchPollVote(): Promise<void> {
3 const tenantId: string = "acme-corp-tenant";
4 const pollId: string = "poll-2024-05";
5 const result: GetPollVoteResponse = await getPollVote(tenantId, pollId);
6 const status: APIStatus = result.status;
7 const vote: PublicPollVote | undefined = result.vote;
8}
9

getPollVotes Internal Link

The individuele stemmen achter de tellingen van één poll, oudste eerst.

Een poll behoort tot een commentaar, dus stemmen worden altijd per poll gelezen - commentId is vereist. Dat houdt elke query op de indexen die de collectie al heeft.

Respecteert de privacy van de poll: de stemmen van een anonieme poll kunnen niet worden gelezen (poll-anonymous), hier of via id.

Parameters

NaamTypeVerplichtBeschrijving
tenantIdstringJa
commentIdstringJa
voterIdstringNee
optionIdstringNee
skipnumberNee

Respons

Retourneert: GetPollVotesResponse

Voorbeeld

getPollVotes voorbeeld
Copy Copy
1
2const tenantId: string = "tenant_12345";
3const commentId: string = "cmt_98765";
4const voterId: string = "user_abc";
5const optionId: string = "opt_1";
6const skip: number = 20;
7
8const pollResult: GetPollVotesResponse = await getPollVotes(
9 tenantId,
10 commentId,
11 voterId,
12 optionId,
13 skip
14);
15
16console.log(pollResult);
17

deletePoll Internal Link

Verwijder een poll uit zijn reactie, samen met elke stem die erop is uitgebracht. De reactie zelf blijft onaangetast.

Parameters

NaamTypeVereistBeschrijving
tenantIdstringJa
commentIdstringJa

Respons

Retourneert: APIEmptyResponse

Voorbeeld

deletePoll Voorbeeld
Copy Copy
1
2async function runDeletePoll(): Promise<void> {
3 const tenantId: string = "tenant_9f8b7c6d";
4 const commentId: string = "comment_a1b2c3d4";
5 const result: APIEmptyResponse = await deletePoll(tenantId, commentId);
6 console.log(result);
7}
8

getPoll Internal Link


Parameters

NaamTypeVerplichtBeschrijving
tenantIdstringJa
commentIdstringJa

Respons

Retourneert: GetPollResponse

Voorbeeld

getPoll Voorbeeld
Copy Copy
1
2const tenantId: string = "c9f1e2b4-8a3d-4f6a-9d2e-7b5c1a2f3e4d";
3const commentId: string = "a1b2c3d4e5f6g7h8i9j0";
4
5const pollResponse: GetPollResponse = await getPoll(tenantId, commentId);
6
7const poll: CommentPoll | undefined = pollResponse.poll;
8const privacy: PollPrivacy | undefined = poll?.privacy;
9const options: CommentPollOption[] | undefined = poll?.options;
10

patchPoll Internal Link

Bewerk een poll ter plaatse, behoud de tellingen: wijzig de vraag, hernoem een optie, sluit deze af of open hem opnieuw, of wijzig wie de stemmers mag zien. Opties worden aangesproken via id - om ze toe te voegen, te verwijderen of te herschikken, gebruik PUT met de volledige lijst.

Parameters

NaamTypeVerplichtBeschrijving
tenantIdstringJa
commentIdstringJa
commentPollPatchCommentPollPatchJa

Response

Returns: SavePollResponse

Example

patchPoll voorbeeld
Copy Copy
1
2(async () => {
3 const tenantId: string = "acme-corp";
4 const commentId: string = "cmt_9876543210";
5
6 const pollPatch: CommentPollPatch = {
7 question: "Which new feature would you like to see?",
8 options: [
9 { id: "opt-1", label: "Dark Mode" },
10 { id: "opt-2", label: "Multi-language Support" }
11 ]
12 };
13
14 const response: SavePollResponse = await patchPoll(tenantId, commentId, pollPatch);
15 console.log(response);
16})();
17

putPoll Internal Link

Attach a poll to a comment, or set the full state of the poll it already has.

Options are matched by id: an option sent with the id of an existing option keeps its votes (and takes the new label and position), an option sent without an id is added, and existing options left out of the list are removed along with the votes cast on them.

Keeping no existing option ids on a poll that has votes deletes all of them, so that needs replaceVotes=true.

Parameters

NaamTypeVerplichtBeschrijving
tenantIdstringYes
commentIdstringYes
commentPollPutInputCommentPollPutInputYes
replaceVotesbooleanNo

Response

Retourneert: SavePollResponse

Voorbeeld

putPoll voorbeeld
Copy Copy
1
2const tenantId: string = "c1a2b3d4-5678-90ab-cdef-1234567890ab";
3const commentId: string = "9876543210";
4
5const optionA: CommentPollOptionInput = { text: "Dark mode" };
6const optionB: CommentPollOptionInput = { text: "Light mode" };
7
8const pollInput: CommentPollPutInput = {
9 question: "Which UI theme do you prefer?",
10 options: [optionA, optionB],
11};
12
13const replaceVotes: boolean = true;
14
15const result: SavePollResponse = await putPoll(tenantId, commentId, pollInput, replaceVotes);
16

createQuestionConfig Internal Link


Parameters

NaamTypeVerplichtBeschrijving
tenantIdstringJa
createQuestionConfigBodyCreateQuestionConfigBodyJa

Respons

Retourneert: CreateQuestionConfigResponse

Voorbeeld

createQuestionConfig Voorbeeld
Copy Copy
1
2async function runExample() {
3 const tenantId: string = "acme-corp-123";
4
5 const customOption: QuestionConfigCustomOptionsInner = {
6 key: "maxLength",
7 value: 500,
8 };
9
10 const createQuestionConfigBody: CreateQuestionConfigBody = {
11 name: "User Feedback",
12 description: "Collect user feedback after purchase",
13 enabled: true,
14 customOptions: [customOption],
15 // optioneel veld
16 tags: ["feedback", "post-purchase"],
17 };
18
19 const response: CreateQuestionConfigResponse = await createQuestionConfig(
20 tenantId,
21 createQuestionConfigBody
22 );
23
24 console.log(response);
25}
26

deleteQuestionConfig Internal Link

Parameters

NaamTypeVerplichtBeschrijving
tenantIdstringYes
idstringYes

Respons

Retourneert: APIEmptyResponse

Voorbeeld

deleteQuestionConfig Voorbeeld
Copy Copy
1
2async function executeDeletion() {
3 const tenantId: string = "tenant_12345";
4 const configId: string = "config_9876";
5 const result: APIEmptyResponse = await deleteQuestionConfig(tenantId, configId);
6 console.log(result);
7}
8executeDeletion();
9

getQuestionConfig Internal Link

Parameters

NaamTypeVereistBeschrijving
tenantIdstringJa
idstringJa

Respons

Retourneert: GetQuestionConfigResponse

Voorbeeld

getQuestionConfig Voorbeeld
Copy Copy
1
2const tenantId: string = "acme-corp-tenant";
3const questionId: string = "q-987654321";
4
5const configResponse: GetQuestionConfigResponse = await getQuestionConfig(tenantId, questionId);
6
7const status: APIStatus = configResponse.status;
8const questionConfig?: QuestionConfig = configResponse.question;
9const firstOption?: QuestionConfigCustomOptionsInner = questionConfig?.customOptions?.[0];
10

getQuestionConfigs Internal Link


Parameters

NameTypeRequiredDescription
tenantIdstringYes
skipnumberNo

Respons

Retourneert: GetQuestionConfigsResponse

Voorbeeld

getQuestionConfigs Voorbeeld
Copy Copy
1
2async function fetchConfigs() {
3 const tenantId: string = "tenant_12345";
4
5 const firstPage: GetQuestionConfigsResponse = await getQuestionConfigs(tenantId);
6 const secondPage: GetQuestionConfigsResponse = await getQuestionConfigs(tenantId, 20);
7}
8

updateQuestionConfig Internal Link

Parameters

NaamTypeVereistBeschrijving
tenantIdstringJa
idstringJa
updateQuestionConfigBodyUpdateQuestionConfigBodyJa

Reactie

Retourneert: APIEmptyResponse

Voorbeeld

updateQuestionConfig Voorbeeld
Copy Copy
1
2(async () => {
3 const tenantId: string = "acme-corp-tenant";
4 const questionId: string = "question-42";
5
6 const updateBody: UpdateQuestionConfigBody = {
7 title: "Revised FAQ Question"
8 // isActive, customOptions, enz. zijn optioneel en weggelaten
9 };
10
11 const response: APIEmptyResponse = await updateQuestionConfig(tenantId, questionId, updateBody);
12 console.log(response);
13})();
14

createQuestionResult Internal Link

Parameters

NaamTypeVerplichtBeschrijving
tenantIdstringJa
createQuestionResultBodyCreateQuestionResultBodyJa

Respons

Retourneert: CreateQuestionResultResponse

Voorbeeld

createQuestionResult Voorbeeld
Copy Copy
1
2const tenantId: string = "tenant_12345";
3
4const createQuestionResultBody: CreateQuestionResultBody = {
5 questionId: "q_9876",
6 answer: "Yes",
7 score: 5,
8 meta: [
9 { key: "source", value: "survey" }
10 ]
11};
12
13const result: CreateQuestionResultResponse = await createQuestionResult(tenantId, createQuestionResultBody);
14

deleteQuestionResult Internal Link

Parameters

NaamTypeVerplichtBeschrijving
tenantIdstringJa
idstringJa

Respons

Returns: APIEmptyResponse

Voorbeeld

deleteQuestionResult Voorbeeld
Copy Copy
1
2async function runDelete() {
3 const tenantId: string = "tenant_12345";
4 const resultId: string = "qr_98765";
5
6 const response: APIEmptyResponse = await deleteQuestionResult(tenantId, resultId);
7 console.log(response);
8}
9

getQuestionResult Internal Link

Parameters

NaamTypeVereistBeschrijving
tenantIdstringJa
idstringJa

Response

Retourneert: GetQuestionResultResponse

Voorbeeld

getQuestionResult Voorbeeld
Copy Copy
1
2const tenantId: string = "tenant_12345";
3const questionId: string = "question_98765";
4
5const response: GetQuestionResultResponse = await getQuestionResult(tenantId, questionId);
6
7const status: APIStatus | undefined = response.status;
8const firstResult: QuestionResult | undefined = response.results?.[0];
9const firstMeta: MetaItem | undefined = response.meta?.[0];
10
11console.log(response);
12

getQuestionResults Internal Link

Parameters

NaamTypeVerplichtBeschrijving
tenantIdstringJa
urlIdstringNee
userIdstringNee
startDatestringNee
questionIdstringNee
questionIdsstringNee
skipnumberNee

Respons

Retourneert: GetQuestionResultsResponse

Voorbeeld

getQuestionResults Voorbeeld
Copy Copy
1
2async function fetchResults() {
3 const tenantId: string = 'c1a2b3d4-5678-90ab-cdef-1234567890ab';
4 const urlId: string = 'blog-post-789';
5 const startDate: string = '2023-01-01T00:00:00Z';
6 const questionIds: string = 'q-abc123,q-def456';
7 const response: GetQuestionResultsResponse = await getQuestionResults(
8 tenantId,
9 urlId,
10 undefined,
11 startDate,
12 undefined,
13 questionIds
14 );
15 console.log(response);
16}
17

updateQuestionResult Internal Link

Parameters

NaamTypeVereistBeschrijving
tenantIdstringJa
idstringJa
updateQuestionResultBodyUpdateQuestionResultBodyJa

Respons

Retourneert: APIEmptyResponse

Voorbeeld

updateQuestionResult Voorbeeld
Copy Copy
1
2const tenantId: string = "c1f5e8b2-9a4d-4f3a-8d2e-6b7c9d0e1f2a";
3const questionId: string = "qstn_1234567890";
4
5const updateBody: UpdateQuestionResultBody = {
6 score: 85,
7 comment: "Adjusted based on new criteria",
8 meta: [
9 { key: "reviewer", value: "john.doe@example.com" },
10 { key: "timestamp", value: new Date().toISOString() }
11 ]
12};
13
14const response: APIEmptyResponse = await updateQuestionResult(tenantId, questionId, updateBody);
15

aggregateQuestionResults Internal Link

Parameters

NaamTypeVerplichtBeschrijving
tenantIdstringJa
questionIdstringNee
questionIdsArrayNee
urlIdstringNee
timeBucketAggregateTimeBucketNee
startDateDateNee
forceRecalculatebooleanNee

Respons

Retourneert: AggregateQuestionResultsResponse

Voorbeeld

aggregateQuestionResults Voorbeeld
Copy Copy
1
2async function runAggregation() {
3 const tenantId: string = '123e4567-e89b-12d3-a456-426614174000';
4 const questionId: string = 'question-9f8e7d6c5b4a3';
5 const questionIds: string[] = ['question-1a2b3c', 'question-4d5e6f'];
6 const urlId: string = 'blog-post-2023-08-15';
7 const startDate: Date = new Date('2023-01-01T00:00:00Z');
8 const forceRecalculate: boolean = true;
9
10 const result: AggregateQuestionResultsResponse = await aggregateQuestionResults(
11 tenantId,
12 questionId,
13 questionIds,
14 urlId,
15 undefined,
16 startDate,
17 forceRecalculate
18 );
19}
20

bulkAggregateQuestionResults Internal Link

Parameters

NaamTypeVerplichtBeschrijving
tenantIdstringJa
bulkAggregateQuestionResultsRequestBulkAggregateQuestionResultsRequestJa
forceRecalculatebooleanNee

Respons

Retourneert: BulkAggregateQuestionResultsResponse

Voorbeeld

bulkAggregateQuestionResults Voorbeeld
Copy Copy
1
2const tenantId: string = "tenant_12345";
3
4const request: BulkAggregateQuestionResultsRequest = {
5 items: [
6 {
7 questionId: "q_9876",
8 startDate: "2023-01-01T00:00:00Z",
9 endDate: "2023-01-31T23:59:59Z",
10 timeBucket: "day"
11 }
12 ]
13};
14
15const response: BulkAggregateQuestionResultsResponse = await bulkAggregateQuestionResults(tenantId, request, true);
16

combineCommentsWithQuestionResults Internal Link

Parameters

NaamTypeVerplichtBeschrijving
tenantIdstringYes
questionIdstringNo
questionIdsArrayNo
urlIdstringNo
startDateDateNo
forceRecalculatebooleanNo
minValuenumberNo
maxValuenumberNo
limitnumberNo

Respons

Retourneert: CombineQuestionResultsWithCommentsResponse

Voorbeeld

combineCommentsWithQuestionResults Voorbeeld
Copy Copy
1
2async function runExample() {
3 const tenantId: string = "tenant_12345";
4 const questionId: string | undefined = "q_987";
5 const questionIds: string[] = ["q_001", "q_002"];
6 const urlId: string | undefined = "url_abc";
7 const startDate: Date = new Date("2023-01-01T00:00:00Z");
8 const forceRecalculate: boolean = true;
9 const minValue: number = 0;
10 const maxValue: number = 100;
11 const limit: number = 50;
12
13 const result: CombineQuestionResultsWithCommentsResponse = await combineCommentsWithQuestionResults(
14 tenantId,
15 questionId,
16 questionIds,
17 urlId,
18 startDate,
19 forceRecalculate,
20 minValue,
21 maxValue,
22 limit
23 );
24
25 console.log(result);
26}
27
28runExample();
29

addSSOUser Internal Link

Parameters

NaamTypeVereistBeschrijving
tenantIdstringJa
createAPISSOUserDataCreateAPISSOUserDataJa

Response

Retourneert: AddSSOUserAPIResponse

Example

addSSOUser voorbeeld
Copy Copy
1
2const tenantId: string = "tenant_12345";
3
4const newUser: CreateAPISSOUserData = {
5 userId: "sso_user_987",
6 name: "Jane Doe",
7 email: "jane.doe@example.com",
8 // optional field
9 avatarUrl: "https://example.com/avatars/jane.jpg",
10};
11
12const result: AddSSOUserAPIResponse = await addSSOUser(tenantId, newUser);
13

deleteSSOUser Internal Link

Parameters

NaamTypeVerplichtBeschrijving
tenantIdstringJa
idstringJa
deleteCommentsbooleanNee
commentDeleteModestringNee

Response

Retourneert: DeleteSSOUserAPIResponse

Example

deleteSSOUser Voorbeeld
Copy Copy
1
2const tenantId: string = "acme-corp-tenant";
3const userId: string = "sso-user-42";
4const deleteComments: boolean = true;
5const commentDeleteMode: string = "hard";
6
7const detailedResult: DeleteSSOUserAPIResponse = await deleteSSOUser(
8 tenantId,
9 userId,
10 deleteComments,
11 commentDeleteMode
12);
13
14const simpleResult: DeleteSSOUserAPIResponse = await deleteSSOUser(
15 tenantId,
16 userId
17);
18

getSSOUserByEmail Internal Link

Parameters

NaamTypeVereistBeschrijving
tenantIdstringJa
emailstringJa

Respons

Retourneert: GetSSOUserByEmailAPIResponse

Voorbeeld

getSSOUserByEmail Voorbeeld
Copy Copy
1
2async function fetchSSOUser() {
3 const tenantId: string = "tenant_12345";
4 const email: string = "john.doe@example.com";
5
6 const result: GetSSOUserByEmailAPIResponse = await getSSOUserByEmail(tenantId, email);
7 const user: APISSOUser | undefined = result?.user;
8}
9

getSSOUserById Internal Link

Parameters

NaamTypeVerplichtBeschrijving
tenantIdstringJa
idstringJa

Respons

Retourneert: GetSSOUserByIdAPIResponse

Voorbeeld

getSSOUserById Voorbeeld
Copy Copy
1
2async function fetchUser() {
3 const tenantId: string = "tenant-987654321";
4 const userId: string = "sso-user-abc123";
5 const result: GetSSOUserByIdAPIResponse = await getSSOUserById(tenantId, userId);
6 const ssoUser: APISSOUser = result.user;
7}
8

getSSOUsers Internal Link

Parameters

NameTypeVereistBeschrijving
tenantIdstringJa
skipnumberNee

Respons

Retourneert: GetSSOUsersResponse

Voorbeeld

Voorbeeld getSSOUsers
Copy Copy
1
2async function runExample(): Promise<void> {
3 const tenantId: string = "tenant_12345";
4
5 // Aanroep zonder optionele `skip`
6 const firstPage: GetSSOUsersResponse = await getSSOUsers(tenantId);
7
8 // Aanroep met optionele `skip`
9 const secondPage: GetSSOUsersResponse = await getSSOUsers(tenantId, 100);
10
11 console.log(firstPage, secondPage);
12}
13
14runExample();
15

patchSSOUser Internal Link

Parameters

NaamTypeVereistBeschrijving
tenantIdstringJa
idstringJa
updateAPISSOUserDataUpdateAPISSOUserDataJa
updateCommentsbooleanNee

Response

Retourneert: PatchSSOUserAPIResponse

Example

patchSSOUser Voorbeeld
Copy Copy
1
2const tenantId: string = "c1f2a3b4-5678-90ab-cdef-1234567890ab";
3const userId: string = "user-987654321";
4const updateData: UpdateAPISSOUserData = {
5 email: "jane.smith@enterprise.com",
6 displayName: "Jane Smith",
7 role: "editor"
8};
9
10const responseWithComments: PatchSSOUserAPIResponse = await patchSSOUser(
11 tenantId,
12 userId,
13 updateData,
14 true
15);
16
17const responseWithoutComments: PatchSSOUserAPIResponse = await patchSSOUser(
18 tenantId,
19 userId,
20 updateData
21);
22

putSSOUser Internal Link

Parameters

NaamTypeVereistBeschrijving
tenantIdstringJa
idstringJa
updateAPISSOUserDataUpdateAPISSOUserDataJa
updateCommentsbooleanNee

Reactie

Retourneert: PutSSOUserAPIResponse

Voorbeeld

putSSOUser Voorbeeld
Copy Copy
1
2(async () => {
3 const tenantId: string = "tenant_abc123";
4 const userId: string = "user_456def";
5
6 const updateData: UpdateAPISSOUserData = {
7 email: "jane.doe@example.com",
8 displayName: "Jane Doe",
9 isActive: true,
10 };
11
12 const response: PutSSOUserAPIResponse = await putSSOUser(tenantId, userId, updateData, true);
13})();
14

createSubscription Internal Link

Parameters

NaamTypeVereistBeschrijving
tenantIdstringJa
createAPIUserSubscriptionDataCreateAPIUserSubscriptionDataJa

Respons

Retourneert: CreateSubscriptionAPIResponse

Voorbeeld

createSubscription Voorbeeld
Copy Copy
1
2(async () => {
3 const tenantId: string = "acme-corp-123";
4
5 const subscriptionData: CreateAPIUserSubscriptionData = {
6 userId: "user-456",
7 planId: "premium-monthly",
8 startDate: new Date(),
9 trialPeriodDays: 14 // optioneel veld
10 };
11
12 const result: CreateSubscriptionAPIResponse = await createSubscription(tenantId, subscriptionData);
13 console.log(result);
14})();
15

deleteSubscription Internal Link

Parameters

NameTypeRequiredDescription
tenantIdstringYes
idstringYes
userIdstringNo

Respons

Retourneert: DeleteSubscriptionAPIResponse

Voorbeeld

deleteSubscription Voorbeeld
Copy Copy
1
2(async () => {
3 const tenantId: string = "tenant_9876";
4 const subscriptionId: string = "sub_54321";
5 const userId: string = "user_abc123";
6
7 // Met optionele userId
8 const responseWithUser: DeleteSubscriptionAPIResponse = await deleteSubscription(tenantId, subscriptionId, userId);
9
10 // Zonder optionele userId
11 const responseWithoutUser: DeleteSubscriptionAPIResponse = await deleteSubscription(tenantId, subscriptionId);
12})();
13

getSubscriptions Internal Link

Parameters

NaamTypeVereistBeschrijving
tenantIdstringJa
userIdstringNee

Respons

Retourneert: GetSubscriptionsAPIResponse

Voorbeeld

getSubscriptions Voorbeeld
Copy Copy
1
2(async () => {
3 const tenantId: string = "acme-corp-123";
4 const userId: string = "user-789";
5
6 const responseWithUser: GetSubscriptionsAPIResponse = await getSubscriptions(tenantId, userId);
7 const responseWithoutUser: GetSubscriptionsAPIResponse = await getSubscriptions(tenantId);
8})();
9

updateSubscription Internal Link

Parameters

NaamTypeVereistBeschrijving
tenantIdstringJa
idstringJa
updateAPIUserSubscriptionDataUpdateAPIUserSubscriptionDataJa
userIdstringNee

Respons

Retourneert: UpdateSubscriptionAPIResponse

Voorbeeld

updateSubscription Voorbeeld
Copy Copy
1
2const tenantId: string = "tenant_12345";
3const subscriptionId: string = "sub_98765";
4
5const updateData: UpdateAPIUserSubscriptionData = {
6 planId: "premium_plan",
7 status: "active",
8 renewalDate: "2024-12-31",
9};
10
11const userId: string = "user_abcde";
12
13const response: UpdateSubscriptionAPIResponse = await updateSubscription(
14 tenantId,
15 subscriptionId,
16 updateData,
17 userId
18);
19

getTenantDailyUsages Internal Link

Parameters

NaamTypeVerplichtBeschrijving
tenantIdstringJa
yearNumbernumberNee
monthNumbernumberNee
dayNumbernumberNee
skipnumberNee

Respons

Retourneert: GetTenantDailyUsagesResponse

Voorbeeld

getTenantDailyUsages Voorbeeld
Copy Copy
1
2async function demoGetTenantDailyUsages() {
3 const tenantId: string = "tenant_9876";
4 const yearNumber: number = 2024;
5 const monthNumber: number = 2;
6 const dayNumber: number = 28;
7 const skip: number = 10;
8
9 const fullResult: GetTenantDailyUsagesResponse = await getTenantDailyUsages(
10 tenantId,
11 yearNumber,
12 monthNumber,
13 dayNumber,
14 skip
15 );
16
17 const partialResult: GetTenantDailyUsagesResponse = await getTenantDailyUsages(
18 tenantId,
19 yearNumber
20 );
21}
22

createTenantPackage Internal Link

Parameters

NaamTypeVerplichtBeschrijving
tenantIdstringJa
createTenantPackageBodyCreateTenantPackageBodyJa

Respons

Retourneert: CreateTenantPackageResponse

Voorbeeld

createTenantPackage Voorbeeld
Copy Copy
1
2async function runExample() {
3 const tenantId: string = "tenant_9f8b7c6d";
4 const createTenantPackageBody: CreateTenantPackageBody = {
5 name: "Enterprise Package",
6 priceCents: 49999,
7 // optioneel veld
8 description: "Full suite of enterprise features"
9 };
10 const result: CreateTenantPackageResponse = await createTenantPackage(tenantId, createTenantPackageBody);
11 console.log(result);
12}
13runExample();
14

deleteTenantPackage Internal Link

Parameters

NaamTypeVerplichtBeschrijving
tenantIdstringJa
idstringJa

Respons

Retourneert: APIEmptyResponse

Voorbeeld

deleteTenantPackage Voorbeeld
Copy Copy
1
2let tenantId: string = "tenant_12345";
3let packageId: string = "pkg_98765";
4
5const result: APIEmptyResponse = await deleteTenantPackage(tenantId, packageId);
6

getTenantPackage Internal Link

Parameters

NaamTypeVerplichtBeschrijving
tenantIdstringJa
idstringJa

Respons

Retourneert: GetTenantPackageResponse

Voorbeeld

getTenantPackage Voorbeeld
Copy Copy
1
2function fetchPackage(tenantId?: string, id?: string): Promise<GetTenantPackageResponse> {
3 const tid: string = tenantId ?? "acme-corp-001";
4 const pid: string = id ?? "premium-plan-2024";
5 return getTenantPackage(tid, pid);
6}
7
8async function runExample(): Promise<void> {
9 const response: GetTenantPackageResponse = await fetchPackage();
10 const status: APIStatus | undefined = response.status;
11 const pkg: TenantPackage | undefined = response.package;
12}
13

getTenantPackages Internal Link

Parameters

NaamTypeVereistBeschrijving
tenantIdstringJa
skipnumberNee

Respons

Retourneert: GetTenantPackagesResponse

Voorbeeld

getTenantPackages Voorbeeld
Copy Copy
1
2async function fetchPackages() {
3 const tenantId: string = "acme-corp-001";
4 const skip: number = 15;
5
6 const resultWithSkip: GetTenantPackagesResponse = await getTenantPackages(tenantId, skip);
7 const resultWithoutSkip: GetTenantPackagesResponse = await getTenantPackages(tenantId);
8}
9

replaceTenantPackage Internal Link

Parameters

NaamTypeVereistBeschrijving
tenantIdstringJa
idstringJa
replaceTenantPackageBodyReplaceTenantPackageBodyJa

Respons

Retourneert: APIEmptyResponse

Voorbeeld

replaceTenantPackage Voorbeeld
Copy Copy
1
2async function replacePackageDemo(): Promise<void> {
3 const tenantId: string = "acme-corp-001";
4 const packageId: string = "basic-plan-2023";
5 const replaceBody: ReplaceTenantPackageBody = {
6 newPackageId: "enterprise-plan-2024"
7 // optionele velden kunnen hier worden toegevoegd indien nodig
8 };
9 const response: APIEmptyResponse = await replaceTenantPackage(tenantId, packageId, replaceBody);
10 console.log(response);
11}
12

updateTenantPackage Internal Link

Parameters

NaamTypeVereistBeschrijving
tenantIdstringJa
idstringJa
updateTenantPackageBodyUpdateTenantPackageBodyJa

Reactie

Retourneert: APIEmptyResponse

Voorbeeld

updateTenantPackage Voorbeeld
Copy Copy
1
2const tenantId: string = "tenant_9f8b7c6d";
3const packageId: string = "pkg_3a2b1c";
4
5const updateBody: UpdateTenantPackageBody = {
6 // optionele velden kunnen weggelaten of toegevoegd worden indien nodig
7 // newPackageName?: string;
8 // renewalDate?: string;
9};
10
11const result: APIEmptyResponse = await updateTenantPackage(tenantId, packageId, updateBody);
12

createTenantUser Internal Link

Parameters

NaamTypeVerplichtBeschrijving
tenantIdstringJa
createTenantUserBodyCreateTenantUserBodyJa

Respons

Retourneert: CreateTenantUserResponse

Voorbeeld

createTenantUser voorbeeld
Copy Copy
1
2async function addTenantUser() {
3 const tenantId: string = '123e4567-e89b-12d3-a456-426614174000';
4 const digestFreq: DigestEmailFrequency = 'daily';
5 const body: CreateTenantUserBody = {
6 email: 'jane.doe@example.com',
7 firstName: 'Jane',
8 lastName: 'Doe',
9 role: 'admin',
10 digestEmailFrequency: digestFreq,
11 phoneNumber: '+15551234567' // optioneel
12 };
13 const response: CreateTenantUserResponse = await createTenantUser(tenantId, body);
14 console.log(response);
15}
16addTenantUser();
17

deleteTenantUser Internal Link


Parameters

NaamTypeVerplichtBeschrijving
tenantIdstringJa
idstringJa
deleteCommentsstringNee
commentDeleteModestringNee

Respons

Retourneert: APIEmptyResponse

Voorbeeld

deleteTenantUser Voorbeeld
Copy Copy
1
2(async () => {
3 const tenantId: string = "acme-corp";
4 const userId: string = "u-112233";
5
6 const result1: APIEmptyResponse = await deleteTenantUser(tenantId, userId);
7 const result2: APIEmptyResponse = await deleteTenantUser(tenantId, userId, "true", "hard");
8
9 console.log(result1, result2);
10})();
11

getTenantUser Internal Link

Parameters

NaamTypeVerplichtBeschrijving
tenantIdstringJa
idstringJa

Respons

Retourneert: GetTenantUserResponse

Voorbeeld

getTenantUser Voorbeeld
Copy Copy
1
2(async () => {
3 const tenantId: string = "acme-tenant-001";
4 const userId: string = "user-12345";
5 const response: GetTenantUserResponse = await getTenantUser(tenantId, userId);
6 console.log(response);
7})();
8

getTenantUsers Internal Link

Parameters

NaamTypeVereistBeschrijving
tenantIdstringJa
skipnumberNee

Respons

Retourneert: GetTenantUsersResponse

Voorbeeld

getTenantUsers Voorbeeld
Copy Copy
1
2const tenantId: string = "tenant_12345";
3const skip: number = 20;
4
5const firstPage: GetTenantUsersResponse = await getTenantUsers(tenantId);
6const secondPage: GetTenantUsersResponse = await getTenantUsers(tenantId, skip);
7

replaceTenantUser Internal Link

Parameters

NaamTypeVerplichtBeschrijving
tenantIdstringJa
idstringJa
replaceTenantUserBodyReplaceTenantUserBodyJa
updateCommentsstringNee

Respons

Retourneert: APIEmptyResponse

Voorbeeld

replaceTenantUser Voorbeeld
Copy Copy
1
2const tenantId: string = "c1a2b3d4-5678-90ab-cdef-1234567890ab";
3const userId: string = "user-987654321";
4const replaceBody: ReplaceTenantUserBody = {
5 email: "newuser@example.com",
6 name: "New User",
7 role: "admin"
8};
9
10const response: APIEmptyResponse = await replaceTenantUser(
11 tenantId,
12 userId,
13 replaceBody,
14 "Migrated user to new tenant"
15);
16

Parameters

NaamTypeVerplichtBeschrijving
tenantIdstringYes
idstringYes
redirectURLstringNo

Respons

Retourneert: APIEmptyResponse

Voorbeeld

sendLoginLink Voorbeeld
Copy Copy
1
2interface APIStatus {
3 // statusvelden
4}
5
6interface APIEmptyResponse {
7 status: APIStatus;
8}
9
10(async () => {
11 const tenantId: string = "acme-corp";
12 const userId: string = "user-98765";
13 const redirectURL: string = "https://app.example.com/welcome";
14
15 const responseWithRedirect: APIEmptyResponse = await sendLoginLink(tenantId, userId, redirectURL);
16 const responseWithoutRedirect: APIEmptyResponse = await sendLoginLink(tenantId, userId);
17})();
18

updateTenantUser Internal Link

Parameters

NaamTypeVereistBeschrijving
tenantIdstringJa
idstringJa
updateTenantUserBodyUpdateTenantUserBodyJa
updateCommentsstringNee

Respons

Retourneert: APIEmptyResponse

Voorbeeld

updateTenantUser voorbeeld
Copy Copy
1
2async function runUpdate() {
3 const tenantId: string = "tenant_12345";
4 const userId: string = "user_987";
5 const updateBody: UpdateTenantUserBody = {
6 email: "new.email@example.com",
7 role: "admin",
8 isActive: true
9 };
10 const comment: string = "Promoted to admin role";
11
12 const result: APIEmptyResponse = await updateTenantUser(tenantId, userId, updateBody, comment);
13 console.log(result);
14}
15
16runUpdate();
17

createTenant Internal Link

Parameters

NaamTypeVereistBeschrijving
tenantIdstringYes
createTenantBodyCreateTenantBodyYes

Respons

Retourneert: CreateTenantResponse

Voorbeeld

createTenant Voorbeeld
Copy Copy
1
2async function run() {
3 const tenantId: string = "acme-corp-2024";
4 const createTenantBody: CreateTenantBody = {
5 name: "Acme Corp",
6 domainConfiguration: { domain: "comments.acme.com", sslEnabled: true },
7 importedSite: { siteId: "site-123", source: "wordpress" },
8 billingInfo: { plan: "enterprise", renewalDate: "2025-01-01" },
9 description: "Tenant for Acme Corp's production environment", // optioneel
10 };
11 const response: CreateTenantResponse = await createTenant(tenantId, createTenantBody);
12}
13run();
14

deleteTenant Internal Link

Parameters

NaamTypeVerplichtBeschrijving
tenantIdstringJa
idstringJa
surestringNee

Respons

Retourneert: APIEmptyResponse

Voorbeeld

deleteTenant Voorbeeld
Copy Copy
1
2async function main(): Promise<void> {
3 const tenantId: string = "tenant_12345";
4 const userId: string = "user_9876";
5
6 const resultWithoutSure: APIEmptyResponse = await deleteTenant(tenantId, userId);
7 const resultWithSure: APIEmptyResponse = await deleteTenant(tenantId, userId, "confirm");
8}
9
10main();
11

getTenant Internal Link

Parameters

NaamTypeVerplichtBeschrijving
tenantIdstringJa
idstringJa

Response

Retourneert: GetTenantResponse

Example

getTenant Voorbeeld
Copy Copy
1
2async function fetchTenant(): Promise<void> {
3 const tenantId: string = "tenant_12345";
4 const id: string = "tenant_12345";
5
6 const tenantResponse: GetTenantResponse = await getTenant(tenantId, id);
7
8 // Optional fields in the response
9 const billing: BillingInfo | undefined = tenantResponse.billingInfo;
10 const domainConfig: APIDomainConfiguration | undefined = tenantResponse.domainConfiguration;
11}
12

getTenants Internal Link


Parameters

NaamTypeVerplichtBeschrijving
tenantIdstringJa
metastringNee
skipnumberNee

Respons

Retourneert: GetTenantsResponse

Voorbeeld

getTenants Voorbeeld
Copy Copy
1
2async function runExample() {
3 const tenantId: string = "c3f5e9b2-4d1a-4f2b-9a6e-1234567890ab";
4 const meta: string = "includeBilling";
5 const skip: number = 10;
6
7 const result: GetTenantsResponse = await getTenants(tenantId, meta, skip);
8 console.log(result);
9}
10runExample();
11

updateTenant Internal Link

Parameters

NaamTypeVereistBeschrijving
tenantIdstringJa
idstringJa
updateTenantBodyUpdateTenantBodyJa

Respons

Retourneert: APIEmptyResponse

Voorbeeld

updateTenant Voorbeeld
Copy Copy
1
2async function runUpdateTenant() {
3 const tenantId: string = "tenant-abc123";
4 const id: string = "config-456def";
5
6 const updateTenantBody: UpdateTenantBody = {
7 // verplicht veld
8 name: "Acme International",
9 // optionele velden kunnen worden weggelaten, bijv., billingInfo, domainConfiguration
10 };
11
12 const response: APIEmptyResponse = await updateTenant(tenantId, id, updateTenantBody);
13 console.log(response);
14}
15

changeTicketState Internal Link

Parameters

NaamTypeVerplichtBeschrijving
tenantIdstringYes
userIdstringYes
idstringYes
changeTicketStateBodyChangeTicketStateBodyYes

Respons

Retourneert: ChangeTicketStateResponse

Voorbeeld

changeTicketState Voorbeeld
Copy Copy
1
2(async () => {
3 const tenantId: string = "acme-corp";
4 const userId: string = "john.doe";
5 const ticketId: string = "ticket-20230915-001";
6
7 const changeTicketStateBody: ChangeTicketStateBody = {
8 // optioneel veld voorbeeld
9 note: "Resolved after investigation"
10 };
11
12 const response: ChangeTicketStateResponse = await changeTicketState(
13 tenantId,
14 userId,
15 ticketId,
16 changeTicketStateBody
17 );
18
19 console.log(response);
20})();
21

createTicket Internal Link

Parameters

NaamTypeVerplichtBeschrijving
tenantIdstringJa
userIdstringJa
createTicketBodyCreateTicketBodyJa

Respons

Retourneert: CreateTicketResponse

Voorbeeld

createTicket Voorbeeld
Copy Copy
1
2async function submitTicket() {
3 const tenantId: string = "acme-corp";
4 const userId: string = "user-9876";
5
6 const ticketBody: CreateTicketBody = {
7 subject: "Login issues after password reset",
8 description: "User reports being unable to log in despite using the new password.",
9 priority: "medium",
10 // optioneel veld in CreateTicketBody
11 tags: ["login", "password-reset"]
12 };
13
14 const response: CreateTicketResponse = await createTicket(tenantId, userId, ticketBody);
15 console.log(response);
16}
17
18submitTicket();
19

getTicket Internal Link

Parameters

NaamTypeVerplichtBeschrijving
tenantIdstringJa
idstringJa
userIdstringNee

Respons

Retourneert: GetTicketResponse

Voorbeeld

getTicket Voorbeeld
Copy Copy
1
2async function fetchTickets() {
3 const tenantId: string = "acme-corp";
4 const ticketId: string = "ticket-12345";
5 const userId: string = "user-9876";
6
7 const ticketWithUser: GetTicketResponse = await getTicket(tenantId, ticketId, userId);
8 const ticketWithoutUser: GetTicketResponse = await getTicket(tenantId, ticketId);
9}
10

getTickets Internal Link

Parameters

NaamTypeVereistBeschrijving
tenantIdstringJa
userIdstringNee
statenumberNee
skipnumberNee
limitnumberNee

Respons

Retourneert: GetTicketsResponse

Voorbeeld

getTickets Voorbeeld
Copy Copy
1
2(async () => {
3 const tenantId: string = "tenant_12345";
4 const ticketsSimple: GetTicketsResponse = await getTickets(tenantId);
5
6 const userId: string = "user_9876";
7 const state: number = 1; // bijv., open
8 const skip: number = 0;
9 const limit: number = 20;
10 const ticketsFull: GetTicketsResponse = await getTickets(
11 tenantId,
12 userId,
13 state,
14 skip,
15 limit
16 );
17})();
18

getTranslations Internal Link

Parameters

NaamTypeVerplichtBeschrijving
namespacestringJa
componentstringJa
localestringNee
useFullTranslationIdsbooleanNee

Respons

Retourneert: GetTranslationsResponse

Voorbeeld

getTranslations Voorbeeld
Copy Copy
1
2async function fetchTranslations() {
3 const adminDashboard: GetTranslationsResponse = await getTranslations('admin', 'dashboard');
4 const userProfileFr: GetTranslationsResponse = await getTranslations('user', 'profile', 'fr-FR', true);
5}
6

uploadImage Internal Link

Uploaden en een afbeelding verkleinen

Parameters

NaamTypeVerplichtBeschrijving
tenantIdstringJa
fileBlobJa
sizePresetSizePresetNee
urlIdstringNee

Response

Retourneert: UploadImageResponse

Voorbeeld

uploadImage Voorbeeld
Copy Copy
1
2const tenantId: string = "acme-tenant-01";
3const imageBlob: Blob = new Blob([new Uint8Array([137,80,78,71])], { type: "image/png" });
4
5const uploadResult1: UploadImageResponse = await uploadImage(tenantId, imageBlob);
6
7const sizePreset: SizePreset = { presetName: "medium" };
8const urlId: string = "article-9876";
9
10const uploadResult2: UploadImageResponse = await uploadImage(tenantId, imageBlob, sizePreset, urlId);
11

getUserBadgeProgressById Internal Link

Parameters

NaamTypeVereistBeschrijving
tenantIdstringYes
idstringYes

Respons

Retourneert: APIGetUserBadgeProgressResponse

Voorbeeld

getUserBadgeProgressById Voorbeeld
Copy Copy
1
2const tenantId: string = "acme-corp-tenant";
3const badgeId: string = "badge-2024-07";
4
5const result: APIGetUserBadgeProgressResponse = await getUserBadgeProgressById(tenantId, badgeId);
6
7const progress: UserBadgeProgress | undefined = result?.progress;
8const status: APIStatus | undefined = result?.status;
9

getUserBadgeProgressByUserId Internal Link

Parameters

NaamTypeVerplichtBeschrijving
tenantIdstringJa
userIdstringJa

Response

Retourneert: APIGetUserBadgeProgressResponse

Voorbeeld

getUserBadgeProgressByUserId Voorbeeld
Copy Copy
1
2const tenantId: string = "acme-corp";
3const userId: string = "user-42";
4
5const badgeProgress: APIGetUserBadgeProgressResponse = await getUserBadgeProgressByUserId(tenantId, userId);
6
7if (badgeProgress.status?.code !== undefined) {
8 const statusCode: number = badgeProgress.status.code;
9}
10
11if (badgeProgress.progress?.length) {
12 const firstProgress: UserBadgeProgress = badgeProgress.progress[0];
13}
14

getUserBadgeProgressList Internal Link

Parameters

NaamTypeVerplichtBeschrijving
tenantIdstringJa
userIdstringNee
limitnumberNee
skipnumberNee

Response

Retourneert: APIGetUserBadgeProgressListResponse

Example

getUserBadgeProgressList Voorbeeld
Copy Copy
1
2(async () => {
3 const tenantId: string = "tenant-9f8b7c6d";
4 const userId: string = "user-123e4567-e89b-12d3-a456-426614174000";
5 const limit: number = 10;
6 const skip: number = 0;
7
8 const response: APIGetUserBadgeProgressListResponse = await getUserBadgeProgressList(tenantId, userId, limit, skip);
9 const status: APIStatus = response.status;
10 const badges: UserBadgeProgress[] = response.badges;
11})();
12

createUserBadge Internal Link

Parameters

NaamTypeVerplichtBeschrijving
tenantIdstringJa
createUserBadgeParamsCreateUserBadgeParamsJa

Respons

Retourneert: APICreateUserBadgeResponse

Voorbeeld

createUserBadge voorbeeld
Copy Copy
1
2async function main(): Promise<void> {
3 const tenantId: string = "tenant_9f8b7c";
4 const badgeParams: CreateUserBadgeParams = {
5 name: "Community Helper",
6 iconUrl: "https://cdn.example.com/badges/helper.png"
7 };
8 const response: APICreateUserBadgeResponse = await createUserBadge(tenantId, badgeParams);
9}
10main();
11

deleteUserBadge Internal Link

Parameters

NaamTypeVereistBeschrijving
tenantIdstringJa
idstringJa

Response

Retourneert: APIEmptySuccessResponse

Example

deleteUserBadge Voorbeeld
Copy Copy
1
2(async () => {
3 const tenantId: string = "acme-corp";
4 const badgeId: string = "moderator-badge";
5 const result: APIEmptySuccessResponse = await deleteUserBadge(tenantId, badgeId);
6 console.log(result);
7})();
8

getUserBadge Internal Link

Parameters

NaamTypeVereistBeschrijving
tenantIdstringYes
idstringYes

Respons

Retourneert: APIGetUserBadgeResponse

Voorbeeld

getUserBadge Voorbeeld
Copy Copy
1
2async function demoGetUserBadge() {
3 const tenantId: string = "tenant-9f8b7c6d";
4 const userId: string = "user-123456";
5 const badgeResponse: APIGetUserBadgeResponse = await getUserBadge(tenantId, userId);
6}
7

getUserBadges Internal Link

Parameters

NaamTypeVerplichtBeschrijving
tenantIdstringJa
userIdstringNee
badgeIdstringNee
typenumberNee
displayedOnCommentsbooleanNee
limitnumberNee
skipnumberNee

Respons

Retourneert: APIGetUserBadgesResponse

Voorbeeld

getUserBadges Voorbeeld
Copy Copy
1
2(async () => {
3 const tenantId: string = "acme-corp";
4
5 // Alle parameters opgegeven
6 const fullResponse: APIGetUserBadgesResponse = await getUserBadges(
7 tenantId,
8 "user-42",
9 "badge-premium",
10 1,
11 true,
12 10,
13 0
14 );
15
16 // Alleen verplichte en één optionele parameter (limit)
17 const limitedResponse: APIGetUserBadgesResponse = await getUserBadges(
18 tenantId,
19 undefined,
20 undefined,
21 undefined,
22 undefined,
23 5
24 );
25
26 console.log(fullResponse, limitedResponse);
27})();
28

updateUserBadge Internal Link

Parameters

NaamTypeVerplichtBeschrijving
tenantIdstringJa
idstringJa
updateUserBadgeParamsUpdateUserBadgeParamsJa

Respons

Retourneert: APIEmptySuccessResponse

Voorbeeld

updateUserBadge Voorbeeld
Copy Copy
1
2const tenantId: string = "tenant-9f8b7c6d";
3const id: string = "user-4a3b2c1d";
4
5const updateParams: UpdateUserBadgeParams = {
6 badgeId: "badge-premium",
7 // optioneel veld
8 expiresAt: new Date("2025-12-31T23:59:59Z")
9};
10
11const result: APIEmptySuccessResponse = await updateUserBadge(tenantId, id, updateParams);
12

getUserNotificationCount Internal Link

Parameters

NaamTypeVerplichtBeschrijving
tenantIdstringJa
ssostringNee

Respons

Retourneert: GetUserNotificationCountResponse

Voorbeeld

getUserNotificationCount voorbeeld
Copy Copy
1
2async function demo(): Promise<void> {
3 const tenantId: string = "acme-corp-001";
4 const ssoToken: string = "sso-token-xyz789";
5
6 const countWithoutSso: GetUserNotificationCountResponse = await getUserNotificationCount(tenantId);
7 const countWithSso: GetUserNotificationCountResponse = await getUserNotificationCount(tenantId, ssoToken);
8}
9
10demo();
11

getUserNotifications Internal Link

Parameters

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

Respons

Retourneert: GetMyNotificationsResponse

Voorbeeld

getUserNotifications Voorbeeld
Copy Copy
1
2async function fetchNotifications(): Promise<void> {
3 const tenantId: string = "acme-corp";
4 const urlId: string = "article-42";
5 const pageSize: number = 20;
6 const includeContext: boolean = true;
7 const unreadOnly: boolean = true;
8
9 const notifications: GetMyNotificationsResponse = await getUserNotifications(
10 tenantId,
11 urlId,
12 pageSize,
13 undefined,
14 includeContext,
15 undefined,
16 unreadOnly
17 );
18
19 console.log(notifications);
20}
21

resetUserNotificationCount Internal Link


Parameters

NaamTypeVerplichtBeschrijving
tenantIdstringJa
ssostringNee

Respons

Retourneert: ResetUserNotificationsResponse

Voorbeeld

resetUserNotificationCount Voorbeeld
Copy Copy
1
2async function demoReset() {
3 const tenantId: string = "tenant_12345";
4 const ssoToken: string = "sso_abcdef123456";
5
6 const resultWithSso: ResetUserNotificationsResponse = await resetUserNotificationCount(tenantId, ssoToken);
7 const resultWithoutSso: ResetUserNotificationsResponse = await resetUserNotificationCount(tenantId);
8}
9
10demoReset();
11

resetUserNotifications Internal Link

Parameters

NaamTypeVerplichtBeschrijving
tenantIdstringYes
afterIdstringNo
afterCreatedAtnumberNo
unreadOnlybooleanNo
dmOnlybooleanNo
noDmbooleanNo
ssostringNo

Response

Retourneert: ResetUserNotificationsResponse

Voorbeeld

resetUserNotifications voorbeeld
Copy Copy
1
2(async () => {
3 const tenantId: string = "acme-corp";
4 const afterId: string = "notif-2023-09-01";
5 const afterCreatedAt: number = 1693526400; // Unix-tijdstempel
6 const unreadOnly: boolean = true;
7 const dmOnly: boolean = false;
8
9 const response: ResetUserNotificationsResponse = await resetUserNotifications(
10 tenantId,
11 afterId,
12 afterCreatedAt,
13 unreadOnly,
14 dmOnly
15 );
16
17 console.log(response);
18})();
19

updateUserNotificationCommentSubscriptionStatus Internal Link

Meldingen in- of uitschakelen voor een specifieke opmerking.

Parameters

NaamTypeVerplichtBeschrijving
tenantIdstringJa
notificationIdstringJa
optedInOrOutUpdateUserNotificationCommentSubscriptionStatusOptedInOrOutEnumJa
commentIdstringJa
ssostringNee

Response

Returns: UpdateUserNotificationCommentSubscriptionStatusResponse

Example

updateUserNotificationCommentSubscriptionStatus voorbeeld
Copy Copy
1
2async function runExample(): Promise<void> {
3 const tenantId: string = "tenant_12345";
4 const notificationId: string = "notif_9876";
5 const commentId: string = "comment_abc123";
6 const optedInOrOut: UpdateUserNotificationCommentSubscriptionStatusOptedInOrOutEnum =
7 UpdateUserNotificationCommentSubscriptionStatusOptedInOrOutEnum.OptIn;
8 const sso: string = "sso_token_456";
9
10 const resultWithSso: UpdateUserNotificationCommentSubscriptionStatusResponse = await updateUserNotificationCommentSubscriptionStatus(
11 tenantId,
12 notificationId,
13 optedInOrOut,
14 commentId,
15 sso
16 );
17
18 const resultWithoutSso: UpdateUserNotificationCommentSubscriptionStatusResponse = await updateUserNotificationCommentSubscriptionStatus(
19 tenantId,
20 notificationId,
21 optedInOrOut,
22 commentId
23 );
24}
25

updateUserNotificationPageSubscriptionStatus Internal Link

Enable of schakel meldingen voor een pagina in of uit. Wanneer gebruikers zich op een pagina abonneren, worden meldingen aangemaakt voor nieuwe hoofdreacties, en ook

Parameters

NaamTypeVerplichtBeschrijving
tenantIdstringJa
urlIdstringJa
urlstringJa
pageTitlestringJa
subscribedOrUnsubscribedUpdateUserNotificationPageSubscriptionStatusSubscribedOrUnsubscribedEnumJa
ssostringNee

Respons

Returns: UpdateUserNotificationPageSubscriptionStatusResponse

Voorbeeld

updateUserNotificationPageSubscriptionStatus Voorbeeld
Copy Copy
1
2async function runExample() {
3 const tenantId: string = "tenant_12345";
4 const urlId: string = "url_9876";
5 const url: string = "https://example.com/articles/awesome-article";
6 const pageTitle: string = "Awesome Article";
7 const subscribedOrUnsubscribed: UpdateUserNotificationPageSubscriptionStatusSubscribedOrUnsubscribedEnum =
8 UpdateUserNotificationPageSubscriptionStatusSubscribedOrUnsubscribedEnum.Subscribed;
9 const sso: string = "sso_token_abc";
10
11 const response: UpdateUserNotificationPageSubscriptionStatusResponse = await updateUserNotificationPageSubscriptionStatus(
12 tenantId,
13 urlId,
14 url,
15 pageTitle,
16 subscribedOrUnsubscribed,
17 sso
18 );
19
20 console.log(response);
21}
22
23runExample();
24

updateUserNotificationStatus Internal Link

Parameters

NaamTypeVereistBeschrijving
tenantIdstringJa
notificationIdstringJa
newStatusUpdateUserNotificationStatusNewStatusEnumJa
ssostringNee

Respons

Retourneert: UpdateUserNotificationStatusResponse

Voorbeeld

updateUserNotificationStatus Voorbeeld
Copy Copy
1
2const tenantId: string = "tenant_12345";
3const notificationId: string = "notif_9876";
4const newStatus: UpdateUserNotificationStatusNewStatusEnum = UpdateUserNotificationStatusNewStatusEnum.READ;
5const ssoToken: string = "sso_token_abc";
6
7const responseWithSso: UpdateUserNotificationStatusResponse = await updateUserNotificationStatus(
8 tenantId,
9 notificationId,
10 newStatus,
11 ssoToken
12);
13
14const responseWithoutSso: UpdateUserNotificationStatusResponse = await updateUserNotificationStatus(
15 tenantId,
16 notificationId,
17 newStatus
18);
19

getUserPresenceStatuses Internal Link

Parameters

NaamTypeVerplichtBeschrijving
tenantIdstringJa
urlIdWSstringJa
userIdsstringJa

Respons

Retourneert: GetUserPresenceStatusesResponse

Voorbeeld

getUserPresenceStatuses Voorbeeld
Copy Copy
1
2(async () => {
3 const tenantId: string = "my-tenant-42";
4 const urlIdWS: string = "post-9876";
5 const userIds: string = "alice,bob,carol";
6
7 const presence: GetUserPresenceStatusesResponse = await getUserPresenceStatuses(tenantId, urlIdWS, userIds);
8 console.log(presence);
9})();
10

searchUsers Internal Link

Parameters

NaamTypeVereistBeschrijving
tenantIdstringJa
urlIdstringJa
usernameStartsWithstringNee
mentionGroupIdsArrayNee
ssostringNee
searchSectionSearchUsersSearchSectionEnumNee

Respons

Retourneert: SearchUsersResult

Voorbeeld

searchUsers Voorbeeld
Copy Copy
1
2async function example() {
3 const tenantId: string = "tenant_12345";
4 const urlId: string = "article-9876";
5 const usernameStartsWith: string = "john";
6 const mentionGroupIds: string[] = ["group1", "group2"];
7 const sso: string = "sso_token_abc";
8 const searchSection: SearchUsersSearchSectionEnum = SearchUsersSearchSectionEnum.MENTIONS;
9
10 const result: SearchUsersResult = await searchUsers(
11 tenantId,
12 urlId,
13 usernameStartsWith,
14 mentionGroupIds,
15 sso,
16 searchSection
17 );
18
19 console.log(result);
20}
21

getUser Internal Link

Parameters

NaamTypeVerplichtBeschrijving
tenantIdstringJa
idstringJa

Response

Retourneert: GetUserResponse

Example

getUser voorbeeld
Copy Copy
1
2async function main(): Promise<void> {
3 const tenantId: string = "tenant_12345";
4 const id: string = "user_98765";
5 const response: GetUserResponse = await getUser(tenantId, id);
6 const { user }: { user?: User } = response;
7}
8main();
9

createVote Internal Link

Parameters

NaamTypeVerplichtBeschrijving
tenantIdstringYes
commentIdstringYes
directionCreateVoteDirectionEnumYes
userIdstringNo
anonUserIdstringNo

Respons

Retourneert: VoteResponse

Voorbeeld

createVote Voorbeeld
Copy Copy
1
2const tenantId: string = "tenant_12345";
3const commentId: string = "comment_67890";
4const direction: CreateVoteDirectionEnum = CreateVoteDirectionEnum.UP;
5const userId: string = "user_abcde";
6
7const voteResult: VoteResponse = await createVote(tenantId, commentId, direction, userId);
8
9const anonUserId: string = "anon_zyxwv";
10const anonVoteResult: VoteResponse = await createVote(tenantId, commentId, direction, undefined, anonUserId);
11

deleteVote Internal Link

Parameters

NaamTypeVerplichtBeschrijving
tenantIdstringJa
idstringJa
editKeystringNee

Respons

Retourneert: VoteDeleteResponse

Voorbeeld

deleteVote Voorbeeld
Copy Copy
1
2async function run() {
3 const tenantId: string = "tenant_12345";
4 const commentId: string = "comment_98765";
5 const editKey: string = "edit_abcde";
6
7 const responseWithKey: VoteDeleteResponse = await deleteVote(tenantId, commentId, editKey);
8 const responseWithoutKey: VoteDeleteResponse = await deleteVote(tenantId, commentId);
9}
10
11run();
12

getVotes Internal Link


Parameters

NaamTypeVerplichtBeschrijving
tenantIdstringJa
urlIdstringJa

Respons

Retourneert: GetVotesResponse

Voorbeeld

getVotes Voorbeeld
Copy Copy
1
2const tenantId: string = "tenant_12345";
3const urlId: string = "article-67890";
4
5(async () => {
6 const votesResponse: GetVotesResponse = await getVotes(tenantId, urlId);
7 // Voorbeeld van het benaderen van een optionele eigenschap uit de respons
8 const firstVote: PublicVote | undefined = votesResponse.votes?.[0];
9})();
10

getVotesForUser Internal Link

Parameters

NaamTypeVerplichtBeschrijving
tenantIdstringJa
urlIdstringJa
userIdstringNee
anonUserIdstringNee

Response

Retourneert: GetVotesForUserResponse

Example

getVotesForUser Voorbeeld
Copy Copy
1
2async function demo() {
3 const tenantId: string = "tenant_12345";
4 const urlId: string = "post_9876";
5 const userId: string = "user_abcde";
6 const anonUserId: string = "anon_5678";
7
8 const responseWithUser: GetVotesForUserResponse = await getVotesForUser(tenantId, urlId, userId);
9 const responseWithAnon: GetVotesForUserResponse = await getVotesForUser(tenantId, urlId, undefined, anonUserId);
10}
11
12demo();
13

createWebhook Internal Link

Abonneert een URL op een commentaar‑event (REST‑hook‑abonnement). Het opnieuw abonneren van dezelfde URL op hetzelfde event en domein retourneert de bestaande abonnement. Leveringen zijn HMAC‑ondertekend, zie de webhooks‑gids; de legacy token‑header wordt nooit verzonden naar API‑abonnementen.

Parameters

NaamTypeVerplichtBeschrijving
tenantIdstringJa
createWebhookParamsCreateWebhookParamsJa

Respons

Returns: CreateWebhookResponse

Voorbeeld

createWebhook Voorbeeld
Copy Copy
1
2const tenantId: string = "tenant_9f8b7c6d";
3
4const webhookParams: CreateWebhookParams = {
5 event: "comment.created" as WebhookEventName,
6 method: "POST" as WebhookHTTPMethod,
7 url: "https://myapp.example.com/webhook",
8 source: "comment" as WebhookSource,
9 // optionele secret voor payloadverificatie
10 secret: "s3cr3tK3y123",
11};
12
13const result: CreateWebhookResponse = await createWebhook(tenantId, webhookParams);
14
15const webhookId: string = result.webhook.id;
16

deleteWebhook Internal Link


Uitschrijvingen (REST hook uitschrijving). Alleen abonnementen die via deze API zijn aangemaakt kunnen hier verwijderd worden; webhooks die via het dashboard worden beheerd, worden bewerkt in het dashboard.

Parameters

NaamTypeVereistBeschrijving
tenantIdstringJa
idstringJa

Respons

Retourneert: APIEmptyResponse

Voorbeeld

deleteWebhook Voorbeeld
Copy Copy
1
2const tenantId: string = "tenant_12345";
3const webhookId: string = "wh_98765";
4
5const result: APIEmptyResponse = await deleteWebhook(tenantId, webhookId);
6

getWebhooks Internal Link

Lijst de webhooks die zijn geconfigureerd voor de tenant, zowel dashboard‑beheerde rijen als API‑abonnementen.

Parameters

NaamTypeVerplichtBeschrijving
tenantIdstringJa
eventWebhookEventNameNee
domainstringNee
sourceWebhookSourceNee
skipnumberNee

Respons

Retourneert: GetWebhooksResponse

Voorbeeld

getWebhooks Voorbeeld
Copy Copy
1
2(async () => {
3 const tenantId: string = 'tenant_42';
4 const event: WebhookEventName = 'comment.created';
5 const domain: string = 'forum.example.org';
6 const source: WebhookSource = 'admin';
7 const skip: number = 0;
8
9 const fullResponse: GetWebhooksResponse = await getWebhooks(tenantId, event, domain, source, skip);
10 const minimalResponse: GetWebhooksResponse = await getWebhooks(tenantId);
11})();
12

getWebhookSamplePayloads Internal Link

Recente opmerkingen in precies de vorm die webhook‑leveringen gebruiken, voor het bouwen van integraties (bijvoorbeeld Zapier‑voorbeeldgegevens). Elk evenement levert hetzelfde opmerkingobject, dus event hoeft alleen geldig te zijn.

Parameters

NaamTypeVerplichtBeschrijving
tenantIdstringJa
eventWebhookEventNameNee
limitnumberNee

Response

Retourneert: GetWebhookSamplePayloadsResponse

Voorbeeld

getWebhookSamplePayloads Voorbeeld
Copy Copy
1
2const tenantId: string = "c1a2b3d4-5678-90ab-cdef-1234567890ab";
3
4const responseAll: GetWebhookSamplePayloadsResponse = await getWebhookSamplePayloads(
5 tenantId,
6 "comment.created",
7 10
8);
9
10const responseWithEvent: GetWebhookSamplePayloadsResponse = await getWebhookSamplePayloads(
11 tenantId,
12 "comment.created"
13);
14
15const responseBasic: GetWebhookSamplePayloadsResponse = await getWebhookSamplePayloads(
16 tenantId
17);
18

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.