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
Method: GET
Description: Retrieve a list of bases..
Endpoint: /v0/bases
Parameters: /v0/bases?view={view}
Method: POST
Description: Create a new base..
Endpoint: /v0/bases
Parameters: /v0/bases?prepopulated_tables[]={prepopulated_tables}
Method: GET
Description: Retrieve a base by ID..
Endpoint: /v0/bases/{baseId}/
Parameters: /v0/bases/{baseId}/?view={view}
Method: PUT
Description: Update a base by ID..
Endpoint: /v0/bases/{baseId}
Parameters: /v0/bases/{baseId}?prepopulated_tables[]={prepopulated_tables}
Method: DELETE
Description: Delete a base by ID..
Endpoint: /v0/bases/{baseId}
Parameters:
Method: GET
Description: Retrieve a list of tables in a base..
Endpoint: /v0/bases/{baseId}/tables
Parameters: /v0/bases/{baseId}/tables?view={view}
Method: POST
Description: Create a table..
Endpoint: /v0/bases/{baseId}/tables
Parameters: /v0/bases/{baseId}/tables?prepopulated_fields[]={prepopulated_fields}
Method: GET
Description: Retrieve a table by ID..
Endpoint: /v0/bases/{baseId}/tables/{tableId}/
Parameters: /v0/bases/{baseId}/tables/{tableId}/?view={view}
Method: PUT
Description: Update a table by ID..
Endpoint: /v0/bases/{baseId}/tables/{tableId}
Parameters:
Method: DELETE
Description: Delete a table by ID..
Endpoint: /v0/bases/{baseId}/tables/{tableId}
Parameters:
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}
Method: POST
Description: Create a record in a table..
Endpoint: /v0/bases/{baseId}/tables/{tableId}/records
Parameters:
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}
Method: PUT
Description: Update a record by ID..
Endpoint: /v0/bases/{baseId}/tables/{tableId}/records/{recordId}
Parameters:
Method: DELETE
Description: Delete a record by ID..
Endpoint: /v0/bases/{baseId}/tables/{tableId}/records/{recordId}
Parameters:
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}
Method: POST
Description: Create a view..
Endpoint: /v0/bases/{baseId}/tables/{tableId}/views
Parameters: /v0/bases/{baseId}/tables/{tableId}/views?prepopulated_fields[]={prepopulated_fields}
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}
Method: PUT
Description: Update a view by ID..
Endpoint: /v0/bases/{baseId}/tables/{tableId}/views/{viewId}
Parameters:
Method: DELETE
Description: Delete a view by ID..
Endpoint: /v0/bases/{baseId}/tables/{tableId}/views/{viewId}
Parameters:
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}
Method: POST
Description: Attach a file to a record..
Endpoint: /v0/bases/{baseId}/tables/{tableId}/records/{recordId}/attachments
Parameters:
Method: POST
Description: Attach multiple files to a record..
Endpoint: /v0/bases/{baseId}/tables/{tableId}/records/{recordId}/attachments?batch={batch}
Parameters:
Method: GET
Description: Retrieve an attachment by ID..
Endpoint: /v0/bases/{baseId}/tables/{tableId}/records/{recordId}/attachments/{attachmentId}
Parameters:
Method: DELETE
Description: Delete an attachment by ID..
Endpoint: /v0/bases/{baseId}/tables/{tableId}/records/{recordId}/attachments/{attachmentId}
Parameters:
Method: GET
Description: Retrieve a list of collaborators on a base..
Endpoint: /v0/bases/{baseId}/collaborators
Parameters: /v0/bases/{baseId}/collaborators?pageSize={pageSize}
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}
Method: PUT
Description: Update collaborator permissions on a base..
Endpoint: /v0/bases/{baseId}/collaborators
Parameters: {email}
Method: DELETE
Description: Revoke collaborator access to a base..
Endpoint: /v0/bases/{baseId}/collaborators
Parameters: {email}
Method: GET
Description: Retrieve a cell by row and column..
Endpoint: /v0/bases/{baseId}/tables/{tableId}/cells/{rowId}
Parameters: {columnId}
Method: PUT
Description: Update the value of a cell by row and column..
Endpoint: /v0/bases/{baseId}/tables/{tableId}/cells/{rowId}
Parameters: {columnId}
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}
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}
Method: DELETE
Description: Delete a field by ID..
Endpoint: /v0/bases/{baseId}/tables/{tableId}/fields/{fieldId}
Parameters:
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.
How can I upgrade my Airtable developer account to a paid plan?
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.