Help

How to create a new table in an existing base through the API?

Topic Labels: API
13393 17
cancel
Showing results for 
Search instead for 
Did you mean: 
Dev_Local
6 - Interface Innovator
6 - Interface Innovator

I have searched the API docs, and I see no way to do this.

With the AirTable API, how do I create a new tab (new table) in an existing base? and then populate it?

I do not see this feature of inserting or creating an new tab into an existing base, only the ability to insert rows into an existing table that was created by a human that opens a web browser and clicks.

We have needs to automate the creation of new tables in an existing base (and down the line, creating new bases programatically).

17 Replies 17
EvanHahn
6 - Interface Innovator
6 - Interface Innovator

:wave: Developer on Airtable’s API team here.

The Airtable API currently has no way to do this—you can only create new tables from the UI.

Great, thank you. Is there any way with the AirTable API, or any 3rd party product to insert a CSV direct into an existing base?

I have a CSV on a file system, and I want to programatically send a CSV to a base and have it inserted into a new tab.

I can’t be the first to request this, it would be helpful, if at all possible. It does not look possible with Zapier. Thank You.

EvanHahn
6 - Interface Innovator
6 - Interface Innovator

There’s no way to import a CSV directly with the API, but you can convert CSV to JSON, which our API accepts.

So rather than CSV → Airtable, you’d do CSV → JSON → Airtable.

Does that make sense?

Yes, so where can I find documentation on that? When I goto my Base’s API page, I don’t see anything there, will look again.

And so sending a JSON direct, would this create a new tab in the base? and also do I have control over the naming of that tab? (or positioning?)

thank you,

We don’t document that because it’s a bit out of scope, and depends on what exactly you’re trying to do. A quick search shows a few online tools that do this conversion, and you can also look to see how to do it in your favorite programming language (like Python).

There’s a new tab for each table in the base. Again, you can’t create a new table from the API.

So the solution is that I have to create a new table manually, always, with the headers I want, and once the table exists, with a header for each field I want to insert, I can then I can make API calls to insert data.

I can send up to ten records at a time, per API call, and I can make up to five of these calls per second, meaning a max of fifty records inserted per second into an existing table.

If I got any of that wrong, please let me know, this is what I am reading in the documentation.


I understand how to take my data and convert to JSON.

I was just hoping that I could create a JSON file of 1K records (rows), and make one call and insert all 1K into a base, creating a new table at the same time and setting the tab name.

Thank you,

All of that understanding sounds correct.

We may add support for these features in the API in the future, but they aren’t currently available.

Um, yeah - me too. This is a common process for anything automated. It tends to rule out a number of use cases.

Here’s a Python script to import a CSV (turning into a JSON object before posting to AT):

JB