Reference for all supported field types, their value formats, and configuration settings.
Text Fields
Text
Short text input for names, titles, and brief descriptions.
Value
string // e.g., "John Doe", "Product Name"
Type
Long Text
Multi-line text for comments, descriptions, and notes.
Value
string // Multi-line text, e.g., "This is a long description\nwith multiple lines"
Type
Email
Email addresses with automatic format validation.
Value
string // Valid email address, e.g., "user@example.com"
Type
URL
Website links with automatic URL validation.
Value
string // Valid URL, e.g., "https://example.com"
Type
Phone Number
Phone numbers with flexible formatting.
Value
string // Phone number with any formatting, e.g., "+1 (555) 123-4567"
Type
Number Fields
Number
Numeric values with customizable decimal places and formatting.
Value
number | null // e.g., 42.5, 1000, null
Type
Settings
{
"name": "Quantity",
"template": {
"decimalPlaces": 2, // 0-10, default: 1
"numberFormat": "local" // "local" | "comma_period" | "period_comma" | "space_comma" | "space_period", default: "local"
}
}
Currency
Monetary values with currency symbol and formatting.
Value
number | null // Stored as raw number, e.g., 99.99, 1000.00, null
Type
Settings
{
"name": "Price",
"template": {
"currencySymbol": "$", // default: "$"
"decimalPlaces": 2, // 0-10, default: 2
"numberFormat": "local" // "local" | "comma_period" | "period_comma" | "space_comma" | "space_period", default: "local"
}
}
Percent
Percentage values with optional progress bar display.
Value
number | null // Stored as decimal (0.5 = 50%), e.g., 0.85, 1.0, null
Type
Settings
{
"name": "Completion Rate",
"template": {
"decimalPlaces": 1, // 0+, default: 0
"numberFormat": "local", // default: "local"
"showProgressBar": true, // default: false
"allowNegative": false // default: false
}
}
Rating
Star rating system with customizable maximum value.
Value
number | null // Integer from 0 to maxRating, e.g., 4, 5, null
Type
Settings
{
"name": "Customer Rating",
"template": {
"maxRating": 5 // 1-10, default: 5
}
}
Duration
Time duration with customizable display format.
Value
number | null // Stored as total seconds, e.g., 3600 (1 hour), 7260 (2:01:00), null
Type
Settings
{
"name": "Meeting Length",
"template": {
"format": "h:mm:ss" // "h:mm" | "h:mm:ss" | "h:mm:ss.s" | "h:mm:ss.ss" | "h:mm:ss.sss", default: "h:mm"
}
}
Selection Fields
Single Select
Choose one option from a predefined list.
Value
string | null // Option label, e.g., "Active", "Pending", null
Type
Settings
{
"name": "Status",
"template": {
"options": [
{ "label": "Active", "color": "green" },
{ "label": "Inactive", "color": "gray" },
{ "label": "Pending", "color": "yellow" }
]
}
}
label
(required): The display text for the option
color
(optional): Color key for the option. If not specified, a color will be auto-assigned. Available colors: purple, orange, blue, gray, red, yellow, green, pink, lime, tangerine, emerald, sky, teal, indigo, cyan, violet, fuchsia
value
(optional): Not specified when creating new options. Useful in write operations when specifying existing options (e.g., reordering options, keeping old options and adding new ones)
Multiple Select
Choose multiple options from a predefined list.
Value
string[] // Array of option labels, e.g., ["Urgent", "Bug"], []
Type
Settings
{
"name": "Tags",
"template": {
"options": [
{ "label": "Urgent", "color": "red" },
{ "label": "Bug", "color": "orange" },
{ "label": "Feature", "color": "blue" },
{ "label": "Enhancement", "color": "purple" }
]
}
}
label
(required): The display text for the option
color
(optional): Color key for the option. If not specified, a color will be auto-assigned. Available colors: purple, orange, blue, gray, red, yellow, green, pink, lime, tangerine, emerald, sky, teal, indigo, cyan, violet, fuchsia
value
(optional): Not specified when creating new options. Useful in write operations when specifying existing options (e.g., reordering options, keeping old options and adding new ones)
Checkbox
Boolean true/false toggle.
Value
Type
Settings
{
"name": "Is Complete",
"template": {
"color": "#10b981" // default: "#a8a4ac"
}
}
Date & Time Fields
Date
Calendar date without time component.
Value
string | null // ISO date string (UTC), e.g., "2024-03-15T00:00:00.000Z", null
Type
Settings
{
"name": "Due Date",
"template": {
"dateFormat": "us" // "local" | "long" | "us" | "european" | "iso", default: "local"
}
}
DateTime
Date and time with timezone support.
Value
string | null // ISO datetime string, e.g., "2024-03-15T14:30:00.000Z", null
Type
Settings
{
"name": "Meeting Time",
"template": {
"displayTimeZone": true, // default: false
"dateFormat": "us", // "local" | "long" | "us" | "european" | "iso", default: "local"
"timeFormat": "24h", // "12h" | "24h", default: "12h"
"timezone": "America/New_York" // default: "" (browser timezone)
}
}
File Fields
Attachment
File attachments with URL and optional filename.
Value
{
url: string, // Required: URL to the file
filename?: string // Optional: Display name for the file
} | null
Type
When providing attachment values, the URL must be accessible. The filename is optional and used for display purposes only.
Relationship Fields
Linked Record
Create relationships between records in different tables.
Value
string[] | string | null
// Array of record IDs if allowMultiple: true, e.g., ["rec123", "rec456"]
// Single record ID if allowMultiple: false, e.g., "rec123"
// null if no links
Type
Settings
{
"name": "Related Tasks",
"template": {
"tableId": "tbl789", // required: ID of table to link to
"allowMultiple": true, // default: true
"inverseFieldId": "fld456", // optional: ID of inverse field
"isInverse": false // optional: flag for inverse fields
}
}
tableId
can be either a table ID or table name during base creation
- Creating linked record fields automatically connects tables in both directions
Lookup
Display values from linked records.
Value
any | any[] | null
// Returns the actual values from the looked-up field
// Single value if linked record field has allowMultiple: false
// Array of values if linked record field has allowMultiple: true
// Type depends on the field being looked up (string, number, boolean, etc.)
Type
Settings
{
"name": "Task Names",
"template": {
"linkedRecordFieldId": "fld123", // required: ID of linked record field in same table
"lookupFieldId": "fld456" // required: ID of field to lookup in linked table
}
}
Lookup fields cannot be created during initial base setup. Add them later using the field creation endpoint.
Primary Field Requirements
The first field in each table becomes the primary field and must be one of these types:
single_line_text
long_text
date
phone_number
email
url
number
currency
percent
duration
General Notes
- Empty Values: Each field type has a default empty value:
- Text fields:
""
(empty string)
- Number fields:
null
- Boolean fields:
false
- Array fields:
[]
(empty array)
- Object fields:
null
Changing field types after data has been added may result in data loss if the new type is incompatible with existing values.