Skip to content
Coritan Docs

Apps API limits

The limits on apps, their settings, variables, domains, builds, releases and requests through the Apps API, in one place.

View as Markdown

This page lists every fixed limit on apps that the Apps API reaches, in its words: an app is a web service in the dashboard, a replica an instance and a region a location. A version of an app is a release in both. The page that covers each feature explains how to work within it. What each month includes at no charge is in Usage rates. An app billed by use has no plan limit on its regions, builds at once, previews, protection, autoscaling or log drains. An app on older terms keeps its plan's limits, and log retention follows the plan on both (What your plan includes).

What Limit
Apps per account or organization Set by the platform. The create request refuses a new app once you have that many, counting every deployment that is not a game server or a database. limits.apps in the answer to GET /api/v1/client/apps/regions gives it, where 0 means no limit, and limits.apps_used how many you have (Regions, sizes and limits). A deleted app does not count.
Source type Chosen when you create the app. It cannot change.
Name on the platform Chosen when you create the app. It cannot change.
Setting Limit
Name 1–100 characters on one line.
Name on the platform 3–63 lowercase letters, digits and hyphens, starting and ending with a letter or a digit, with no hyphens in both the third and fourth places. Unique on the platform, and not a reserved word (Names on the platform).
Repository address An https:// address on a public host, up to 500 characters, with no user name, token, query or fragment.
Branch A name git accepts, up to 200 characters.
Directory A path inside the repository, up to 255 characters.
Access token Up to 1000 characters.
Image reference Up to 500 characters, an image anyone can pull.
Install, build and start commands Up to 500 characters each, on one line.
Dockerfile path None: Dockerfiles are not built, and a path answers 422 with dockerfile_unsupported.
Framework Up to 32 lowercase letters, digits, dots, plus signs and hyphens, starting with a letter or a digit. A preset such as next or fastapi sets the defaults (Frameworks we build).
Port 1–65535.
Health check path Starts with /, up to 255 characters.
What Limit
Size small, medium or large (Replicas and regions).
Regions Every region that can run apps, or up to 20 named regions.
Replicas each region keeps (min_replicas) 1–5.
Replicas a region can scale to (max_replicas) Up to 10. An app on older terms needs a plan that includes autoscaling (Scale with traffic).
What Limit
Variables per app 200 through the Apps API, which sets the values every environment shares. With the values set for each environment and branch on the Variables tab, 1000 in all (Environments and variables).
Name Upper-case letters, digits and underscores, not starting with a digit, up to 128 characters. Some names are set by the platform, and only three names that start with CORITAN_ are allowed (Names and values).
Value 32 KiB.
All variables together 256 KiB, counting each name and value.
What Limit
Custom domains per app 20. The platform name does not count.
Hostname Up to 253 characters. Wildcard names are not accepted.
Hold on a hostname another app is verifying 72 hours from when that app added it (A hostname in use elsewhere).
What Limit
Wait for a build to start 6 hours. After that, the build fails.
Build time 1 hour. After that, the build is stopped and fails.
Build container 4 GB of memory, 2 CPUs and 20 GB of disk.
Build output 2 GB packed.
Dependency cache 1 GB for each app and environment.
Tries for one build 2. A build that stops reporting starts once more.
Build log The last 64 KB is kept. After 32 MB of log, the rest of the build's log is not kept.
Time for a release to finish 6 hours. After that, it fails.
Time for a replica's image or build output to be in place 20 minutes.
Time for a replica to become healthy 10 minutes from when it starts.
Health check answer 5 seconds.
Failed health checks before a replica stops taking requests 3 in a row.
Time a region can have no room for a replica 1 minute. After that, the region fails.
Stop after taking no more requests About 1 minute.
Removal of a previous release's replicas 30 minutes after they stop taking requests.

How the Apps API runs an app explains each of these.

What Limit
Delivery size 10 MB.
How long a delivery's ID is remembered 1 day (What a push deploys).

We count these requests over a rolling window. A request over a limit fails, and does not count towards it.

Requests Most per window Window Counted for
Creating apps 20 1 hour Your account, or the organization
Changes: every request that creates, changes, deploys or deletes 120 1 hour Each person
Releases: deploy, rebuild, redeploy and roll back 30 10 minutes Each app
Domain checks 30 10 minutes Each app
Pushes that deploy 30 5 minutes Each app

A request over a limit answers 429, with the length of the window in retry_after_seconds and in the Retry-After header:

JSON
{
  "detail": {
    "error": "rate_limited",
    "message": "Too many releases of this app. Wait a few minutes.",
    "retry_after_seconds": 600
  }
}

The push webhook answers 429 in its own shape (The webhook's answers). Every API request also counts towards the limits for your account as a whole, which Rate limits describes.

What Limit
Apps per page limit takes 1–100, and is 50 when left out.
Releases per page limit takes 1–100, and is 20 when left out.
Releases that come with an app The 5 newest.