Skip to main content
The @replyke/node SDK gives you full programmatic access to the Replyke API from any Node.js environment. It is designed for server-side use only — backend endpoints, Next.js server actions, webhook handlers, cron jobs, and scripts.
This SDK requires a secret API key and must never be used in client-side code or shipped to the browser.

Installation

npm install @replyke/node

Initialization

Create a single ReplykeClient instance at startup and reuse it throughout your application.
import { ReplykeClient } from "@replyke/node";

const replyke = await ReplykeClient.init({
  projectId: process.env.REPLYKE_PROJECT_ID!,
  apiKey: process.env.REPLYKE_API_KEY!,
});

Configuration

projectId
string
required
Your Replyke project ID, found in the dashboard under Settings → General.
apiKey
string
required
Your secret API key from the dashboard. Keep this in an environment variable — never commit it to source control.
isInternal
boolean
Set to true when making internal/admin requests that bypass standard project authorization. Defaults to false.

Modules

Once initialized, all functionality is accessed through module namespaces on the client:
replyke.auth          // Authentication — sign up, sign in, tokens
replyke.users         // User profiles, follows, connections
replyke.entities      // Content entities — CRUD, reactions, drafts
replyke.comments      // Comments — CRUD, reactions
replyke.spaces        // Spaces — management, members, moderation, rules
replyke.search        // Search and AI Q&A
replyke.hostedApps    // Hosted app configuration

Auth

Sign up, sign in, token management, password reset

Users

Fetch and update profiles, follows, connections

Entities

Create and manage content, reactions, drafts

Comments

Create and manage comments, reactions

Spaces

Space CRUD, navigation, slug management

Space Members

Membership, roles, approvals, bans

Space Moderation

Reports, content moderation, rules, digest

Search

Full-text search and AI-powered Q&A

Paginated Responses

Functions that return lists use a shared PaginatedResponse<T> shape:
{
  data: T[];
  metadata: {
    page: number;
    pageSize: number;
    totalPages: number;
    totalItems: number;
    hasMore: boolean;
  };
}
Pass page and limit to any list function to control pagination.