Skip to main content
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
"single_line_text"

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
"long_text"

Email

Email addresses with automatic format validation. Value
string // Valid email address, e.g., "user@example.com"
Type
"email"

URL

Website links with automatic URL validation. Value
string // Valid URL, e.g., "https://example.com"
Type
"url"

Phone Number

Phone numbers with flexible formatting. Value
string // Phone number with any formatting, e.g., "+1 (555) 123-4567"
Type
"phone_number"

Number Fields

Number

Numeric values with customizable decimal places and formatting. Value
number | null // e.g., 42.5, 1000, null
Type
"number"
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
"currency"
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
"percent"
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
"rating"
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
"duration"
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
"single_select"
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
"multiple_select"
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
boolean // true or false
Type
"checkbox"
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
"date"
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
"datetime"
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
"attachment"
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
"linked_record"
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
"lookup"
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

  1. 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.
I