# Limits and quotas

> Runs per month, tasks, concurrency, browser time, per-domain action limits, run length, steps and retention of OpenWAF Tasks in the beta.

During the public beta OpenWAF Tasks is free within the quota below. These are the defaults for every organization; an operator can adjust them for yours. Write to support@openwaf.dev.

## Quota per organization

| Item | Default | Notes |
|---|---|---|
| Runs | 200 per month | Scheduled and manual runs; calendar month in UTC |
| Tasks | 5 | Tasks of the organization |
| Runs at a time | 1 | A run in `awaiting_approval` does not count: it has no browser |
| Browser time | Your [Browsers quota](https://developers.openwaf.dev/browsers/limits/#quota) | Every run's browser is measured against the task's browser key |

`GET /v1/orgs/{org}/tasks` returns `quota` and `usage` (`runs`, `active`, `pending_approvals` and the period).

## Per-domain limits

Approved actions on one domain, per organization: **at most 20 a day and one every 2 minutes**. A task can set stricter `action_limits` per domain (`min_interval_minutes`, `max_per_day`). An approved action that would break a limit waits, with `not_before`.

## Per task and run

| Item | Value |
|---|---|
| Schedule | 5-field cron with an IANA time zone, at most every 15 minutes; or `at` for one run |
| Allowed domains | 1 to 20 |
| Script | ES module up to 256 KiB |
| `input`, `state`, `output` | JSON up to 64 KiB each |
| `max_run_minutes` | 1 to 30 (default 10) |
| Agent `max_steps` | 1 to 50 (default 25) |
| Steps of one action | 1 to 50 |
| Proposals per run | 5 |
| Screenshots per run | 50, up to 1 MiB each |
| Log lines per run | 2000 |
| Approval expiry | 10 to 1440 minutes (default 120) |

## Retention

Screenshots and other artifacts are kept 30 days. Recordings follow [the Browsers retention](https://developers.openwaf.dev/browsers/limits/#browser-lifetime).

## Location

Runs, browsers, screenshots and logs are hosted in the EU, in Germany.
