In Bika.ai, we intentionally deprecated the filterByFormula parameter for the Get Records API after careful consideration. Here’s why:
Performance Optimization: Bika.ai’s databases are designed to handle datasets exponentially larger than those supported by AITable. Formula-based filtering can severely degrade query performance at this scale, leading to slower responses and inefficient resource usage.
Scalability First: Our priority is to ensure fast, reliable API interactions for all users, even as datasets grow. Formula evaluations on massive datasets often introduce bottlenecks, which conflict with this goal.
Workarounds available today:
Use existing filter in view like viewId to retrieve pre-filtered record sets.
Perform client-side filtering on the data returned by the API for simpler use cases.
Looking ahead:
We’re actively developing a new filter parameter that will offer SQL-like WHERE clause functionality for more flexible and performant server-side filtering. Stay tuned for updates! (It has been added it to the roadmap)
This decision balances immediate performance needs with future capabilities, and we appreciate your understanding as we work to improve the API.
I am working on data that has 200k rows. Filtering on the client side will not work because you cannot get all 200k rows at once. Using filters in the view will also not work because the parameters of the filter will not be fixed values. If one parameter has one view, then thousands of views have to be created to meet the requirements.
So do you have any other suggestions to filter data with frequently changing parameters?
Thank you for sharing your scenario. While there’s no immediate alternative for dynamic parameter-based filtering at scale, we’re actively addressing this through a new filtering parameter currently on our Q2 roadmap. We’ll share updates as development progresses. Appreciate your patience!