Guides · Sep 28, 2026 · 4 min read

How to export an entire Airtable base, with linked records and attachments

Airtable has no "export whole base" button. Here is what each built-in option leaves out, how the API route works, and the fastest way to get a complete copy as one zip.

If you have ever tried to take a full copy of an Airtable base out of Airtable, you know the short version: there is no button for it. What Airtable offers is a set of partial tools, each of which drops something. This guide walks through what each one keeps, what it loses, and how to get a genuinely complete export.

What "the whole base" actually means

A base is more than rows. A complete copy needs four things:

  1. Every table, not one at a time.
  2. The schema: field names, field types, and the options behind them, such as which table a linked-record field points to.
  3. The relationships: linked-record cells hold record ids, and those ids only mean something if the target records are in the same copy.
  4. The attachments as files, not as links that stop working.

Anything that gives you fewer than all four is a partial export, however it is labelled.

The built-in options and what each one drops

Download CSV. Available from any grid view's menu. It exports one table, and only the fields visible in that view. Hidden fields are not included. Linked records become the primary field text of the linked record, so two records with the same name become indistinguishable. Attachments become URLs that expire a couple of hours after the export is generated. Field types are gone entirely, since CSV has no way to express them.

Base snapshots. Airtable takes periodic snapshots of a base and lets you restore one. This is genuinely useful for undoing a bad afternoon, but a snapshot lives inside Airtable, cannot be downloaded, and disappears with your subscription. It is a restore point, not a copy.

Duplicate base. Creates another base in your workspace. Everything is preserved, which is why people reach for it, but the copy sits on the same account with the same access, so it protects you from mistakes and not from anything at the account level.

Enterprise eDiscovery and admin exports. Real whole-base exports exist on Airtable's enterprise tier. If you are on it, use them. Most teams are not.

The API route

Everything you need is available through Airtable's REST API with a personal access token that has two read-only scopes, schema.bases:read and data.records:read. A script does the following:

  • Call the metadata endpoint for the base to get every table and every field, including the linkedTableId behind each linked-record field. Save this as your schema.
  • For each table, page through the records endpoint 100 records at a time, following the offset cursor until it is empty.
  • While you still have each page in hand, look at every attachment field, and download every file right away. The URLs in the API response expire a couple of hours after they are issued, so an "I will grab the files later" plan does not work.
  • Respect the rate limit of 5 requests per second per base, and pause for 30 seconds if you receive an HTTP 429.
  • Write the records with their original record ids, so linked-record cells still resolve.

That is about an afternoon of work for someone comfortable with scripting, plus the ongoing job of running it, storing the output somewhere safe, and noticing when it stops working. If that is you, the read-only token guide covers the token setup.

The fast route

If it is not you, Tablevault's free export tool does the steps above for one base and emails you a single zip containing:

  • schema.json with every table, field, and link target
  • tables/<table>.json with every record and its original ids, plus a .csv of each table for spreadsheets
  • attachments/<table>/<record>/ with every file
  • manifest.json describing what is inside and the counts

You paste a read-only token that you create and can revoke at any time, pick a base, and confirm your email. The export runs, the zip link arrives by email, and the token you pasted is deleted afterwards. No account or password is needed.

What to do with the copy

One export is a snapshot of today. If the base matters to your business, the useful question is how old you can afford the most recent copy to be, and the answer is usually "a day". That is the point where an automated schedule earns its keep, which is what the paid side of Tablevault is for. Start with the free export, and see what a real copy of your base looks like.