- Asyncio and aiohttp based
- All airtable REST API methods supported
- API rate limit support
- Fully type annotated (PEP 484)
- Mapping of table fields into variable names
aioairtable is available on PyPI. Use pip to install it:
pip install aioairtable
Pass a value of any hashable type to acquire or do not specify any parameter:
import asyncio
from msgspec import Struct, field
from aioairtable import Airtable, SortDirection
class TableFields(Struct):
field_1: str | None = field(default=None, name="Field 1")
field_2: str | None = field(default=None, name="Field 2")
field_3: str | None = field(default=None, name="Field 3")
async def main() -> None:
airtable = Airtable(api_key="some_key")
base = airtable.base("base_id")
table = base.table("table_name", TableFields)
records, offset = await table.list_records(
fields=("field_1", "field_2"),
filter_by_formula="{field_3}",
max_records=100500,
page_size=3,
sort=(
("field_1", SortDirection.ASC),
("field_2", SortDirection.DESC),
),
view="table3",
offset="record033",
)
for record in records:
print(record)
record = await table.create_record(
TableFields(
field_1="value_1_new_001",
field_2="value_2_new_001",
field_3="value_3_new_001",
)
)
await record.delete()
asyncio.run(main())