v1 API · beta
The FAQ API.
Manage FAQ content like a database. Ship it through our SDK in any stack — React, Next.js, raw HTTP, or an AI agent. For teams that ship product, not pages.
import { createFAQClient } from "@faqapp/core";
const faq = createFAQClient({
apiKey: process.env.FAQAPP_API_KEY,
organizationSlug: "acme"
});
const { data } = await faq.questions.list({ limit: 20 }); Built for your stack.
- Next.js
- React
- TanStack
- Cloudflare Workers
- Anthropic
- Vercel
Try it without an account.
Paste a URL. We scrape it, generate FAQ candidates with grounded answers, and return them in roughly 30 seconds. No sign-in for the demo.
Three ways in.
Curl from a script, the typed SDK in any JS runtime, or React hooks in your app. Same API, same envelope, same auth.
curl -X POST https://api.thefaq.app/api/v1/acme/questions \
-H "Authorization: Bearer $FAQAPP_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"title": "How do I rotate an API key?",
"answer": "Create a new key, swap it in your env, then revoke the old one."
}' import { createFAQClient } from "@faqapp/core";
const faq = createFAQClient({
apiKey: process.env.FAQAPP_API_KEY,
organizationSlug: "acme"
});
const { data } = await faq.questions.list({ limit: 20 }); import { FAQClientProvider, useFaq } from "@faqapp/react";
export function Page() {
return (
<FAQClientProvider organizationSlug="acme">
<FAQList />
</FAQClientProvider>
);
}
function FAQList() {
const { data: questions } = useFaq().questions.list();
return questions?.map(q => <Question key={q.id} {...q} />);
} One envelope, every endpoint
Same shape, every response.
Every endpoint returns data and meta. Lists, single resources, mutations, errors — same envelope, same cursor pagination, same trace id. Write the parser once.
curl https://api.thefaq.app/v1/orgs/acme/questions \
-H "Authorization: Bearer faq_live_..." \
-G --data-urlencode "limit=2" \
--data-urlencode "status=published" {
"data": [
{
"id": "q_8h2KdLpQ",
"slug": "how-do-i-cancel-my-subscription",
"question": "How do I cancel my subscription?",
"answer": "Open Settings → Billing → Cancel subscription...",
"status": "published",
"category": { "id": "cat_billing", "name": "Billing" },
"updated_at": "2026-05-19T22:14:08Z"
},
{
"id": "q_3mNvR9YxT",
"slug": "where-do-i-find-my-api-keys",
"question": "Where do I find my API keys?",
"answer": "Settings → API keys lists every key your...",
"status": "published",
"category": { "id": "cat_api", "name": "API" },
"updated_at": "2026-05-18T09:42:11Z"
}
],
"meta": {
"pagination": {
"limit": 2,
"cursor": "cur_9Kx2Lp",
"has_more": true
}
}
} Idempotent
Retry any write with the same Idempotency-Key; we de-dupe.
Traceable
Every response carries a x-faq-trace-id; quote it to support.
Versioned
URL-pinned (/v1/). Breaking changes ship as /v2/, never inline.
Your team's view
Manage content like a database.
Sidebar for the resources you'd expect — questions, categories, translations, API keys, members. Tables that act like tables. Drafts, scheduled, published. Audit log on every change. No surprises, no opinions about your workflow.
Everything here is also in the v1 API. The dashboard is the first customer of our own SDK.
Questions
48 published · 4 drafts · 2 scheduled
- published 2h ago
How do I cancel my subscription?
Billing
- published yesterday
Where do I find my API keys?
API
- published May 14
Do you support SSO?
Security
- draft May 12
What happens at my plan limit?
Billing
- scheduled May 10
How do refunds work?
Billing
- published May 8
Can I export all my data?
Account
Open Settings → Billing → Cancel subscription. You keep access through the end of the current billing period, then move to the free plan automatically. No prorated refunds; you're free to come back anytime with the same organization slug.
Yes. Upgrades land on the same invoice as a pro-rated charge for the remaining days. Downgrades take effect at the next renewal so you don't lose paid features mid-cycle. Both happen from Settings → Billing → Change plan.
Dashboard → Settings → API keys. Each key is scoped (read, write, or admin) and shown exactly once on creation — copy it then. Rotate by creating a new key, swapping it in your env, and revoking the old one.
SAML SSO and SCIM provisioning ship on the Enterprise plan. Setup is two config values and a test login; email security@thefaq.app to enable. Google OAuth and email magic links work on every plan including Free.
Within the first 7 days of a paid plan, full refund on request — no questions. After that, we pro-rate the remaining period if you cancel and reverse the unused portion. Enterprise contracts follow the terms in your MSA.
Your customers' view
Same data, your design.
The SDK pulls from your organization. Your stack renders the surface. Your domain serves it. No CMS chrome, no platform-hosted help-page subdomain — your product is your product.
The mockup is rendered the same way your app would render it — same API, same response shape, same content. Style it however you want.
Why not just build it yourself?
You can. A questions table, a CRUD admin, an embed script, an OG-image generator, a search index, a webhook fan-out — roughly three engineer-weeks for the first version, plus the maintenance forever. thefaqapp ships those by 5pm tomorrow and gets out of your way.
We don't host your FAQ pages. We don't try to be a CMS. We're the API and the SDKs; your product is your product.
What's in the box.
v1 REST API
Questions, categories, translations, API keys, organizations. JSON envelope. Versioned. Rate-limited.
Typed SDKs
@faqapp/core runs anywhere JS does. @faqapp/react adds hooks plus SSR helpers.
AI intake
Paste a URL, get grounded FAQ candidates. OpenAI → Anthropic → Google fallback chain.
Translations
Per-organization language config. Machine-translate any question with a single call; edit before publishing.
Revisions
Last 50 saved versions per question. Diff. Restore. Storage rolls — revision 51 evicts revision 1.
Scheduled publish
Draft plus scheduledPublishAt. A 5-minute cron promotes anything past its mark. No QStash to manage on your end.
Start with the free plan.
1,000 reads per month. One API key. 50 questions. No card required. Upgrade when you need more.