Overview
Five editorial content types - blogs, docs, FAQs, testimonials, and rich content - authored in the console.
The content module holds editorial entities you want non-engineers to edit: marketing pages, help articles, FAQ groups, testimonials. They are authored in the console and read over the API.
curl -G https://api.console.buildbase.app/api/blogs \
-H "Authorization: $BUILDBASE_TOKEN" \
--data-urlencode 'filter={"published":true}' \
--data-urlencode 'sort={"createdAt":-1}'Before you start
Author content in the BuildBase console. Every endpoint here is token-authenticated, so a public website reads it from your own backend or at build time - not directly from the browser.
The five types
| Type | Base path | Shape |
|---|---|---|
| Blogs | /api/blogs | Posts in folders, with tags and authors |
| Docs | /api/docs | Same structure as blogs, separate tree |
| FAQs | /api/faqs | Questions, arranged in ordered groups |
| Testimonials | /api/testimonials | Quote, attribution |
| Rich content | /api/rich-content | A named block of rich text, fetched by slug |
Blogs and docs share an implementation - folders, paths, tags, authors, drafts - so one page covers both.
Rich content
Rich content is the simplest and the most useful of the five: a named block of formatted text your app renders wherever it likes. Terms of service, an announcement banner, a pricing footnote.
Fetch it by slug rather than id, so the reference in your code stays readable:
curl https://api.console.buildbase.app/api/rich-content/slug/refund-policy \
-H "Authorization: $BUILDBASE_TOKEN"FAQs
FAQs have two records. A question is a standalone document at /api/faqs.
A group (a collection) at /api/faqs/collections holds an ordered list of
question ids, and it is what a page shows: a help center, a pricing page.
Questions:
| Method | Path | Purpose |
|---|---|---|
GET | /api/faqs | List questions |
GET | /api/faqs/:id | One question |
POST | /api/faqs | Create a question |
PATCH | /api/faqs/:id | Edit a question |
DELETE | /api/faqs/:id | Delete a question |
Groups:
| Method | Path | Purpose |
|---|---|---|
GET | /api/faqs/collections | List groups |
GET | /api/faqs/collections/:id | One group |
GET | /api/faqs/collections/:id/faqs | The group's questions, in order |
GET | /api/faqs/collections/:id/faqs/suggestions | Questions not yet in the group |
POST | /api/faqs/collections | Create a group |
PATCH | /api/faqs/collections/:id | Rename or describe a group |
PATCH | /api/faqs/collections/:id/faqs/add | Add questions: { "faqs": ["<id>", ...] } |
PATCH | /api/faqs/collections/:id/faqs/remove | Remove questions: { "faqs": ["<id>", ...] } |
PATCH | /api/faqs/collections/:id/faqs/update | Replace the whole ordered list, which is how you reorder |
PATCH | /api/faqs/collections/:id/archive | Archive a group (groups are not deleted) |
Order lives on the group, so the same question can sit in several groups at a different position in each, without a sort field on the question.
Content is not assets
This module stores text. Images belong to assets, which handles upload, storage, and public or private URLs. Assets take images only - JPEG, PNG, GIF, WebP and SVG - so a PDF or another download is hosted outside BuildBase and linked by its URL.
The two connect by reference: rich text embeds an asset's URL. Uploading an image while editing a post creates an asset record; the post stores the link to it. Deleting a post does not delete the asset.
Next Steps
- Blogs and docs - folders, paths, and drafts.
- Delivering content - showing this content in any stack without calling BuildBase on every page load.
- Assets - the files this content links to.