How to fetch all tables from Airtable using API

I’m working on a project where users need to select which table they want to use from their Airtable workspace. I have the user’s API key already, but I’m not sure how to get a complete list of all available tables in their account.

I know that the standard API calls require you to specify both the base ID and table name in the URL. The official documentation seems to focus on working with specific tables rather than listing them all.

Is there an endpoint or method to retrieve all tables so users can pick the one they need? I want to build a dropdown or selection interface where they can choose from their existing tables instead of having to manually enter table names.

Use the Airtable Meta API to get all tables. First, send a GET request to https://api.airtable.com/v0/meta/bases with your API key in the Authorization header - this pulls all your accessible bases. Then for each base ID, hit https://api.airtable.com/v0/meta/bases/{baseId}/tables to get the detailed table info like names and IDs. I’ve found that caching responses really helps performance since table structures don’t change much. Just a heads up - the Meta API has different rate limits than the regular data API.

Use the Meta API to get all tables from Airtable. First, grab your bases list from https://api.airtable.com/v0/meta/bases. Then loop through each base and hit https://api.airtable.com/v0/meta/bases/{baseId}/tables to pull its tables. There’s no single endpoint that dumps everything at once - you’ll need to iterate through each base individually. Watch out if you’re using an API key with restricted permissions since you might not be able to access some bases.

start with the meta api endpoints, but double check your permissions first - tables might not show up if your API key doesn’t have access. if you’re on an enterprise account, be sure to test everything thoroughly as they can behave a bit differently than regular accounts.

Been there when building something similar. Meta API’s your best bet, but watch out for pagination.

Airtable caps responses at 100 bases per request. If your user has more, you’ll need to follow the offset parameter to grab the rest.

I hit a weird bug where some bases returned empty table arrays despite having tables. Turns out the API key needed “schema.bases:read” scope specifically. Double-check your key permissions or you’ll waste time wondering why tables won’t show up.

If you’re building for multiple users, add error handling for deleted bases or permission changes. Nobody wants a dropdown full of broken options.