Limits
Look up the fixed limits Fortly enforces on uploads, files, data requests, secrets, schedules, tokens, invitations and sign-in.
These are the fixed numbers Fortly enforces, whichever plan you are on. Each one is checked by the API itself, so the console, scripts and agents all meet the same limit, and the error says which one you hit.
How many projects you can have, how much file and database storage your account gets, and how many custom domains it can use depend on your plan. See fortly.com for plans and pricing.
Deploys
| Limit | Value |
|---|---|
| Release upload, compressed | 256 MB |
| Release once unpacked | 2 GB |
| Files in one release | 50,000 |
| Builds running at once, per project | 1 |
Releases returned by GET /projects/{name}/deploys | The 50 newest |
An upload over 256 MB is refused with 413. An archive that unpacks past either of the other two limits is refused with 400 and that upload expands to more than 2 GB or that upload has more than 50000 files, and so is an archive with a path that escapes its root. A refused release never replaces the live one. Starting a build while another is running for the same project returns 409 with a release is already being built for this project — wait for it to finish.
Projects
| Limit | Value |
|---|---|
| Project name | 2 or more characters: lower-case letters, digits and hyphens, not starting or ending with a hyphen |
| Project name plus your account name | 62 characters together, since the pair becomes a 63-character DNS label |
| Idle time before a server process is stopped | 15 minutes |
| Creating projects in quick succession | 8, then one more every 5 seconds |
An idle project is started again by its next request; see idle projects. Creating projects faster than the allowance returns 429 with a Retry-After header.
Files and imports
| Limit | Value |
|---|---|
| One uploaded file | 64 MB |
| One database import (SQL script) | 256 MB |
Data requests
| Limit | Value |
|---|---|
| Rows returned by one table read | 100 by default, up to 1,000 with limit |
Time for one statement sent to /query or /batch | 15 seconds |
Rows returned by one statement sent to /query or /batch | 500, with "truncated": true when there were more |
Statements in one /batch | 200 |
A limit outside 0 to 1,000 is refused with limit must be between 0 and 1000. A statement that runs past 15 seconds is answered with that query took too long and was stopped.
Secrets
| Limit | Value |
|---|---|
| Secret name | 1 to 64 characters: capital letters, digits and underscores, not starting with a digit |
| Secret value | 64 KB |
| Names you cannot use | PORT, HOST, PATH, FORTLY_API, FORTLY_TOKEN, DATABASE_URL, DATABASE_TRANSACTION_URL, PGHOST, PGPORT, PGDATABASE, PGUSER, PGPASSWORD, PGSSLMODE |
Fortly sets the reserved names itself, and they always win over a value stored under the same name.
Schedules
| Limit | Value |
|---|---|
| Time for one run | 5 minutes, then the run is abandoned |
| Time zone | UTC |
Runs missed while the platform was unavailable are not replayed afterwards.
Accounts and sign-in
| Limit | Value |
|---|---|
| Password | 12 or more characters |
| Sign-in attempts for one email address | 8, then one more every 5 seconds |
| Password-reset requests for one email address | 8, then one more every 5 seconds |
| A console sign-in | 30 days |
A successful sign-in gives back the attempt it used, so only failures count toward the limit. Going over any of these returns 429 with a Retry-After header saying how many seconds to wait.
API tokens
| Limit | Value |
|---|---|
| Token name | 1 to 60 characters |
| Token lifetime | 1 to 365 days, 90 by default |
| Grace for the old secret after a rotation | 0 to 720 hours, 24 by default |
See API tokens.
Team invitations
| Limit | Value |
|---|---|
| How long an invitation lasts | 7 days |
| Invitations open at once | 50 |
| Invitations sent per day | 50, counted over the last 24 hours |
| Time between resends of one invitation | 60 seconds |
See Team and roles.
AI agents
| Limit | Value |
|---|---|
Log lines returned by one query_logs call | 100 by default, up to 500 |
See Connect an AI agent.