Limits
These are the limits you’re most likely to run into. They’re the platform’s compiled defaults — not marketing round numbers — and where an organization admin can override one, that’s noted.
Query execution
| What | Limit |
|---|---|
| Rows kept from a single query | 10,000 |
| How long one query may run | 300 seconds |
A query returning more than the row cap is truncated to it, and the stored result is flagged as truncated rather than failing. Two connectors opt out of the cap and return however many rows the query produced: SQL Server and Query Results.
Exceeding the time limit stops the query and fails the run. Narrow the time range or aggregate in SQL rather than pulling rows and filtering afterward.
Rate limits
| Endpoint | Limit |
|---|---|
| Query execute | 60/min per user |
| Connector test | 10/min per user |
| Public dashboard | 30/min per IP |
| Public embed | 30/min per IP |
| Digest unsubscribe | 30/min per IP |
| Sign-in | 10/min per IP |
| Session exchange and organization select | 10/min per IP |
| Invitation status lookup | 10/min per IP |
| Signup | 5/min per IP |
| Invite accept | 5/min per IP |
| AI SQL generation | 10/min per user (org-configurable in AI Settings) |
See Conventions for the status code and behavior when a limit is hit.
AI usage
AI features — Ask with AI, Auto Visualize, and Suggest checks — share one rate limit: calls per user, per minute. The system default (10/min) comes from the deployment’s configuration; an organization admin can override it for the whole org from AI Settings → Usage limit. Hitting the limit fails the AI call with a rate-limited error; it never blocks the rest of the product.
Retention and pagination caps
| What | Limit |
|---|---|
| Query Results meta-source: distinct cached results loaded per run | 500 |
| Monitor delivery history returned per request | 50 rows, newest first |
| Audit log page size | 250 max, 25 default |
Scheduling and dashboards
| What | Limit |
|---|---|
| Consecutive scheduled-run failures before auto-pause | 10 |
| Advanced (cron) schedule expression | 6 fields (seconds required); a 5-field crontab is rejected |
| Daily/weekly schedule time | UTC in the schedule editor (no timezone picker); the API accepts a timezone |
| Dashboard grid | 6 columns |
Sharing
| What | Limit |
|---|---|
Embed / public link default expiry (no expires_at set) |
90 days |
Where to go next
- Conventions — error codes and rate-limit response behavior.
- Scheduled refresh — the auto-pause and cron rules in context.
- Embedding — the 90-day expiry default in context.