Field types
Every field in a schema definition has a type property that determines what values are valid, how data is stored, and which indexing options are available.
| Type | Description | Max length / constraint | Indexable? |
|---|
short-text | Single-line plain text string | 100 characters | Yes |
long-text | Multi-line plain text | 50,000 characters | Yes |
date-time | ISO 8601 date-time string (YYYY-MM-DDTHH:MM:SSZ) | N/A | Yes |
integer | Whole number | N/A | Yes |
decimal | Decimal (floating-point) number | N/A | Yes |
boolean | true or false | N/A | Yes |
geo-point | Geographic coordinate object: { lat, lon } | Lat: –90 to 90, Lon: –180 to 180 | Yes |
enum | One value from a predefined list | 50 values max, each 1–100 chars | Yes |
array | JSON array of values. Free-form — no per-item type checking. | Max 256 items | No |
object | Nested JSON object. Free-form — no type checking. | Max 2 levels of nesting | No |
Field definition properties
| Property | Type | Required | Description |
|---|
key | string | Yes | Field identifier. Lowercase, hyphens/underscores allowed. 3–30 chars. Immutable after creation. |
display_name | string | Yes | Label shown in the UI. 1–50 chars. Can be changed at any time. |
type | string | Yes | One of the field types above. Immutable after creation. |
is_required | boolean | No | Whether the field is required on record creation. Defaults to false. Can be relaxed (true → false) but not tightened (false → true) after creation. |
description | string | No | Help text for editors. 0–500 chars. Can be changed at any time. |
enum_values | array | Conditional | Required when type is enum. Array of string values. Max 50 values; each 1–100 chars; no duplicates. |
search_settings | object | No | Enables API-level indexing for this field. |