Creating and updated records via a batch create (POST) API call does not work anymore

Are you using our SaaS platform (Baserow.io) or self-hosting Baserow?

Self-hosted

If you are self-hosting, what version of Baserow are you running?

We are on 1.31.0

If you are self-hosting, which installation method do you use to run Baserow?

We are hosting on Docker

What are the exact steps to reproduce this issue?

Baserow’s API used to allow running a batch create (POST) request, where you could both create new records and update existing records at the same time.

This could be done by providing an “id” property for the item JSON objects that reflect an existing Baserow record and omitting this “id” property in the item JSON objects that are new, to be created Baserow records.

For example like this:

POST
{
“items”:
[
{
“Title” : “This is a new record”
},
{
“id” : 21,
“Title” : “This is the existing record 21, to be updated”
}
]
}

However, now we notice that seems not to be working anymore, as these calls now always create new records for all provided JSON item objects, regardless whether the id property is specified or not. Since quite a few of our automations rely on this previous behavior, this is kind of a problem for us and our clients.

Our question:

Did this change in the newer Baserow versions?
How to get back the previous behavior?

Hey @stijnthedotfather, it has been never been possible in Baserow to either create or update a row based on whether an ID is provided. We have an issue on the backlog (Introduce endpoint to upsert a row in a table (#1395) · Issues · Baserow / baserow · GitLab) to introduce an upsert endpoint, but this has not been implemented.