How to check if record already exists?

Im working on a integration with a CMDB and want to insert/update new/modified records in a Seatable Base.
As I see from the API reference there is no way that Seatable is doing an update automatically if the records already exists.
So I have imported the foreign record ID. Now how can I check if a record is already existing? I can not do that with the Seatable ID, I have to check with the foreign ID.

Additionally I have a problem with the “List filtered row” method. This is a GET method, but our middleware does not support GET Method with Body… Is there any other possibility to get filtered rows?

Thank you


first of all, let’s regulate our terminology: by SeaTable ID and foreign ID, I think you mean the row_id? Like the _id here:

If that’s the case: the row_id is unique inside of a base. You can insert as many identical records as you like into a base, they will always have different row_ids and therefore treated as individual entries. In other words: it’s impossible to have two records having the same row_id, even if they are identical in every column.

To check if a record already exists, there’s currently no direct way to check per API. If you can use the UI, there’s a plugin called “Deduplication”. Add this plugin and use it to find out duplications in your table.

As for the GET method: it’s unfortunately so for the moment. The list rows API already provides you with the possibility to retrieve all the entries, so perhaps you must find another application to filter the JSON. Hope this helps you!

HI Karlheinz

thank you, its clear for the Seatable id, field _id. With foreign id i mean the record id from the foreign system (CMDB).
I have imported the record id from the foreign system (CMDB). Because I do not want to duplicate the record on each synchronization run. And your api does not check if a record is already existing. as you say the same record will be created again with different _id.

What I want to do is to check if a record is already existing. I can do that by filtering by the foreign system id, when I find a match I do an update, otherwise an insert. but I have the problem with the unsupported GET method with body…

As you said there is no other option to check if a record already exists I have to find another solution…

Thank you for your support!

The best way is to load the whole base into your client and build a map in your code for checking duplication. If you use a single API for checking existing of a row, you will soon reach the API call limitation.