Skip to content

Getting started

Install the SDK, make your first API call, ship FAQ content in your app — in five minutes.

Updated 2026-05-19

bun add @faqapp/core

The @faqapp/core SDK wraps every v1 API endpoint with a typed client. Works in Node.js, Bun, Deno, edge runtimes, and the browser. As of mid-2026, all responses are JSON; binary uploads land in v2.

Authenticate

Every request is scoped to one organization and authenticated with an API key. Create the key in the dashboard at app.thefaq.app, then put it in your environment:

FAQAPP_API_KEY=sk_live_...

Make the first call

import { createFAQClient } from "@faqapp/core";

const faq = createFAQClient({
  apiKey: process.env.FAQAPP_API_KEY!,
  organizationSlug: "acme"
});

const { data } = await faq.questions.list({ limit: 20 });

data is a typed array of questions. The pagination metadata is on meta.pagination. The SDK throws on non-2xx — wrap calls in your own error boundary.

Ship it in your app

For React, install @faqapp/react:

bun add @faqapp/react
import { FAQClientProvider, useFaq } from "@faqapp/react";

export function Page() {
  return (
    <FAQClientProvider organizationSlug="acme">
      <Questions />
    </FAQClientProvider>
  );
}

function Questions() {
  const { data } = useFaq().questions.list({ limit: 20 });
  return data?.map((q) => <article key={q.id}>{q.title}</article>);
}

Server-side rendering works too — pass an SSR-safe apiKey from a server boundary.