FastComments.com

SDK FastComments JavaScript/TypeScript

Este é o SDK oficial JavaScript/TypeScript para o FastComments.

Gerencie comentários, usuários, SSO e moderação a partir do Node.js ou do navegador.

Repositório

Ver no GitHub


Instalação Internal Link

npm

npm install fastcomments-sdk

Documentação da API Internal Link


Referência completa da API: docs/api/README.md

Compatibilidade Navegador vs Servidor Internal Link


Este SDK usa dois pontos de entrada para garantir compatibilidade ideal e prevenir erros em tempo de execução:

  • fastcomments-sdk/browser - Versão segura para navegador com fetch nativo
  • fastcomments-sdk/server - Versão completa para Node.js com suporte a SSO
  • fastcomments-sdk (padrão) - Apenas tipos, seguro para importar em qualquer lugar

APIs Públicas vs Seguras Internal Link

O SDK fornece três classes principais de API:

  • DefaultApi - Endpoints protegidos que exigem sua chave de API para autenticação. Use-os para operações do lado do servidor.
  • PublicApi - Endpoints públicos que podem ser acessados sem uma chave de API. Podem ser chamados diretamente de navegadores/dispositivos móveis/etc.
  • HiddenApi - Endpoints internos/administrador para casos de uso avançados.

Exemplo: Usando a PublicApi (seguro para navegador)

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

const publicApi = new PublicApi();

// Obter comentários de uma página (sem necessidade de chave de API)
const response = await publicApi.getCommentsPublic({
  tenantId: 'your-tenant-id',
  urlId: 'page-url-id'
});

Exemplo: Usando a DefaultApi (somente no servidor)

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

const config = new Configuration({
  apiKey: 'your-api-key' // Mantenha esta chave em segredo!
});
const defaultApi = new DefaultApi(config);

// Obter comentários com acesso administrativo completo
const response = await defaultApi.getComments({
  tenantId: 'your-tenant-id',
  urlId: 'page-url-id'
});

Integração SSO (Single Sign-On) Internal Link

FastComments oferece suporte a SSO para integrar com seu sistema de autenticação de usuários existente. A funcionalidade SSO está disponível apenas na exportação do servidor já que requer recursos de crypto do Node.js.

SSO Simples (Apenas no Lado do Servidor)

O SSO simples deve ser gerado no servidor e enviado ao cliente:

// Código do lado do servidor (Node.js/back-end)
import { FastCommentsSSO, PublicApi } from 'fastcomments-sdk/server';

// Crie um SSO simples usando o helper embutido  
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();

// Envie ssoToken para o código do cliente
// O código do lado do cliente pode então usar este token com o SDK para navegador

SSO Seguro (Lado do Servidor, Recomendado)

O SSO seguro deve ser implementado no servidor e oferece maior segurança:

// Código do lado do servidor (Node.js/back-end)
import { FastCommentsSSO, PublicApi } from 'fastcomments-sdk/server';

// Crie um SSO seguro usando o helper embutido
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();

// Use com chamadas de API no servidor
const publicApi = new PublicApi();
const response = await publicApi.getCommentsPublic({
  tenantId: 'your-tenant-id',
  urlId: 'page-url-id',
  sso: JSON.stringify(ssoConfig)
});

// Ou envie ssoConfig para o cliente para uso no navegador

Usando SSO a partir do Navegador (com Token Gerado pelo Servidor)

// Código do lado do cliente (navegador)
import { PublicApi } from 'fastcomments-sdk/browser';

// Obtenha o token SSO do endpoint do seu servidor
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 o token SSO gerado no servidor
});

SSO com Criação de Comentário

// Lado do servidor: Crie SSO e comentário
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)
});

Casos de Uso Comuns Internal Link

Obtendo Comentários de uma Página

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

Criando um Comentário

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

Votando em um Comentário

const voteResponse = await sdk.publicApi.voteComment({
  voteBodyParams: {
    commentId: 'comment-id',
    direction: 1 // 1 para voto positivo, -1 para voto negativo
  }
});

Gerenciamento de Usuários (Requer Chave de API)

// Pesquisar usuários (requer DefaultApi)
const users = await sdk.defaultApi.searchUsers({
  tenantId: 'your-tenant-id',
  urlId: 'page-id',
  usernameStartsWith: 'john'
});

Eventos ao Vivo (Atualizações em Tempo Real) Internal Link

Inscreva-se em eventos ao vivo para receber atualizações em tempo real sobre comentários, votos e outras atividades.

Eventos por página

Ouça eventos ao vivo em uma página específica (comentários, votos, etc.):

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

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

// Subscribe to live events for a page
const subscription = subscribeToChanges(
  config,
  'your-tenant-id', // tenantIdWS
  'page-url-id',    // urlIdWS  
  'user-session-id', // userIdWS (get this from getComments response)
  (event: LiveEvent) => {
    console.log('Live event received:', event);
    
    switch (event.type) {
      case LiveEventType.new_comment:
        console.log('New comment:', event.comment);
        // Update your UI with the new comment
        break;
      case LiveEventType.new_vote:
        console.log('New vote:', event.vote);
        // Update vote counts in your UI
        break;
      case LiveEventType.updated_comment:
        console.log('Comment updated:', event.comment);
        break;
      default:
        console.log('Other event type:', event.type);
    }
    
    return true; // Return true if event was handled
  },
  (isConnected: boolean) => {
    console.log('Connection status:', isConnected ? 'Connected' : 'Disconnected');
  }
);

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

Inscreva-se em eventos do usuário

Ouça eventos específicos do usuário (notificações, menções, etc.):

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

const userConfig = {
  userIdWS: 'user-session-id', // Get this from getComments response
};

// Subscribe to user's personal feed
const userSubscription = subscribeToUserFeed(
  userConfig,
  (event: LiveEvent) => {
    console.log('User event received:', event);
    
    switch (event.type) {
      case LiveEventType.notification:
        console.log('New notification:', event.notification);
        // Show notification in your 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();

Obtendo userIdWS

O parâmetro userIdWS é necessário para eventos ao vivo e pode ser obtido nas respostas da API:

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

// Extract userIdWS from the response
const userIdWS = response.data?.userSessionInfo?.userIdWS;

if (userIdWS) {
  // Now you can subscribe to live events
  const subscription = subscribeToChanges(config, tenantIdWS, urlIdWS, userIdWS, handleEvent);
}

IDs de Transmissão Internal Link

Você verá que deve passar um broadcastId em algumas chamadas de API. Quando você receber eventos, receberá esse ID de volta, então saberá ignorar o evento se planejar aplicar mudanças de forma otimista no cliente (o que você provavelmente desejará fazer, pois oferece a melhor experiência). Passe um UUID aqui. O ID deve ser suficientemente único para não ocorrer duas vezes em uma sessão do navegador.

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 único para esta operação
  }
});

Tratamento de Erros 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);
  }
}

Agregação Internal Link

Agrega documentos agrupando-os (se groupBy for fornecido) e aplicando múltiplas operações. Diferentes operações (por exemplo, sum, countDistinct, avg, etc.) são suportadas.

Parâmetros

NomeTipoObrigatórioDescrição
tenantIdstringSim
aggregationRequestAggregationRequestSim
parentTenantIdstringNão
includeStatsbooleanNão

Resposta

Retorna: AggregationResponse


Obter Registros de Auditoria Internal Link

Parâmetros

NameTypeRequiredDescription
tenantIdstringSim
limitnumberNão
skipnumberNão
orderSORTDIRNão
afternumberNão
beforenumberNão

Resposta

Retorna: GetAuditLogs200Response

Exemplo

Exemplo de 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 dias atrás
6const before: number = Date.now();
7const auditLogs: GetAuditLogs200Response = await getAuditLogs(tenantId, limit, skip, undefined, after, before);
8

Bloquear a Partir de Comentário (Público) Internal Link

Parâmetros

NomeTipoObrigatórioDescrição
tenantIdstringSim
commentIdstringSim
publicBlockFromCommentParamsPublicBlockFromCommentParamsSim
ssostringNão

Resposta

Retorna: BlockFromCommentPublic200Response

Exemplo

Exemplo de 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

Desbloquear Comentário (Público) Internal Link

Parâmetros

NameTypeRequiredDescription
tenantIdstringSim
commentIdstringSim
publicBlockFromCommentParamsPublicBlockFromCommentParamsSim
ssostringNão

Resposta

Retorna: UnBlockCommentPublic200Response

Exemplo

Exemplo de 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

Verificar Comentários Bloqueados Internal Link

Parâmetros

NomeTipoObrigatórioDescrição
tenantIdstringSim
commentIdsstringSim
ssostringNão

Resposta

Retorna: CheckedCommentsForBlocked200Response

Exemplo

Exemplo de 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

Bloquear Usuário a Partir de Comentário Internal Link

Parâmetros

NomeTipoObrigatórioDescrição
tenantIdstringSim
idstringSim
blockFromCommentParamsBlockFromCommentParamsSim
userIdstringNão
anonUserIdstringNão

Resposta

Retorna: BlockFromCommentPublic200Response

Exemplo

Exemplo de 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

Criar Comentário (Público) Internal Link

Parâmetros

NomeTipoObrigatórioDescrição
tenantIdstringSim
urlIdstringSim
broadcastIdstringSim
commentDataCommentDataSim
sessionIdstringNão
ssostringNão

Resposta

Retorna: CreateCommentPublic200Response

Exemplo

Exemplo de 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

Excluir Comentário Internal Link

Parâmetros

NomeTipoObrigatórioDescrição
tenantIdstringSim
idstringSim
contextUserIdstringNão
isLivebooleanNão

Resposta

Retorna: DeleteComment200Response

Exemplo

Exemplo de 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

Excluir Comentário (Público) Internal Link

Parâmetros

NomeTipoObrigatórioDescrição
tenantIdstringSim
commentIdstringSim
broadcastIdstringSim
editKeystringNão
ssostringNão

Resposta

Retorna: DeleteCommentPublic200Response

Exemplo

Exemplo de 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

Excluir Voto de Comentário Internal Link

Parâmetros

NomeTipoObrigatórioDescrição
tenantIdstringSim
commentIdstringSim
voteIdstringSim
urlIdstringSim
broadcastIdstringSim
editKeystringNão
ssostringNão

Resposta

Retorna: DeleteCommentVote200Response

Exemplo

Exemplo de 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

Denunciar Comentário Internal Link

Parâmetros

NomeTipoObrigatórioDescrição
tenantIdstringSim
idstringSim
userIdstringNão
anonUserIdstringNão

Resposta

Retorna: FlagComment200Response

Exemplo

Exemplo de 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

Obter Comentário Internal Link

Parâmetros

NameTypeRequiredDescription
tenantIdstringSim
idstringSim

Resposta

Retorna: GetComment200Response

Exemplo

Exemplo de 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

Obter Comentários Internal Link

Parâmetros

NomeTipoObrigatórioDescrição
tenantIdstringYes
pagenumberNo
limitnumberNo
skipnumberNo
asTreebooleanNo
skipChildrennumberNo
limitChildrennumberNo
maxTreeDepthnumberNo
urlIdstringNo
userIdstringNo
anonUserIdstringNo
contextUserIdstringNo
hashTagstringNo
parentIdstringNo
directionSortDirectionsNo

Resposta

Retorna: GetComments200Response

Exemplo

Exemplo de 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

Obter Comentários (Público) Internal Link

req tenantId urlId

Parâmetros

NomeTipoObrigatórioDescrição
tenantIdstringSim
urlIdstringSim
pagenumberNão
directionSortDirectionsNão
ssostringNão
skipnumberNão
skipChildrennumberNão
limitnumberNão
limitChildrennumberNão
countChildrenbooleanNão
fetchPageForCommentIdstringNão
includeConfigbooleanNão
countAllbooleanNão
includei10nbooleanNão
localestringNão
modulesstringNão
isCrawlerbooleanNão
includeNotificationCountbooleanNão
asTreebooleanNão
maxTreeDepthnumberNão
useFullTranslationIdsbooleanNão
parentIdstringNão
searchTextstringNão
hashTagsArrayNão
userIdstringNão
customConfigStrstringNão
afterCommentIdstringNão
beforeCommentIdstringNão

Resposta

Retorna: GetCommentsPublic200Response

Exemplo

Exemplo de 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

Obter Texto do Comentário Internal Link

Parâmetros

NomeTipoObrigatórioDescrição
tenantIdstringSim
commentIdstringSim
editKeystringNão
ssostringNão

Resposta

Retorna: GetCommentText200Response

Exemplo

Exemplo de 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

Obter Nomes de Usuários que Votaram no Comentário Internal Link

Parâmetros

NomeTipoObrigatórioDescrição
tenantIdstringSim
commentIdstringSim
dirnumberSim
ssostringNão

Resposta

Retorna: GetCommentVoteUserNames200Response

Exemplo

Exemplo de 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

Bloquear Comentário Internal Link


Parâmetros

NomeTipoObrigatórioDescrição
tenantIdstringSim
commentIdstringSim
broadcastIdstringSim
ssostringNão

Resposta

Retorna: LockComment200Response

Exemplo

Exemplo de 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

Fixar Comentário Internal Link

Parâmetros

NomeTipoObrigatórioDescrição
tenantIdstringSim
commentIdstringSim
broadcastIdstringSim
ssostringNão

Resposta

Retorna: PinComment200Response

Exemplo

Exemplo de 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

Salvar Comentário Internal Link

Parâmetros

NomeTipoObrigatórioDescrição
tenantIdstringSim
createCommentParamsCreateCommentParamsSim
isLivebooleanNão
doSpamCheckbooleanNão
sendEmailsbooleanNão
populateNotificationsbooleanNão

Resposta

Retorna: SaveComment200Response

Exemplo

Exemplo de 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

Salvar Comentários em Lote Internal Link

Parâmetros

NomeTipoObrigatórioDescrição
tenantIdstringSim
createCommentParamsArraySim
isLivebooleanNão
doSpamCheckbooleanNão
sendEmailsbooleanNão
populateNotificationsbooleanNão

Resposta

Retorna: Array<SaveComment200Response

Exemplo

Exemplo de 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

Definir Texto do Comentário Internal Link

Parâmetros

NomeTipoObrigatórioDescrição
tenantIdstringSim
commentIdstringSim
broadcastIdstringSim
commentTextUpdateRequestCommentTextUpdateRequestSim
editKeystringNão
ssostringNão

Resposta

Retorna: SetCommentText200Response

Exemplo

Exemplo de 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

Desbloquear Usuário a Partir de Comentário Internal Link

Parâmetros

NameTypeRequiredDescription
tenantIdstringSim
idstringSim
unBlockFromCommentParamsUnBlockFromCommentParamsSim
userIdstringNão
anonUserIdstringNão

Resposta

Retorna: UnBlockCommentPublic200Response

Exemplo

Exemplo 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

Remover Denúncia de Comentário Internal Link

Parâmetros

NameTypeRequiredDescription
tenantIdstringSim
idstringSim
userIdstringNão
anonUserIdstringNão

Resposta

Retorna: FlagComment200Response

Exemplo

Exemplo de 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

Destravar Comentário Internal Link

Parâmetros

NomeTipoObrigatórioDescrição
tenantIdstringYes
commentIdstringYes
broadcastIdstringYes
ssostringNo

Resposta

Retorna: LockComment200Response

Exemplo

Exemplo de 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

Remover Fixação do Comentário Internal Link

Parameters

NomeTipoObrigatórioDescrição
tenantIdstringSim
commentIdstringSim
broadcastIdstringSim
ssostringNão

Resposta

Retorna: PinComment200Response

Exemplo

Exemplo de 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

Atualizar Comentário Internal Link

Parâmetros

NomeTipoObrigatórioDescrição
tenantIdstringSim
idstringSim
updatableCommentParamsUpdatableCommentParamsSim
contextUserIdstringNão
doSpamCheckbooleanNão
isLivebooleanNão

Resposta

Retorna: FlagCommentPublic200Response

Exemplo

Exemplo de 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

Votar em Comentário Internal Link

Parâmetros

NomeTipoObrigatórioDescrição
tenantIdstringSim
commentIdstringSim
urlIdstringSim
broadcastIdstringSim
voteBodyParamsVoteBodyParamsSim
sessionIdstringNão
ssostringNão

Resposta

Retorna: VoteComment200Response

Exemplo

Exemplo de 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

Obter Comentários para Usuário Internal Link

Parâmetros

NameTypeRequiredDescription
userIdstringNão
tenantIdstringNão
urlIdstringNão
pagenumberNão
directionSortDirectionsNão
lastGenDatenumberNão
repliesToUserIdstringNão
fetchPageForCommentIdstringNão
includei10nbooleanNão
useFullTranslationIdsbooleanNão
localestringNão
includeConfigbooleanNão
includeNotificationCountbooleanNão
countAllbooleanNão
ssostringNão

Resposta

Retorna: GetCommentsForUserResponse

Exemplo

Exemplo de 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

Adicionar Configuração de Domínio Internal Link

Parâmetros

NameTypeRequiredDescription
tenantIdstringSim
addDomainConfigParamsAddDomainConfigParamsSim

Resposta

Retorna: AddDomainConfig200Response

Excluir Configuração de Domínio Internal Link


Parâmetros

NomeTipoObrigatórioDescrição
tenantIdstringSim
domainstringSim

Resposta

Retorna: DeleteDomainConfig200Response


Obter Configuração de Domínio Internal Link

Parâmetros

NomeTipoObrigatórioDescrição
tenantIdstringSim
domainstringSim

Resposta

Retorna: GetDomainConfig200Response


Obter Configurações de Domínio Internal Link


Parâmetros

NomeTipoObrigatórioDescrição
tenantIdstringSim

Resposta

Retorna: GetDomainConfigs200Response


Aplicar Patch em Configuração de Domínio Internal Link

Parâmetros

NomeTipoObrigatórioDescrição
tenantIdstringSim
domainToUpdatestringSim
patchDomainConfigParamsPatchDomainConfigParamsSim

Resposta

Retorna: GetDomainConfig200Response


Substituir Configuração de Domínio Internal Link

Parâmetros

NomeTipoObrigatórioDescrição
tenantIdstringSim
domainToUpdatestringSim
updateDomainConfigParamsUpdateDomainConfigParamsSim

Resposta

Retorna: GetDomainConfig200Response


Criar Modelo de E-mail Internal Link

Parâmetros

NomeTipoObrigatórioDescrição
tenantIdstringSim
createEmailTemplateBodyCreateEmailTemplateBodySim

Resposta

Retorna: CreateEmailTemplate200Response

Exemplo

Exemplo de 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

Excluir Modelo de E-mail Internal Link

Parâmetros

NomeTipoObrigatórioDescrição
tenantIdstringSim
idstringSim

Resposta

Retorna: FlagCommentPublic200Response

Exemplo

Exemplo de 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

Excluir Erro de Renderização de Modelo de E-mail Internal Link

Parâmetros

NomeTipoObrigatórioDescrição
tenantIdstringSim
idstringSim
errorIdstringSim

Resposta

Retorna: FlagCommentPublic200Response

Exemplo

Exemplo de 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; // exemplo de flag opcional
6
7const response: FlagCommentPublic200Response = await deleteEmailTemplateRenderError(tenantId, id, errorId);
8// Se um objeto de opções opcional fosse suportado, ele poderia ser:
9// await deleteEmailTemplateRenderError(tenantId, id, errorId /*, { includeStackTrace } */);
10

Obter Modelo de E-mail Internal Link

Parâmetros

NameTypeRequiredDescription
tenantIdstringSim
idstringSim

Resposta

Retorna: GetEmailTemplate200Response

Exemplo

Exemplo de 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

Obter Definições de Modelos de E-mail Internal Link

Parâmetros

NomeTipoObrigatórioDescrição
tenantIdstringSim

Resposta

Retorna: GetEmailTemplateDefinitions200Response

Exemplo

Exemplo de 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

Obter Erros de Renderização de Modelo de E-mail Internal Link

Parâmetros

NomeTipoObrigatórioDescrição
tenantIdstringSim
idstringSim
skipnumberNão

Resposta

Retorna: GetEmailTemplateRenderErrors200Response

Exemplo

Exemplo de 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

Obter Modelos de E-mail Internal Link

Parâmetros

NomeTipoObrigatórioDescrição
tenantIdstringSim
skipnumberNão

Resposta

Retorna: GetEmailTemplates200Response

Exemplo

Exemplo de 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

Renderizar Modelo de E-mail Internal Link

Parâmetros

NameTipoObrigatórioDescrição
tenantIdstringSim
renderEmailTemplateBodyRenderEmailTemplateBodySim
localestringNão

Resposta

Retorna: RenderEmailTemplate200Response

Exemplo

Exemplo de 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

Atualizar Modelo de E-mail Internal Link

Parâmetros

NomeTipoObrigatórioDescrição
tenantIdstringSim
idstringSim
updateEmailTemplateBodyUpdateEmailTemplateBodySim

Resposta

Retorna: FlagCommentPublic200Response

Exemplo

Exemplo 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

Obter Registro de Evento Internal Link

req tenantId urlId userIdWS

Parâmetros

NameTypeRequiredDescription
tenantIdstringSim
urlIdstringSim
userIdWSstringSim
startTimenumberSim
endTimenumberSim

Resposta

Retorna: GetEventLog200Response

Exemplo

Exemplo de getEventLog
Copy Copy
1
2const tenantId: string = 'fastcomments-tenant-01';
3const urlId: string = 'article-2026-03-25';
4const userIdWS: string | undefined = undefined; // valor upstream opcional
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

Obter Registro Global de Eventos Internal Link

req tenantId urlId userIdWS

Parâmetros

NameTypeRequiredDescription
tenantIdstringSim
urlIdstringSim
userIdWSstringSim
startTimenumberSim
endTimenumberSim

Resposta

Retorna: GetEventLog200Response

Exemplo

Exemplo de 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 dias atrás
6const endTimeOptional: number | undefined = undefined; // fim opcional do intervalo de tempo
7const endTime: number = endTimeOptional ?? Date.now();
8const eventLog: GetEventLog200Response = await getGlobalEventLog(tenantId, urlId, userIdWS, startTime, endTime);
9

Criar Publicação do Feed Internal Link

Parâmetros

NomeTipoObrigatórioDescrição
tenantIdstringSim
createFeedPostParamsCreateFeedPostParamsSim
broadcastIdstringNão
isLivebooleanNão
doSpamCheckbooleanNão
skipDupCheckbooleanNão

Resposta

Retorna: CreateFeedPost200Response

Exemplo

Exemplo de 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

Criar Publicação do Feed (Pública) Internal Link

Parâmetros

NomeTipoObrigatórioDescrição
tenantIdstringSim
createFeedPostParamsCreateFeedPostParamsSim
broadcastIdstringNão
ssostringNão

Resposta

Retorna: CreateFeedPostPublic200Response

Exemplo

Exemplo de 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

Excluir Publicação do Feed (Pública) Internal Link

Parâmetros

NomeTipoObrigatórioDescrição
tenantIdstringSim
postIdstringSim
broadcastIdstringNão
ssostringNão

Resposta

Retorna: DeleteFeedPostPublic200Response

Exemplo

Exemplo de 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

Obter Publicações do Feed Internal Link

req tenantId afterId

Parâmetros

NameTypeRequiredDescription
tenantIdstringSim
afterIdstringNão
limitnumberNão
tagsArrayNão

Resposta

Retorna: GetFeedPosts200Response

Exemplo

Exemplo de 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

Obter Publicações do Feed (Público) Internal Link

req tenantId afterId

Parâmetros

NameTypeRequiredDescription
tenantIdstringSim
afterIdstringNão
limitnumberNão
tagsArrayNão
ssostringNão
isCrawlerbooleanNão
includeUserInfobooleanNão

Resposta

Retorna: GetFeedPostsPublic200Response

Exemplo

Exemplo de 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

Obter Estatísticas das Publicações do Feed Internal Link


Parameters

NomeTipoObrigatórioDescrição
tenantIdstringSim
postIdsArraySim
ssostringNão

Resposta

Retorna: GetFeedPostsStats200Response

Exemplo

Exemplo de 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

Obter Reações de Usuário (Público) Internal Link

Parâmetros

NomeTipoObrigatórioDescrição
tenantIdstringSim
postIdsArrayNão
ssostringNão

Resposta

Retorna: GetUserReactsPublic200Response

Exemplo

Exemplo de 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

Reagir à Publicação do Feed (Pública) Internal Link

Parâmetros

NameTypeRequiredDescription
tenantIdstringSim
postIdstringSim
reactBodyParamsReactBodyParamsSim
isUndobooleanNão
broadcastIdstringNão
urlIdstringNão
ssostringNão

Resposta

Retorna: ReactFeedPostPublic200Response

Exemplo

Exemplo de 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

Atualizar Publicação do Feed Internal Link

Parâmetros

NameTypeRequiredDescription
tenantIdstringSim
idstringSim
feedPostFeedPostSim

Resposta

Retorna: FlagCommentPublic200Response

Exemplo

Exemplo de 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], // array opcional incluído
27 links: [link], // links opcionais incluídos
28 isPublished: true // sinalizador de publicação opcional usado aqui
29};
30
31const result: FlagCommentPublic200Response = await updateFeedPost(tenantId, id, feedPost);
32

Atualizar Publicação do Feed (Pública) Internal Link

Parâmetros

NameTypeRequiredDescription
tenantIdstringSim
postIdstringSim
updateFeedPostParamsUpdateFeedPostParamsSim
broadcastIdstringNão
ssostringNão

Resposta

Retorna: CreateFeedPostPublic200Response

Exemplo

Exemplo de 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

Denunciar Comentário (Público) Internal Link

Parâmetros

NomeTipoObrigatórioDescrição
tenantIdstringSim
commentIdstringSim
isFlaggedbooleanSim
ssostringNão

Resposta

Retorna: FlagCommentPublic200Response

Exemplo

Exemplo de 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

Obter GIF Grande Internal Link


Parâmetros

NomeTipoObrigatórioDescrição
tenantIdstringSim
largeInternalURLSanitizedstringSim

Resposta

Retorna: GifGetLargeResponse

Exemplo

Exemplo de 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; // metadados opcionais quando disponíveis
5const response: GifGetLargeResponse = await getGifLarge(tenantId, largeInternalURLSanitized);
6

Pesquisar GIFs Internal Link

Parâmetros

NomeTipoObrigatórioDescrição
tenantIdstringSim
searchstringSim
localestringNão
ratingstringNão
pagenumberNão

Resposta

Retorna: GifSearchResponse

Exemplo

Exemplo de 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 em Alta Internal Link

Parâmetros

NameTypeRequiredDescription
tenantIdstringSim
localestringNão
ratingstringNão
pagenumberNão

Resposta

Retorna: GifSearchResponse

Exemplo

Exemplo 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

Adicionar Hashtag Internal Link

Parâmetros

NomeTipoObrigatórioDescrição
tenantIdstringNão
createHashTagBodyCreateHashTagBodyNão

Resposta

Retorna: AddHashTag200Response

Exemplo

Exemplo 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

Adicionar Hashtags em Lote Internal Link

Parâmetros

NameTypeRequiredDescription
tenantIdstringNão
bulkCreateHashTagsBodyBulkCreateHashTagsBodyNão

Resposta

Retorna: AddHashTagsBulk200Response

Exemplo

Exemplo de 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

Excluir Hashtag Internal Link

Parâmetros

NomeTipoObrigatórioDescrição
tagstringSim
tenantIdstringNão
deleteHashTagRequestDeleteHashTagRequestNão

Resposta

Retorna: FlagCommentPublic200Response

Exemplo

Exemplo de 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

Obter Hashtags Internal Link

Parâmetros

NomeTipoObrigatórioDescrição
tenantIdstringSim
pagenumberNão

Resposta

Retorna: GetHashTags200Response

Exemplo

Exemplo de 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

Atualizar Hashtag (PATCH) Internal Link

Parâmetros

NomeTipoObrigatórioDescrição
tagstringSim
tenantIdstringNão
updateHashTagBodyUpdateHashTagBodyNão

Resposta

Retorna: PatchHashTag200Response

Exemplo

Exemplo de 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

Criar Moderador Internal Link

Parâmetros

NomeTipoObrigatórioDescrição
tenantIdstringSim
createModeratorBodyCreateModeratorBodySim

Resposta

Retorna: CreateModerator200Response

Exemplo

Exemplo de 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

Excluir Moderador Internal Link

Parâmetros

NomeTipoObrigatórioDescrição
tenantIdstringSim
idstringSim
sendEmailstringNão

Resposta

Retorna: FlagCommentPublic200Response

Exemplo

Exemplo de 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

Obter Moderador Internal Link

Parâmetros

NameTypeRequiredDescription
tenantIdstringSim
idstringSim

Resposta

Retorna: GetModerator200Response

Exemplo

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

Obter Moderadores Internal Link

Parâmetros

NomeTipoObrigatórioDescrição
tenantIdstringSim
skipnumberNão

Resposta

Retorna: GetModerators200Response

Exemplo

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

Enviar Convite Internal Link

Parâmetros

NomeTipoObrigatórioDescrição
tenantIdstringSim
idstringSim
fromNamestringSim

Resposta

Retorna: FlagCommentPublic200Response

Exemplo

Exemplo de 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; // exemplo de parâmetro opcional
6const response: FlagCommentPublic200Response = await sendInvite(tenantId, id, fromName);
7

Atualizar Moderador Internal Link

Parâmetros

NameTypeRequiredDescription
tenantIdstringSim
idstringSim
updateModeratorBodyUpdateModeratorBodySim

Response

Retorna: FlagCommentPublic200Response

Exemplo

Exemplo de 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" // campo opcional demonstrado
10};
11const result: FlagCommentPublic200Response = await updateModerator(tenantId, id, updateModeratorBody);
12

Excluir Contagem de Notificações Internal Link

Parâmetros

NomeTipoObrigatórioDescrição
tenantIdstringSim
idstringSim

Resposta

Retorna: FlagCommentPublic200Response

Exemplo

Exemplo de 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

Obter Contagem de Notificações em Cache Internal Link

Parâmetros

NameTypeRequiredDescription
tenantIdstringSim
idstringSim

Resposta

Retorna: GetCachedNotificationCount200Response

Exemplo

Exemplo de getCachedNotificationCount
Copy Copy
1
2const tenantId: string = 'tenant_acme_42';
3const id: string = 'user_00012345';
4const includeUnreadOnly: boolean | undefined = true; // indicador de parâmetro opcional (demonstrado)
5const result: GetCachedNotificationCount200Response = await getCachedNotificationCount(tenantId, id);
6

Obter Contagem de Notificações Internal Link

Parâmetros

NomeTipoObrigatórioDescrição
tenantIdstringSim
userIdstringNão
urlIdstringNão
fromCommentIdstringNão
viewedbooleanNão
typestringNão

Resposta

Retorna: GetNotificationCount200Response

Exemplo

Exemplo de 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

Obter Notificações Internal Link

Parâmetros

NomeTipoObrigatórioDescrição
tenantIdstringSim
userIdstringNão
urlIdstringNão
fromCommentIdstringNão
viewedbooleanNão
typestringNão
skipnumberNão

Resposta

Retorna: GetNotifications200Response

Exemplo

Exemplo de 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

Atualizar Notificação Internal Link

Parâmetros

NomeTipoObrigatórioDescrição
tenantIdstringSim
idstringSim
updateNotificationBodyUpdateNotificationBodySim
userIdstringNão

Resposta

Retorna: FlagCommentPublic200Response

Exemplo

Exemplo de 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

Adicionar Página Internal Link

Parâmetros

NomeTipoObrigatórioDescrição
tenantIdstringSim
createAPIPageDataCreateAPIPageDataSim

Resposta

Retorna: AddPageAPIResponse


Excluir Página Internal Link


Parâmetros

NomeTipoObrigatórioDescrição
tenantIdstringSim
idstringSim

Resposta

Retorna: DeletePageAPIResponse


Obter Página por URL ID Internal Link

Parâmetros

NomeTipoObrigatórioDescrição
tenantIdstringSim
urlIdstringSim

Resposta

Retorna: GetPageByURLIdAPIResponse


Obter Páginas Internal Link


Parâmetros

NomeTipoObrigatórioDescrição
tenantIdstringSim

Resposta

Retorna: GetPagesAPIResponse


Atualizar Página (PATCH) Internal Link

Parâmetros

NameTypeRequiredDescription
tenantIdstringSim
idstringSim
updateAPIPageDataUpdateAPIPageDataSim

Resposta

Retorna: PatchPageAPIResponse

Excluir Evento de Webhook Pendente Internal Link

Parâmetros

NomeTipoObrigatórioDescrição
tenantIdstringSim
idstringSim

Resposta

Retorna: FlagCommentPublic200Response

Exemplo

Exemplo de deletePendingWebhookEvent
Copy Copy
1
2const tenantId: string = "tenant_7f3b2a";
3const webhookEventId: string = "wh_evt_9a8c7d1234";
4const dryRun: boolean | undefined = undefined; // exemplo de flag opcional (não exigido por esta chamada)
5const result: FlagCommentPublic200Response = await deletePendingWebhookEvent(tenantId, webhookEventId);
6

Obter Contagem de Eventos de Webhook Pendentes Internal Link

Parâmetros

NomeTipoObrigatórioDescrição
tenantIdstringSim
commentIdstringNão
externalIdstringNão
eventTypestringNão
typestringNão
domainstringNão
attemptCountGTnumberNão

Resposta

Retorna: GetPendingWebhookEventCount200Response

Exemplo

Exemplo de 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

Obter Eventos de Webhook Pendentes Internal Link

Parâmetros

NomeTipoObrigatórioDescrição
tenantIdstringSim
commentIdstringNão
externalIdstringNão
eventTypestringNão
typestringNão
domainstringNão
attemptCountGTnumberNão
skipnumberNão

Resposta

Retorna: GetPendingWebhookEvents200Response

Exemplo

Exemplo de 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

Criar Configuração de Pergunta Internal Link

Parâmetros

NomeTipoObrigatórioDescrição
tenantIdstringYes
createQuestionConfigBodyCreateQuestionConfigBodyYes

Resposta

Retorna: CreateQuestionConfig200Response

Exemplo

Exemplo de 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

Excluir Configuração de Pergunta Internal Link

Parâmetros

NomeTipoObrigatórioDescrição
tenantIdstringSim
idstringSim

Resposta

Retorna: FlagCommentPublic200Response

Exemplo

Exemplo de 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

Obter Configuração de Pergunta Internal Link

Parâmetros

NomeTipoObrigatórioDescrição
tenantIdstringSim
idstringSim

Resposta

Retorna: GetQuestionConfig200Response

Exemplo

Exemplo de 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

Obter Configurações de Pergunta Internal Link

Parâmetros

NomeTipoObrigatórioDescrição
tenantIdstringSim
skipnumberNão

Resposta

Retorna: GetQuestionConfigs200Response

Exemplo

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

Atualizar Configuração de Pergunta Internal Link

Parâmetros

NomeTipoObrigatórioDescrição
tenantIdstringYes
idstringYes
updateQuestionConfigBodyUpdateQuestionConfigBodyYes

Resposta

Retorna: FlagCommentPublic200Response

Exemplo

Exemplo de 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

Criar Resultado de Pergunta Internal Link

Parâmetros

NomeTipoObrigatórioDescrição
tenantIdstringSim
createQuestionResultBodyCreateQuestionResultBodySim

Resposta

Retorna: CreateQuestionResult200Response

Exemplo

Exemplo de 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 // parâmetro opcional
10} as CreateQuestionResultBody;
11const result: CreateQuestionResult200Response = await createQuestionResult(tenantId, createQuestionResultBody);
12

Excluir Resultado de Pergunta Internal Link

Parâmetros

NomeTipoObrigatórioDescrição
tenantIdstringSim
idstringSim

Resposta

Retorna: FlagCommentPublic200Response

Exemplo

Exemplo de 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

Obter Resultado de Pergunta Internal Link

Parâmetros

NomeTipoObrigatórioDescrição
tenantIdstringSim
idstringSim

Resposta

Retorna: GetQuestionResult200Response

Exemplo

Exemplo de getQuestionResult
Copy Copy
1
2const tenantId: string = 'acme-corp-42';
3const id: string = 'question-9f8b7c';
4const includeComments: boolean | undefined = true; // exemplo de parâmetro opcional
5const result: GetQuestionResult200Response = await getQuestionResult(tenantId, id);
6console.log(result);
7

Obter Resultados de Pergunta Internal Link

Parâmetros

NomeTipoObrigatórioDescrição
tenantIdstringSim
urlIdstringNão
userIdstringNão
startDatestringNão
questionIdstringNão
questionIdsstringNão
skipnumberNão

Resposta

Retorna: GetQuestionResults200Response

Exemplo

Exemplo de 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

Atualizar Resultado de Pergunta Internal Link

Parâmetros

NameTypeRequiredDescription
tenantIdstringSim
idstringSim
updateQuestionResultBodyUpdateQuestionResultBodySim

Resposta

Retorna: FlagCommentPublic200Response

Exemplo

Exemplo de 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[], // metadados opcionais
10 status: { code: 'review_pending' } as APIStatus
11} as UpdateQuestionResultBody;
12const result: FlagCommentPublic200Response = await updateQuestionResult(tenantId, id, updateQuestionResultBody);
13

Agregação de Resultados de Pergunta Internal Link

Parâmetros

NameTypeObrigatórioDescrição
tenantIdstringSim
questionIdstringNão
questionIdsArrayNão
urlIdstringNão
timeBucketAggregateTimeBucketNão
startDateDateNão
forceRecalculatebooleanNão

Resposta

Retorna: AggregateQuestionResults200Response

Exemplo

Exemplo de 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

Agregação em Lote de Resultados de Pergunta Internal Link


Parâmetros

NomeTipoObrigatórioDescrição
tenantIdstringSim
bulkAggregateQuestionResultsRequestBulkAggregateQuestionResultsRequestSim
forceRecalculatebooleanNão

Resposta

Retorna: BulkAggregateQuestionResults200Response

Exemplo

Exemplo de 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

Combinar Comentários com Resultados de Pergunta Internal Link

Parameters

NameTypeRequiredDescription
tenantIdstringSim
questionIdstringNão
questionIdsArrayNão
urlIdstringNão
startDateDateNão
forceRecalculatebooleanNão
minValuenumberNão
maxValuenumberNão
limitnumberNão

Response

Retorna: CombineCommentsWithQuestionResults200Response

Exemplo

Exemplo de 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

Adicionar Usuário SSO Internal Link

Parâmetros

NomeTipoObrigatórioDescrição
tenantIdstringSim
createAPISSOUserDataCreateAPISSOUserDataSim

Resposta

Retorna: AddSSOUserAPIResponse


Excluir Usuário SSO Internal Link

Parâmetros

NomeTipoObrigatórioDescrição
tenantIdstringSim
idstringSim
deleteCommentsbooleanNão
commentDeleteModestringNão

Resposta

Retorna: DeleteSSOUserAPIResponse


Obter Usuário SSO por Email Internal Link

Parâmetros

NomeTipoObrigatórioDescrição
tenantIdstringSim
emailstringSim

Resposta

Retorna: GetSSOUserByEmailAPIResponse


Obter Usuário SSO por ID Internal Link


Parâmetros

NomeTipoObrigatórioDescrição
tenantIdstringSim
idstringSim

Resposta

Retorna: GetSSOUserByIdAPIResponse


Obter Usuários SSO Internal Link


Parâmetros

NomeTipoObrigatórioDescrição
tenantIdstringSim
skipnumberNão

Resposta

Retorna: GetSSOUsers200Response


Atualizar Usuário SSO (PATCH) Internal Link

Parâmetros

NameTypeObrigatórioDescrição
tenantIdstringSim
idstringSim
updateAPISSOUserDataUpdateAPISSOUserDataSim
updateCommentsbooleanNão

Resposta

Retorna: PatchSSOUserAPIResponse


Substituir Usuário SSO Internal Link

Parâmetros

NomeTipoObrigatórioDescrição
tenantIdstringSim
idstringSim
updateAPISSOUserDataUpdateAPISSOUserDataSim
updateCommentsbooleanNão

Resposta

Retorna: PutSSOUserAPIResponse

Exemplo

Exemplo do 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

Criar Assinatura Internal Link

Parâmetros

NomeTipoObrigatórioDescrição
tenantIdstringSim
createAPIUserSubscriptionDataCreateAPIUserSubscriptionDataSim

Resposta

Retorna: CreateSubscriptionAPIResponse

Exemplo

Exemplo de 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, // parâmetro opcional demonstrado
9 metadata: { campaign: "spring_launch" } // parâmetro opcional demonstrado
10};
11const result: CreateSubscriptionAPIResponse = await createSubscription(tenantId, createAPIUserSubscriptionData);
12

Excluir Assinatura Internal Link


Parâmetros

NomeTipoObrigatórioDescrição
tenantIdstringSim
idstringSim
userIdstringNão

Resposta

Retorna: DeleteSubscriptionAPIResponse


Obter Assinaturas Internal Link

Parâmetros

NameTypeRequiredDescription
tenantIdstringSim
userIdstringNão

Resposta

Retorna: GetSubscriptionsAPIResponse

Exemplo

Exemplo de 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

Atualizar Assinatura Internal Link

Parâmetros

NomeTipoObrigatórioDescrição
tenantIdstringSim
idstringSim
updateAPIUserSubscriptionDataUpdateAPIUserSubscriptionDataSim
userIdstringNão

Resposta

Retorna: UpdateSubscriptionAPIResponse

Exemplo

Exemplo de 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

Obter Uso Diário do Locatário Internal Link

Parâmetros

NomeTipoObrigatórioDescrição
tenantIdstringSim
yearNumbernumberNão
monthNumbernumberNão
dayNumbernumberNão
skipnumberNão

Resposta

Retorna: GetTenantDailyUsages200Response

Exemplo

Exemplo de 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

Criar Pacote do Locatário Internal Link

Parâmetros

NomeTipoObrigatórioDescrição
tenantIdstringSim
createTenantPackageBodyCreateTenantPackageBodySim

Resposta

Retorna: CreateTenantPackage200Response

Exemplo

Exemplo de 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" } // parâmetro opcional demonstrado
11};
12const result: CreateTenantPackage200Response = await createTenantPackage(tenantId, createTenantPackageBody);
13

Excluir Pacote do Locatário Internal Link

Parâmetros

NomeTipoObrigatórioDescrição
tenantIdstringSim
idstringSim

Resposta

Retorna: FlagCommentPublic200Response

Exemplo

Exemplo de 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

Obter Pacote do Locatário Internal Link

Parâmetros

NomeTipoObrigatórioDescrição
tenantIdstringSim
idstringSim

Resposta

Retorna: GetTenantPackage200Response

Exemplo

Exemplo de 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

Obter Pacotes do Locatário Internal Link

Parâmetros

NameTypeObrigatórioDescrição
tenantIdstringSim
skipnumberNão

Resposta

Retorna: GetTenantPackages200Response

Exemplo

Exemplo de 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

Substituir Pacote do Locatário Internal Link

Parâmetros

NameTypeRequiredDescription
tenantIdstringSim
idstringSim
replaceTenantPackageBodyReplaceTenantPackageBodySim

Resposta

Retorna: FlagCommentPublic200Response

Exemplo

Exemplo de 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

Atualizar Pacote do Locatário Internal Link

Parâmetros

NomeTipoObrigatórioDescrição
tenantIdstringSim
idstringSim
updateTenantPackageBodyUpdateTenantPackageBodySim

Resposta

Retorna: FlagCommentPublic200Response

Exemplo

Exemplo de 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 } // campos opcionais demonstrados pela presença; outros omitidos
10 } as UpdateTenantPackageBody;
11 const result: FlagCommentPublic200Response = await updateTenantPackage(tenantId, id, updateTenantPackageBody);
12 console.log(result);
13})();
14

Criar Usuário do Locatário Internal Link

Parâmetros

NameTypeRequiredDescription
tenantIdstringYes
createTenantUserBodyCreateTenantUserBodyYes

Resposta

Retorna: CreateTenantUser200Response

Exemplo

Exemplo de 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, // parâmetro opcional demonstrado
8 metadata: { department: "Customer Support" }
9};
10const result: CreateTenantUser200Response = await createTenantUser(tenantId, createTenantUserBody);
11

Excluir Usuário do Locatário Internal Link

Parâmetros

NameTypeRequiredDescription
tenantIdstringSim
idstringSim
deleteCommentsstringNão
commentDeleteModestringNão

Resposta

Retorna: FlagCommentPublic200Response

Exemplo

Exemplo de 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"; // remover também os comentários do usuário
6 const commentDeleteMode: string = "permanent"; // "permanent" ou "soft"
7 const result: FlagCommentPublic200Response = await deleteTenantUser(tenantId, id, deleteComments, commentDeleteMode);
8 console.log(result);
9}
10run();
11

Obter Usuário do Locatário Internal Link

Parâmetros

NomeTipoObrigatórioDescrição
tenantIdstringSim
idstringSim

Resposta

Retorna: GetTenantUser200Response

Exemplo

Exemplo de 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; // acessando o payload
6const userEmail: string | undefined = user?.email;
7console.log('Fetched user email:', userEmail);
8

Obter Usuários do Locatário Internal Link

Parâmetros

NomeTipoObrigatórioDescrição
tenantIdstringSim
skipnumberNão

Resposta

Retorna: GetTenantUsers200Response

Exemplo

Exemplo de 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

Substituir Usuário do Locatário Internal Link

Parâmetros

NameTypeRequiredDescription
tenantIdstringSim
idstringSim
replaceTenantUserBodyReplaceTenantUserBodySim
updateCommentsstringNão

Resposta

Retorna: FlagCommentPublic200Response

Exemplo

Exemplo de 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

Parâmetros

NomeTipoObrigatórioDescrição
tenantIdstringSim
idstringSim
redirectURLstringNão

Resposta

Retorna: FlagCommentPublic200Response

Exemplo

Exemplo de 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

Atualizar Usuário do Locatário Internal Link

Parâmetros

NameTypeRequiredDescription
tenantIdstringSim
idstringSim
updateTenantUserBodyUpdateTenantUserBodySim
updateCommentsstringNão

Resposta

Retorna: FlagCommentPublic200Response

Exemplo

Exemplo de 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

Criar Locatário Internal Link

Parâmetros

NomeTipoObrigatórioDescrição
tenantIdstringSim
createTenantBodyCreateTenantBodySim

Resposta

Retorna: CreateTenant200Response

Exemplo

Exemplo de 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 // campos opcionais como ssoConfig ou customConfig são intencionalmente omitidos
8} as CreateTenantBody;
9
10const result: CreateTenant200Response = await createTenant(tenantId, createTenantBody);
11

Excluir Locatário Internal Link

Parâmetros

NomeTipoObrigatórioDescrição
tenantIdstringSim
idstringSim
surestringNão

Resposta

Retorna: FlagCommentPublic200Response

Exemplo

Exemplo de 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

Obter Locatário Internal Link

Parâmetros

NomeTipoObrigatórioDescrição
tenantIdstringSim
idstringSim

Resposta

Retorna: GetTenant200Response

Exemplo

Exemplo de getTenant
Copy Copy
1
2const tenantId: string = "tenant_9f4b2c1a";
3const idOverride: string | undefined = undefined; // sobrescrita opcional, se disponível
4const id: string = idOverride ?? "site_3e7a6b2f";
5const response: GetTenant200Response = await getTenant(tenantId, id);
6console.log(response);
7

Obter Locatários Internal Link

Parâmetros

NomeTipoObrigatórioDescrição
tenantIdstringSim
metastringNão
skipnumberNão

Resposta

Retorna: GetTenants200Response

Exemplo

Exemplo de 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

Atualizar Locatário Internal Link

Parâmetros

NameTypeRequiredDescription
tenantIdstringSim
idstringSim
updateTenantBodyUpdateTenantBodySim

Resposta

Retorna: FlagCommentPublic200Response

Exemplo

Exemplo de 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

Alterar Estado do Ticket Internal Link

Parâmetros

NomeTipoObrigatórioDescrição
tenantIdstringSim
userIdstringSim
idstringSim
changeTicketStateBodyChangeTicketStateBodySim

Resposta

Retorna: ChangeTicketState200Response

Exemplo

Exemplo de 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" } // campos opcionais demonstrados
10};
11const result: ChangeTicketState200Response = await changeTicketState(tenantId, userId, id, changeTicketStateBody);
12

Criar Ticket Internal Link

Parâmetros

NomeTipoObrigatórioDescrição
tenantIdstringSim
userIdstringSim
createTicketBodyCreateTicketBodySim

Resposta

Retorna: CreateTicket200Response

Exemplo

Exemplo de 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'] // campo opcional demonstrado
9};
10const result: CreateTicket200Response = await createTicket(tenantId, userId, createTicketBody);
11

Obter Ticket Internal Link

Parâmetros

NomeTipoObrigatórioDescrição
tenantIdstringSim
idstringSim
userIdstringNão

Resposta

Retorna: GetTicket200Response

Exemplo

Exemplo de 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

Obter Tickets Internal Link

Parâmetros

NomeTipoObrigatórioDescrição
tenantIdstringSim
userIdstringNão
statenumberNão
skipnumberNão
limitnumberNão

Resposta

Retorna: GetTickets200Response

Exemplo

Exemplo de 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

Obter Traduções Internal Link

Parâmetros

NomeTipoObrigatórioDescrição
namespacestringSim
componentstringSim
localestringNão
useFullTranslationIdsbooleanNão

Resposta

Retorna: GetTranslationsResponse

Exemplo

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

Enviar Imagem Internal Link


Enviar e redimensionar uma imagem

Parâmetros

NomeTipoObrigatórioDescrição
tenantIdstringSim
fileBlobSim
sizePresetSizePresetNão
urlIdstringNão

Resposta

Retorna: UploadImageResponse


Obter Progresso de Insígnia do Usuário por ID Internal Link

Parâmetros

NomeTipoObrigatórioDescrição
tenantIdstringSim
idstringSim

Resposta

Retorna: GetUserBadgeProgressById200Response

Exemplo

Exemplo de 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

Obter Progresso de Insígnia por ID do Usuário Internal Link

Parâmetros

NomeTipoObrigatórioDescrição
tenantIdstringSim
userIdstringSim

Resposta

Retorna: GetUserBadgeProgressById200Response

Exemplo

Exemplo de getUserBadgeProgressByUserId
Copy Copy
1
2const tenantId: string = 'tenant_7f9c2d3b';
3const maybeUserId: string | undefined = 'user_4b8e1f9a'; // origem opcional (pode ser undefined)
4const userId: string = maybeUserId ?? 'user_fallback0001';
5const result: GetUserBadgeProgressById200Response = await getUserBadgeProgressByUserId(tenantId, userId);
6console.log(result);
7

Obter Lista de Progresso de Insígnias do Usuário Internal Link

Parâmetros

NomeTipoObrigatórioDescrição
tenantIdstringSim
userIdstringNão
limitnumberNão
skipnumberNão

Resposta

Retorna: GetUserBadgeProgressList200Response

Exemplo

Exemplo de 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

Criar Insígnia do Usuário Internal Link

Parâmetros

NameTypeRequiredDescription
tenantIdstringSim
createUserBadgeParamsCreateUserBadgeParamsSim

Resposta

Retorna: CreateUserBadge200Response

Exemplo

Exemplo de 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 } // parâmetro opcional
11};
12const result: CreateUserBadge200Response = await createUserBadge(tenantId, params);
13

Excluir Insígnia do Usuário Internal Link

Parâmetros

NameTypeRequiredDescription
tenantIdstringSim
idstringSim

Resposta

Retorna: UpdateUserBadge200Response

Exemplo

Exemplo de 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

Obter Insígnia do Usuário Internal Link

Parâmetros

NomeTipoObrigatórioDescrição
tenantIdstringSim
idstringSim

Resposta

Retorna: GetUserBadge200Response

Exemplo

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

Obter Insígnias do Usuário Internal Link

Parâmetros

NameTypeRequiredDescription
tenantIdstringSim
userIdstringNão
badgeIdstringNão
typenumberNão
displayedOnCommentsbooleanNão
limitnumberNão
skipnumberNão

Resposta

Retorna: GetUserBadges200Response

Exemplo

Exemplo de 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

Atualizar Insígnia do Usuário Internal Link

Parâmetros

NomeTipoObrigatórioDescrição
tenantIdstringSim
idstringSim
updateUserBadgeParamsUpdateUserBadgeParamsSim

Resposta

Retorna: UpdateUserBadge200Response

Exemplo

Exemplo de 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

Obter Contagem de Notificações do Usuário Internal Link

Parâmetros

NomeTipoObrigatórioDescrição
tenantIdstringSim
ssostringNão

Resposta

Retorna: GetUserNotificationCount200Response

Exemplo

Exemplo de 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

Obter Notificações do Usuário Internal Link

Parâmetros

NomeTipoObrigatórioDescrição
tenantIdstringSim
pageSizenumberNão
afterIdstringNão
includeContextbooleanNão
afterCreatedAtnumberNão
unreadOnlybooleanNão
dmOnlybooleanNão
noDmbooleanNão
includeTranslationsbooleanNão
ssostringNão

Resposta

Retorna: GetUserNotifications200Response

Exemplo

Exemplo de 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

Redefinir Contagem de Notificações do Usuário Internal Link

Parâmetros

NomeTipoObrigatórioDescrição
tenantIdstringSim
ssostringNão

Resposta

Retorna: ResetUserNotifications200Response

Exemplo

Exemplo de 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

Redefinir Notificações do Usuário Internal Link

Parâmetros

NomeTipoObrigatórioDescrição
tenantIdstringSim
afterIdstringNão
afterCreatedAtnumberNão
unreadOnlybooleanNão
dmOnlybooleanNão
noDmbooleanNão
ssostringNão

Resposta

Retorna: ResetUserNotifications200Response

Exemplo

Exemplo de 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

Atualizar Status de Assinatura de Comentário nas Notificações do Usuário Internal Link

Ativar ou desativar notificações para um comentário específico.

Parâmetros

NomeTipoObrigatórioDescrição
tenantIdstringSim
notificationIdstringSim
optedInOrOutUpdateUserNotificationCommentSubscriptionStatusOptedInOrOutEnumSim
commentIdstringSim
ssostringNão

Resposta

Retorna: UpdateUserNotificationStatus200Response

Exemplo

Exemplo de 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

Atualizar Status de Assinatura de Página nas Notificações do Usuário Internal Link

Ativar ou desativar notificações para uma página. Quando os usuários estão inscritos em uma página, notificações são criadas para novos comentários raiz, e também

Parâmetros

NomeTipoObrigatórioDescrição
tenantIdstringSim
urlIdstringSim
urlstringSim
pageTitlestringSim
subscribedOrUnsubscribedUpdateUserNotificationPageSubscriptionStatusSubscribedOrUnsubscribedEnumSim
ssostringNão

Resposta

Retorna: UpdateUserNotificationStatus200Response

Exemplo

updateUserNotificationPageSubscriptionStatus Exemplo
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

Atualizar Status de Notificação do Usuário Internal Link

Parâmetros

NomeTipoObrigatórioDescrição
tenantIdstringSim
notificationIdstringSim
newStatusUpdateUserNotificationStatusNewStatusEnumSim
ssostringNão

Resposta

Retorna: UpdateUserNotificationStatus200Response

Exemplo

Exemplo de 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

Obter Status de Presença dos Usuários Internal Link

Parâmetros

NameTypeRequiredDescription
tenantIdstringSim
urlIdWSstringSim
userIdsstringSim

Resposta

Retorna: GetUserPresenceStatuses200Response

Exemplo

Exemplo 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'; // fonte opcional
5const userIds: string = maybeUserIds ?? 'user_123';
6const presence: GetUserPresenceStatuses200Response = await getUserPresenceStatuses(tenantId, urlIdWS, userIds);
7

Buscar Usuários Internal Link

Parâmetros

NomeTipoObrigatórioDescrição
tenantIdstringSim
urlIdstringSim
usernameStartsWithstringNão
mentionGroupIdsArrayNão
ssostringNão
searchSectionSearchUsersSearchSectionEnumNão

Resposta

Retorna: SearchUsers200Response

Exemplo

Exemplo de 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

Obter Usuário Internal Link

Parâmetros

NameTypeRequiredDescription
tenantIdstringSim
idstringSim

Resposta

Retorna: GetUser200Response

Exemplo

Exemplo de 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

Criar Voto Internal Link

Parâmetros

NomeTipoObrigatórioDescrição
tenantIdstringSim
commentIdstringSim
directionCreateVoteDirectionEnumSim
userIdstringNão
anonUserIdstringNão

Resposta

Retorna: VoteComment200Response

Exemplo

Exemplo de 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

Excluir Voto Internal Link

Parâmetros

NomeTipoObrigatórioDescrição
tenantIdstringSim
idstringSim
editKeystringNão

Resposta

Retorna: DeleteCommentVote200Response

Exemplo

Exemplo de 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

Obter Votos Internal Link

Parâmetros

NomeTipoObrigatórioDescrição
tenantIdstringSim
urlIdstringSim

Resposta

Retorna: GetVotes200Response

Exemplo

Exemplo de 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

Obter Votos por Usuário Internal Link

Parâmetros

NomeTipoObrigatórioDescrição
tenantIdstringSim
urlIdstringSim
userIdstringNão
anonUserIdstringNão

Resposta

Retorna: GetVotesForUser200Response

Exemplo

Exemplo de 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

Precisa de ajuda?

Se você encontrar algum problema ou tiver dúvidas sobre o JavaScript/TypeScript SDK, por favor:

Contribuindo

Contribuições são bem-vindas! Por favor, visite o repositório no GitHub para diretrizes de contribuição.