API calls interpret filters differently from the GUI - bug?

Tested on:

  • Seatable self-hosted 6.0 and 6.1
  • Various browsers
  • API Access through n8n and Python Scripts

Problem:

Depending on certain filter settings, I’m getting different record sets when watching the same view in the GUI and retreiving it via the API. This has nothing to do with 500 Internal Server Error when listing rows via API (n8n) with AND + OR filter groups on Big Data tables , but indicates that the API works quite differently from the GUI when filtering views.

Two instances we were able to isolate.

Less critical: Link columns

When using a filter "Link column does not contain ", the hint rightly says that seatable will choose a random value, so I’m not expecting much:

However, the API uses a different random process. In my example, one record is visible via API, but not via the GUI, because a different linked record is used for the filter. We will work around this to secure a certain outcome, but the fact remains that APi and GUI act inconsistently.

More critical: Date filter

We had a date filter that said “Date column is on or 7 days before today”:

grafik

Around the critical 6th / 7th day (Today is 2026-05-13, date column showed 2026-05-06, 15:00), the GUI shows 2 records, the API returns none. Changing the filter to just “6 days before today” (without “on or”) seems to work as intended.

We do not know whether the “on or before” filter of the API is off by a whole day, or maybe just regards the date’s time as well, while the GUI doesn’t - all speculation. What remains is the fact that GUI and API are inconsistent.

@ppm

@Leo.Shi Could you take a look at this?

@rdb seems like this is the same issue as Bug: API crashes when retrieving views with date filters - #9 by abaer . Feel free to mark this one solved if 6.2 fixes it.