# Limits and quotas

> Every bound the platform enforces, in one place. Organization limits, machine sizes, build machines, sandboxes, databases, tokens, schedules, jobs, domains, buckets and rate limits.

These are the bounds the API enforces. A request outside them answers `400` with `bad-request` and the field named, or `403` and `429` where the table says so. Where a number can be raised for you, the table says "contact us".

## Organization

| Limit | Value | When reached |
| --- | --- | --- |
| Computers | 2 | `403` with `org-limit-computers`; contact us for more |
| Apps, computers included | 10 | `403` with `org-limit-apps`; contact us for more |
| Sandboxes running at once | 100 | `429` with `too-many-sandboxes` |
| Webhooks | 20 | |
| Starting credit | 100 EUR, once per person | see [Credit and prices](https://docs.rytiv.com/billing.md) |

The computer and app limits apply to organizations created in the console on starting credit. Only creation is limited: a computer or app that exists keeps running whatever its state, and waking it never counts. Database backing apps, sandboxes and previews do not count as apps.

## Machines

| Setting | Range | Default |
| --- | --- | --- |
| Memory (`memoryMb`) | 128 to 16384 | 512 for a new app, 1024 suggested for Next.js |
| vCPUs (`vcpus`) | 1 to 16 | 1 |
| Disk (`diskMb`) | 512 to 131072 | the image's size plus headroom |
| Volume (`volumeGb`) | 1 to 500 | |
| Machines per app (`count`) | 1 to 20; exactly 1 with a volume | 1 |
| Internal port | 1 to 65535 | 3000 |
| Start command | up to 2000 characters | the image's or the detected one |
| Kill timeout (`killTimeoutS`) | 1 to 300 | 30 |
| Sleep after idle (`idleSeconds`) | 10 to 86400 | 300 (only if a sleep rule is chosen) |
| Stop after sleeping (`stopAfterSeconds`) | greater than `idleSeconds`, up to 7 days | |
| Sleeps with its memory | machines up to 2048 MB; larger ones stop instead | |
| Health check `maxWaitMs` | 1000 to 300000 | 60000, 120000 with a volume |
| Health probe `timeoutMs`, `intervalMs`, `healthyThreshold` | 100 to 30000, 100 to 10000, 1 to 10 | 2000, 500, 1 |
| Restart retries | 1 to 10 | 3 |
| App name | 2 to 63 characters, `a-z`, `0-9`, `-`, starting with a letter | |
| Reserved app names | `api`, `console`, `s3`, `admin`, `app`, `db`, `docs`, `internal`, `mail`, `pub`, `ssh`, `status`, `www`, and `rytiv` or `rytiv-*` | |

## Computers

| Size | vCPU | Memory | Home disk |
| --- | --- | --- | --- |
| `small` | 1 | 2304 MB | 50 GB |
| `base` (default) | 2 | 4096 MB | 100 GB |
| `large` | 4 | 8192 MB | 128 GB |

A computer shuts down after 10 minutes without activity; its home stays. Computer names are 2 to 31 characters.

## Builds

| Setting | Value |
| --- | --- |
| Build machine | 4096 MB, 4 vCPU |
| Build machine for Next.js and Dockerfile projects | 8192 MB, 4 vCPU |
| `--build-memory` | 1024 to 16384 MB |
| Build timeout | 8 minutes; 15 for Next.js, 20 for a Dockerfile |
| Build environment (the secrets a build sees) | 96 KiB encoded, else `413` |
| Git deploy archive | 200 MB compressed, 2 GiB unpacked |
| Static site | 1 GiB and 100,000 files |
| Builds kept per app | 3 |

## Sandboxes

| Setting | Range | Default |
| --- | --- | --- |
| Lifetime (`ttlSeconds`) | 10 to 86400 | 300 |
| Memory, vCPUs, disk | as a machine | 512 MB, 1 vCPU |
| Environment variables | up to 128, values up to 32768 characters | |
| Extra ports | up to 8 | |
| Metadata entries | up to 16 | |
| Exec timeout (`timeoutMs`) | 1000 to 600000 | 60000 |
| Exec output, stdin | 1 MiB each | |
| One file | 64 MiB | |
| Ended sandboxes listed for | 14 days | |

## Postgres

| Setting | Range | Default |
| --- | --- | --- |
| Memory | 128 to 16384 MB | 1024 |
| Volume (`sizeGb`) | 4 to 500 GB for Postgres | 10 |
| Branches per database | 15 | |
| Expiry of a branch or fork | 60 seconds to 30 days | none |
| Fork from a point in time | within the archive, 7 days | |
| Sleep after idle | 10 seconds to 1 day; second stage up to 7 days | 300 s, stop after 1 day |

## Tokens

| Setting | Range |
| --- | --- |
| Name | 1 to 120 characters |
| Scopes per key | up to 20 |
| Expiry | 60 seconds to 365 days; never later than the key that creates it |
| Apps on an agent token | 1 to 50 |
| SSH tokens | 60 seconds to 72 hours, default 1 hour |

## Snapshots

Labels are 1 to 63 characters of letters, digits, `.`, `-` and `_`, starting with a letter or digit; `auto-` is reserved. Automatic snapshots of agent machines are taken hourly; the newest per hour is kept for 24 hours, the newest per day for 30 days.

## Schedules and jobs

| Setting | Value |
| --- | --- |
| Schedules per app | 20 |
| Path call timeout | 60 s default, 240 s at most; down to every minute |
| Command timeout | 900 s default, 3600 s at most; at most hourly |
| Runs kept per schedule | 100 |
| Cron expression, time zone | up to 200 and 64 characters |
| Job command | up to 64 arguments; up to 8 linked apps |
| Job timeout | 1 to 3600 s, default 900 |
| Job output kept | 1 MiB |

## Domains and buckets

| Setting | Value |
| --- | --- |
| Domain length | up to 253 characters, labels up to 63 |
| Certificate renewal | when fewer than 30 days remain |
| Previews per app | 10; idle previews close after 14 days |
| Bucket name | 3 to 63 characters, `a-z`, `0-9`, `-`; `rytiv*` reserved |
| Presigned URL | 1 second to 7 days, default 15 minutes |
| Object key | up to 1024 bytes |
| CORS rules per bucket | 100 |
| Objects per list page | 100 default, 1000 at most |
| Sending domains waiting for DNS | 3 per organization |

## Rate limits

The product API has no general rate limit. These entrances have one and answer `429` with `Retry-After`:

| Entrance | Limit |
| --- | --- |
| MCP tool calls | 120 per minute per organization |
| Shell session starts | 120 per minute per organization; 64 open sessions per organization, 16 per machine |
| Computer viewer links | 120 per minute per organization |
| Device login codes | 20 per 10 minutes per address |
| OAuth register, authorize, token | 30, 60 and 300 per 10 minutes per address |
| Organizations created from the console | 10 per person per day |

## Credit

| Setting | Value |
| --- | --- |
| Smallest top-up | 10 EUR |
| Largest top-up | 1,000 EUR |
| Auto-recharge amount | 10 to 500 EUR; monthly cap up to 2,000 EUR |
| Warning | below 20 percent of the last top-up |
