Data API 100-record block is breaking production apps — this needs to be fixed

Hi Bubble team,

We’re experiencing a critical limitation with your Data API: the 100-record cap per call makes it practically impossible to work with datasets of any meaningful size.

The problem isn’t just the pagination itself — it’s that consecutive API calls from external clients get blocked or timeout after the first request, making it impossible to reliably fetch more than 100 records even with proper cursor-based pagination.

To make matters worse, backend workflows have the same limitation, so there’s no native way inside Bubble to perform aggregations (like distinct count) on datasets larger than 100 records.

This is a fundamental blocker for any serious data analytics use case. Competitors like Xano, Supabase, and Firebase handle this without any issues.

Requested improvements:

  1. Increase the API limit to at least 1,000 records per call
  2. Fix the consecutive call blocking behavior
  3. Add native distinct count aggregation in backend workflows

This is not a feature request — it’s a bug that makes Bubble unsuitable for production apps with real data volumes.

Please prioritize this.

Thank you.

It’s not a bug. It’s a safety feature to protect the shared shards that non enterprise plan apps live in.

If you are aggressively making requests to your Bubble database then you should switch to an enterprise plan. If that’s too expensive for you then you made fundamentally wrong decisions in your architecture.

Here you can find Bubble answer saying it’s a bug. Consecutive api calls getting blocked it’s a bug.

Hey @gerard - Bubble has the flexibility to return this and much more using a custom API response. You can access all the data aggregation tools from the editor (count etc.) and with more customization.

Below, is a sample from a dataset with 10,001 records (but the scale can be much larger)

You can use the ‘return data from API’ action in a Backend Workflow>

Here’s an example:

Here’s the first time (ever) running the query, and it comes back in a reasonable time:

I put items until 5000.

But still only takes in count the first 100 registers.

If you are returning it via a ‘structured JSON list’ in the action, it will be limited

If you reproduce the screenshot in @DjackLowCode’s example (which uses custom application/json), you can retrieve any number of results.

Appreciate so much the help!

Consecutive calls themselves are not the problem. If you are making consecutive calls too fast then you are hitting Bubble’s rate limits for shared servers. Which IMO is what you are doing.

Edit: Hence why the solution shared by @DjackLowCode works. Less calls larger payloads