Custom data with a schema, versioned so old records keep their meaning.
Define fields in the console, publish them as a version, and store records against it. Your backend reads the records by collection slug over a token-authenticated REST API, and every form submission lands here as a record.
Your app is an organization in BuildBase. Your users sign in and work inside workspaces - one per team or customer.
You set up
In the console and the SDK
- The fields you want to store, in the console
- A new version when those fields change
- One fetch from your server to read the data
You get
For you and your team
- Structured data without building a database table
- Old records that keep their meaning after you change fields
- Every form submission stored for you
A schema you can change without breaking old data
Versions keep yesterday's records readable while you publish tomorrow's fields.
Fields as Versions
Your fields are saved as a version. Change them by publishing a new version, and old records stay readable.
Locked When Live
A published version cannot be edited, so nothing already stored changes meaning underneath you.
Common Field Types
Text, rich text, number, yes or no, date, color, link and email, each with a default and a required flag.
Read by Name
Fetch records by the collection's name, so the same code works in every environment.
Where Forms Save
Every form submission becomes a record in its collection.
Private by Default
Reading data needs your API token, so records never become public by accident.
Read records by slug from your backend
Collections are API-first. There is no SDK method, so call the records API with an org token, ideally from a background job.
const res = await fetch(
'https://api.console.buildbase.app/api/collections/data/contact-requests?latest=true',
{ headers: { Authorization: process.env.BUILDBASE_TOKEN! } }
);
// Every record for the resolved version, unpaginated.
const records: {
_id: string;
versionId: string;
data: Record<string, unknown>;
createdAt: string;
}[] = await res.json();Read more in the docs
Setup guides and reference for Collections & Custom Data.
Overview
Custom data schemas with versioned records and a token-authenticated REST API.
Records API
Read records for a collection by slug, and delete them by id.
Forms
Build a form in the console, submit to it from anywhere without a token, and trigger a workflow.
Custom forms
Fetch the field schema and render your own form UI against the public endpoints.
Admin API
Authenticate with an org API token and call the REST API behind the console modules.
Frequently Asked Questions
What people ask about Collections.
Do my users see this?
Not directly. Collections store data for your app, and your server decides what to show.
Can I use it as a public CMS?
No. Every read needs your API token, so there is no public read path.
How do I change the fields?
Publish a new version. A published version cannot be edited, so records already stored keep their meaning.
Is there an SDK for collections?
No. Collections are read over the REST API from your server.