# Limites e cotas

- **25 MB por arquivo**; imagens também limitadas a **40 megapixels**.
- **Cota por time**: 5 GB e 10 000 arquivos no bucket compartilhado.
- **Nomes de arquivo** (`name`): até 4 segmentos separados por `/` (3 barras), cada um em `[a-z0-9._-]`, até 200
  caracteres, sem `..`, sem segmento começando com `.`, e o **primeiro segmento não pode ter exatamente 12
  caracteres hexadecimais** (colidiria com o hash da URL imutável). Únicos dentro da galeria. Nome inválido ⇒ `400 invalid_request`.
- **Rate-limit** por token e por IP. Ao receber `429`, espere o número de segundos do cabeçalho `Retry-After`.

## Limites de deploy, serviços e recursos

Os valores exatos do seu plano e do seu time estão em `GET /v1/limits` (escopo: qualquer token válido); o que o token pode fazer está em `GET /v1/me`.

```bash
curl -sS "$NEBULAR_API/v1/limits" \
  -H "Authorization: Bearer $NEBULAR_TOKEN"
```
```json
{"plan": "hobby", "services": {"used": 1, "max": 10}, "memory_mb": {"used": 512, "max": 4096}, "volumes_gb": {"used": 0, "max": 20}, "databases": {"used": 0, "max": 3}, "deploys_per_hour": {"used": 0, "max": 30}}
```

Cada dimensão traz `used` e `max`. Passar de `max` em serviços, memória, volume ou bancos responde `quota_exceeded` (`422` ao criar banco); `deploys_per_hour` limita o disparo de deploys por time (janela deslizante de 1 h, somando todos os projetos): ao atingir, deploy, rollback e deploy de grupo respondem `429 rate_limited` com `Retry-After` (segundos até abrir vaga). Aguarde; não é erro de cota permanente. O número máximo de projetos por time (`project_quota_exceeded`, `409`) é conferido na criação do projeto.

Regras fixas do modelo:

- **Nome de serviço**: `^[a-z][a-z0-9-]{0,30}$`, único no projeto.
- **Recursos por serviço**: `memory_mb` padrão 512 e `cpus` padrão 0.5, até o máximo do plano ([Escala e recursos](/operacao/escala-e-recursos/)).
- **Volume**: 1 por serviço, de 1 a 50 GB ([Volumes](/conectados/volumes/)).
- **Variáveis**: valor expandido até 64 KiB e ambiente resolvido até 256 KiB (`value_too_large`); referências aninhadas até 16 níveis.
- **Banco**: cota em MB por instância; acima do limite o banco fica somente leitura ([Bancos](/bancos/postgres/)).
- Estourar uma cota responde `quota_exceeded`; excesso de requisições, `429` com `Retry-After`.
