Back to plugin list
airtable
Official

Airtable

This plugin is in preview.

The CloudQuery Airtable plugin pulls data from Airtable and loads it into any supported CloudQuery destination

Publisher

cloudquery

Repositorygithub.com
Latest version

v2.2.9

Type

Source

Platforms
Date Published

Price

Free

Set up process #


brew install cloudquery/tap/cloudquery

1. Download CLI and login

See installation options

2. Create source and destination configs

Plugin configuration

cloudquery sync airtable.yml postgresql.yml

3. Run the sync

CloudQuery sync

Overview #

The CloudQuery Airtable plugin pulls data from Airtable and loads it into any supported CloudQuery destination (e.g. PostgreSQL, BigQuery, Snowflake, and more).
The plugin discover all bases and tables in your account and syncs them to the destination.

Example Configuration #

This example syncs from Airtable to a Postgres destination. The (top level) source spec section is described in the Source Spec Reference.
kind: source
# Common source-plugin configuration
spec:
  name: airtable
  registry: docker
  path: docker.cloudquery.io/cloudquery/source-airtable:v2.2.9
  tables: ["*"]
  destinations: ["postgresql"]
  # airtable-specific configuration
  spec:
    access_token: "${AIRTABLE_ACCESS_TOKEN}" # required
    # endpoint_url: "https://api.airtable.com" # Optional, defaults to `https://api.airtable.com`
    # concurrency: 10000 # Optional, defaults to `10000`

Authentication #

In order to fetch information from Airtable, cloudquery needs to authenticate using a personal access token for Airtable's API. Follow the instructions on the Airtable website and create a read-only token with data.records:read and schema.bases:read scopes.

Tables naming convention #

In Airtable base names are not unique, and table names are unique within a base. The plugin uses the following naming convention for tables: <lowercase_base_id>__<snake_case_base_name>__<snake_case_table_name>. This ensures table names are unique across all bases (note the separator between name parts is __).
To sync only specific base(s) or table(s) you can use wildcard matching for the tables option, for example:
kind: source
spec:
  name: airtable
  registry: docker
  path: docker.cloudquery.io/cloudquery/source-airtable:v2.2.9
  tables:
    # Sync all tables under bases matching the name `base_name_to_sync`
    - "*__<base_name_to_sync>__*"
    # Sync all tables matching the name `table_name_to_sync`
    - "*__*__<table_name_to_sync>"
    # Sync all tables matching the name `table_name_to_sync` under bases matching the name `base_name_to_sync`
    - "*__<base_name_to_sync>__<table_name_to_sync>"
  ...

Configuration Reference #

This is the (nested) spec used by the Airtable source plugin:
  • access_token (string) (required)
    Your Airtable API personal access token.
  • endpoint_url (string) (optional) (default: https://api.airtable.com)
    The endpoint URL to fetch data from.
  • concurrency (integer) (optional) (default: 10000)
    Best effort maximum number of tables to sync concurrently.

Running in a Containerized Environment #

To run the Airtable plugin in a containerized environment, see the Using CloudQuery Docker Registry Plugins Inside a Containerized Environment guide.


Join our mailing list

Subscribe to our newsletter to make sure you don't miss any updates.

Legal

© 2024 CloudQuery, Inc. All rights reserved.

We use tracking cookies to understand how you use the product and help us improve it. Please accept cookies to help us improve. You can always opt out later via the link in the footer.