Plan allowances and the query, sync, Slack, and API limits that apply to every workspace.
Each plan includes monthly allowances. See pricing for prices.
| Plan | Sources | Managed storage | Data scanned per month | AI credits per month |
|---|---|---|---|---|
| Free | 3 | 10 GB | 50 GB | 1,000 |
| Starter | 5 | 100 GB | 250 GB | 1,000 |
| Growth | 15 | 1 TB | 2 TB | 6,000 |
| Scale | 40 | 3 TB | 10 TB | 15,000 |
Free does not expire. Workspace owners, admins, and members with the billing_admin role can upgrade from Settings.
Every workspace, on every plan, also has daily and monthly safety limits that protect against runaway queries, agent loops, and unexpectedly large syncs. They are on by default.
| Limit | Default | What stops |
|---|---|---|
| Data scanned per day | 500 GB | Warehouse queries from Contrast answers, SQL, MCP, the CLI, and the API |
| Spend per day | $100 of AI and query compute | Contrast answers and warehouse queries |
| Spend per month | $1,000 of AI and query compute | Contrast answers and warehouse queries |
| Rows ingested per day | 100 million | New syncs |
| Data ingested per day | 100 GB | New syncs |
429 with a message that says when it resets. A sync already in progress stops after the batch it is writing, and the source shows as degraded rather than failed. The first scheduled sync after the reset continues from where it left off.These apply to SQL from Contrast answers, SQL in Contrast, MCP, the warehouse CLI, and the API.
| Limit | Value |
|---|---|
| Query timeout | 120 seconds by default; the API accepts up to 3,600 seconds |
| Queries against a connected Snowflake source | 60 seconds |
| Data scanned per query | 25 GiB |
| Rows kept per result | 10,000 by default; SQL also offers 100,000 or unlimited |
| Result retention | 7 days |
| SQL length | 262,144 characters |
| Statements per request | 1 |
| Rows per result page | 1,000 through the API; 100 through MCP and the warehouse CLI |
| Rows Contrast reads per query | 500 |
See the SQL reference for the statements each surface allows.
| Limit | Value |
|---|---|
| Batch sync interval | Every 15 minutes to every 7 days |
| Default interval | Every 60 minutes; every 15 minutes for Snowflake and every 2 hours for PostgreSQL batch syncs |
| Continuous sync | PostgreSQL and Supabase, through change data capture |
| Connection checks | 5 per user per 10 minutes |
When a source API rate-limits Contrast, the sync waits and retries. You don't need to reconnect.
| Limit | Value |
|---|---|
| Question length | 8,000 characters; longer messages are cut off |
| Chart size | 20 points, 12 series or slices |
| Table size | 100 rows and 8 columns, shown 10 rows per page |
| One-off scheduled messages | Up to 120 days ahead |
| Limit | Value |
|---|---|
| Questions per user | 30 per hour |
| Question length | 2,000 characters |
| Limit | Value |
|---|---|
| Personal access token lifetime | 30 days by default, 1 to 365 days |
| Databases a token can write to | 20 |
| MCP tool response size | 64,000 bytes |
| Rate limits | See versioning and rate limits |
Contrast can also set custom usage quotas for a workspace. Requests over a quota or a safety limit return 429; see troubleshooting.