Airtable API Key
R-Ladies uses Airtable as the backend for directory submissions and Global Team membership data.
Two repos connect to Airtable through a shared API key stored as AIRTABLE_API_KEY.
Airtable bases
We maintain separate Airtable bases for different purposes:
| Base ID | Purpose | Key tables | Used by |
|---|---|---|---|
appzYxePUruG9Nwyg |
Directory submissions | Submissions, Languages, Countries | directory |
appZjaV7eM0Y9FsHZ |
Global Team | Members, Teams, Alumni | rladies.github.io |
The directory repo pulls new member submissions every Friday via airtable-update.yml and deletes processed records after PRs merge via airtable-delete.yml.
The website repo pulls Global Team data weekly via global-team.yml to render the team page.
How the API key works
Both repos use the airtabler R package, which reads the key from the AIRTABLE_API_KEY environment variable.
The key is a personal access token generated from an Airtable account — not the deprecated API key format. Make sure the account that generates the token has at least Editor access on both bases listed above.
Creating a new token
- Log in to airtable.com with the R-Ladies Airtable account
- Go to airtable.com/create/tokens
- Create a new personal access token with these scopes:
data.records:read— read records from tablesdata.records:write— create and update recordsschema.bases:read— read base schema (needed byairtabler)
- Under “Access”, add both bases: the directory base and the Global Team base
- Copy the generated token
Storing the secret
The token is stored as an org-level secret:
gh secret set AIRTABLE_API_KEY \
--org rladies \
--visibility selected \
--repos "directory,rladies.github.io"Or through the web UI at github.com/organizations/rladies/settings/secrets/actions.
Troubleshooting
AUTHENTICATION_REQUIREDorINVALID_PERMISSIONS_OR_MODEL_NOT_FOUND- The token has expired or lacks the required scopes. Generate a new one following the steps above.
TABLE_NOT_FOUND- The token doesn’t have access to the specific base. Edit the token at airtable.com/create/tokens and add the missing base.
- Workflows succeed but no new entries appear
- Check whether there are actually new submissions in the Airtable base.
The
airtable-update.ymlworkflow only creates a PR when new or updated records exist.