An (unofficial) API for interacting with the Airtable API.

Using this package

This package is wrapper for the Airtable REST API, using HTTP.jl to do the hard stuff.

This documentation should be used in close conjunction with the Airtable API documentation, which is generated automatically for you using your actual tables (see below).

To use this documentation effectively, you should understand a few of the terms Airtable uses:

  1. A "Base" is like a project. There may be several tables contained within a base that can refer to each other.
  2. A "Table" is a 2D array where each row is a "Record" and each column is "Field".
  3. A "Record" (a row of a table) is an individual observation which may have any number of "field" values.
  4. A "Field" (a column of a table) is a named and typed datapoint. When fields are missing for a given record, they are typically not included in API responses.

All API operations also require that you provide authorization in the form of an API key.

API key

To obtain your API key, go to your account settings page and click on the "generate API key" button. If you previously made a key, you can regenerate it, or just copy the one that's there.

Get airtable API key

You can then create an Airtable.Credential using that key as a string, or set it as an environmental variable (AIRTABLE_KEY by default).

 Credential(; api_key)

A credential object for Airtable. If the apikey or apitoken are not provided, they will be read from the AIRTABLE_KEY environment variable. Go to Airtable account settings to aquire your credentials.

# after running `export AIRTABLE_KEY=<api key>` in the shell
julia> key = Airtable.Credential()

It is recommended that you use the environmental variable, since many functions can use that by default instead of requiring that you pass it as an argument.

Base ID

Open your airtable base, click the help button in the upper right, and then click "API documentation". Airtable generates documentation for your sepecific base - near the top you should see a sentence like the follwing, with a different alphanumeric sequence for your base:

The ID of this base is appphImnhJO8AXmmo

It will also appear in the url of the base documentation. For example, the Test base for this repo has the url


Within each base, you may have multiple tables. The tablename argument in the following functions is just a string with the table name, eg "Table 1".