Airtable API

By Abhishek Kumar
5 min read
Learn about Airtable's powerful API, which combines the flexibility of a spreadsheet with the capabilities of a database. Discover how to integrate, automate, and manage data efficiently with Airtable's RESTful API while staying mindful of usage limits

Table of Contents

Airtable works like a spreadsheet but gives you the power of a database to organize anything. Sign up for free.

API Overview

Airtable is a cloud-based platform that combines the features of a spreadsheet, database, and project management tool. It allows users to create customizable tables, forms, and views to manage their data. Airtable integrates with various third-party applications and offers automation capabilities through its scripting feature.

Airtable API enables developers to programmatically interact with Airtable data and functionality. APIs (Application Programming Interfaces) are sets of protocols and routines that allow different software applications to communicate and exchange data. Web APIs are specifically designed for web applications and are commonly used to access data and services from remote servers over the internet. Airtable API follows RESTful principles, adhering to standard HTTP methods and data formats. It provides endpoints for managing tables, records, views, and other Airtable resources. However, it's important to note that Airtable API usage is subject to rate limits, which restrict the number of API requests per unit of time. This is implemented to prevent excessive usage and ensure the stability of Airtable's infrastructure. Developers should be mindful of these limits and implement appropriate mechanisms in their applications to avoid exceeding them.

APIs

Bases

Method: GET

Description: Retrieve a list of bases..

Endpoint: /v0/bases

Parameters: /v0/bases?view={view}

Bases

Method: POST

Description: Create a new base..

Endpoint: /v0/bases

Parameters: /v0/bases?prepopulated_tables[]={prepopulated_tables}

Bases

Method: GET

Description: Retrieve a base by ID..

Endpoint: /v0/bases/{baseId}/

Parameters: /v0/bases/{baseId}/?view={view}

Bases

Method: PUT

Description: Update a base by ID..

Endpoint: /v0/bases/{baseId}

Parameters: /v0/bases/{baseId}?prepopulated_tables[]={prepopulated_tables}

Bases

Method: DELETE

Description: Delete a base by ID..

Endpoint: /v0/bases/{baseId}

Parameters:

Tables

Method: GET

Description: Retrieve a list of tables in a base..

Endpoint: /v0/bases/{baseId}/tables

Parameters: /v0/bases/{baseId}/tables?view={view}

Tables

Method: POST

Description: Create a table..

Endpoint: /v0/bases/{baseId}/tables

Parameters: /v0/bases/{baseId}/tables?prepopulated_fields[]={prepopulated_fields}

Tables

Method: GET

Description: Retrieve a table by ID..

Endpoint: /v0/bases/{baseId}/tables/{tableId}/

Parameters: /v0/bases/{baseId}/tables/{tableId}/?view={view}

Tables

Method: PUT

Description: Update a table by ID..

Endpoint: /v0/bases/{baseId}/tables/{tableId}

Parameters:

Tables

Method: DELETE

Description: Delete a table by ID..

Endpoint: /v0/bases/{baseId}/tables/{tableId}

Parameters:

Table Records

Method: GET

Description: Retrieve a list of records in a table..

Endpoint: /v0/bases/{baseId}/tables/{tableId}/records

Parameters: /v0/bases/{baseId}/tables/{tableId}/records?fields[]={fields}&filterByFormula={filterByFormula}&maxRecords={maxRecords}&pageSize={pageSize}&view={view}

Table Records

Method: POST

Description: Create a record in a table..

Endpoint: /v0/bases/{baseId}/tables/{tableId}/records

Parameters:

Table Records

Method: GET

Description: Retrieve a record by ID..

Endpoint: /v0/bases/{baseId}/tables/{tableId}/records/{recordId}/

Parameters: /v0/bases/{baseId}/tables/{tableId}/records/{recordId}/?view={view}

Table Records

Method: PUT

Description: Update a record by ID..

Endpoint: /v0/bases/{baseId}/tables/{tableId}/records/{recordId}

Parameters:

Table Records

Method: DELETE

Description: Delete a record by ID..

Endpoint: /v0/bases/{baseId}/tables/{tableId}/records/{recordId}

Parameters:

Views

Method: GET

Description: Retrieve a list of views in a table..

Endpoint: /v0/bases/{baseId}/tables/{tableId}/views

Parameters: /v0/bases/{baseId}/tables/{tableId}/views?view={view}

Views

Method: POST

Description: Create a view..

Endpoint: /v0/bases/{baseId}/tables/{tableId}/views

Parameters: /v0/bases/{baseId}/tables/{tableId}/views?prepopulated_fields[]={prepopulated_fields}

Views

Method: GET

Description: Retrieve a view by ID..

Endpoint: /v0/bases/{baseId}/tables/{tableId}/views/{viewId}/

Parameters: /v0/bases/{baseId}/tables/{tableId}/views/{viewId}/?view={view}

Views

Method: PUT

Description: Update a view by ID..

Endpoint: /v0/bases/{baseId}/tables/{tableId}/views/{viewId}

Parameters:

Views

Method: DELETE

Description: Delete a view by ID..

Endpoint: /v0/bases/{baseId}/tables/{tableId}/views/{viewId}

Parameters:

Attachments

Method: GET

Description: Retrieve a list of attachments on a record..

Endpoint: /v0/bases/{baseId}/tables/{tableId}/records/{recordId}/attachments

Parameters: /v0/bases/{baseId}/tables/{tableId}/records/{recordId}/attachments?pageSize={pageSize}

Attachments

Method: POST

Description: Attach a file to a record..

Endpoint: /v0/bases/{baseId}/tables/{tableId}/records/{recordId}/attachments

Parameters:

Attachments

Method: POST

Description: Attach multiple files to a record..

Endpoint: /v0/bases/{baseId}/tables/{tableId}/records/{recordId}/attachments?batch={batch}

Parameters:

Attachments

Method: GET

Description: Retrieve an attachment by ID..

Endpoint: /v0/bases/{baseId}/tables/{tableId}/records/{recordId}/attachments/{attachmentId}

Parameters:

Attachments

Method: DELETE

Description: Delete an attachment by ID..

Endpoint: /v0/bases/{baseId}/tables/{tableId}/records/{recordId}/attachments/{attachmentId}

Parameters:

Collaborators

Method: GET

Description: Retrieve a list of collaborators on a base..

Endpoint: /v0/bases/{baseId}/collaborators

Parameters: /v0/bases/{baseId}/collaborators?pageSize={pageSize}

Collaborators

Method: POST

Description: Grant collaborators access to a base..

Endpoint: /v0/bases/{baseId}/collaborators

Parameters: /v0/bases/{baseId}/collaborators?addPermissions={addPermissions}&email={email}&message={message}&team={team}

Collaborators

Method: PUT

Description: Update collaborator permissions on a base..

Endpoint: /v0/bases/{baseId}/collaborators

Parameters: {email}

Collaborators

Method: DELETE

Description: Revoke collaborator access to a base..

Endpoint: /v0/bases/{baseId}/collaborators

Parameters: {email}

Cells

Method: GET

Description: Retrieve a cell by row and column..

Endpoint: /v0/bases/{baseId}/tables/{tableId}/cells/{rowId}

Parameters: {columnId}

Cells

Method: PUT

Description: Update the value of a cell by row and column..

Endpoint: /v0/bases/{baseId}/tables/{tableId}/cells/{rowId}

Parameters: {columnId}

Fields

Method: GET

Description: Retrieve a field by ID..

Endpoint: /v0/bases/{baseId}/tables/{tableId}/fields/{fieldId}

Parameters: /v0/bases/{baseId}/tables/{tableId}/fields/{fieldId}?view={view}

Fields

Method: PUT

Description: Update a field by ID..

Endpoint: /v0/bases/{baseId}/tables/{tableId}/fields/{fieldId}

Parameters: /v0/bases/{baseId}/tables/{tableId}/fields/{fieldId}?prepopulated_values[]={prepopulated_values}

Fields

Method: DELETE

Description: Delete a field by ID..

Endpoint: /v0/bases/{baseId}/tables/{tableId}/fields/{fieldId}

Parameters:

Table Metadata

Method: GET

Description: Retrieve the table metadata including all field schemas..

Endpoint: /v0/bases/{baseId}/tables/{tableId}?metadata=schema

Parameters:

FAQ

How do I authenticate my Airtable API requests?

You can authenticate using an API key or an OAuth access token. An API key is easier to use but less secure than OAuth. OAuth is more secure but requires more setup.

What are the rate limits for Airtable API requests?

The rate limits for Airtable API requests vary depending on the type of request. For example, you can make up to 5 requests per second to the /records endpoint.

Can I create a sandbox account to test my Airtable API integration?

Yes, you can create a sandbox account to test your Airtable API integration. A sandbox account is a separate Airtable account that is isolated from your production account. This allows you to test your integration without affecting your live data.

To upgrade your Airtable developer account to a paid plan, you need to contact Airtable support. Support can help you choose a plan that is right for your needs.

What are the best practices for using the Airtable API?

Some best practices for using the Airtable API include using a REST client, handling errors gracefully, and using pagination to avoid loading too much data at once.

Last Update: September 03, 2024