# Plans and limits

| What | Allowed |
|---|---|
| Metric name | 1–64 characters: `a–z`, `0–9`, `_` (`orders`, `signup_errors`) |
| Dimensions | up to 5 per point; key 1–32 characters (`a–z`, `0–9`, `_`; not `n`, `ts`, `id` or a name starting with `_`), value 1–64 characters. Every combination is its own watch: keep the values few. |
| Value | `add` or `set`: a number of at least 0 and below 1,000,000,000,000 |
| Time (`ts`) | ISO 8601 with an offset, or Unix milliseconds; up to 5 minutes ahead and 6 hours back. Older counts go through import. |
| One request | up to 10,000 points and 2 MB, for any number of watches; it counts as one request |
| Import | up to 90 days back per watch, 1,000 watch-days per request |
| Watches | Free 10, Pro 1,000; at most 500 new watches an hour |
| Requests a month | Free 10,000; Pro 1 million included, then billed per million (never refused) |
| Checks | Free every hour, Pro every 15 minutes |
| History kept | 90 days |
| API keys | up to 1,000 per account |
| Alert destinations | up to 5 per account. Free: webhook, Slack, e-mail; Pro: webhook, Slack, PagerDuty, e-mail |
| Your own rules and known events | up to 1,000 rules and 1,000 events per account |

`GET /v1/plans` (public, no key) returns every plan limit. A refusal names the `plan` and the `limit` and, where known, what was `used` and when it `resets_at`.
