Limits¶
Tinybird has limits on certain operations and processes to ensure the highest performance. All limits are applied at the organization level, meaning resources and limits are shared across all workspaces within your organization.
Each plan page documents plan-specific billing limits and SKUs:
Rate limiter ¶
The rate limiter monitors cluster health and may temporarily limit concurrent requests to prevent instability due to memory or CPU pressure.
It activates when both conditions are met:
- The cluster is under resource pressure, either:
- Memory usage exceeds the threshold: greater than 70% of cluster capacity on Free and Developer plans, or greater than 80% on Enterprise (dedicated) plans.
- CPU is saturated: the 1-minute load average exceeds 3 times the number of available CPU cores.
- The percentage of
408 Timeout Exceededand500 Internal Server Errorresponses for a Pipe Endpoint exceeds 10% of its successful requests.
When active, the maximum concurrent requests for affected Pipe Endpoints is reduced proportionally to the observed error percentage. Under CPU pressure, reduced limits only apply to the Pipe Endpoints consuming a significant share of the cluster's CPU. Workspace administrators on dedicated infrastructure receive an email with affected Endpoints and applied concurrency limits.
Once Pipes stop receiving 408 or 500 errors, concurrency limits are gradually relaxed until removed.
While the rate limiter is active, Endpoints can return HTTP 429. Clients should retry with exponential backoff.
Notifications by email ¶
When reaching or temporarily exceeding your plan's limits, you receive one of the following emails.
Free plans¶
The following table shows the limits' notifications you might receive for the Free plan.
| Limit | Warning email | Alert email |
|---|---|---|
| vCPU usage (1/4 vCPU) | Exceeded plan's base vCPU allowance within the past hour. | |
| Storage Usage | Used more than 75% of allocated storage. | Used more than 100% of allocated storage. |
| Requests per day (1,000 queries) | Used more than 75% of daily query limit. | Used more than 100% of daily query limit. |
| LLM usage ($25 LLM credits per cycle) | Used 100% of LLM credits in current billing cycle. |
Developer and SaaS plans¶
The following table shows the limits' notifications you might receive for plans on shared infrastructure.
| Limit | Warning email | Alert email |
|---|---|---|
| vCPU usage | Used more vCPU time than your plan includes, resulting in overages. This notification is sent once per billing cycle. | Exceeded your plan's vCPU time limit within the last hour. |
| Extra costs | Overage costs in vCPU time exceed 33% of your plan's base fee. | Daily email with a breakdown of extra costs when vCPU overages occur. |
| Storage Usage | Used more than 75% of allocated storage. | Used more than 100% of allocated storage. |
| LLM usage ($100 LLM credits per cycle) | Used 100% of LLM credits in current billing cycle. |
Workspace limits¶
The following limits apply to all workspaces in an organization, regardless of the plan.
| Description | Limit |
|---|---|
| Number of Workspaces | 90 Workspaces. Soft limit, contact support to increase it. |
| Number of members | 90 members. Soft limit, contact support to increase it. |
Number of branches, including main | Default 4. Hard limit on shared infrastructure. Soft limit on dedicated infrastructure, contact support to increase it. |
| Number of Data Sources | 100 Data Sources. Soft limit, contact support to increase it. |
| Number of Copy Pipes | Up to 200 Copy Pipes, depending on the plan. See Copy Pipe limits |
| Number of Sink Pipes | Up to 10 Pipes, depending on the plan. See Sink Pipe limits. |
| Number of Tokens | 100,000 tokens. If you need more you should take a look at JWT tokens |
| Number of secrets | 100 secrets. |
See Rate limits for JWTs for more detail specifically on JWT limits.
Ingestion limits¶
The following ingestion limits apply to all workspaces in an organization.
| Description | Limit |
|---|---|
| Data Source max columns | 500 |
| Full body upload | 8 MB |
| Multipart upload - CSV and NDJSON | 500 MB |
| Multipart upload - Parquet | 50 MB |
| Max file size - Parquet - Free plan | 1 GB |
| Max file size - Parquet - Developer, SaaS, and Enterprise plans | 5 GB |
| Max file size (uncompressed) - Free plan | 10 GB |
| Max uncompressed file size - Developer, SaaS, and Enterprise plans | 32 GB |
| Kafka topics | 5 topics. Enterprise plan users can contact support to increase. |
| Max parts created at once - NDJSON/Parquet jobs and Events API | 12 parts |
Ingestion limits (API)¶
Tinybird throttles requests based on the capacity. So if your queries are using 100% resources you might not be able to run more queries until the running ones finish.
| Description | Limit and time window |
|---|---|
| Request size - Events API | 10 MB |
| Response size | 100 MB |
| Create Data Source from schema | 25 times per minute |
| Create Data Source from file or URL * | 5 times per minute |
Append data to Data Source POST /v0/datasources * | 5 times per minute |
Append data to Data Source using POST /v0/events | 100 times per second |
Create Data Source using POST /v0/events | 5 times per minute |
| Replace data in a Data Source * | 5 times per minute |
* The quota is shared at Workspaces level when creating, appending data, or replacing data. For example, you can't do 5 requests of each type per minute, for a total of 15 requests. You can do at most a grand total of 5 requests of those types combined. Import jobs using append mode, S3 connector ingests, Datasource API posts, and CLI datasource commands all use the /v0/datasources endpoint and are subject to the limit.
The number of rows in append requests doesn't impact the ingestion limit; each request counts as a single ingestion.
If you exceed your rate limit, your request is throttled and you receive HTTP 429 Too Many Requests response codes from the API. Each response contains a set of HTTP headers with your current rate limit status.
| Header Name | Description |
|---|---|
X-RateLimit-Limit | The maximum number of requests you're permitted to make in the current limit window. |
X-RateLimit-Remaining | The number of requests remaining in the current rate limit window. |
X-RateLimit-Reset | The time in seconds after the current rate limit window resets. |
Retry-After | The time to wait before making a another request. Only present on 429 responses. |
Query limits¶
The following query limits apply to all workspaces in an organization, regardless of the plan.
| Description | Limit |
|---|---|
| SQL length | 128KB |
| Result length | 100 MB |
| Query execution time | 10 seconds |
If you exceed your rate limit, your request is throttled and you receive HTTP 429 Too Many Requests response codes from the API. Each response contains a set of HTTP headers with your current rate limit status.
| Header Name | Description |
|---|---|
X-RateLimit-Limit | The maximum number of requests you're permitted to make in the current limit window. |
X-RateLimit-Remaining | The number of requests remaining in the current rate limit window. |
X-RateLimit-Reset | The time in seconds after the current rate limit window resets. |
Retry-After | The time to wait before making a another request. Only present on 429 responses. |
Query timeouts¶
If query execution time exceeds the default limit of 10 seconds, an error message appears. Long execution times hint at issues that need to be fixed in the query or the Data Source schema.
To avoid query timeouts, you can:
- Optimize your queries to remove inefficiencies and common mistakes.
- Increase the number of available threads in your plan to process queries concurrently. See Max threads on the Developer plan or the equivalent section on SaaS or Free.
If you still need to increase the timeout limit, contact support. See Get help.
Only paid accounts can raise the timeout limit.
Infrastructure limits¶
The following infrastructure limits apply to all plans and workspaces.
| Description | Limit |
|---|---|
| Concurrent connections per IP address | 250 active connections from the same IP address per region |
If you exceed the concurrent connection limit, requests are throttled and you receive HTTP 429 Too Many Requests response codes. This limit is enforced to ensure service availability for all users.
This limit applies per region. If you need higher connection limits, consider distributing your traffic across multiple IP addresses.
Publishing limits¶
The following publishing limits apply to all workspaces in an organization, regardless of the plan.
Materialized Views limits¶
No numerical limits. Certain operations are inadvisable when using Materialized Views.
Copy pipe limits ¶
Copy Pipes have the following limits per Workspace, depending on your billing plan:
| Plan | Active jobs (running or queued) | Execution time | Minimum scheduled frequency | Copy Pipes |
|---|---|---|---|---|
| Free | 1 | 20 s | Once an hour | 20 |
| Developer | 3 | 30 s | Up to every 10 minutes | 100 |
| Enterprise | 6 | 50% of the scheduling period, 30 minutes max | Up to every minute | 200 |
The 6 active Copy Pipe jobs includes:
- 2 concurrently running jobs, and
- 4 additional jobs in the queue (pending execution).
This limit ensures fair resource usage and system stability across all users. If your workflows require higher throughput, contact Tinybird support so the team can evaluate your use case and scale as needed.
Sink pipe limits ¶
Sink Pipes have the following limits, depending on your billing plan:
| Plan | Sink Pipes per Workspace | Execution time | Frequency | Memory usage per query | Active jobs (running or queued) |
|---|---|---|---|---|---|
| Developer | 3 | 30 s | Up to every 10 min | 10 GB | 3 |
| Enterprise | 10 | 300 s | Up to every minute | 10 GB | 6 |
Delete limits ¶
Delete jobs have the following limits, depending on your billing plan:
| Plan | Active delete jobs per Workspace |
|---|---|
| Free | 1 |
| Developer | 3 |
| Enterprise | 6 |
Next steps¶
- Pricing plans: Overview of Free, Developer, SaaS, and Enterprise.