FastComments.com

FastComments SDK για JavaScript/TypeScript

Αυτό είναι το επίσημο SDK JavaScript/TypeScript για το FastComments.

Διαχειριστείτε σχόλια, χρήστες, SSO και την εποπτεία από το Node.js ή τον περιηγητή.

Αποθετήριο

Δείτε στο GitHub

Εγκατάσταση Internal Link

npm

npm install fastcomments-sdk

Τεκμηρίωση API Internal Link


Πλήρης αναφορά API: docs/api/README.md

Συμβατότητα προγράμματος περιήγησης και διακομιστή Internal Link

Αυτό το SDK χρησιμοποιεί διπλά σημεία εισόδου για να εξασφαλίσει βέλτιστη συμβατότητα και να αποτρέψει σφάλματα χρόνου εκτέλεσης:

  • fastcomments-sdk/browser - Έκδοση ασφαλής για περιηγητές με ενσωματωμένο fetch
  • fastcomments-sdk/server - Πλήρης έκδοση για Node.js με υποστήριξη SSO
  • fastcomments-sdk (προεπιλογή) - Μόνο τύποι, ασφαλές για εισαγωγή οπουδήποτε

Δημόσια και Ασφαλή API Internal Link

The SDK παρέχει τρεις κύριες κλάσεις API:

  • DefaultApi - Secured endpoints that require your API key for authentication. Use these for server-side operations.
  • PublicApi - Public endpoints that can be accessed without an API key. These can be called directly from browsers/mobile devices/etc.
  • HiddenApi - Internal/admin endpoints for advanced use cases.

Παράδειγμα: Χρήση Public API (ασφαλές για browsers)

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

const publicApi = new PublicApi();

// Λήψη σχολίων για σελίδα (δεν απαιτείται API key)
const response = await publicApi.getCommentsPublic({
  tenantId: 'your-tenant-id',
  urlId: 'page-url-id'
});

Παράδειγμα: Χρήση Default API (μόνο στην πλευρά του διακομιστή)

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

const config = new Configuration({
  apiKey: 'your-api-key' // Κρατήστε το μυστικό!
});
const defaultApi = new DefaultApi(config);

// Λήψη σχολίων με πλήρη διαχειριστική πρόσβαση
const response = await defaultApi.getComments({
  tenantId: 'your-tenant-id',
  urlId: 'page-url-id'
});

Ενσωμάτωση SSO (Single Sign-On) Internal Link

FastComments υποστηρίζει SSO για ενσωμάτωση με το υπάρχον σύστημα πιστοποίησης χρηστών σας. Η λειτουργία SSO είναι διαθέσιμη μόνο στην έκδοση για διακομιστή καθώς απαιτεί δυνατότητες κρυπτογράφησης του Node.js.

Απλό SSO (Μόνο στην πλευρά διακομιστή)

Το απλό SSO θα πρέπει να δημιουργείται στην πλευρά διακομιστή και να αποστέλλεται στον πελάτη:

// Κώδικας πλευράς διακομιστή (Node.js/backend)
import { FastCommentsSSO, PublicApi } from 'fastcomments-sdk/server';

// Δημιουργία απλού SSO χρησιμοποιώντας τον ενσωματωμένο βοηθό  
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();

// Στείλτε το ssoToken στον κώδικα της πλευράς πελάτη σας
// Ο κώδικας της πλευράς πελάτη μπορεί στη συνέχεια να χρησιμοποιήσει αυτό το token με το browser SDK

Ασφαλές SSO (Πλευρά Διακομιστή, Συνιστάται)

Το ασφαλές SSO θα πρέπει να υλοποιείται στην πλευρά διακομιστή και παρέχει καλύτερη ασφάλεια:

// Κώδικας πλευράς διακομιστή (Node.js/backend)
import { FastCommentsSSO, PublicApi } from 'fastcomments-sdk/server';

// Δημιουργία ασφαλούς SSO χρησιμοποιώντας τον ενσωματωμένο βοηθό
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();

// Χρήση με κλήσεις API στον διακομιστή
const publicApi = new PublicApi();
const response = await publicApi.getCommentsPublic({
  tenantId: 'your-tenant-id',
  urlId: 'page-url-id',
  sso: JSON.stringify(ssoConfig)
});

// Ή στείλτε το ssoConfig στον πελάτη για χρήση στον browser

Χρήση SSO από τον Browser (με Token που δημιουργείται από τον διακομιστή)

// Κώδικας πλευράς πελάτη (browser)
import { PublicApi } from 'fastcomments-sdk/browser';

// Λάβετε το SSO token από το 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 // Use the server-generated SSO token
});

SSO με Δημιουργία Σχολίου

// Πλευρά διακομιστή: Δημιουργία SSO και σχολίου
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)
});

Συνηθισμένες Περιπτώσεις Χρήσης Internal Link

Λήψη Σχολίων για μια Σελίδα

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

Δημιουργία Σχολίου

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

Ψήφιση Σχολίου

const voteResponse = await sdk.publicApi.voteComment({
  voteBodyParams: {
    commentId: 'comment-id',
    direction: 1 // 1 για ψήφο υπέρ, -1 για ψήφο κατά
  }
});

Διαχείριση Χρηστών (Απαιτεί API Key)

// Αναζήτηση χρηστών (απαιτεί DefaultApi)
const users = await sdk.defaultApi.searchUsers({
  tenantId: 'your-tenant-id',
  urlId: 'page-id',
  usernameStartsWith: 'john'
});

Ζωντανά Γεγονότα (Ενημερώσεις σε Πραγματικό Χρόνο) Internal Link

Subscribe to live events to get real-time updates for comments, votes, and other activities.

Γεγονότα σε επίπεδο σελίδας

Ακούστε για ζωντανά γεγονότα σε μια συγκεκριμένη σελίδα (σχόλια, ψήφοι, κ.λπ.):

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

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

// Εγγραφή σε ζωντανά γεγονότα για μια σελίδα
const subscription = subscribeToChanges(
  config,
  'your-tenant-id', // tenantIdWS
  'page-url-id',    // urlIdWS  
  'user-session-id', // userIdWS (πάρτε αυτό από την απόκριση του getComments)
  (event: LiveEvent) => {
    console.log('Live event received:', event);
    
    switch (event.type) {
      case LiveEventType.new_comment:
        console.log('New comment:', event.comment);
        // Ενημερώστε το UI σας με το νέο σχόλιο
        break;
      case LiveEventType.new_vote:
        console.log('New vote:', event.vote);
        // Ενημερώστε τους μετρητές ψήφων στο UI σας
        break;
      case LiveEventType.updated_comment:
        console.log('Comment updated:', event.comment);
        break;
      default:
        console.log('Other event type:', event.type);
    }
    
    return true; // Επιστρέψτε true αν το γεγονός χειρίστηκε
  },
  (isConnected: boolean) => {
    console.log('Connection status:', isConnected ? 'Connected' : 'Disconnected');
  }
);

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

Εγγραφή σε γεγονότα χρήστη

Ακούστε για γεγονότα που αφορούν συγκεκριμένο χρήστη (ειδοποιήσεις, αναφορές, κ.λπ.):

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

const userConfig = {
  userIdWS: 'user-session-id', // Πάρτε αυτό από την απάντηση του getComments
};

// Εγγραφή στο προσωπικό feed του χρήστη
const userSubscription = subscribeToUserFeed(
  userConfig,
  (event: LiveEvent) => {
    console.log('User event received:', event);
    
    switch (event.type) {
      case LiveEventType.notification:
        console.log('New notification:', event.notification);
        // Εμφανίστε την ειδοποίηση στο 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');
  }
);

// Close when done
userSubscription.close();

Λήψη userIdWS

The userIdWS parameter is required for live events and can be obtained from API responses:

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

// Εξαγάγετε το userIdWS από την απάντηση
const userIdWS = response.data?.userSessionInfo?.userIdWS;

if (userIdWS) {
  // Τώρα μπορείτε να εγγραφείτε σε ζωντανά γεγονότα
  const subscription = subscribeToChanges(config, tenantIdWS, urlIdWS, userIdWS, handleEvent);
}

Αναγνωριστικά μετάδοσης Internal Link

Θα δείτε ότι πρέπει να περάσετε ένα broadcastId σε κάποιες κλήσεις API. Όταν λάβετε γεγονότα, θα σας επιστραφεί αυτό το ID, ώστε να ξέρετε να αγνοήσετε το γεγονός αν σκοπεύετε να εφαρμόσετε αλλαγές στον client με 'optimistic' τρόπο (πιθανότατα θα θέλετε να το κάνετε, καθώς προσφέρει την καλύτερη εμπειρία). Δώστε εδώ ένα UUID. Το ID πρέπει να είναι αρκετά μοναδικό ώστε να μην εμφανιστεί δύο φορές σε μια συνεδρία περιήγησης.

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() // Μοναδικό ID για αυτήν την ενέργεια
  }
});

Διαχείριση Σφαλμάτων 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);
  }
}

Συγκέντρωση Internal Link

Συγκεντρώνει έγγραφα ομαδοποιώντας τα (αν παρέχεται το groupBy) και εφαρμόζοντας πολλαπλές λειτουργίες. Υποστηρίζονται διάφορες λειτουργίες (π.χ. sum, countDistinct, avg, κ.λπ.).

Parameters

NameTypeRequiredDescription
tenantIdstringΝαι
aggregationRequestAggregationRequestΝαι
parentTenantIdstringΌχι
includeStatsbooleanΌχι

Response

Επιστρέφει: AggregationResponse


Λήψη αρχείων ελέγχου Internal Link

Παράμετροι

NameTypeRequiredDescription
tenantIdstringΝαι
limitnumberΌχι
skipnumberΌχι
orderSORTDIRΌχι
afternumberΌχι
beforenumberΌχι

Απόκριση

Επιστρέφει: GetAuditLogs200Response

Παράδειγμα

getAuditLogs Παράδειγμα
Copy Copy
1
2const tenantId: string = 'tenant_9a8b7c';
3const limit: number = 100;
4const skip: number = 0;
5const after: number = Date.now() - 30 * 24 * 60 * 60 * 1000; // 30 ημέρες πριν
6const before: number = Date.now();
7const auditLogs: GetAuditLogs200Response = await getAuditLogs(tenantId, limit, skip, undefined, after, before);
8

Αποκλεισμός από δημόσιο σχόλιο Internal Link

Παράμετροι

ΌνομαΤύποςΑπαραίτητοΠεριγραφή
tenantIdstringΝαι
commentIdstringΝαι
publicBlockFromCommentParamsPublicBlockFromCommentParamsΝαι
ssostringΌχι

Απόκριση

Επιστρέφει: BlockFromCommentPublic200Response

Παράδειγμα

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

Άρση αποκλεισμού σχολίου (δημόσιο) Internal Link

Παράμετροι

ΌνομαΤύποςΥποχρεωτικόΠεριγραφή
tenantIdstringΝαι
commentIdstringΝαι
publicBlockFromCommentParamsPublicBlockFromCommentParamsΝαι
ssostringΌχι

Απόκριση

Επιστρέφει: UnBlockCommentPublic200Response

Παράδειγμα

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

Έλεγχος σχολίων για αποκλεισμένα Internal Link

Παράμετροι

NameTypeRequiredDescription
tenantIdstringΝαι
commentIdsstringΝαι
ssostringΌχι

Απόκριση

Επιστρέφει: CheckedCommentsForBlocked200Response

Παράδειγμα

Παράδειγμα checkedCommentsForBlocked
Copy Copy
1
2const tenantId: string = 'tenant_4f3b2a1e';
3const commentIds: string = 'c_1001,c_1002,c_1003';
4const ssoToken: string = 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiJ1c2VyMTIzIn0.Sf4ke7nQP3mZx9v2';
5
6const resultWithoutSSO: CheckedCommentsForBlocked200Response = await checkedCommentsForBlocked(tenantId, commentIds);
7const resultWithSSO: CheckedCommentsForBlocked200Response = await checkedCommentsForBlocked(tenantId, commentIds, ssoToken);
8

Αποκλεισμός χρήστη από σχόλιο Internal Link

Παράμετροι

NameTypeRequiredDescription
tenantIdstringΝαι
idstringΝαι
blockFromCommentParamsBlockFromCommentParamsΝαι
userIdstringΌχι
anonUserIdstringΌχι

Απόκριση

Επιστρέφει: BlockFromCommentPublic200Response

Παράδειγμα

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

Δημιουργία δημόσιου σχολίου Internal Link

Παράμετροι

NameΤύποςΑπαιτείταιΠεριγραφή
tenantIdstringΝαι
urlIdstringΝαι
broadcastIdstringΝαι
commentDataCommentDataΝαι
sessionIdstringΌχι
ssostringΌχι

Απόκριση

Επιστρέφει: CreateCommentPublic200Response

Παράδειγμα

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

Διαγραφή σχολίου Internal Link

Παράμετροι

ΌνομαΤύποςΑπαιτείταιΠεριγραφή
tenantIdstringΝαι
idstringΝαι
contextUserIdstringΌχι
isLivebooleanΌχι

Απάντηση

Επιστρέφει: DeleteComment200Response

Παράδειγμα

Παράδειγμα deleteComment
Copy Copy
1
2const tenantId: string = "tenant_acme_01";
3const id: string = "comment_5f3a2b7c";
4const contextUserId: string = "user_1229";
5const isLive: boolean = true;
6const response: DeleteComment200Response = await deleteComment(tenantId, id, contextUserId, isLive);
7

Διαγραφή δημόσιου σχολίου Internal Link

Παράμετροι

ΌνομαΤύποςΑπαιτείταιΠεριγραφή
tenantIdstringΝαι
commentIdstringΝαι
broadcastIdstringΝαι
editKeystringΌχι
ssostringΌχι

Απάντηση

Επιστρέφει: DeleteCommentPublic200Response

Παράδειγμα

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

Διαγραφή ψήφου σχολίου Internal Link

Παράμετροι

ΌνομαΤύποςΑπαιτείταιΠεριγραφή
tenantIdstringΝαι
commentIdstringΝαι
voteIdstringΝαι
urlIdstringΝαι
broadcastIdstringΝαι
editKeystringΌχι
ssostringΌχι

Απόκριση

Επιστρέφει: DeleteCommentVote200Response

Παράδειγμα

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

Αναφορά σχολίου Internal Link

Παράμετροι

NameTypeRequiredDescription
tenantIdstringΝαι
idstringΝαι
userIdstringΌχι
anonUserIdstringΌχι

Απόκριση

Επιστρέφει: FlagComment200Response

Παράδειγμα

Παράδειγμα flagComment
Copy Copy
1
2const tenantId: string = 'tenant_7f3b21';
3const commentId: string = 'cmt_9a2b4';
4const userId: string = 'user_1024';
5const result: FlagComment200Response = await flagComment(tenantId, commentId, userId);
6

Λήψη σχολίου Internal Link

Παράμετροι

ΌνομαΤύποςΑπαιτείταιΠεριγραφή
tenantIdstringΝαι
idstringΝαι

Απόκριση

Επιστρέφει: GetComment200Response

Παράδειγμα

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

Λήψη σχολίων Internal Link

Παράμετροι

NameTypeRequiredDescription
tenantIdstringΝαι
pagenumberΌχι
limitnumberΌχι
skipnumberΌχι
asTreebooleanΌχι
skipChildrennumberΌχι
limitChildrennumberΌχι
maxTreeDepthnumberΌχι
urlIdstringΌχι
userIdstringΌχι
anonUserIdstringΌχι
contextUserIdstringΌχι
hashTagstringΌχι
parentIdstringΌχι
directionSortDirectionsΌχι

Απάντηση

Επιστρέφει: GetComments200Response

Παράδειγμα

Παράδειγμα getComments
Copy Copy
1
2const tenantId: string = 'tenant_acme_42';
3const response: GetComments200Response = await getComments(
4 tenantId,
5 1, // page
6 20, // limit
7 0, // skip
8 true, // asTree
9 1, // skipChildren
10 3, // limitChildren
11 4, // maxTreeDepth
12 'articles/2026/new-product-launch', // urlId
13 'user_7890', // userId
14 'anon_4f3b2', // anonUserId
15 undefined, // contextUserId
16 '#launch', // hashTag
17 undefined // parentId
18);
19

Λήψη δημόσιων σχολίων Internal Link

req tenantId urlId

Parameters

ΌνομαΤύποςΑπαιτείταιΠεριγραφή
tenantIdstringΝαι
urlIdstringΝαι
pagenumberΌχι
directionSortDirectionsΌχι
ssostringΌχι
skipnumberΌχι
skipChildrennumberΌχι
limitnumberΌχι
limitChildrennumberΌχι
countChildrenbooleanΌχι
fetchPageForCommentIdstringΌχι
includeConfigbooleanΌχι
countAllbooleanΌχι
includei10nbooleanΌχι
localestringΌχι
modulesstringΌχι
isCrawlerbooleanΌχι
includeNotificationCountbooleanΌχι
asTreebooleanΌχι
maxTreeDepthnumberΌχι
useFullTranslationIdsbooleanΌχι
parentIdstringΌχι
searchTextstringΌχι
hashTagsArrayΌχι
userIdstringΌχι
customConfigStrstringΌχι
afterCommentIdstringΌχι
beforeCommentIdstringΌχι

Απόκριση

Επιστρέφει: GetCommentsPublic200Response

Παράδειγμα

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

Λήψη κειμένου σχολίου Internal Link

Παράμετροι

ΌνομαΤύποςΑπαιτείταιΠεριγραφή
tenantIdstringΝαι
commentIdstringΝαι
editKeystringΌχι
ssostringΌχι

Απόκριση

Επιστρέφει: GetCommentText200Response

Παράδειγμα

Παράδειγμα getCommentText
Copy Copy
1
2const tenantId: string = 'tenant_acme_001';
3const commentId: string = 'cmt_7890b';
4const editKey: string = 'edit_4f2d9b7c';
5const sso: string = 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9';
6
7const result: GetCommentText200Response = await getCommentText(tenantId, commentId, editKey, sso);
8

Λήψη ονομάτων χρηστών που ψήφισαν το σχόλιο Internal Link

Παράμετροι

ΌνομαΤύποςΑπαιτείταιΠεριγραφή
tenantIdstringΝαι
commentIdstringΝαι
dirnumberΝαι
ssostringΌχι

Απόκριση

Επιστρέφει: GetCommentVoteUserNames200Response

Παράδειγμα

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

Κλείδωμα σχολίου Internal Link

Παράμετροι

NameTypeRequiredDescription
tenantIdstringΝαι
commentIdstringΝαι
broadcastIdstringΝαι
ssostringΌχι

Απόκριση

Επιστρέφει: LockComment200Response

Παράδειγμα

Παράδειγμα lockComment
Copy Copy
1
2const tenantId: string = "tenant_prod_8f3a2b";
3const commentId: string = "cmt_5d7e9a92";
4const broadcastId: string = "broadcast_2026_03_25_1400";
5const ssoToken: string = "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.example.signature";
6const resultWithSso: LockComment200Response = await lockComment(tenantId, commentId, broadcastId, ssoToken);
7const resultWithoutSso: LockComment200Response = await lockComment(tenantId, commentId, broadcastId);
8

Καρφίτσωμα σχολίου Internal Link

Παράμετροι

ΌνομαΤύποςΑπαιτείταιΠεριγραφή
tenantIdstringΝαι
commentIdstringΝαι
broadcastIdstringΝαι
ssostringΌχι

Απόκριση

Επιστρέφει: PinComment200Response

Παράδειγμα

Παράδειγμα pinComment
Copy Copy
1
2const tenantId: string = "tenant_4f2b9a";
3const commentId: string = "cmt_9f8e7d6c";
4const broadcastId: string = "brd_live_concert_2026-03-25";
5const sso: string = "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.sso_payload_signature";
6
7const result: PinComment200Response = await pinComment(tenantId, commentId, broadcastId, sso);
8

Αποθήκευση σχολίου Internal Link

Παράμετροι

ΌνομαΤύποςΑπαιτείταιΠεριγραφή
tenantIdstringΝαι
createCommentParamsCreateCommentParamsΝαι
isLivebooleanΌχι
doSpamCheckbooleanΌχι
sendEmailsbooleanΌχι
populateNotificationsbooleanΌχι

Απόκριση

Επιστρέφει: SaveComment200Response

Παράδειγμα

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

Μαζική αποθήκευση σχολίων Internal Link

Παράμετροι

ΌνομαΤύποςΑπαραίτητοΠεριγραφή
tenantIdstringΝαι
createCommentParamsArrayΝαι
isLivebooleanΌχι
doSpamCheckbooleanΌχι
sendEmailsbooleanΌχι
populateNotificationsbooleanΌχι

Απόκριση

Επιστρέφει: Array<SaveComment200Response

Παράδειγμα

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

Ορισμός κειμένου σχολίου Internal Link

Παράμετροι

ΌνομαΤύποςΑπαιτείταιΠεριγραφή
tenantIdstringΝαι
commentIdstringΝαι
broadcastIdstringΝαι
commentTextUpdateRequestCommentTextUpdateRequestΝαι
editKeystringΌχι
ssostringΌχι

Απάντηση

Επιστρέφει: SetCommentText200Response

Παράδειγμα

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

Άρση αποκλεισμού χρήστη από σχόλιο Internal Link


Παράμετροι

ΌνομαΤύποςΑπαιτείταιΠεριγραφή
tenantIdstringΝαι
idstringΝαι
unBlockFromCommentParamsUnBlockFromCommentParamsΝαι
userIdstringΌχι
anonUserIdstringΌχι

Απόκριση

Επιστρέφει: UnBlockCommentPublic200Response

Παράδειγμα

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

Ανάκληση αναφοράς σχολίου Internal Link

Παράμετροι

ΌνομαΤύποςΑπαιτείταιΠεριγραφή
tenantIdstringΝαι
idstringΝαι
userIdstringΌχι
anonUserIdstringΌχι

Απόκριση

Επιστρέφει: FlagComment200Response

Παράδειγμα

Παράδειγμα unFlagComment
Copy Copy
1
2const tenantId: string = 'acme-tenant-001';
3const commentId: string = 'cmt_9f8e7d6c';
4const userId: string = 'user_72b4a1c9';
5const anonUserId: string = 'anon_3d2c1b0a';
6const response: FlagComment200Response = await unFlagComment(tenantId, commentId, userId, anonUserId);
7

Ξεκλείδωμα σχολίου Internal Link

Παράμετροι

ΌνομαΤύποςΑπαιτείταιΠεριγραφή
tenantIdstringΝαι
commentIdstringΝαι
broadcastIdstringΝαι
ssostringΌχι

Απόκριση

Επιστρέφει: LockComment200Response

Παράδειγμα

Παράδειγμα unLockComment
Copy Copy
1
2const tenantId: string = 'tenant_9d4f2b';
3const commentId: string = 'cmt_8a3e1f';
4const broadcastId: string = 'broadcast_2026_03_25';
5const sso: string = 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.example.signature';
6
7const result: LockComment200Response = await unLockComment(tenantId, commentId, broadcastId, sso);
8

Αποκαρφίτσωμα σχολίου Internal Link

Παράμετροι

ΌνομαΤύποςΑπαιτείταιΠεριγραφή
tenantIdstringΝαι
commentIdstringΝαι
broadcastIdstringΝαι
ssostringΌχι

Απόκριση

Επιστρέφει: PinComment200Response

Παράδειγμα

Παράδειγμα unPinComment
Copy Copy
1
2const tenantId: string = 'tenant_7f9d2a3b';
3const commentId: string = 'comment_842b9c1f';
4const broadcastId: string = 'bcast_frontpage_202603';
5const sso: string = 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.exampleSignature';
6
7const result: PinComment200Response = await unPinComment(tenantId, commentId, broadcastId, sso);
8

Ενημέρωση σχολίου Internal Link

Παράμετροι

NameTypeRequiredDescription
tenantIdstringΝαι
idstringΝαι
updatableCommentParamsUpdatableCommentParamsΝαι
contextUserIdstringΌχι
doSpamCheckbooleanΌχι
isLivebooleanΌχι

Απάντηση

Επιστρέφει: FlagCommentPublic200Response

Παράδειγμα

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

Ψήφος σε σχόλιο Internal Link

Παράμετροι

ΌνομαΤύποςΑπαραίτητοΠεριγραφή
tenantIdstringΝαι
commentIdstringΝαι
urlIdstringΝαι
broadcastIdstringΝαι
voteBodyParamsVoteBodyParamsΝαι
sessionIdstringΌχι
ssostringΌχι

Απόκριση

Επιστρέφει: VoteComment200Response

Παράδειγμα

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

Λήψη σχολίων για χρήστη Internal Link

Παράμετροι

NameTypeRequiredDescription
userIdstringΌχι
tenantIdstringΌχι
urlIdstringΌχι
pagenumberΌχι
directionSortDirectionsΌχι
lastGenDatenumberΌχι
repliesToUserIdstringΌχι
fetchPageForCommentIdstringΌχι
includei10nbooleanΌχι
useFullTranslationIdsbooleanΌχι
localestringΌχι
includeConfigbooleanΌχι
includeNotificationCountbooleanΌχι
countAllbooleanΌχι
ssostringΌχι

Απάντηση

Επιστρέφει: GetCommentsForUserResponse

Παράδειγμα

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

Προσθήκη διαμόρφωσης domain Internal Link

Παράμετροι

ΌνομαΤύποςΑπαιτείταιΠεριγραφή
tenantIdstringΝαι
addDomainConfigParamsAddDomainConfigParamsΝαι

Απόκριση

Επιστρέφει: AddDomainConfig200Response

Διαγραφή διαμόρφωσης domain Internal Link


Παράμετροι

ΌνομαΤύποςΑπαιτείταιΠεριγραφή
tenantIdstringΝαι
domainstringΝαι

Απόκριση

Επιστρέφει: DeleteDomainConfig200Response


Λήψη διαμόρφωσης domain Internal Link


Παράμετροι

ΌνομαΤύποςΑπαιτείταιΠεριγραφή
tenantIdstringΝαι
domainstringΝαι

Απόκριση

Επιστρέφει: GetDomainConfig200Response


Λήψη διαμορφώσεων domain Internal Link

Παράμετροι

ΌνομαΤύποςΑπαιτείταιΠεριγραφή
tenantIdstringΝαι

Απόκριση

Επιστρέφει: GetDomainConfigs200Response


Τροποποίηση διαμόρφωσης domain (PATCH) Internal Link


Παράμετροι

ΌνομαΤύποςΑπαιτείταιΠεριγραφή
tenantIdstringΝαι
domainToUpdatestringΝαι
patchDomainConfigParamsPatchDomainConfigParamsΝαι

Απόκριση

Επιστρέφει: GetDomainConfig200Response


Αντικατάσταση διαμόρφωσης domain (PUT) Internal Link


Παράμετροι

NameTypeRequiredDescription
tenantIdstringΝαι
domainToUpdatestringΝαι
updateDomainConfigParamsUpdateDomainConfigParamsΝαι

Απόκριση

Επιστρέφει: GetDomainConfig200Response


Δημιουργία προτύπου email Internal Link

Παράμετροι

ΌνομαΤύποςΑπαιτείταιΠεριγραφή
tenantIdstringΝαι
createEmailTemplateBodyCreateEmailTemplateBodyΝαι

Απόκριση

Επιστρέφει: CreateEmailTemplate200Response

Παράδειγμα

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

Διαγραφή προτύπου email Internal Link

Παράμετροι

ΌνομαΤύποςΑπαιτείταιΠεριγραφή
tenantIdstringΝαι
idstringΝαι

Απόκριση

Επιστρέφει: FlagCommentPublic200Response

Παράδειγμα

Παράδειγμα deleteEmailTemplate
Copy Copy
1
2const tenantId: string = "acme-corp-42";
3const idSuffix: string | undefined = "-archived";
4const templateId: string = "email_tmpl_6a1b2c" + (idSuffix ?? "");
5const result: FlagCommentPublic200Response = await deleteEmailTemplate(tenantId, templateId);
6

Διαγραφή σφάλματος απόδοσης προτύπου email Internal Link

Παράμετροι

ΌνομαΤύποςΑπαιτείταιΠεριγραφή
tenantIdstringΝαι
idstringΝαι
errorIdstringΝαι

Απόκριση

Επιστρέφει: FlagCommentPublic200Response

Παράδειγμα

Παράδειγμα deleteEmailTemplateRenderError
Copy Copy
1
2const tenantId: string = "tenant_7a1d2f9b";
3const id: string = "email_template_42b1";
4const errorId: string = "render_err_2026-04-24_7f3c";
5const includeStackTrace: boolean | undefined = undefined; // παράδειγμα προαιρετικής σημαίας
6
7const response: FlagCommentPublic200Response = await deleteEmailTemplateRenderError(tenantId, id, errorId);
8// Εάν υποστηριζόταν ένα προαιρετικό αντικείμενο επιλογών, θα μπορούσε να μοιάζει ως εξής:
9// await deleteEmailTemplateRenderError(tenantId, id, errorId /*, { includeStackTrace } */);
10

Λήψη προτύπου email Internal Link

Παράμετροι

ΌνομαΤύποςΑπαιτείταιΠεριγραφή
tenantIdstringΝαι
idstringΝαι

Απόκριση

Επιστρέφει: GetEmailTemplate200Response

Παράδειγμα

Παράδειγμα getEmailTemplate
Copy Copy
1
2const tenantId: string = "acme-marketing-042";
3const templateId: string = "tpl_welcome_2026";
4const result: GetEmailTemplate200Response = await getEmailTemplate(tenantId, templateId);
5const template: CustomEmailTemplate | undefined = result.template;
6const subject: string | undefined = template?.subject;
7const customParams: CustomConfigParameters | undefined = template?.customConfigParameters;
8

Λήψη ορισμών προτύπων email Internal Link

Παράμετροι

ΌνομαΤύποςΑπαραίτητοΠεριγραφή
tenantIdstringΝαι

Απόκριση

Επιστρέφει: GetEmailTemplateDefinitions200Response

Παράδειγμα

Παράδειγμα getEmailTemplateDefinitions
Copy Copy
1
2const tenantId: string = 'tenant_acme_eu_01';
3const templates: GetEmailTemplateDefinitions200Response = await getEmailTemplateDefinitions(tenantId);
4console.log('Email template definitions loaded for', tenantId, templates);
5

Λήψη σφαλμάτων απόδοσης προτύπων email Internal Link

Παράμετροι

ΌνομαΤύποςΥποχρεωτικόΠεριγραφή
tenantIdstringΝαι
idstringΝαι
skipnumberΌχι

Απόκριση

Επιστρέφει: GetEmailTemplateRenderErrors200Response

Παράδειγμα

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

Λήψη προτύπων email Internal Link

Παράμετροι

NameTypeRequiredDescription
tenantIdstringΝαι
skipnumberΌχι

Απάντηση

Επιστρέφει: GetEmailTemplates200Response

Παράδειγμα

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

Απόδοση προτύπου email Internal Link

Παράμετροι

ΌνομαΤύποςΑπαιτείταιΠεριγραφή
tenantIdstringΝαι
renderEmailTemplateBodyRenderEmailTemplateBodyΝαι
localestringΌχι

Απόκριση

Επιστρέφει: RenderEmailTemplate200Response

Παράδειγμα

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

Ενημέρωση προτύπου email Internal Link


Παράμετροι

ΌνομαΤύποςΑπαιτείταιΠεριγραφή
tenantIdstringΝαι
idstringΝαι
updateEmailTemplateBodyUpdateEmailTemplateBodyΝαι

Απόκριση

Επιστρέφει: FlagCommentPublic200Response

Παράδειγμα

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

Λήψη καταγραφής γεγονότων Internal Link

req tenantId urlId userIdWS

Παράμετροι

NameTypeRequiredDescription
tenantIdstringΝαι
urlIdstringΝαι
userIdWSstringΝαι
startTimenumberΝαι
endTimenumberΝαι

Απάντηση

Επιστρέφει: GetEventLog200Response

Παράδειγμα

Παράδειγμα getEventLog
Copy Copy
1
2const tenantId: string = 'fastcomments-tenant-01';
3const urlId: string = 'article-2026-03-25';
4const userIdWS: string | undefined = undefined; // προαιρετική τιμή upstream
5const startTime: number = Date.parse('2026-03-01T00:00:00Z');
6const endTime: number = Date.parse('2026-03-25T23:59:59Z');
7
8const eventLogResponse: GetEventLog200Response = await getEventLog(
9 tenantId,
10 urlId,
11 userIdWS ?? 'ws_user_8b1f',
12 startTime,
13 endTime
14);
15

Λήψη παγκόσμιας καταγραφής γεγονότων Internal Link

req tenantId urlId userIdWS

Παράμετροι

NameTypeRequiredDescription
tenantIdstringΝαι
urlIdstringΝαι
userIdWSstringΝαι
startTimenumberΝαι
endTimenumberΝαι

Απόκριση

Επιστρέφει: GetEventLog200Response

Παράδειγμα

Παράδειγμα getGlobalEventLog
Copy Copy
1
2const tenantId: string = "tenant-84b2f1";
3const urlId: string = "article-6721";
4const userIdWS: string = "ws-conn-9a3c";
5const startTime: number = Date.now() - 7 * 24 * 60 * 60 * 1000; // πριν 7 ημέρες
6const endTimeOptional: number | undefined = undefined; // προαιρετικό τέλος χρονικού διαστήματος
7const endTime: number = endTimeOptional ?? Date.now();
8const eventLog: GetEventLog200Response = await getGlobalEventLog(tenantId, urlId, userIdWS, startTime, endTime);
9

Δημιουργία ανάρτησης Feed Internal Link

Παράμετροι

ΌνομαΤύποςΑπαιτείταιΠεριγραφή
tenantIdstringΝαι
createFeedPostParamsCreateFeedPostParamsΝαι
broadcastIdstringΌχι
isLivebooleanΌχι
doSpamCheckbooleanΌχι
skipDupCheckbooleanΌχι

Απόκριση

Επιστρέφει: CreateFeedPost200Response

Παράδειγμα

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

Δημιουργία δημόσιας ανάρτησης Feed Internal Link

Παράμετροι

ΌνομαΤύποςΑπαιτείταιΠεριγραφή
tenantIdstringΝαι
createFeedPostParamsCreateFeedPostParamsΝαι
broadcastIdstringΌχι
ssostringΌχι

Απόκριση

Επιστρέφει: CreateFeedPostPublic200Response

Παράδειγμα

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

Διαγραφή δημόσιας ανάρτησης Feed Internal Link

Παράμετροι

ΌνομαΤύποςΑπαιτείταιΠεριγραφή
tenantIdstringYes
postIdstringYes
broadcastIdstringNo
ssostringNo

Απόκριση

Επιστρέφει: DeleteFeedPostPublic200Response

Παράδειγμα

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

Λήψη αναρτήσεων Feed Internal Link

req tenantId afterId

Παράμετροι

NameTypeRequiredDescription
tenantIdstringΝαι
afterIdstringΌχι
limitnumberΌχι
tagsArrayΌχι

Απόκριση

Επιστρέφει: GetFeedPosts200Response

Παράδειγμα

Παράδειγμα getFeedPosts
Copy Copy
1
2const initialPage: GetFeedPosts200Response = await getFeedPosts('tenant_9f1b3d', undefined, 20, ['sports', 'local']);
3const nextPage: GetFeedPosts200Response = await getFeedPosts('tenant_9f1b3d', 'post_abc123', 20, ['sports', 'local']);
4

Λήψη δημόσιων αναρτήσεων Feed Internal Link

req tenantId afterId

Παράμετροι

ΌνομαΤύποςΑπαιτείταιΠεριγραφή
tenantIdstringΝαι
afterIdstringΌχι
limitnumberΌχι
tagsArrayΌχι
ssostringΌχι
isCrawlerbooleanΌχι
includeUserInfobooleanΌχι

Απόκριση

Επιστρέφει: GetFeedPostsPublic200Response

Παράδειγμα

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

Λήψη στατιστικών αναρτήσεων Feed Internal Link

Παράμετροι

ΌνομαΤύποςΑπαιτείταιΠεριγραφή
tenantIdstringΝαι
postIdsArrayΝαι
ssostringΌχι

Απόκριση

Επιστρέφει: GetFeedPostsStats200Response

Παράδειγμα

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

Λήψη αντιδράσεων χρήστη (δημόσιο) Internal Link

Παράμετροι

NameTypeRequiredDescription
tenantIdstringΝαι
postIdsArrayΌχι
ssostringΌχι

Απόκριση

Επιστρέφει: GetUserReactsPublic200Response

Παράδειγμα

Παράδειγμα getUserReactsPublic
Copy Copy
1
2const tenantId: string = "acme-tenant-8a4d2c";
3const postIds: string[] = ["post-645a2f", "post-645a30"];
4const sso: string = "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiJ1c2VyXzEyMyIsImlhdCI6MTY2MTYwMDAwMH0.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c";
5const result: GetUserReactsPublic200Response = await getUserReactsPublic(tenantId, postIds, sso);
6

Αντίδραση σε δημόσια ανάρτηση Feed Internal Link

Παράμετροι

ΌνομαΤύποςΑπαιτείταιΠεριγραφή
tenantIdstringΝαι
postIdstringΝαι
reactBodyParamsReactBodyParamsΝαι
isUndobooleanΌχι
broadcastIdstringΌχι
urlIdstringΌχι
ssostringΌχι

Απόκριση

Επιστρέφει: ReactFeedPostPublic200Response

Παράδειγμα

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

Ενημέρωση ανάρτησης Feed Internal Link

Παράμετροι

NameTypeRequiredDescription
tenantIdstringYes
idstringYes
feedPostFeedPostYes

Απόκριση

Επιστρέφει: FlagCommentPublic200Response

Παράδειγμα

Παράδειγμα updateFeedPost
Copy Copy
1
2const tenantId: string = 'acme-global-tenant-42';
3const id: string = 'f47ac10b-58cc-4372-a567-0e02b2c3d479';
4
5const asset: FeedPostMediaItemAsset = {
6 url: 'https://cdn.acme.com/images/product-launch.jpg',
7 mimeType: 'image/jpeg',
8 width: 1200,
9 height: 630
10};
11
12const mediaItem: FeedPostMediaItem = {
13 id: 'media-001',
14 type: 'image',
15 asset
16};
17
18const link: FeedPostLink = {
19 url: 'https://acme.com/blog/product-launch',
20 title: 'Product Launch Details'
21};
22
23const feedPost: FeedPost = {
24 title: 'Introducing the Q3 Product Suite',
25 body: 'We are excited to unveil our new lineup for Q3, focusing on performance and security improvements.',
26 media: [mediaItem], // προαιρετικός πίνακας περιλαμβάνεται
27 links: [link], // προαιρετικοί σύνδεσμοι περιλαμβάνονται
28 isPublished: true // προαιρετική σημαία δημοσίευσης που χρησιμοποιείται εδώ
29};
30
31const result: FlagCommentPublic200Response = await updateFeedPost(tenantId, id, feedPost);
32

Ενημέρωση δημόσιας ανάρτησης Feed Internal Link

Παράμετροι

ΌνομαΤύποςΑπαιτείταιΠεριγραφή
tenantIdstringΝαι
postIdstringΝαι
updateFeedPostParamsUpdateFeedPostParamsΝαι
broadcastIdstringΌχι
ssostringΌχι

Απόκριση

Επιστρέφει: CreateFeedPostPublic200Response

Παράδειγμα

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

Αναφορά σχολίου (δημόσιο) Internal Link

Παράμετροι

ΌνομαΤύποςΑπαιτείταιΠεριγραφή
tenantIdstringΝαι
commentIdstringΝαι
isFlaggedbooleanΝαι
ssostringΌχι

Απόκριση

Επιστρέφει: FlagCommentPublic200Response

Παράδειγμα

Παράδειγμα flagCommentPublic
Copy Copy
1
2const tenantId: string = "tenant_9f8b3c";
3const commentId: string = "comment_72a1d4";
4const isFlagged: boolean = true;
5const sso: string = "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VySWQiOiI1Njc4OSJ9.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c";
6const result: FlagCommentPublic200Response = await flagCommentPublic(tenantId, commentId, isFlagged, sso);
7

Λήψη μεγάλης GIF Internal Link

Παράμετροι

ΌνομαΤύποςΑπαιτείταιΠεριγραφή
tenantIdstringΝαι
largeInternalURLSanitizedstringΝαι

Απάντηση

Επιστρέφει: GifGetLargeResponse

Παράδειγμα

Παράδειγμα getGifLarge
Copy Copy
1
2const tenantId: string = 'tenant_8a92f4';
3const largeInternalURLSanitized: string = 'https://cdn.streamingco.com/gifs/product-demo-large.gif';
4let maybeStatus: APIStatus | undefined = undefined; // προαιρετικά μεταδεδομένα όταν είναι διαθέσιμα
5const response: GifGetLargeResponse = await getGifLarge(tenantId, largeInternalURLSanitized);
6

Αναζήτηση GIFs Internal Link

Παράμετροι

ΌνομαΤύποςΑπαιτείταιΠεριγραφή
tenantIdstringΝαι
searchstringΝαι
localestringΌχι
ratingstringΌχι
pagenumberΌχι

Απάντηση

Επιστρέφει: GifSearchResponse

Παράδειγμα

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

Λήψη δημοφιλών GIFs Internal Link

Παράμετροι

ΌνομαΤύποςΑπαιτείταιΠεριγραφή
tenantIdstringΝαι
localestringΌχι
ratingstringΌχι
pagenumberΌχι

Απόκριση

Επιστρέφει: GifSearchResponse

Παράδειγμα

Παράδειγμα getGifsTrending
Copy Copy
1
2const tenantId: string = 'tenant_42';
3const locale: string = 'en-US';
4const rating: string = 'PG';
5const page: number = 1;
6const result: GifSearchResponse = await getGifsTrending(tenantId, locale, rating, page);
7

Προσθήκη hashtag Internal Link

Παράμετροι

ΌνομαΤύποςΑπαιτείταιΠεριγραφή
tenantIdstringΌχι
createHashTagBodyCreateHashTagBodyΌχι

Απόκριση

Επιστρέφει: AddHashTag200Response

Παράδειγμα

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

Μαζική προσθήκη hashtags Internal Link

Παράμετροι

ΌνομαΤύποςΑπαιτείταιΠεριγραφή
tenantIdstringΌχι
bulkCreateHashTagsBodyBulkCreateHashTagsBodyΌχι

Απόκριση

Επιστρέφει: AddHashTagsBulk200Response

Παράδειγμα

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

Διαγραφή hashtag Internal Link


Παράμετροι

ΌνομαΤύποςΑπαιτείταιΠεριγραφή
tagstringΝαι
tenantIdstringΌχι
deleteHashTagRequestDeleteHashTagRequestΌχι

Απόκριση

Επιστρέφει: FlagCommentPublic200Response

Παράδειγμα

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

Λήψη hashtags Internal Link

Παράμετροι

ΌνομαΤύποςΑπαιτείταιΠεριγραφή
tenantIdstringΝαι
pagenumberΌχι

Απόκριση

Επιστρέφει: GetHashTags200Response

Παράδειγμα

Παράδειγμα getHashTags
Copy Copy
1
2const tenantId: string = 'acme-tenant-42';
3const pageNumber: number = 2;
4const responseWithPage: GetHashTags200Response = await getHashTags(tenantId, pageNumber);
5const responseWithoutPage: GetHashTags200Response = await getHashTags(tenantId);
6

Τροποποίηση hashtag (PATCH) Internal Link

Παράμετροι

ΌνομαΤύποςΥποχρεωτικόΠεριγραφή
tagstringΝαι
tenantIdstringΌχι
updateHashTagBodyUpdateHashTagBodyΌχι

Απόκριση

Επιστρέφει: PatchHashTag200Response

Παράδειγμα

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

Δημιουργία διαχειριστή Internal Link

Παράμετροι

NameTypeRequiredDescription
tenantIdstringYes
createModeratorBodyCreateModeratorBodyYes

Απάντηση

Επιστρέφει: CreateModerator200Response

Παράδειγμα

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

Διαγραφή διαχειριστή Internal Link

Παράμετροι

ΌνομαΤύποςΑπαραίτητοΠεριγραφή
tenantIdstringΝαι
idstringΝαι
sendEmailstringΌχι

Απόκριση

Επιστρέφει: FlagCommentPublic200Response

Παράδειγμα

Παράδειγμα deleteModerator
Copy Copy
1
2const tenantId: string = 'tenant_9f8b7c6d';
3const id: string = 'mod_4a3e11ec9d1f0242ac120003';
4const sendEmail: string = 'true';
5const result: FlagCommentPublic200Response = await deleteModerator(tenantId, id, sendEmail);
6

Λήψη διαχειριστή Internal Link

Παράμετροι

ΌνομαΤύποςΑπαιτείταιΠεριγραφή
tenantIdstringΝαι
idstringΝαι

Απόκριση

Επιστρέφει: GetModerator200Response

Παράδειγμα

Παράδειγμα getModerator
Copy Copy
1
2const tenantId: string = 'acme-corp-tenant-123';
3const id: string = 'mod-987654321';
4const moderatorResponse: GetModerator200Response = await getModerator(tenantId, id);
5

Λήψη διαχειριστών Internal Link

Παράμετροι

ΌνομαΤύποςΑπαιτείταιΠεριγραφή
tenantIdstringΝαι
skipnumberΌχι

Απάντηση

Επιστρέφει: GetModerators200Response

Παράδειγμα

Παράδειγμα getModerators
Copy Copy
1
2const tenantId: string = 'tenant-12345-prod';
3const moderatorsPage1: GetModerators200Response = await getModerators(tenantId);
4const moderatorsPage2: GetModerators200Response = await getModerators(tenantId, 50);
5

Αποστολή πρόσκλησης Internal Link

Παράμετροι

ΌνομαΤύποςΑπαιτείταιΠεριγραφή
tenantIdstringYes
idstringYes
fromNamestringYes

Απόκριση

Επιστρέφει: FlagCommentPublic200Response

Παράδειγμα

Παράδειγμα sendInvite
Copy Copy
1
2const tenantId: string = 'acme-corp-128';
3const id: string = 'comment-8421f';
4const fromName: string = 'Marcus Lindström';
5const note: string | undefined = undefined; // παράδειγμα προαιρετικής παραμέτρου
6const response: FlagCommentPublic200Response = await sendInvite(tenantId, id, fromName);
7

Ενημέρωση διαχειριστή Internal Link

Παράμετροι

NameTypeRequiredDescription
tenantIdstringΝαι
idstringΝαι
updateModeratorBodyUpdateModeratorBodyΝαι

Απάντηση

Επιστρέφει: FlagCommentPublic200Response

Παράδειγμα

Παράδειγμα updateModerator
Copy Copy
1
2const tenantId: string = "acme-enterprises-42";
3const id: string = "moderator_517";
4const updateModeratorBody: UpdateModeratorBody = {
5 displayName: "Sofia Martinez",
6 email: "sofia.martinez@acme.com",
7 permissions: ["approve_comments", "flag_spam", "suspend_users"],
8 active: true,
9 avatarUrl: "https://cdn.acme.com/avatars/sofia.jpg" // προαιρετικό πεδίο για παράδειγμα
10};
11const result: FlagCommentPublic200Response = await updateModerator(tenantId, id, updateModeratorBody);
12

Διαγραφή μετρητή ειδοποιήσεων Internal Link

Παράμετροι

ΌνομαΤύποςΑπαιτείταιΠεριγραφή
tenantIdstringΝαι
idstringΝαι

Απόκριση

Επιστρέφει: FlagCommentPublic200Response

Παράδειγμα

deleteNotificationCount Παράδειγμα
Copy Copy
1
2const tenantId: string = "org-72a8f1b9";
3const id: string = "notif-8f9c2e4a";
4const result: FlagCommentPublic200Response = await deleteNotificationCount(tenantId, id);
5console.log(result);
6

Λήψη αποθηκευμένου αριθμού ειδοποιήσεων Internal Link

Παράμετροι

ΌνομαΤύποςΑπαιτείταιΠεριγραφή
tenantIdstringΝαι
idstringΝαι

Απόκριση

Επιστρέφει: GetCachedNotificationCount200Response

Παράδειγμα

Παράδειγμα getCachedNotificationCount
Copy Copy
1
2const tenantId: string = 'tenant_acme_42';
3const id: string = 'user_00012345';
4const includeUnreadOnly: boolean | undefined = true; // σημαία προαιρετικής παραμέτρου (παραδειγματικά)
5const result: GetCachedNotificationCount200Response = await getCachedNotificationCount(tenantId, id);
6

Λήψη αριθμού ειδοποιήσεων Internal Link

Παράμετροι

ΌνομαΤύποςΑπαιτείταιΠεριγραφή
tenantIdstringΝαι
userIdstringΌχι
urlIdstringΌχι
fromCommentIdstringΌχι
viewedbooleanΌχι
typestringΌχι

Απάντηση

Επιστρέφει: GetNotificationCount200Response

Παράδειγμα

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

Λήψη ειδοποιήσεων Internal Link

Παράμετροι

NameTypeΑπαιτείταιΠεριγραφή
tenantIdstringΝαι
userIdstringΌχι
urlIdstringΌχι
fromCommentIdstringΌχι
viewedbooleanΌχι
typestringΌχι
skipnumberΌχι

Απόκριση

Επιστρέφει: GetNotifications200Response

Παράδειγμα

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

Ενημέρωση ειδοποίησης Internal Link


Παράμετροι

NameTypeRequiredDescription
tenantIdstringΝαι
idstringΝαι
updateNotificationBodyUpdateNotificationBodyΝαι
userIdstringΌχι

Απόκριση

Επιστρέφει: FlagCommentPublic200Response

Παράδειγμα

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

Προσθήκη σελίδας Internal Link

Παράμετροι

ΌνομαΤύποςΑπαιτείταιΠεριγραφή
tenantIdstringΝαι
createAPIPageDataCreateAPIPageDataΝαι

Απόκριση

Επιστρέφει: AddPageAPIResponse


Διαγραφή σελίδας Internal Link


Παράμετροι

ΌνομαΤύποςΑπαιτείταιΠεριγραφή
tenantIdstringΝαι
idstringΝαι

Απόκριση

Επιστρέφει: DeletePageAPIResponse


Λήψη σελίδας με URL/ID Internal Link


Παράμετροι

ΌνομαΤύποςΑπαραίτητοΠεριγραφή
tenantIdstringΝαι
urlIdstringΝαι

Απόκριση

Επιστρέφει: GetPageByURLIdAPIResponse


Λήψη σελίδων Internal Link


Παράμετροι

ΌνομαΤύποςΑπαιτείταιΠεριγραφή
tenantIdstringΝαι

Απόκριση

Επιστρέφει: GetPagesAPIResponse


Τροποποίηση σελίδας (PATCH) Internal Link

Παράμετροι

ΌνομαΤύποςΑπαιτείταιΠεριγραφή
tenantIdstringΝαι
idstringΝαι
updateAPIPageDataUpdateAPIPageDataΝαι

Απόκριση

Επιστρέφει: PatchPageAPIResponse


Διαγραφή εκκρεμούς γεγονότος webhook Internal Link

Παράμετροι

ΌνομαΤύποςΑπαιτείταιΠεριγραφή
tenantIdstringΝαι
idstringΝαι

Απόκριση

Επιστρέφει: FlagCommentPublic200Response

Παράδειγμα

Παράδειγμα deletePendingWebhookEvent
Copy Copy
1
2const tenantId: string = "tenant_7f3b2a";
3const webhookEventId: string = "wh_evt_9a8c7d1234";
4const dryRun: boolean | undefined = undefined; // προαιρετική σημαία (δεν απαιτείται από αυτή την κλήση)
5const result: FlagCommentPublic200Response = await deletePendingWebhookEvent(tenantId, webhookEventId);
6

Λήψη αριθμού εκκρεμών γεγονότων webhook Internal Link

Παράμετροι

NameTypeRequiredDescription
tenantIdstringΝαι
commentIdstringΌχι
externalIdstringΌχι
eventTypestringΌχι
typestringΌχι
domainstringΌχι
attemptCountGTnumberΌχι

Απόκριση

Επιστρέφει: GetPendingWebhookEventCount200Response

Παράδειγμα

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

Λήψη εκκρεμών γεγονότων webhook Internal Link

Παράμετροι

ΌνομαΤύποςΑπαιτείταιΠεριγραφή
tenantIdstringΝαι
commentIdstringΌχι
externalIdstringΌχι
eventTypestringΌχι
typestringΌχι
domainstringΌχι
attemptCountGTnumberΌχι
skipnumberΌχι

Απόκριση

Επιστρέφει: GetPendingWebhookEvents200Response

Παράδειγμα

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

Δημιουργία ρύθμισης ερώτησης Internal Link

Παράμετροι

ΌνομαΤύποςΑπαιτείταιΠεριγραφή
tenantIdstringΝαι
createQuestionConfigBodyCreateQuestionConfigBodyΝαι

Απάντηση

Επιστρέφει: CreateQuestionConfig200Response

Παράδειγμα

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

Διαγραφή ρύθμισης ερώτησης Internal Link

Παράμετροι

ΌνομαΤύποςΑπαραίτητοΠεριγραφή
tenantIdstringΝαι
idstringΝαι

Απόκριση

Επιστρέφει: FlagCommentPublic200Response

Παράδειγμα

Παράδειγμα deleteQuestionConfig
Copy Copy
1
2const tenantId: string = "tenant_42fa9b7c";
3const id: string = "qcfg-0f8fad5b-d9cb-469f-a165-70867728950e";
4const result: FlagCommentPublic200Response = await deleteQuestionConfig(tenantId, id);
5

Λήψη ρύθμισης ερώτησης Internal Link

Parameters

ΌνομαΤύποςΑπαιτείταιΠεριγραφή
tenantIdstringΝαι
idstringΝαι

Απόκριση

Επιστρέφει: GetQuestionConfig200Response

Παράδειγμα

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

Λήψη ρυθμίσεων ερωτήσεων Internal Link

Παράμετροι

ΌνομαΤύποςΑπαιτείταιΠεριγραφή
tenantIdstringΝαι
skipnumberΌχι

Απόκριση

Επιστρέφει: GetQuestionConfigs200Response

Παράδειγμα

Παράδειγμα getQuestionConfigs
Copy Copy
1
2const tenantId: string = "tenant_acme_9876";
3const configsWithoutSkip: GetQuestionConfigs200Response = await getQuestionConfigs(tenantId);
4const configsWithSkip: GetQuestionConfigs200Response = await getQuestionConfigs(tenantId, 20);
5

Ενημέρωση ρύθμισης ερώτησης Internal Link

Παράμετροι

ΌνομαΤύποςΑπαιτούμενοΠεριγραφή
tenantIdstringΝαι
idstringΝαι
updateQuestionConfigBodyUpdateQuestionConfigBodyΝαι

Απόκριση

Επιστρέφει: FlagCommentPublic200Response

Παράδειγμα

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

Δημιουργία αποτελέσματος ερώτησης Internal Link

Παράμετροι

ΌνομαΤύποςΑπαιτείταιΠεριγραφή
tenantIdstringΝαι
createQuestionResultBodyCreateQuestionResultBodyΝαι

Απόκριση

Επιστρέφει: CreateQuestionResult200Response

Παράδειγμα

Παράδειγμα createQuestionResult
Copy Copy
1
2const tenantId: string = 'fastcomments-tenant-01';
3const createQuestionResultBody: CreateQuestionResultBody = {
4 questionId: 'q-34567',
5 respondentId: 'user-8923',
6 answers: [{ optionId: 'opt_A', text: 'Agree', count: 1 }],
7 score: 5,
8 meta: [{ key: 'platform', value: 'web' }],
9 notifyModerators: false // προαιρετική παράμετρος
10} as CreateQuestionResultBody;
11const result: CreateQuestionResult200Response = await createQuestionResult(tenantId, createQuestionResultBody);
12

Διαγραφή αποτελέσματος ερώτησης Internal Link

Παράμετροι

ΌνομαΤύποςΑπαιτείταιΠεριγραφή
tenantIdstringΝαι
idstringΝαι

Απόκριση

Επιστρέφει: FlagCommentPublic200Response

Παράδειγμα

Παράδειγμα deleteQuestionResult
Copy Copy
1
2const tenantIdEnv: string | undefined = process.env.FASTCOMMENTS_TENANT_ID;
3const tenantId: string = tenantIdEnv ?? 'tenant_78b3f2';
4const id: string = 'qres-9f2a3b1c';
5const response: FlagCommentPublic200Response = await deleteQuestionResult(tenantId, id);
6

Λήψη αποτελέσματος ερώτησης Internal Link

Παράμετροι

ΌνομαΤύποςΑπαιτείταιΠεριγραφή
tenantIdstringΝαι
idstringΝαι

Απόκριση

Επιστρέφει: GetQuestionResult200Response

Παράδειγμα

Παράδειγμα getQuestionResult
Copy Copy
1
2const tenantId: string = 'acme-corp-42';
3const id: string = 'question-9f8b7c';
4const includeComments: boolean | undefined = true; // παράδειγμα προαιρετικής παραμέτρου
5const result: GetQuestionResult200Response = await getQuestionResult(tenantId, id);
6console.log(result);
7

Λήψη αποτελεσμάτων ερωτήσεων Internal Link

Παράμετροι

ΌνομαΤύποςΑπαιτείταιΠεριγραφή
tenantIdstringΝαι
urlIdstringΌχι
userIdstringΌχι
startDatestringΌχι
questionIdstringΌχι
questionIdsstringΌχι
skipnumberΌχι

Απάντηση

Επιστρέφει: GetQuestionResults200Response

Παράδειγμα

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

Ενημέρωση αποτελέσματος ερώτησης Internal Link

Παράμετροι

NameTypeRequiredDescription
tenantIdstringΝαι
idstringΝαι
updateQuestionResultBodyUpdateQuestionResultBodyΝαι

Απόκριση

Επιστρέφει: FlagCommentPublic200Response

Παράδειγμα

Παράδειγμα updateQuestionResult
Copy Copy
1
2const tenantId: string = 'tenant_7f8b3c';
3const id: string = 'questionResult_4621';
4const updateQuestionResultBody: UpdateQuestionResultBody = {
5 questionId: 'q_1024',
6 result: 'flagged',
7 score: 0.92,
8 notes: 'Automated moderation flagged for review',
9 meta: [{ key: 'source', value: 'ai-moderator' }] as MetaItem[], // προαιρετικά μεταδεδομένα
10 status: { code: 'review_pending' } as APIStatus
11} as UpdateQuestionResultBody;
12const result: FlagCommentPublic200Response = await updateQuestionResult(tenantId, id, updateQuestionResultBody);
13

Συγκέντρωση αποτελεσμάτων ερωτήσεων Internal Link

Παράμετροι

ΌνομαΤύποςΑπαιτείταιΠεριγραφή
tenantIdstringΝαι
questionIdstringΌχι
questionIdsArrayΌχι
urlIdstringΌχι
timeBucketAggregateTimeBucketΌχι
startDateDateΌχι
forceRecalculatebooleanΌχι

Απάντηση

Επιστρέφει: AggregateQuestionResults200Response

Παράδειγμα

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

Μαζική συγκέντρωση αποτελεσμάτων ερωτήσεων Internal Link

Παράμετροι

ΌνομαΤύποςΑπαιτείταιΠεριγραφή
tenantIdstringΝαι
bulkAggregateQuestionResultsRequestBulkAggregateQuestionResultsRequestΝαι
forceRecalculatebooleanΌχι

Απάντηση

Επιστρέφει: BulkAggregateQuestionResults200Response

Παράδειγμα

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

Συνδυασμός σχολίων με αποτελέσματα ερωτήσεων Internal Link

Παράμετροι

NameΤύποςΑπαιτείταιΠεριγραφή
tenantIdstringΝαι
questionIdstringΌχι
questionIdsArrayΌχι
urlIdstringΌχι
startDateDateΌχι
forceRecalculatebooleanΌχι
minValuenumberΌχι
maxValuenumberΌχι
limitnumberΌχι

Απόκριση

Επιστρέφει: CombineCommentsWithQuestionResults200Response

Παράδειγμα

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

Προσθήκη χρήστη SSO Internal Link


Παράμετροι

ΌνομαΤύποςΑπαιτείταιΠεριγραφή
tenantIdstringΝαι
createAPISSOUserDataCreateAPISSOUserDataΝαι

Απάντηση

Επιστρέφει: AddSSOUserAPIResponse


Διαγραφή χρήστη SSO Internal Link


Παράμετροι

ΌνομαΤύποςΑπαραίτητοΠεριγραφή
tenantIdstringΝαι
idstringΝαι
deleteCommentsbooleanΌχι
commentDeleteModestringΌχι

Απόκριση

Επιστρέφει: DeleteSSOUserAPIResponse


Λήψη χρήστη SSO με email Internal Link


Παράμετροι

ΌνομαΤύποςΑπαιτείταιΠεριγραφή
tenantIdstringΝαι
emailstringΝαι

Απόκριση

Επιστρέφει: GetSSOUserByEmailAPIResponse


Λήψη χρήστη SSO με ID Internal Link


Παράμετροι

ΌνομαΤύποςΑπαιτείταιΠεριγραφή
tenantIdstringΝαι
idstringΝαι

Απόκριση

Επιστρέφει: GetSSOUserByIdAPIResponse


Λήψη χρηστών SSO Internal Link

Παράμετροι

ΌνομαΤύποςΑπαιτείταιΠεριγραφή
tenantIdstringΝαι
skipnumberΌχι

Response

Επιστρέφει: GetSSOUsers200Response


Τροποποίηση χρήστη SSO (PATCH) Internal Link

Παράμετροι

ΌνομαΤύποςΑπαιτείταιΠεριγραφή
tenantIdstringΝαι
idstringΝαι
updateAPISSOUserDataUpdateAPISSOUserDataΝαι
updateCommentsbooleanΌχι

Απόκριση

Επιστρέφει: PatchSSOUserAPIResponse


Αντικατάσταση χρήστη SSO (PUT) Internal Link

Παράμετροι

NameTypeRequiredDescription
tenantIdstringΝαι
idstringΝαι
updateAPISSOUserDataUpdateAPISSOUserDataΝαι
updateCommentsbooleanΌχι

Ανταπόκριση

Επιστρέφει: PutSSOUserAPIResponse

Παράδειγμα

Παράδειγμα putSSOUser
Copy Copy
1
2const tenantId: string = 'acme-enterprises-42';
3const id: string = 'usr-73a1b2';
4const updateAPISSOUserData: UpdateAPISSOUserData = {
5 email: 'marcus.ingram@acme.com',
6 givenName: 'Marcus',
7 familyName: 'Ingram',
8 roles: ['editor', 'project_owner'],
9 enabled: true
10};
11const result: PutSSOUserAPIResponse = await putSSOUser(tenantId, id, updateAPISSOUserData, true);
12

Δημιουργία συνδρομής Internal Link

Παράμετροι

ΌνομαΤύποςΑπαραίτητοΠεριγραφή
tenantIdstringΝαι
createAPIUserSubscriptionDataCreateAPIUserSubscriptionDataΝαι

Απόκριση

Επιστρέφει: CreateSubscriptionAPIResponse

Παράδειγμα

Παράδειγμα createSubscription
Copy Copy
1
2const tenantId: string = "acme-corp-tenant-123";
3const createAPIUserSubscriptionData: CreateAPIUserSubscriptionData = {
4 userId: "user_98765",
5 planId: "pro_monthly",
6 paymentMethod: { type: "card", cardId: "card_abc123" },
7 autoRenew: true,
8 trialDays: 14, // προαιρετική παράμετρος
9 metadata: { campaign: "spring_launch" } // προαιρετική παράμετρος
10};
11const result: CreateSubscriptionAPIResponse = await createSubscription(tenantId, createAPIUserSubscriptionData);
12

Διαγραφή συνδρομής Internal Link

Παράμετροι

ΌνομαΤύποςΑπαιτείταιΠεριγραφή
tenantIdstringΝαι
idstringΝαι
userIdstringΌχι

Απόκριση

Επιστρέφει: DeleteSubscriptionAPIResponse


Λήψη συνδρομών Internal Link

Παράμετροι

ΌνομαΤύποςΑπαιτείταιΠεριγραφή
tenantIdstringΝαι
userIdstringΌχι

Απόκριση

Επιστρέφει: GetSubscriptionsAPIResponse

Παράδειγμα

Παράδειγμα getSubscriptions
Copy Copy
1
2const tenantId: string = "contoso-9a1b2c";
3const userId: string = "u-482f6";
4const subscriptions: GetSubscriptionsAPIResponse = await getSubscriptions(tenantId);
5const userSubscriptions: GetSubscriptionsAPIResponse = await getSubscriptions(tenantId, userId);
6

Ενημέρωση συνδρομής Internal Link

Παράμετροι

ΌνομαΤύποςΥποχρεωτικόΠεριγραφή
tenantIdstringΝαι
idstringΝαι
updateAPIUserSubscriptionDataUpdateAPIUserSubscriptionDataΝαι
userIdstringΌχι

Απόκριση

Επιστρέφει: UpdateSubscriptionAPIResponse

Παράδειγμα

Παράδειγμα updateSubscription
Copy Copy
1
2const tenantId: string = 'tenant_9f3b2c';
3const subscriptionId: string = 'sub_7641a2b3';
4const updateData: UpdateAPIUserSubscriptionData = {
5 status: 'active',
6 planId: 'pro_annual',
7 autoRenew: true,
8 renewalDate: '2026-04-15T00:00:00Z',
9 metadata: { upgradedBy: 'billing-team' }
10};
11const userId: string = 'user_215';
12const result: UpdateSubscriptionAPIResponse = await updateSubscription(tenantId, subscriptionId, updateData, userId);
13

Λήψη ημερήσιας χρήσης ενοικιαστή Internal Link

Παράμετροι

ΌνομαΤύποςΑπαιτείταιΠεριγραφή
tenantIdstringΝαι
yearNumbernumberΌχι
monthNumbernumberΌχι
dayNumbernumberΌχι
skipnumberΌχι

Απάντηση

Επιστρέφει: GetTenantDailyUsages200Response

Παράδειγμα

getTenantDailyUsages Παράδειγμα
Copy Copy
1
2const tenantId: string = 'tenant_5f4a3b2c-1d6e-4f9a-b9d8-123456789abc';
3const yearNumber: number = 2026;
4const monthNumber: number = 3;
5const dayNumber: number = 24;
6const skip: number = 0;
7
8const result: GetTenantDailyUsages200Response = await getTenantDailyUsages(tenantId, yearNumber, monthNumber, dayNumber, skip);
9

Δημιουργία πακέτου ενοικιαστή Internal Link


Παράμετροι

ΌνομαΤύποςΑπαιτείταιΠεριγραφή
tenantIdstringΝαι
createTenantPackageBodyCreateTenantPackageBodyΝαι

Απάντηση

Επιστρέφει: CreateTenantPackage200Response

Παράδειγμα

Παράδειγμα createTenantPackage
Copy Copy
1
2const tenantId: string = "tenant_acme-corp_001";
3const createTenantPackageBody: CreateTenantPackageBody = {
4 name: "Acme Standard Package",
5 description: "Default package for Acme Corp comments with moderation and SSO enabled",
6 enabled: true,
7 maxCommentsPerThread: 500,
8 voteStyle: "thumbs",
9 gifRating: "PG-13",
10 tosConfig: { enabled: true, url: "https://acme.example.com/terms" } // προαιρετική παράμετρος
11};
12const result: CreateTenantPackage200Response = await createTenantPackage(tenantId, createTenantPackageBody);
13

Διαγραφή πακέτου ενοικιαστή Internal Link

Παράμετροι

ΌνομαΤύποςΑπαιτείταιΠεριγραφή
tenantIdstringΝαι
idstringΝαι

Απάντηση

Επιστρέφει: FlagCommentPublic200Response

Παράδειγμα

Παράδειγμα deleteTenantPackage
Copy Copy
1
2(async () => {
3 const tenantId: string = "tenant_8f3a2b4c9d01";
4 const packageId: string = "pkg_2026-04-security-patch";
5 const result: FlagCommentPublic200Response = await deleteTenantPackage(tenantId, packageId);
6 console.log(result);
7})();
8

Λήψη πακέτου ενοικιαστή Internal Link

Παράμετροι

ΌνομαΤύποςΑπαιτείταιΠεριγραφή
tenantIdstringΝαι
idstringΝαι

Απόκριση

Επιστρέφει: GetTenantPackage200Response

Παράδειγμα

Παράδειγμα getTenantPackage
Copy Copy
1
2const tenantId: string = 'tenant_7f3b2c8';
3const packageId: string = 'pkg_standard_2026';
4const requestOptions: { includeConfig?: boolean } = { includeConfig: true };
5const packageResponse: GetTenantPackage200Response = await getTenantPackage(tenantId, packageId);
6

Λήψη πακέτων ενοικιαστή Internal Link


Παράμετροι

ΌνομαΤύποςΑπαιτείταιΠεριγραφή
tenantIdstringΝαι
skipnumberΌχι

Απόκριση

Επιστρέφει: GetTenantPackages200Response

Παράδειγμα

Παράδειγμα getTenantPackages
Copy Copy
1
2const tenantId: string = 'tenant-7b3c2f';
3const skipCount: number = 10;
4const packages: GetTenantPackages200Response = await getTenantPackages(tenantId, skipCount);
5const packagesFromStart: GetTenantPackages200Response = await getTenantPackages(tenantId);
6

Αντικατάσταση πακέτου ενοικιαστή Internal Link

Παράμετροι

ΌνομαΤύποςΑπαιτείταιΠεριγραφή
tenantIdstringΝαι
idstringΝαι
replaceTenantPackageBodyReplaceTenantPackageBodyΝαι

Απόκριση

Επιστρέφει: FlagCommentPublic200Response

Παράδειγμα

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

Ενημέρωση πακέτου ενοικιαστή Internal Link

Παράμετροι

ΌνομαΤύποςΑπαιτείταιΠεριγραφή
tenantIdstringΝαι
idstringΝαι
updateTenantPackageBodyUpdateTenantPackageBodyΝαι

Απόκριση

Επιστρέφει: FlagCommentPublic200Response

Παράδειγμα

Παράδειγμα updateTenantPackage
Copy Copy
1
2(async () => {
3 const tenantId: string = "tenant_sf_001";
4 const id: string = "pkg-premium-v2";
5 const updateTenantPackageBody: UpdateTenantPackageBody = {
6 name: "San Francisco Premium",
7 enabled: true,
8 customConfig: { maxComments: 500 },
9 tosConfig: { required: true } // προαιρετικά πεδία επιδεικνύονται με την παρουσία· τα υπόλοιπα παραλείπονται
10 } as UpdateTenantPackageBody;
11 const result: FlagCommentPublic200Response = await updateTenantPackage(tenantId, id, updateTenantPackageBody);
12 console.log(result);
13})();
14

Δημιουργία χρήστη ενοικιαστή Internal Link

Παράμετροι

ΌνομαΤύποςΑπαιτείταιΠεριγραφή
tenantIdstringΝαι
createTenantUserBodyCreateTenantUserBodyΝαι

Απόκριση

Επιστρέφει: CreateTenantUser200Response

Παράδειγμα

Παράδειγμα createTenantUser
Copy Copy
1
2const tenantId: string = "tenant_74b3a9f4b";
3const createTenantUserBody: CreateTenantUserBody = {
4 email: "jane.doe@acmecorp.com",
5 displayName: "Jane Doe",
6 role: "moderator",
7 sendWelcomeEmail: true, // προαιρετική παράμετρος (παράδειγμα)
8 metadata: { department: "Customer Support" }
9};
10const result: CreateTenantUser200Response = await createTenantUser(tenantId, createTenantUserBody);
11

Διαγραφή χρήστη ενοικιαστή Internal Link

Παράμετροι

NameTypeRequiredDescription
tenantIdstringΝαι
idstringΝαι
deleteCommentsstringΌχι
commentDeleteModestringΌχι

Απόκριση

Επιστρέφει: FlagCommentPublic200Response

Παράδειγμα

Παράδειγμα deleteTenantUser
Copy Copy
1
2async function run(): Promise<void> {
3 const tenantId: string = "acme_corp_tenant_9f1a2b";
4 const id: string = "user_4d2a1b6c";
5 const deleteComments: string = "true"; // αφαίρεσε και τα σχόλια του χρήστη
6 const commentDeleteMode: string = "permanent"; // "permanent" ή "soft"
7 const result: FlagCommentPublic200Response = await deleteTenantUser(tenantId, id, deleteComments, commentDeleteMode);
8 console.log(result);
9}
10run();
11

Λήψη χρήστη ενοικιαστή Internal Link

Παράμετροι

ΌνομαΤύποςΑπαιτείταιΠεριγραφή
tenantIdstringΝαι
idstringΝαι

Απόκριση

Επιστρέφει: GetTenantUser200Response

Παράδειγμα

Παράδειγμα getTenantUser
Copy Copy
1
2const tenantId: string = 'tenant_fc5a9b2c';
3const userId: string = 'user_0a12b3';
4const result: GetTenantUser200Response = await getTenantUser(tenantId, userId);
5const user: User | undefined = (result as any).user; // πρόσβαση στο payload
6const userEmail: string | undefined = user?.email;
7console.log('Fetched user email:', userEmail);
8

Λήψη χρηστών ενοικιαστή Internal Link

Παράμετροι

ΌνομαΤύποςΑπαιτείταιΠεριγραφή
tenantIdstringΝαι
skipnumberΌχι

Απόκριση

Επιστρέφει: GetTenantUsers200Response

Παράδειγμα

Παράδειγμα getTenantUsers
Copy Copy
1
2const tenantId: string = 'tenant_prod_8a3f2c';
3const skip: number = 50;
4const usersWithSkip: GetTenantUsers200Response = await getTenantUsers(tenantId, skip);
5const usersNoSkip: GetTenantUsers200Response = await getTenantUsers(tenantId);
6

Αντικατάσταση χρήστη ενοικιαστή Internal Link

Παράμετροι

ΌνομαΤύποςΑπαιτείταιΠεριγραφή
tenantIdstringΝαι
idstringΝαι
replaceTenantUserBodyReplaceTenantUserBodyΝαι
updateCommentsstringΌχι

Απόκριση

Επιστρέφει: FlagCommentPublic200Response

Παράδειγμα

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

Παράμετροι

ΌνομαΤύποςΑπαραίτητοΠεριγραφή
tenantIdstringΝαι
idstringΝαι
redirectURLstringΌχι

Απόκριση

Επιστρέφει: FlagCommentPublic200Response

Παράδειγμα

Παράδειγμα sendLoginLink
Copy Copy
1
2const tenantId: string = "tenant_12a9f3b7";
3const id: string = "user_84b2c7d1";
4const redirectURL: string = "https://app.mycompany.com/welcome?ref=login_email";
5const resultWithoutRedirect: FlagCommentPublic200Response = await sendLoginLink(tenantId, id);
6const resultWithRedirect: FlagCommentPublic200Response = await sendLoginLink(tenantId, id, redirectURL);
7

Ενημέρωση χρήστη ενοικιαστή Internal Link


Παράμετροι

ΌνομαΤύποςΑπαραίτητοΠεριγραφή
tenantIdstringΝαι
idstringΝαι
updateTenantUserBodyUpdateTenantUserBodyΝαι
updateCommentsstringΌχι

Απόκριση

Επιστρέφει: FlagCommentPublic200Response

Παράδειγμα

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

Δημιουργία ενοικιαστή Internal Link


Παράμετροι

ΌνομαΤύποςΑπαιτείταιΠεριγραφή
tenantIdstringYes
createTenantBodyCreateTenantBodyYes

Απόκριση

Επιστρέφει: CreateTenant200Response

Παράδειγμα

Παράδειγμα createTenant
Copy Copy
1
2const tenantId: string = 'acme-corp-001';
3const createTenantBody: CreateTenantBody = {
4 name: 'Acme Corporation',
5 domainConfiguration: { primaryDomain: 'comments.acme.com', enforceHttps: true } as APIDomainConfiguration,
6 billingInfo: { planId: 'enterprise', contactEmail: 'billing@acme.com' } as BillingInfo
7 // τα προαιρετικά πεδία όπως ssoConfig ή customConfig παραλείπονται σκόπιμα
8} as CreateTenantBody;
9
10const result: CreateTenant200Response = await createTenant(tenantId, createTenantBody);
11

Διαγραφή ενοικιαστή Internal Link

Παράμετροι

ΌνομαΤύποςΑπαιτείταιΠεριγραφή
tenantIdstringΝαι
idstringΝαι
surestringΌχι

Απόκριση

Επιστρέφει: FlagCommentPublic200Response

Παράδειγμα

Παράδειγμα deleteTenant
Copy Copy
1
2const tenantId: string = 'tenant_42c9f1';
3const id: string = 'flag_9a7b3c';
4const sure: string = 'confirm-delete';
5const result: FlagCommentPublic200Response = await deleteTenant(tenantId, id, sure);
6

Λήψη ενοικιαστή Internal Link

Παράμετροι

ΌνομαΤύποςΑπαιτείταιΠεριγραφή
tenantIdstringΝαι
idstringΝαι

Απόκριση

Επιστρέφει: GetTenant200Response

Παράδειγμα

Παράδειγμα getTenant
Copy Copy
1
2const tenantId: string = "tenant_9f4b2c1a";
3const idOverride: string | undefined = undefined; // προαιρετική υπερίσχυση, αν υπάρχει
4const id: string = idOverride ?? "site_3e7a6b2f";
5const response: GetTenant200Response = await getTenant(tenantId, id);
6console.log(response);
7

Λήψη ενοικιαστών Internal Link

Παράμετροι

ΌνομαΤύποςΑπαιτείταιΠεριγραφή
tenantIdstringΝαι
metastringΌχι
skipnumberΌχι

Απόκριση

Επιστρέφει: GetTenants200Response

Παράδειγμα

Παράδειγμα getTenants
Copy Copy
1
2const tenantId: string = 'tenant_8421e7';
3const meta: string = 'include=domains,billing,customConfig';
4const skip: number = 20;
5
6const tenantsBasic: GetTenants200Response = await getTenants(tenantId);
7const tenantsWithOptions: GetTenants200Response = await getTenants(tenantId, meta, skip);
8

Ενημέρωση ενοικιαστή Internal Link

Παράμετροι

NameTypeRequiredDescription
tenantIdstringΝαι
idstringΝαι
updateTenantBodyUpdateTenantBodyΝαι

Απάντηση

Επιστρέφει: FlagCommentPublic200Response

Παράδειγμα

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

Αλλαγή κατάστασης εισιτηρίου Internal Link

Παράμετροι

ΌνομαΤύποςΑπαιτείταιΠεριγραφή
tenantIdstringΝαι
userIdstringΝαι
idstringΝαι
changeTicketStateBodyChangeTicketStateBodyΝαι

Απάντηση

Επιστρέφει: ChangeTicketState200Response

Παράδειγμα

Παράδειγμα changeTicketState
Copy Copy
1
2const tenantId: string = "tenant_7f3b2c9a";
3const userId: string = "user_5a1d9fb2";
4const id: string = "ticket_3e8a1b6f";
5const changeTicketStateBody: ChangeTicketStateBody = {
6 state: "closed",
7 reason: "Fixed in backend release 2.4.1",
8 notifyUsers: true,
9 metadata: { resolutionOwner: "agent_12", priority: "high" } // επιδεικνύονται προαιρετικά πεδία
10};
11const result: ChangeTicketState200Response = await changeTicketState(tenantId, userId, id, changeTicketStateBody);
12

Δημιουργία εισιτηρίου Internal Link


Παράμετροι

NameTypeRequiredDescription
tenantIdstringΝαι
userIdstringΝαι
createTicketBodyCreateTicketBodyΝαι

Απόκριση

Επιστρέφει: CreateTicket200Response

Παράδειγμα

Παράδειγμα createTicket
Copy Copy
1
2const tenantId: string = 'acme-company-001';
3const userId: string = 'u_78f4b2';
4const createTicketBody: CreateTicketBody = {
5 title: 'Unable to access project dashboard',
6 description: 'Receiving 403 when accessing /dashboard for project X',
7 priority: 'high',
8 tags: ['dashboard', 'access'] // προαιρετικό πεδίο (παράδειγμα)
9};
10const result: CreateTicket200Response = await createTicket(tenantId, userId, createTicketBody);
11

Λήψη εισιτηρίου Internal Link

Παράμετροι

NameTypeRequiredDescription
tenantIdstringΝαι
idstringΝαι
userIdstringΌχι

Απόκριση

Επιστρέφει: GetTicket200Response

Παράδειγμα

Παράδειγμα getTicket
Copy Copy
1
2const tenantId: string = 'acme-corp-tenant-01';
3const ticketId: string = 'tkt-20260325-42';
4const userId: string = 'user-8452';
5
6const ticketResponseWithUser: GetTicket200Response = await getTicket(tenantId, ticketId, userId);
7const ticketResponseWithoutUser: GetTicket200Response = await getTicket(tenantId, ticketId);
8

Λήψη εισιτηρίων Internal Link

Παράμετροι

ΌνομαΤύποςΑπαραίτητοΠεριγραφή
tenantIdstringΝαι
userIdstringΌχι
statenumberΌχι
skipnumberΌχι
limitnumberΌχι

Απόκριση

Επιστρέφει: GetTickets200Response

Παράδειγμα

Παράδειγμα getTickets
Copy Copy
1
2const tenantId: string = "tenant_92f3b4c1";
3const userId: string = "user_742a9f3e";
4const state: number = 1;
5const skip: number = 0;
6const limit: number = 25;
7const ticketsFull: GetTickets200Response = await getTickets(tenantId, userId, state, skip, limit);
8const ticketsMinimal: GetTickets200Response = await getTickets("tenant_92f3b4c1");
9

Λήψη μεταφράσεων Internal Link

Παράμετροι

NameTypeRequiredDescription
namespacestringΝαι
componentstringΝαι
localestringΌχι
useFullTranslationIdsbooleanΌχι

Απόκριση

Επιστρέφει: GetTranslationsResponse

Παράδειγμα

Παράδειγμα getTranslations
Copy Copy
1
2const translationsDefault: GetTranslationsResponse = await getTranslations("payments", "checkout");
3const translationsFrenchDetailed: GetTranslationsResponse = await getTranslations("payments", "checkout", "fr-FR", true);
4

Μεταφόρτωση εικόνας Internal Link

Ανέβασμα και αλλαγή μεγέθους εικόνας

Παράμετροι

ΌνομαΤύποςΑπαιτείταιΠεριγραφή
tenantIdstringΝαι
fileBlobΝαι
sizePresetSizePresetΌχι
urlIdstringΌχι

Απόκριση

Επιστρέφει: UploadImageResponse

Λήψη προόδου διακριτικού χρήστη κατά ID Internal Link

Παράμετροι

ΌνομαΤύποςΑπαιτείταιΠεριγραφή
tenantIdstringΝαι
idstringΝαι

Απάντηση

Επιστρέφει: GetUserBadgeProgressById200Response

Παράδειγμα

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

Λήψη προόδου διακριτικού χρήστη κατά User ID Internal Link

Παράμετροι

ΌνομαΤύποςΑπαιτείταιΠεριγραφή
tenantIdstringΝαι
userIdstringΝαι

Απόκριση

Επιστρέφει: GetUserBadgeProgressById200Response

Παράδειγμα

Παράδειγμα getUserBadgeProgressByUserId
Copy Copy
1
2const tenantId: string = 'tenant_7f9c2d3b';
3const maybeUserId: string | undefined = 'user_4b8e1f9a'; // προαιρετική προέλευση (μπορεί να είναι undefined)
4const userId: string = maybeUserId ?? 'user_fallback0001';
5const result: GetUserBadgeProgressById200Response = await getUserBadgeProgressByUserId(tenantId, userId);
6console.log(result);
7

Λήψη λίστας προόδου διακριτικών χρήστη Internal Link

Παράμετροι

ΌνομαΤύποςΑπαιτείταιΠεριγραφή
tenantIdstringΝαι
userIdstringΌχι
limitnumberΌχι
skipnumberΌχι

Απόκριση

Επιστρέφει: GetUserBadgeProgressList200Response

Παράδειγμα

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

Δημιουργία διακριτικού χρήστη Internal Link

Παράμετροι

ΌνομαΤύποςΑπαιτείταιΠεριγραφή
tenantIdstringΝαι
createUserBadgeParamsCreateUserBadgeParamsΝαι

Απόκριση

Επιστρέφει: CreateUserBadge200Response

Παράδειγμα

Παράδειγμα createUserBadge
Copy Copy
1
2const tenantId: string = "tenant_9a8b7c";
3const params: CreateUserBadgeParams = {
4 name: "Top Contributor",
5 slug: "top-contributor",
6 description: "Awarded for 100 approved comments",
7 iconUrl: "https://cdn.fastcomments.com/badges/top-contributor.png",
8 active: true,
9 criteria: { approvedComments: 100 },
10 customConfig: { showOnProfile: true } // προαιρετική παράμετρος
11};
12const result: CreateUserBadge200Response = await createUserBadge(tenantId, params);
13

Διαγραφή διακριτικού χρήστη Internal Link

Παράμετροι

ΌνομαΤύποςΑπαιτείταιΠεριγραφή
tenantIdstringΝαι
idstringΝαι

Απόκριση

Επιστρέφει: UpdateUserBadge200Response

Παράδειγμα

Παράδειγμα deleteUserBadge
Copy Copy
1
2type DeleteOptions = { notifyModerators?: boolean };
3
4const tenantId: string = 'tenant_8a3f21';
5const id: string = 'badge_71f2b';
6const options: DeleteOptions = { notifyModerators: true };
7
8const result: UpdateUserBadge200Response = await deleteUserBadge(tenantId, id);
9

Λήψη διακριτικού χρήστη Internal Link

Παράμετροι

ΌνομαΤύποςΑπαιτείταιΠεριγραφή
tenantIdstringΝαι
idstringΝαι

Απάντηση

Επιστρέφει: GetUserBadge200Response

Παράδειγμα

Παράδειγμα getUserBadge
Copy Copy
1
2const tenantId: string = "tenant_acme_01";
3const id: string = "badge_8c7d2f";
4const response: GetUserBadge200Response = await getUserBadge(tenantId, id);
5

Λήψη διακριτικών χρήστη Internal Link

Παράμετροι

ΌνομαΤύποςΑπαιτείταιΠεριγραφή
tenantIdstringYes
userIdstringNo
badgeIdstringNo
typenumberNo
displayedOnCommentsbooleanNo
limitnumberNo
skipnumberNo

Απόκριση

Επιστρέφει: GetUserBadges200Response

Παράδειγμα

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

Ενημέρωση διακριτικού χρήστη Internal Link

Παράμετροι

ΌνομαΤύποςΑπαιτείταιΠεριγραφή
tenantIdstringΝαι
idstringΝαι
updateUserBadgeParamsUpdateUserBadgeParamsΝαι

Απάντηση

Επιστρέφει: UpdateUserBadge200Response

Παράδειγμα

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

Λήψη αριθμού ειδοποιήσεων χρήστη Internal Link

Παράμετροι

ΌνομαΤύποςΑπαιτείταιΠεριγραφή
tenantIdstringΝαι
ssostringΌχι

Απόκριση

Επιστρέφει: GetUserNotificationCount200Response

Παράδειγμα

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

Λήψη ειδοποιήσεων χρήστη Internal Link

Παράμετροι

ΌνομαΤύποςΑπαιτείταιΠεριγραφή
tenantIdstringΝαι
pageSizenumberΌχι
afterIdstringΌχι
includeContextbooleanΌχι
afterCreatedAtnumberΌχι
unreadOnlybooleanΌχι
dmOnlybooleanΌχι
noDmbooleanΌχι
includeTranslationsbooleanΌχι
ssostringΌχι

Απάντηση

Επιστρέφει: GetUserNotifications200Response

Παράδειγμα

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

Επαναφορά αριθμού ειδοποιήσεων χρήστη Internal Link

Παράμετροι

NameTypeRequiredDescription
tenantIdstringΝαι
ssostringΌχι

Απόκριση

Επιστρέφει: ResetUserNotifications200Response

Παράδειγμα

Παράδειγμα resetUserNotificationCount
Copy Copy
1
2(async () => {
3 const tenantId: string = "tenant_9f3b2c4a";
4 const ssoToken: string | undefined = "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9._sample_payload_.signature";
5 const responseWithSSO: ResetUserNotifications200Response = await resetUserNotificationCount(tenantId, ssoToken);
6 const responseWithoutSSO: ResetUserNotifications200Response = await resetUserNotificationCount(tenantId);
7 console.log(responseWithSSO, responseWithoutSSO);
8})();
9

Επαναφορά ειδοποιήσεων χρήστη Internal Link

Παράμετροι

ΌνομαΤύποςΑπαιτείταιΠεριγραφή
tenantIdstringΝαι
afterIdstringΌχι
afterCreatedAtnumberΌχι
unreadOnlybooleanΌχι
dmOnlybooleanΌχι
noDmbooleanΌχι
ssostringΌχι

Απόκριση

Επιστρέφει: ResetUserNotifications200Response

Παράδειγμα

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

Ενημέρωση κατάστασης εγγραφής ειδοποιήσεων σχολίων χρήστη Internal Link

Ενεργοποιήστε ή απενεργοποιήστε τις ειδοποιήσεις για ένα συγκεκριμένο σχόλιο.

Παράμετροι

ΌνομαΤύποςΑπαιτείταιΠεριγραφή
tenantIdstringΝαι
notificationIdstringΝαι
optedInOrOutUpdateUserNotificationCommentSubscriptionStatusOptedInOrOutEnumΝαι
commentIdstringΝαι
ssostringΌχι

Απόκριση

Επιστρέφει: UpdateUserNotificationStatus200Response

Παράδειγμα

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

Ενημέρωση κατάστασης εγγραφής ειδοποιήσεων σελίδας χρήστη Internal Link

Ενεργοποιήστε ή απενεργοποιήστε τις ειδοποιήσεις για μια σελίδα. Όταν οι χρήστες είναι εγγεγραμμένοι σε μια σελίδα, δημιουργούνται ειδοποιήσεις για νέα ριζικά σχόλια, και επίσης

Parameters

NameTypeRequiredDescription
tenantIdstringΝαι
urlIdstringΝαι
urlstringΝαι
pageTitlestringΝαι
subscribedOrUnsubscribedUpdateUserNotificationPageSubscriptionStatusSubscribedOrUnsubscribedEnumΝαι
ssostringΌχι

Response

Επιστρέφει: UpdateUserNotificationStatus200Response

Παράδειγμα

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

Ενημέρωση κατάστασης ειδοποίησης χρήστη Internal Link

Παράμετροι

ΌνομαΤύποςΑπαιτείταιΠεριγραφή
tenantIdstringΝαι
notificationIdstringΝαι
newStatusUpdateUserNotificationStatusNewStatusEnumΝαι
ssostringΌχι

Απόκριση

Επιστρέφει: UpdateUserNotificationStatus200Response

Παράδειγμα

Παράδειγμα updateUserNotificationStatus
Copy Copy
1
2const tenantId: string = 'tenant_84a2c3';
3const notificationId: string = 'notif_20260325_01';
4const newStatus: UpdateUserNotificationStatusNewStatusEnum = UpdateUserNotificationStatusNewStatusEnum.Read;
5const sso: string = 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.sso_signature_example';
6const result: UpdateUserNotificationStatus200Response = await updateUserNotificationStatus(tenantId, notificationId, newStatus, sso);
7

Λήψη καταστάσεων παρουσίας χρήστη Internal Link

Παράμετροι

ΌνομαΤύποςΑπαιτείταιΠεριγραφή
tenantIdstringΝαι
urlIdWSstringΝαι
userIdsstringΝαι

Απόκριση

Επιστρέφει: GetUserPresenceStatuses200Response

Παράδειγμα

Παράδειγμα getUserPresenceStatuses
Copy Copy
1
2const tenantId: string = 'tenant_7f3a2b';
3const urlIdWS: string = 'articles/2026/03/25/fastcomments-integration';
4const maybeUserIds: string | undefined = 'user_123,user_456'; // προαιρετική πηγή
5const userIds: string = maybeUserIds ?? 'user_123';
6const presence: GetUserPresenceStatuses200Response = await getUserPresenceStatuses(tenantId, urlIdWS, userIds);
7

Αναζήτηση χρηστών Internal Link

Παράμετροι

NameTypeRequiredDescription
tenantIdstringΝαι
urlIdstringΝαι
usernameStartsWithstringΌχι
mentionGroupIdsArrayΌχι
ssostringΌχι
searchSectionSearchUsersSearchSectionEnumΌχι

Απόκριση

Επιστρέφει: SearchUsers200Response

Παράδειγμα

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

Λήψη χρήστη Internal Link


Παράμετροι

ΌνομαΤύποςΑπαιτείταιΠεριγραφή
tenantIdstringΝαι
idstringΝαι

Απόκριση

Επιστρέφει: GetUser200Response

Παράδειγμα

Παράδειγμα getUser
Copy Copy
1
2const idSuffix: string | undefined = undefined;
3const tenantId: string = "acme-enterprises";
4const id: string = idSuffix ?? "user_98765";
5const response: GetUser200Response = await getUser({ tenantId, id });
6

Δημιουργία ψήφου Internal Link


Παράμετροι

ΌνομαΤύποςΑπαιτείταιΠεριγραφή
tenantIdstringΝαι
commentIdstringΝαι
directionCreateVoteDirectionEnumΝαι
userIdstringΌχι
anonUserIdstringΌχι

Απόκριση

Επιστρέφει: VoteComment200Response

Παράδειγμα

Παράδειγμα createVote
Copy Copy
1
2const tenantId: string = 'tenant_5f2a9b';
3const commentId: string = 'cmt_3b7e21';
4const direction: CreateVoteDirectionEnum = CreateVoteDirectionEnum.Up;
5const anonUserId: string = 'anon_9x7k2p';
6const voteResult: VoteComment200Response = await createVote(tenantId, commentId, direction, undefined, anonUserId);
7

Διαγραφή ψήφου Internal Link

Παράμετροι

ΌνομαΤύποςΥποχρεωτικόΠεριγραφή
tenantIdstringΝαι
idstringΝαι
editKeystringΌχι

Απόκριση

Επιστρέφει: DeleteCommentVote200Response

Παράδειγμα

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

Λήψη ψήφων Internal Link


Παράμετροι

ΌνομαΤύποςΑπαιτείταιΠεριγραφή
tenantIdstringΝαι
urlIdstringΝαι

Απόκριση

Επιστρέφει: GetVotes200Response

Παράδειγμα

Παράδειγμα getVotes
Copy Copy
1
2const tenantId: string = 'tenant-42c-eu';
3const urlId: string = 'article-7f9b';
4const includeMetadata: boolean | undefined = true;
5const votes: GetVotes200Response = await getVotes(tenantId, urlId);
6

Λήψη ψήφων για χρήστη Internal Link

Παράμετροι

ΌνομαΤύποςΑπαιτείταιΠεριγραφή
tenantIdstringΝαι
urlIdstringΝαι
userIdstringΌχι
anonUserIdstringΌχι

Απόκριση

Επιστρέφει: GetVotesForUser200Response

Παράδειγμα

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


Χρειάζεστε βοήθεια;

Εάν αντιμετωπίσετε προβλήματα ή έχετε ερωτήσεις σχετικά με το JavaScript/TypeScript SDK, παρακαλούμε:

Συνεισφορές

Οι συνεισφορές είναι ευπρόσδεκτες! Παρακαλούμε επισκεφθείτε το αποθετήριο GitHub για οδηγίες συνεισφοράς.