Extensions

Press shift + S to search API reference.

Enum

FieldType

View source

An enum of Airtable's field types

import {FieldType} from '@airtable/blocks/models';
const numberFields = myTable.fields.filter(field => (
field.type === FieldType.NUMBER
));

Enum members

AI_TEXT"aiText"

Field that contains text generated by AI.

Cell read format

{
state: 'empty' | 'loading' | 'generated' | 'error',
value: string,
isStale: boolean,
// Only populated if state is 'error'
errorType?: string,
}

Cell write format

n/a

Field options read format

{
prompt?: Array<string | {field: {fieldId: string}}>,
referencedFieldIds?: Array<string>,
}

Prompt is an array of strings and field references. All referenced field ids

Field options write format

Creating or updating AI_TEXT fields is not supported.

AUTO_NUMBER"autoNumber"

Automatically incremented unique counter for each record.

Cell read format

number

Cell write format

n/a

Field options read format

n/a

Field options write format

Creating or updating AUTO_NUMBER fields is not supported.

BARCODE"barcode"

Use the Airtable iOS or Android app to scan barcodes.

Cell read format

{
// the text value of the barcode
text: string,
// the type of barcode
type?: string,
}

Cell write format

n/a

Field options

n/a

BUTTON"button"

A button that can be clicked from the Airtable UI to open a URL or open a block.

You cannot currently programmatically interact with a button field from a block, but you can configure your block to perform a certain action when it's opened from a button field: see useRecordActionData for details.

Cell read format

{
// The label of the button
label: string,
// URL the button opens, or URL of the block that the button opens.
// Null when the URL formula has become invalid.
url: string | null,
}

Cell write format

n/a

Field options read format

n/a

Field options write format

Creating or updating BUTTON fields is not supported.

CHECKBOX"checkbox"

A checkbox.

This field is "true" when checked and "null" when unchecked.

Cell read format

true | null

You can write to the cell with "false", but the read value will be still be "null" (unchecked).

Cell write format

boolean | null

Field options

{
// an icon name
icon: 'check' | 'star' | 'heart' | 'thumbsUp' | 'flag',
// the color of the check box
color: 'yellowBright' | 'orangeBright' | 'redBright' | 'pinkBright' | 'purpleBright' | 'blueBright' | 'cyanBright' | 'tealBright' | 'greenBright' | 'grayBright' ,
}

Bases on a free or plus plan are limited to using the 'check' icon and 'greenBright' color.

COUNT"count"

Count the number of linked records.

Cell read format

number

Cell write format

n/a

Field options read format

{
// is the field currently valid (e.g. false if the linked record
// field has been changed to a different field type)
isValid: boolean,
// the linked record field in this table that we're counting
recordLinkFieldId: FieldId,
}

Field options write format

Creating or updating COUNT fields is not supported.

CREATED_BY"createdBy"

The collaborator who created a record.

The cell value format is the same as the SINGLE_COLLABORATOR field, without the ability to write to the cell value.

Cell read format

{
id: string,
email: string,
name?: string,
profilePicUrl?: string,
}

Cell write format

n/a

Field options read format

{
choices: Array<{
id: string,
email: string,
name?: string,
profilePicUrl?: string,
}>,
}

Field options write format

Creating or updating CREATED_BY fields is not supported.

CREATED_TIME"createdTime"

The time the record was created in UTC.

When reading from a "Created time" field, the cell value will always be an ISO 8601 formatted date time. (Field options specify how it's displayed in the UI.)

Cell read format

string

Cell write format

n/a

Field options read format

{
result: {
type: 'date' | 'dateTime',
// See DATE and DATE_TIME for detailed field options
options: DateOrDateTimeFieldOptions,
},
}

Field options write format

Creating or updating CREATED_TIME fields is not supported.

CURRENCY"currency"

An amount of a currency.

Cell format

number

Field options

{
precision: number, // from 0 to 7 inclusive
symbol: string,
}
DATE"date"

A date.

When reading from and writing to a date field, the cell value will always be an ISO 8601 formatted date. (Field options specify how it's formatted in the main Airtable UI - format can be used with moment.js to match that.)

The date format string follows the moment.js structure documented here

Cell read format

string

Cell write format

Date | string

Field options read format

{
dateFormat:
| {name: 'local', format: 'l'}
| {name: 'friendly', format: 'LL'}
| {name: 'us', format: 'M/D/YYYY'}
| {name: 'european', format: 'D/M/YYYY'}
| {name: 'iso', format: 'YYYY-MM-DD'}
}

Field options write format

{
dateFormat:
// Format is optional, but must match name if provided.
| {name: 'local', format?: 'l'}
| {name: 'friendly', format?: 'LL'}
| {name: 'us', format?: 'M/D/YYYY'}
| {name: 'european', format?: 'D/M/YYYY'}
| {name: 'iso', format?: 'YYYY-MM-DD'}
}
DATE_TIME"dateTime"

A date field configured to also include a time.

When reading from and writing to a date field, the cell value will always be an ISO 8601 formatted date. (Field options specify how it's formatted in the main Airtable UI - format can be used with moment.js to match that.)

The date and time format strings follow the moment.js structure documented here

Cell read format

string

Cell write format

Date | string

For a dateTime field configured with a non utc or client time zone like America/Los_Angeles, ambiguous string inputs like "2020-09-05T07:00:00" and "2020-09-08" will be interpreted according to timeZone of the field instead of utc, and nonambiguous string inputs with zone offset like "2020-09-05T07:00:00.000Z" and "2020-09-08T00:00:00-07:00" will be interpreted as the underlying timestamp.

Field options read format

{
dateFormat:
| {name: 'local', format: 'l'}
| {name: 'friendly', format: 'LL'}
| {name: 'us', format: 'M/D/YYYY'}
| {name: 'european', format: 'D/M/YYYY'}
| {name: 'iso', format: 'YYYY-MM-DD'},
timeFormat:
| {name: '12hour', format: 'h:mma'}
| {name: '24hour', format: 'HH:mm'},
timeZone: 'utc' | 'client' | 'Africa/Abidjan' | 'Africa/Accra' | 'Africa/Addis_Ababa' | 'Africa/Algiers' | 'Africa/Asmara' | 'Africa/Bamako' | 'Africa/Bangui' | 'Africa/Banjul' | 'Africa/Bissau' | 'Africa/Blantyre' | 'Africa/Brazzaville' | 'Africa/Bujumbura' | 'Africa/Cairo' | 'Africa/Casablanca' | 'Africa/Ceuta' | 'Africa/Conakry' | 'Africa/Dakar' | 'Africa/Dar_es_Salaam' | 'Africa/Djibouti' | 'Africa/Douala' | 'Africa/El_Aaiun' | 'Africa/Freetown' | 'Africa/Gaborone' | 'Africa/Harare' | 'Africa/Johannesburg' | 'Africa/Juba' | 'Africa/Kampala' | 'Africa/Khartoum' | 'Africa/Kigali' | 'Africa/Kinshasa' | 'Africa/Lagos' | 'Africa/Libreville' | 'Africa/Lome' | 'Africa/Luanda' | 'Africa/Lubumbashi' | 'Africa/Lusaka' | 'Africa/Malabo' | 'Africa/Maputo' | 'Africa/Maseru' | 'Africa/Mbabane' | 'Africa/Mogadishu' | 'Africa/Monrovia' | 'Africa/Nairobi' | 'Africa/Ndjamena' | 'Africa/Niamey' | 'Africa/Nouakchott' | 'Africa/Ouagadougou' | 'Africa/Porto-Novo' | 'Africa/Sao_Tome' | 'Africa/Tripoli' | 'Africa/Tunis' | 'Africa/Windhoek' | 'America/Adak' | 'America/Anchorage' | 'America/Anguilla' | 'America/Antigua' | 'America/Araguaina' | 'America/Argentina/Buenos_Aires' | 'America/Argentina/Catamarca' | 'America/Argentina/Cordoba' | 'America/Argentina/Jujuy' | 'America/Argentina/La_Rioja' | 'America/Argentina/Mendoza' | 'America/Argentina/Rio_Gallegos' | 'America/Argentina/Salta' | 'America/Argentina/San_Juan' | 'America/Argentina/San_Luis' | 'America/Argentina/Tucuman' | 'America/Argentina/Ushuaia' | 'America/Aruba' | 'America/Asuncion' | 'America/Atikokan' | 'America/Bahia' | 'America/Bahia_Banderas' | 'America/Barbados' | 'America/Belem' | 'America/Belize' | 'America/Blanc-Sablon' | 'America/Boa_Vista' | 'America/Bogota' | 'America/Boise' | 'America/Cambridge_Bay' | 'America/Campo_Grande' | 'America/Cancun' | 'America/Caracas' | 'America/Cayenne' | 'America/Cayman' | 'America/Chicago' | 'America/Chihuahua' | 'America/Costa_Rica' | 'America/Creston' | 'America/Cuiaba' | 'America/Curacao' | 'America/Danmarkshavn' | 'America/Dawson' | 'America/Dawson_Creek' | 'America/Denver' | 'America/Detroit' | 'America/Dominica' | 'America/Edmonton' | 'America/Eirunepe' | 'America/El_Salvador' | 'America/Fort_Nelson' | 'America/Fortaleza' | 'America/Glace_Bay' | 'America/Godthab' | 'America/Goose_Bay' | 'America/Grand_Turk' | 'America/Grenada' | 'America/Guadeloupe' | 'America/Guatemala' | 'America/Guayaquil' | 'America/Guyana' | 'America/Halifax' | 'America/Havana' | 'America/Hermosillo' | 'America/Indiana/Indianapolis' | 'America/Indiana/Knox' | 'America/Indiana/Marengo' | 'America/Indiana/Petersburg' | 'America/Indiana/Tell_City' | 'America/Indiana/Vevay' | 'America/Indiana/Vincennes' | 'America/Indiana/Winamac' | 'America/Inuvik' | 'America/Iqaluit' | 'America/Jamaica' | 'America/Juneau' | 'America/Kentucky/Louisville' | 'America/Kentucky/Monticello' | 'America/Kralendijk' | 'America/La_Paz' | 'America/Lima' | 'America/Los_Angeles' | 'America/Lower_Princes' | 'America/Maceio' | 'America/Managua' | 'America/Manaus' | 'America/Marigot' | 'America/Martinique' | 'America/Matamoros' | 'America/Mazatlan' | 'America/Menominee' | 'America/Merida' | 'America/Metlakatla' | 'America/Mexico_City' | 'America/Miquelon' | 'America/Moncton' | 'America/Monterrey' | 'America/Montevideo' | 'America/Montserrat' | 'America/Nassau' | 'America/New_York' | 'America/Nipigon' | 'America/Nome' | 'America/Noronha' | 'America/North_Dakota/Beulah' | 'America/North_Dakota/Center' | 'America/North_Dakota/New_Salem' | 'America/Nuuk' | 'America/Ojinaga' | 'America/Panama' | 'America/Pangnirtung' | 'America/Paramaribo' | 'America/Phoenix' | 'America/Port-au-Prince' | 'America/Port_of_Spain' | 'America/Porto_Velho' | 'America/Puerto_Rico' | 'America/Punta_Arenas' | 'America/Rainy_River' | 'America/Rankin_Inlet' | 'America/Recife' | 'America/Regina' | 'America/Resolute' | 'America/Rio_Branco' | 'America/Santarem' | 'America/Santiago' | 'America/Santo_Domingo' | 'America/Sao_Paulo' | 'America/Scoresbysund' | 'America/Sitka' | 'America/St_Barthelemy' | 'America/St_Johns' | 'America/St_Kitts' | 'America/St_Lucia' | 'America/St_Thomas' | 'America/St_Vincent' | 'America/Swift_Current' | 'America/Tegucigalpa' | 'America/Thule' | 'America/Thunder_Bay' | 'America/Tijuana' | 'America/Toronto' | 'America/Tortola' | 'America/Vancouver' | 'America/Whitehorse' | 'America/Winnipeg' | 'America/Yakutat' | 'America/Yellowknife' | 'Antarctica/Casey' | 'Antarctica/Davis' | 'Antarctica/DumontDUrville' | 'Antarctica/Macquarie' | 'Antarctica/Mawson' | 'Antarctica/McMurdo' | 'Antarctica/Palmer' | 'Antarctica/Rothera' | 'Antarctica/Syowa' | 'Antarctica/Troll' | 'Antarctica/Vostok' | 'Arctic/Longyearbyen' | 'Asia/Aden' | 'Asia/Almaty' | 'Asia/Amman' | 'Asia/Anadyr' | 'Asia/Aqtau' | 'Asia/Aqtobe' | 'Asia/Ashgabat' | 'Asia/Atyrau' | 'Asia/Baghdad' | 'Asia/Bahrain' | 'Asia/Baku' | 'Asia/Bangkok' | 'Asia/Barnaul' | 'Asia/Beirut' | 'Asia/Bishkek' | 'Asia/Brunei' | 'Asia/Chita' | 'Asia/Choibalsan' | 'Asia/Colombo' | 'Asia/Damascus' | 'Asia/Dhaka' | 'Asia/Dili' | 'Asia/Dubai' | 'Asia/Dushanbe' | 'Asia/Famagusta' | 'Asia/Gaza' | 'Asia/Hebron' | 'Asia/Ho_Chi_Minh' | 'Asia/Hong_Kong' | 'Asia/Hovd' | 'Asia/Irkutsk' | 'Asia/Istanbul' | 'Asia/Jakarta' | 'Asia/Jayapura' | 'Asia/Jerusalem' | 'Asia/Kabul' | 'Asia/Kamchatka' | 'Asia/Karachi' | 'Asia/Kathmandu' | 'Asia/Khandyga' | 'Asia/Kolkata' | 'Asia/Krasnoyarsk' | 'Asia/Kuala_Lumpur' | 'Asia/Kuching' | 'Asia/Kuwait' | 'Asia/Macau' | 'Asia/Magadan' | 'Asia/Makassar' | 'Asia/Manila' | 'Asia/Muscat' | 'Asia/Nicosia' | 'Asia/Novokuznetsk' | 'Asia/Novosibirsk' | 'Asia/Omsk' | 'Asia/Oral' | 'Asia/Phnom_Penh' | 'Asia/Pontianak' | 'Asia/Pyongyang' | 'Asia/Qatar' | 'Asia/Qostanay' | 'Asia/Qyzylorda' | 'Asia/Rangoon' | 'Asia/Riyadh' | 'Asia/Sakhalin' | 'Asia/Samarkand' | 'Asia/Seoul' | 'Asia/Shanghai' | 'Asia/Singapore' | 'Asia/Srednekolymsk' | 'Asia/Taipei' | 'Asia/Tashkent' | 'Asia/Tbilisi' | 'Asia/Tehran' | 'Asia/Thimphu' | 'Asia/Tokyo' | 'Asia/Tomsk' | 'Asia/Ulaanbaatar' | 'Asia/Urumqi' | 'Asia/Ust-Nera' | 'Asia/Vientiane' | 'Asia/Vladivostok' | 'Asia/Yakutsk' | 'Asia/Yangon' | 'Asia/Yekaterinburg' | 'Asia/Yerevan' | 'Atlantic/Azores' | 'Atlantic/Bermuda' | 'Atlantic/Canary' | 'Atlantic/Cape_Verde' | 'Atlantic/Faroe' | 'Atlantic/Madeira' | 'Atlantic/Reykjavik' | 'Atlantic/South_Georgia' | 'Atlantic/St_Helena' | 'Atlantic/Stanley' | 'Australia/Adelaide' | 'Australia/Brisbane' | 'Australia/Broken_Hill' | 'Australia/Currie' | 'Australia/Darwin' | 'Australia/Eucla' | 'Australia/Hobart' | 'Australia/Lindeman' | 'Australia/Lord_Howe' | 'Australia/Melbourne' | 'Australia/Perth' | 'Australia/Sydney' | 'Europe/Amsterdam' | 'Europe/Andorra' | 'Europe/Astrakhan' | 'Europe/Athens' | 'Europe/Belgrade' | 'Europe/Berlin' | 'Europe/Bratislava' | 'Europe/Brussels' | 'Europe/Bucharest' | 'Europe/Budapest' | 'Europe/Busingen' | 'Europe/Chisinau' | 'Europe/Copenhagen' | 'Europe/Dublin' | 'Europe/Gibraltar' | 'Europe/Guernsey' | 'Europe/Helsinki' | 'Europe/Isle_of_Man' | 'Europe/Istanbul' | 'Europe/Jersey' | 'Europe/Kaliningrad' | 'Europe/Kiev' | 'Europe/Kirov' | 'Europe/Lisbon' | 'Europe/Ljubljana' | 'Europe/London' | 'Europe/Luxembourg' | 'Europe/Madrid' | 'Europe/Malta' | 'Europe/Mariehamn' | 'Europe/Minsk' | 'Europe/Monaco' | 'Europe/Moscow' | 'Europe/Nicosia' | 'Europe/Oslo' | 'Europe/Paris' | 'Europe/Podgorica' | 'Europe/Prague' | 'Europe/Riga' | 'Europe/Rome' | 'Europe/Samara' | 'Europe/San_Marino' | 'Europe/Sarajevo' | 'Europe/Saratov' | 'Europe/Simferopol' | 'Europe/Skopje' | 'Europe/Sofia' | 'Europe/Stockholm' | 'Europe/Tallinn' | 'Europe/Tirane' | 'Europe/Ulyanovsk' | 'Europe/Uzhgorod' | 'Europe/Vaduz' | 'Europe/Vatican' | 'Europe/Vienna' | 'Europe/Vilnius' | 'Europe/Volgograd' | 'Europe/Warsaw' | 'Europe/Zagreb' | 'Europe/Zaporozhye' | 'Europe/Zurich' | 'Indian/Antananarivo' | 'Indian/Chagos' | 'Indian/Christmas' | 'Indian/Cocos' | 'Indian/Comoro' | 'Indian/Kerguelen' | 'Indian/Mahe' | 'Indian/Maldives' | 'Indian/Mauritius' | 'Indian/Mayotte' | 'Indian/Reunion' | 'Pacific/Apia' | 'Pacific/Auckland' | 'Pacific/Bougainville' | 'Pacific/Chatham' | 'Pacific/Chuuk' | 'Pacific/Easter' | 'Pacific/Efate' | 'Pacific/Enderbury' | 'Pacific/Fakaofo' | 'Pacific/Fiji' | 'Pacific/Funafuti' | 'Pacific/Galapagos' | 'Pacific/Gambier' | 'Pacific/Guadalcanal' | 'Pacific/Guam' | 'Pacific/Honolulu' | 'Pacific/Kanton' | 'Pacific/Kiritimati' | 'Pacific/Kosrae' | 'Pacific/Kwajalein' | 'Pacific/Majuro' | 'Pacific/Marquesas' | 'Pacific/Midway' | 'Pacific/Nauru' | 'Pacific/Niue' | 'Pacific/Norfolk' | 'Pacific/Noumea' | 'Pacific/Pago_Pago' | 'Pacific/Palau' | 'Pacific/Pitcairn' | 'Pacific/Pohnpei' | 'Pacific/Port_Moresby' | 'Pacific/Rarotonga' | 'Pacific/Saipan' | 'Pacific/Tahiti' | 'Pacific/Tarawa' | 'Pacific/Tongatapu' | 'Pacific/Wake' | 'Pacific/Wallis',
}

Field options write format

{
dateFormat:
// Format is optional, but must match name if provided.
| {name: 'local', format?: 'l'}
| {name: 'friendly', format?: 'LL'}
| {name: 'us', format?: 'M/D/YYYY'}
| {name: 'european', format?: 'D/M/YYYY'}
| {name: 'iso', format?: 'YYYY-MM-DD'},
timeFormat:
// Format is optional, but must match name if provided.
| {name: '12hour', format?: 'h:mma'}
| {name: '24hour', format?: 'HH:mm'},
timeZone: 'utc' | 'client' | 'Africa/Abidjan' | 'Africa/Accra' | 'Africa/Addis_Ababa' | 'Africa/Algiers' | 'Africa/Asmara' | 'Africa/Bamako' | 'Africa/Bangui' | 'Africa/Banjul' | 'Africa/Bissau' | 'Africa/Blantyre' | 'Africa/Brazzaville' | 'Africa/Bujumbura' | 'Africa/Cairo' | 'Africa/Casablanca' | 'Africa/Ceuta' | 'Africa/Conakry' | 'Africa/Dakar' | 'Africa/Dar_es_Salaam' | 'Africa/Djibouti' | 'Africa/Douala' | 'Africa/El_Aaiun' | 'Africa/Freetown' | 'Africa/Gaborone' | 'Africa/Harare' | 'Africa/Johannesburg' | 'Africa/Juba' | 'Africa/Kampala' | 'Africa/Khartoum' | 'Africa/Kigali' | 'Africa/Kinshasa' | 'Africa/Lagos' | 'Africa/Libreville' | 'Africa/Lome' | 'Africa/Luanda' | 'Africa/Lubumbashi' | 'Africa/Lusaka' | 'Africa/Malabo' | 'Africa/Maputo' | 'Africa/Maseru' | 'Africa/Mbabane' | 'Africa/Mogadishu' | 'Africa/Monrovia' | 'Africa/Nairobi' | 'Africa/Ndjamena' | 'Africa/Niamey' | 'Africa/Nouakchott' | 'Africa/Ouagadougou' | 'Africa/Porto-Novo' | 'Africa/Sao_Tome' | 'Africa/Tripoli' | 'Africa/Tunis' | 'Africa/Windhoek' | 'America/Adak' | 'America/Anchorage' | 'America/Anguilla' | 'America/Antigua' | 'America/Araguaina' | 'America/Argentina/Buenos_Aires' | 'America/Argentina/Catamarca' | 'America/Argentina/Cordoba' | 'America/Argentina/Jujuy' | 'America/Argentina/La_Rioja' | 'America/Argentina/Mendoza' | 'America/Argentina/Rio_Gallegos' | 'America/Argentina/Salta' | 'America/Argentina/San_Juan' | 'America/Argentina/San_Luis' | 'America/Argentina/Tucuman' | 'America/Argentina/Ushuaia' | 'America/Aruba' | 'America/Asuncion' | 'America/Atikokan' | 'America/Bahia' | 'America/Bahia_Banderas' | 'America/Barbados' | 'America/Belem' | 'America/Belize' | 'America/Blanc-Sablon' | 'America/Boa_Vista' | 'America/Bogota' | 'America/Boise' | 'America/Cambridge_Bay' | 'America/Campo_Grande' | 'America/Cancun' | 'America/Caracas' | 'America/Cayenne' | 'America/Cayman' | 'America/Chicago' | 'America/Chihuahua' | 'America/Costa_Rica' | 'America/Creston' | 'America/Cuiaba' | 'America/Curacao' | 'America/Danmarkshavn' | 'America/Dawson' | 'America/Dawson_Creek' | 'America/Denver' | 'America/Detroit' | 'America/Dominica' | 'America/Edmonton' | 'America/Eirunepe' | 'America/El_Salvador' | 'America/Fort_Nelson' | 'America/Fortaleza' | 'America/Glace_Bay' | 'America/Godthab' | 'America/Goose_Bay' | 'America/Grand_Turk' | 'America/Grenada' | 'America/Guadeloupe' | 'America/Guatemala' | 'America/Guayaquil' | 'America/Guyana' | 'America/Halifax' | 'America/Havana' | 'America/Hermosillo' | 'America/Indiana/Indianapolis' | 'America/Indiana/Knox' | 'America/Indiana/Marengo' | 'America/Indiana/Petersburg' | 'America/Indiana/Tell_City' | 'America/Indiana/Vevay' | 'America/Indiana/Vincennes' | 'America/Indiana/Winamac' | 'America/Inuvik' | 'America/Iqaluit' | 'America/Jamaica' | 'America/Juneau' | 'America/Kentucky/Louisville' | 'America/Kentucky/Monticello' | 'America/Kralendijk' | 'America/La_Paz' | 'America/Lima' | 'America/Los_Angeles' | 'America/Lower_Princes' | 'America/Maceio' | 'America/Managua' | 'America/Manaus' | 'America/Marigot' | 'America/Martinique' | 'America/Matamoros' | 'America/Mazatlan' | 'America/Menominee' | 'America/Merida' | 'America/Metlakatla' | 'America/Mexico_City' | 'America/Miquelon' | 'America/Moncton' | 'America/Monterrey' | 'America/Montevideo' | 'America/Montserrat' | 'America/Nassau' | 'America/New_York' | 'America/Nipigon' | 'America/Nome' | 'America/Noronha' | 'America/North_Dakota/Beulah' | 'America/North_Dakota/Center' | 'America/North_Dakota/New_Salem' | 'America/Nuuk' | 'America/Ojinaga' | 'America/Panama' | 'America/Pangnirtung' | 'America/Paramaribo' | 'America/Phoenix' | 'America/Port-au-Prince' | 'America/Port_of_Spain' | 'America/Porto_Velho' | 'America/Puerto_Rico' | 'America/Punta_Arenas' | 'America/Rainy_River' | 'America/Rankin_Inlet' | 'America/Recife' | 'America/Regina' | 'America/Resolute' | 'America/Rio_Branco' | 'America/Santarem' | 'America/Santiago' | 'America/Santo_Domingo' | 'America/Sao_Paulo' | 'America/Scoresbysund' | 'America/Sitka' | 'America/St_Barthelemy' | 'America/St_Johns' | 'America/St_Kitts' | 'America/St_Lucia' | 'America/St_Thomas' | 'America/St_Vincent' | 'America/Swift_Current' | 'America/Tegucigalpa' | 'America/Thule' | 'America/Thunder_Bay' | 'America/Tijuana' | 'America/Toronto' | 'America/Tortola' | 'America/Vancouver' | 'America/Whitehorse' | 'America/Winnipeg' | 'America/Yakutat' | 'America/Yellowknife' | 'Antarctica/Casey' | 'Antarctica/Davis' | 'Antarctica/DumontDUrville' | 'Antarctica/Macquarie' | 'Antarctica/Mawson' | 'Antarctica/McMurdo' | 'Antarctica/Palmer' | 'Antarctica/Rothera' | 'Antarctica/Syowa' | 'Antarctica/Troll' | 'Antarctica/Vostok' | 'Arctic/Longyearbyen' | 'Asia/Aden' | 'Asia/Almaty' | 'Asia/Amman' | 'Asia/Anadyr' | 'Asia/Aqtau' | 'Asia/Aqtobe' | 'Asia/Ashgabat' | 'Asia/Atyrau' | 'Asia/Baghdad' | 'Asia/Bahrain' | 'Asia/Baku' | 'Asia/Bangkok' | 'Asia/Barnaul' | 'Asia/Beirut' | 'Asia/Bishkek' | 'Asia/Brunei' | 'Asia/Chita' | 'Asia/Choibalsan' | 'Asia/Colombo' | 'Asia/Damascus' | 'Asia/Dhaka' | 'Asia/Dili' | 'Asia/Dubai' | 'Asia/Dushanbe' | 'Asia/Famagusta' | 'Asia/Gaza' | 'Asia/Hebron' | 'Asia/Ho_Chi_Minh' | 'Asia/Hong_Kong' | 'Asia/Hovd' | 'Asia/Irkutsk' | 'Asia/Istanbul' | 'Asia/Jakarta' | 'Asia/Jayapura' | 'Asia/Jerusalem' | 'Asia/Kabul' | 'Asia/Kamchatka' | 'Asia/Karachi' | 'Asia/Kathmandu' | 'Asia/Khandyga' | 'Asia/Kolkata' | 'Asia/Krasnoyarsk' | 'Asia/Kuala_Lumpur' | 'Asia/Kuching' | 'Asia/Kuwait' | 'Asia/Macau' | 'Asia/Magadan' | 'Asia/Makassar' | 'Asia/Manila' | 'Asia/Muscat' | 'Asia/Nicosia' | 'Asia/Novokuznetsk' | 'Asia/Novosibirsk' | 'Asia/Omsk' | 'Asia/Oral' | 'Asia/Phnom_Penh' | 'Asia/Pontianak' | 'Asia/Pyongyang' | 'Asia/Qatar' | 'Asia/Qostanay' | 'Asia/Qyzylorda' | 'Asia/Rangoon' | 'Asia/Riyadh' | 'Asia/Sakhalin' | 'Asia/Samarkand' | 'Asia/Seoul' | 'Asia/Shanghai' | 'Asia/Singapore' | 'Asia/Srednekolymsk' | 'Asia/Taipei' | 'Asia/Tashkent' | 'Asia/Tbilisi' | 'Asia/Tehran' | 'Asia/Thimphu' | 'Asia/Tokyo' | 'Asia/Tomsk' | 'Asia/Ulaanbaatar' | 'Asia/Urumqi' | 'Asia/Ust-Nera' | 'Asia/Vientiane' | 'Asia/Vladivostok' | 'Asia/Yakutsk' | 'Asia/Yangon' | 'Asia/Yekaterinburg' | 'Asia/Yerevan' | 'Atlantic/Azores' | 'Atlantic/Bermuda' | 'Atlantic/Canary' | 'Atlantic/Cape_Verde' | 'Atlantic/Faroe' | 'Atlantic/Madeira' | 'Atlantic/Reykjavik' | 'Atlantic/South_Georgia' | 'Atlantic/St_Helena' | 'Atlantic/Stanley' | 'Australia/Adelaide' | 'Australia/Brisbane' | 'Australia/Broken_Hill' | 'Australia/Currie' | 'Australia/Darwin' | 'Australia/Eucla' | 'Australia/Hobart' | 'Australia/Lindeman' | 'Australia/Lord_Howe' | 'Australia/Melbourne' | 'Australia/Perth' | 'Australia/Sydney' | 'Europe/Amsterdam' | 'Europe/Andorra' | 'Europe/Astrakhan' | 'Europe/Athens' | 'Europe/Belgrade' | 'Europe/Berlin' | 'Europe/Bratislava' | 'Europe/Brussels' | 'Europe/Bucharest' | 'Europe/Budapest' | 'Europe/Busingen' | 'Europe/Chisinau' | 'Europe/Copenhagen' | 'Europe/Dublin' | 'Europe/Gibraltar' | 'Europe/Guernsey' | 'Europe/Helsinki' | 'Europe/Isle_of_Man' | 'Europe/Istanbul' | 'Europe/Jersey' | 'Europe/Kaliningrad' | 'Europe/Kiev' | 'Europe/Kirov' | 'Europe/Lisbon' | 'Europe/Ljubljana' | 'Europe/London' | 'Europe/Luxembourg' | 'Europe/Madrid' | 'Europe/Malta' | 'Europe/Mariehamn' | 'Europe/Minsk' | 'Europe/Monaco' | 'Europe/Moscow' | 'Europe/Nicosia' | 'Europe/Oslo' | 'Europe/Paris' | 'Europe/Podgorica' | 'Europe/Prague' | 'Europe/Riga' | 'Europe/Rome' | 'Europe/Samara' | 'Europe/San_Marino' | 'Europe/Sarajevo' | 'Europe/Saratov' | 'Europe/Simferopol' | 'Europe/Skopje' | 'Europe/Sofia' | 'Europe/Stockholm' | 'Europe/Tallinn' | 'Europe/Tirane' | 'Europe/Ulyanovsk' | 'Europe/Uzhgorod' | 'Europe/Vaduz' | 'Europe/Vatican' | 'Europe/Vienna' | 'Europe/Vilnius' | 'Europe/Volgograd' | 'Europe/Warsaw' | 'Europe/Zagreb' | 'Europe/Zaporozhye' | 'Europe/Zurich' | 'Indian/Antananarivo' | 'Indian/Chagos' | 'Indian/Christmas' | 'Indian/Cocos' | 'Indian/Comoro' | 'Indian/Kerguelen' | 'Indian/Mahe' | 'Indian/Maldives' | 'Indian/Mauritius' | 'Indian/Mayotte' | 'Indian/Reunion' | 'Pacific/Apia' | 'Pacific/Auckland' | 'Pacific/Bougainville' | 'Pacific/Chatham' | 'Pacific/Chuuk' | 'Pacific/Easter' | 'Pacific/Efate' | 'Pacific/Enderbury' | 'Pacific/Fakaofo' | 'Pacific/Fiji' | 'Pacific/Funafuti' | 'Pacific/Galapagos' | 'Pacific/Gambier' | 'Pacific/Guadalcanal' | 'Pacific/Guam' | 'Pacific/Honolulu' | 'Pacific/Kanton' | 'Pacific/Kiritimati' | 'Pacific/Kosrae' | 'Pacific/Kwajalein' | 'Pacific/Majuro' | 'Pacific/Marquesas' | 'Pacific/Midway' | 'Pacific/Nauru' | 'Pacific/Niue' | 'Pacific/Norfolk' | 'Pacific/Noumea' | 'Pacific/Pago_Pago' | 'Pacific/Palau' | 'Pacific/Pitcairn' | 'Pacific/Pohnpei' | 'Pacific/Port_Moresby' | 'Pacific/Rarotonga' | 'Pacific/Saipan' | 'Pacific/Tahiti' | 'Pacific/Tarawa' | 'Pacific/Tongatapu' | 'Pacific/Wake' | 'Pacific/Wallis',
}
DURATION"duration"

A duration of time in seconds.

The durationFormat string follows the moment.js structure documented here.

Cell format

number

Field options

{
durationFormat: 'h:mm' | 'h:mm:ss' | 'h:mm:ss.S' | 'h:mm:ss.SS' | 'h:mm:ss.SSS',
}
EMAIL"email"

A valid email address (e.g. andrew@example.com).

Cell format

string

Field options

n/a

EXTERNAL_SYNC_SOURCE"externalSyncSource"

Shows the name of the source that a record is synced from. This field is only available on synced tables.

Cell read format

{
id: string,
name: string,
color?: Color
}

Cell write format

n/a

Field options read format

{
choices: Array<{
id: string,
name: string,
color?: [Color](/api/Color), // Color is not provided when field coloring is disabled.
}>,
}

Every choice represents a sync source, and choices are added or removed automatically as sync sources are added or removed. Choice names and colors are user-configurable.

Field options write format

Creating or updating EXTERNAL_SYNC_SOURCE fields is not supported.

FORMULA"formula"

Compute a value in each record based on other fields in the same record.

Cell read format

Check options.result to know the resulting field type.

any

Cell write format

n/a

Field options read format

{
// false if the formula contains an error
isValid: boolean,
// the other fields in the record that are used in the formula
referencedFieldIds: Array<FieldId>,
// the resulting field type and options returned by the formula
result: {
// the field type of the formula result
type: string,
// that types options
options?: any,
},
}

Field options write format

Creating or updating FORMULA fields is not supported.

LAST_MODIFIED_BY"lastModifiedBy"

Shows the last collaborator who most recently modified any editable field or just in specific editable fields.

The cell value format is the same as the SINGLE_COLLABORATOR field, without the ability to write to the cell value.

Cell read format

{
id: string,
email: string,
name?: string,
profilePicUrl?: string,
}

Cell write format

n/a

Field options read format

{
referencedFieldIds: Array<FieldId>,
choices: Array<{
id: string,
email: string,
name?: string,
profilePicUrl?: string,
}>,
}

Field options write format

Creating or updating LAST_MODIFIED_BY fields is not supported.

LAST_MODIFIED_TIME"lastModifiedTime"

Shows the date and time that a record was most recently modified in any editable field or just in specific editable fields.

When reading from a "Last modified time" field, the cell value will always be an ISO 8601 formatted date time. (Field options specify how it's displayed in the UI.)

Cell read format

string

Cell write format

n/a

Field options read format

{
// false if the formula contains an error
isValid: boolean,
// the fields to check the last modified time of
referencedFieldIds: Array<FieldId>,
// the cell value result type
result: {
type: 'date' | 'dateTime',
// See DATE and DATE_TIME for detailed field options
options: DateOrDateTimeFieldOptions,
},
}

Field options write format

Creating or updating LAST_MODIFIED_TIME fields is not supported.

MULTILINE_TEXT"multilineText"

A long text field that can span multiple lines. May contain "mention tokens", e.g. <airtable:mention id="menE1i9oBaGX3DseR">@Alex</airtable:mention>

Cell format

string

Field options

n/a

MULTIPLE_ATTACHMENTS"multipleAttachments"

Attachments allow you to add images, documents, or other files which can then be viewed or downloaded.

When updating an existing attachment cell value, the specified array will overwrite the current cell value. If you want to add a new attachment without deleting the current attachments, you can spread the current cell value like so:

const newAttachmentUrl = 'example.com/cute-cats.jpeg';
myTable.updateRecordAsync(myRecord, {
'myAttachmentField': [
...myRecord.getCellValue('myAttachmentField'),
{ url: newAttachmentUrl }
]
});

Similarly, you can clear the current cell value by passing an empty array, or remove specific attachments by passing a filtered array of the current cell value.

Note: when you pass an existing attachment, you must pass the full attachment object. New attachments only require the url property. You can optionally pass the `filename` property to give it a readable name.

Additionally, the Airtable generated attachment URLs do not currently expire, but this will change in the future. If you want to persist the attachments, we recommend downloading them instead of saving the URL. Before this change is rolled out, we will post a more detailed deprecation timeline.

Cell read format

Array<{
// unique attachment id
id: string,
// url, e.g. "https://dl.airtable.com/foo.jpg"
url: string,
// filename, e.g. "foo.jpg"
filename: string,
// file size, in bytes
size?: number,
// content type, e.g. "image/jpeg"
type?: string,
// thumbnails if available
thumbnails?: {
small?: {
url: string,
width: number,
height: number,
},
large?: {
url: string,
width: number,
height: number,
},
full?: {
url: string,
width: number,
height: number,
},
},
}>

Cell write format

Array<
// New attachment format
{ url: string, filename?: string} ||
// Pre-existing attachments use cell read format specified above
{ ... }
>

For pre-existing attachments, pass the object read from the cell value. You cannot change any properties of pre-existing attachments.

Field options read format

{
// Whether attachments are rendered in the reverse order from the cell value in the
// Airtable UI (i.e. most recent first)
// You generally do not need to rely on this option.
isReversed: boolean,
}

Field options write format

N/A

Options are not required when creating a MULTIPLE_ATTACHMENTS field, and updating options is not supported.

MULTIPLE_COLLABORATORS"multipleCollaborators"

A collaborator field lets you add collaborators to your records. Collaborators can optionally be notified when they're added. A multiple collaborator field has been configured to reference any number of user or user group collaborators.

Note: Adding user groups to multiple collaborator fields is an upcoming enterprise feature currently in beta, and will be generally released on August 29, 2022.

Similar to MULTIPLE_ATTACHMENTS and MULTIPLE_SELECTS, this array-type field will override the current cell value when being updated. Be sure to spread the current cell value if you want to keep the currently selected collaborators.

Cell read format

Array<{
id: string,
email: string,
name?: string,
profilePicUrl?: string,
}>

The currently selected user or user group collaborators. The email property is either the email address of the user collaborator or an RFC 2822 mailbox-list (comma-separated list of emails) that can be used to contact all members of the user group collaborator.

Cell write format

Array<{ id: string }>

Field options read format

{
choices: Array<{
id: string,
email: string,
name?: string,
profilePicUrl?: string,
}>,
}

Field options write format

N/A

Options are not required when creating a MULTIPLE_COLLABORATORS field, and updating options is not supported.

MULTIPLE_LOOKUP_VALUES"multipleLookupValues"

Lookup a field on linked records.

Cell read format

Array<{
// the ID of the linked record this lookup value comes from
linkedRecordId: RecordId,
// the cell value of the lookup. the actual type depends on the field being looked up
value: unknown,
}>

Cell write format

n/a

Field options read format

{
// whether the lookup field is correctly configured
isValid: boolean,
// the linked record field in this table that this field is
// looking up
recordLinkFieldId: FieldId,
// the field in the foreign table that will be looked up on
// each linked record
fieldIdInLinkedTable: FieldId | null,
// the local field configuration for the foreign field being
// looked up
result?: undefined | {type: FieldType, options: unknown}
}

Field options write format

Creating or updating MULTIPLE_LOOKUP_VALUES fields is not supported.

MULTIPLE_RECORD_LINKS"multipleRecordLinks"

Link to another record.

When updating an existing linked record cell value, the specified array will overwrite the current cell value. If you want to add a new linked record without deleting the current linked records, you can spread the current cell value like so:

const newForeignRecordIdToLink = 'recXXXXXXXXXXXXXX';
myTable.updateRecordAsync(myRecord, {
'myLinkedRecordField': [
...myRecord.getCellValue('myLinkedRecordField'),
{ id: newForeignRecordIdToLink }
]
});

Similarly, you can clear the current cell value by passing an empty array, or remove specific linked records by passing a filtered array of the current cell value.

Cell read format

Array<{
id: RecordId,
name: string,
}>

The currently linked record IDs and their primary cell values from the linked table.

Cell write format

Array<{ id: RecordId }>

Field options read format

{
// The ID of the table this field links to
linkedTableId: TableId,
// The ID of the field in the linked table that links back
// to this one
inverseLinkFieldId?: FieldId,
// The ID of the view in the linked table to use when showing
// a list of records to select from
viewIdForRecordSelection?: ViewId,
// Whether linked records are rendered in the reverse order from the cell value in the
// Airtable UI (i.e. most recent first)
// You generally do not need to rely on this option.
isReversed: boolean,
// Whether this field prefers to only have a single linked record. While this preference
// is enforced in the Airtable UI, it is possible for a field that prefers single linked
// records to have multiple record links (for example, via copy-and-paste or programmatic
// updates).
prefersSingleRecordLink: boolean,
}

Field options write format

{
// The ID of the table this field links to
linkedTableId: TableId,
// The ID of the view in the linked table to use when showing
// a list of records to select from
viewIdForRecordSelection?: ViewId,
// Note: prefersSingleRecordLink cannot be specified via programmatic field creation
// and will be false for fields created within an app
}

Creating MULTIPLE_RECORD_LINKS fields is supported but updating options for existing MULTIPLE_RECORD_LINKS fields is not supported.

MULTIPLE_SELECTS"multipleSelects"

Multiple select allows you to select one or more predefined choices from a dropdown

Similar to MULTIPLE_ATTACHMENTS and MULTIPLE_COLLABORATORS, this array-type field will override the current cell value when being updated. Be sure to spread the current cell value if you want to keep the currently selected choices.

Cell read format

Array<{
id: string,
name: string,
color?: Color,
}>

The currently selected choices.

Cell write format

Array<{id: string} | {name: string}>

Field options read format

{
choices: Array<{
id: string,
name: string,
color?: Color,
}>,
}

Field options write format

{
choices: Array<
// New choice format
{name: string, color?: Color} |
// Pre-existing choices use read format specified above
>,
}

The default behavior of calling updateOptionsAsync on a MULTIPLE_SELECTS field allows choices to be added or updated, but not deleted. Therefore, you should pass all pre-existing choices in choices (similar to updating a SINGLE_SELECT field type cell value). You can do this by spreading the current choices:

const multipleSelectField = table.getFieldByName('My multiple select field');
await multipleSelectField.updateOptionsAsync({
choices: [
...multipleSelectField.options.choices,
{name: 'My new choice'},
],
});

If you want to allow choices to be deleted, you can pass an object with enableSelectFieldChoiceDeletion: true as the second argument. By passing this argument, any existing choices which are not passed again via choices will be deleted, and any cells which referenced a now-deleted choice will be cleared.

const multipleSelectField = table.getFieldByName('My multiple select field');
await multipleSelectField.updateOptionsAsync(
{
choices: multipleSelectField.options.choices.filter((choice) => choice.name !== 'Choice to delete'),
},
{enableSelectFieldChoiceDeletion: true},
);
NUMBER"number"

A number.

The precision option indicates the number of digits shown to the right of the decimal point for this field.

Cell format

number

Field options

{
precision: number, // from 0 to 8 inclusive
}
PERCENT"percent"

A percentage.

When reading from and writing to a "Percent" field, the cell value is a decimal. For example, 0 is 0%, 0.5 is 50%, and 1 is 100%.

Cell format

number

Field options

{
precision: number, // from 0 to 8 inclusive
}
PHONE_NUMBER"phoneNumber"

A telephone number (e.g. (415) 555-9876).

Cell format

string

Field options

None

RATING"rating"

A rating (e.g. stars out of 5)

Cell format

number

Field options

{
// the icon name used to display the rating
icon: 'star' | 'heart' | 'thumbsUp' | 'flag',
// the maximum value for the rating, from 1 to 10 inclusive
max: number,
// the color of selected icons
color: 'yellowBright' | 'orangeBright' | 'redBright' | 'pinkBright' | 'purpleBright' | 'blueBright' | 'cyanBright' | 'tealBright' | 'greenBright' | 'grayBright' ,
}

Bases on a free or plus plan are limited to using the 'star' icon and 'yellowBright' color.

RICH_TEXT"richText"

A long text field with rich formatting enabled.

Returned string is formatted with markdown syntax for Airtable rich text formatting. Use this formatting when updating cell values.

Cell format

string

Field options

n/a

ROLLUP"rollup"

A rollup allows you to summarize data from records that are linked to this table.

Cell read format Check options.result to know the resulting field type.

any

Cell write format

n/a

Field options read format

{
// false if the formula contains an error
isValid: boolean,
// the linked record field in this table that this field is
// summarizing.
recordLinkFieldId: FieldId,
// the field id in the linked table that this field is summarizing.
fieldIdInLinkedTable: FieldId,
// the other fields in the record that are used in the formula
referencedFieldIds: Array<FieldId>,
// the resulting field type and options returned by the formula
result: {
// the field type of the formula result
type: string,
// that types options
options?: any,
},
}

Field options write format

Creating or updating ROLLUP fields is not supported.

SINGLE_COLLABORATOR"singleCollaborator"

A collaborator field lets you add collaborators to your records. Collaborators can optionally be notified when they're added. A single collaborator field has been configured to only reference one user collaborator.

Cell read format

{
id: string,
email: string,
name?: string,
profilePicUrl?: string,
}

The currently selected user collaborator.

Cell write format

{ id: string }

Field options read format

{
choices: Array<{
id: string,
email: string,
name?: string,
profilePicUrl?: string,
}>,
}

Field options write format

N/A

Options are not required when creating a SINGLE_COLLABORATOR field, and updating options is not supported.

SINGLE_LINE_TEXT"singleLineText"

A single line of text.

Cell format

string

Field options

n/a

SINGLE_SELECT"singleSelect"

Single select allows you to select a single choice from predefined choices in a dropdown.

Cell read format

{
id: string,
name: string,
color?: Color
}

The currently selected choice.

Cell write format

{ id: string } | { name: string }

Field options read format

{
choices: Array<{
id: string,
name: string,
color?: [Color](/api/Color), // Color is not provided when field coloring is disabled.
}>,
}

All colors except base colors from Color can be used as choice colors (e.g. "blueBright", "blueDark1", "blueLight1", "blueLight2" are supported, "blue" is not)

Bases on a free or plus plan are limited to colors ending in "Light2".

Field options write format

{
choices: Array<
// New choice format
{name: string, color?: [Color](/api/Color)} |
// Pre-existing choices use read format specified above
>,
}

The default behavior of calling updateOptionsAsync on a SINGLE_SELECT field allows choices to be added or updated, but not deleted. Therefore, you should pass all pre-existing choices in choices (similar to updating a MULTIPLE_SELECTS field type cell value). You can do this by spreading the current choices:

const selectField = table.getFieldByName('My select field');
await selectField.updateOptionsAsync({
choices: [
...selectField.options.choices,
{name: 'My new choice'},
],
});

If you want to allow choices to be deleted, you can pass an object with enableSelectFieldChoiceDeletion: true as the second argument. By passing this argument, any existing choices which are not passed again via choices will be deleted, and any cells which referenced a now-deleted choice will be cleared.

const selectField = table.getFieldByName('My select field');
await selectField.updateOptionsAsync(
{
choices: selectField.options.choices.filter((choice) => choice.name !== 'Choice to delete'),
},
{enableSelectFieldChoiceDeletion: true},
);
URL"url"

A valid URL (e.g. airtable.com or https://airtable.com/universe).

Cell format

string

Field options

n/a