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.
What you should read next
- Concepts: organizations, members, keys: the data model
- SDK reference: every method
- Recipes: Next.js app router: the most common integration