pyAirtable Python SDK
Official community Python client for the Airtable API. Formerly known as airtable-python-wrapper. Current version is 3.3.0 (Nov 2025). Has gone through major rewrites at 1.0, 2.0, and 3.0 — each with breaking changes. Many tutorials still reference the old airtable-python-wrapper package which is abandoned.
Warnings
- breaking Airtable deprecated legacy API keys in January 2024. They no longer work. All code using api_key='key...' strings will fail with 401.
- breaking airtable-python-wrapper is the old abandoned package. Package name changed to pyairtable at 1.0.0. Installing airtable-python-wrapper gives you dead code.
- breaking Pydantic 1.x support dropped in pyairtable 3.x. Will fail to import if Pydantic 1.x is installed.
- breaking Table(api_key, base_id, table_name) constructor with raw strings deprecated in 2.0, raises TypeError in 3.0. Most tutorials and LLM-generated code still use this pattern.
- breaking pyairtable.metadata module removed in 3.0. Any code importing from it will fail.
- gotcha Model.save() return type changed from bool to SaveResult in 3.x. Code checking 'if record.save():' will break silently — SaveResult is always truthy.
- gotcha return_fields_by_field_id= parameter renamed to use_field_ids= in 3.x.
- deprecated Python 3.9 support dropped in 3.3.0 (Nov 2025).
Install
-
pip install pyairtable -
pip install pyairtable[cli]
Imports
- Api
from pyairtable import Api
- Table
api = Api(api_key); table = api.table(base_id, table_name)
Quickstart
from pyairtable import Api
api = Api('YOUR_PERSONAL_ACCESS_TOKEN') # not API key — deprecated
table = api.table('BASE_ID', 'TABLE_NAME')
# fetch all records
records = table.all()
# create a record
table.create({'Name': 'New Row', 'Status': 'Active'})