Airtable migration script errors (official script incorrect?)

Hi folks

I’m trying to migrate an Airtable base to Seatable ( using the current migration script and the instructions at

But the script contains a lot of errors, which makes me wonder why no one has noticed this yet.

Line 49: The closing quotation mark is missing
Line 66 should be: base = Base(api_token, server_url)
Line 74 should be: links=links,

After these corrections, I can perform the first step of the migration (import-header).

But if I try the final migration (import-rows) I get the following error:

error: Error: line 90, in <module> import_rows() File "", line 83, in import_rows convertor.convert_data() File "/usr/local/lib/python3.7/site-packages/seatable_api/", line 508, in convert_data self.delete_demo_rows() File "/usr/local/lib/python3.7/site-packages/seatable_api/", line 599, in delete_demo_rows self.batch_delete_rows(table_name, row_ids) File "/usr/local/lib/python3.7/site-packages/seatable_api/", line 727, in batch_delete_rows self.base.batch_delete_rows(table_name, row_id_split) File "/usr/local/lib/python3.7/site-packages/seatable_api/", line 408, in batch_delete_rows return parse_response(response) File "/usr/local/lib/python3.7/site-packages/seatable_api/", line 41, in parse_response raise ConnectionError(response.status_code, response.text) ConnectionError: [Errno 400] {"error_type":"param_row_ids_invalid","error_message":"param row_ids invalid"}

The error can’t be in my configuration - after all, the import of the headers and the first 10 entries works. What else could it be?

Grateful for any hint!
Greetings, Andreas

Thanks a lot for this report.

The fact that the article contains errors is embarassing and I apologize (as one of the authors of the article).

In our defence, we have a good excuse :wink: The original article is in German and it is automatically translated in other languages. It is actually the translation engine that inserts the errors.

Here just one example: The German word “Links” has a double meaning: the direction left and a (hyper)link. The translation engine seems to think that in this case the translation “Left” is accurate.

I should have tested the script more thoroughly. Sorry for the inconvenience.

We’ll manually amend the translation. For the time being, please copy-paste the script from the German version of the article.

As for the error message, the script seems to have a problem with the batch_delete method. I’ll investigate. For now, please remove the 10 test rows manually and then run the script in “import-rows” mode. This should work.

1 Like

Thank you for the quick reply.

You should correct and test the script in the documentation as soon as possible. The Airtable migration script is a killer application in my eyes.

After deleting all test lines, the script runs through successfully. In this respect my problem is solved in principle.

Thanks and greetings,

Addendum: P.S. The script terminated with an “the script runs too long” error. Obviously there are restrictions are not mentioned anywhere.

Please check the FAQ underneath the article.


This topic was automatically closed 2 days after the last reply. New replies are no longer allowed.