---
title: "Limits and warm-up"
locale: en
url: https://tlg.builera.app/en/docs/concepts/limits-and-warmup
verified: 2026-10-24
app_version: "2.0"
---

# Limits and warm-up

Read effective limits, warm-up levels, and how the action ledger records usage.


Limits are calculated separately for each account and action group. The value you enter may not be the value being enforced. The mode, warm-up week, and slowdown state can also change the result.

## Safe baseline limits

The table below shows baseline values before warm-up or slowdown multipliers. Spacing is the interval between actions in the same group, not the time needed to complete a job. The full table, generated from code, is in the [Limits reference](https://tlg.builera.app/en/docs/reference/limits).

| Action group | Actions/day | Spacing, seconds |
|---|---:|---:|
| Message strangers — `stranger_message` | 20 | 120–420 |
| Reply — `reply_message` | 300 | 3–15 |
| Join a group — `join_group` | 5 | 900–2,700 |
| Leave a group — `leave_group` | 5 | 600–1,800 |
| Scan a group — `scan_group` | 10 | 20–90 |
| Open a profile — `open_profile` | 100 | 5–20 |
| Search for groups — `search_groups` | 20 | 30–120 |
| React — `react` | 20 | 30–180 |
| Edit a profile — `edit_profile` | 2 | 0–0 |
| View a channel — `view_channel` | 30 | 60–300 |
| Check SpamBot — `spambot_check` | 2 | 600–900 |
| Create a group — `create_group` | 3 | 600–1,800 |
| Invite to a group — `group_invite` | 20 | 60–300 |
| View a story — `view_story` | 200 | 3–20 |
| Post a story — `post_story` | 3 | 1,800–5,400 |
| Create a bot — `create_bot` | 2 | 900–2,700 |
| Edit a group — `edit_group` | 10 | 60–300 |
| Create a topic — `create_topic` | 20 | 30–180 |
| Moderate members — `moderate_member` | 30 | 10–60 |

Weekly limits are **5 times** daily limits. Members collected through group scans have a separate cap of **2,000 members/day**. Community reference values in the configuration are used only for warnings. They are not guaranteed limits.

## `null`, zero, and missing values

These representations mean different things:

| `perDay` value | Meaning |
|---|---|
| Missing field | Inherit from the layer below |
| `null` | Explicitly set no cap (effective only in Free) |
| `0` | Block the action group |
| Positive number | Daily action cap |

The resolver prioritizes account configuration, then workspace, platform, and baseline values. In Safe, `null` cannot be used to remove the cap.

Free has its own rule: if neither the workspace nor the account sets a limit or spacing, that group defaults to no cap and no spacing. Platform configuration still plays a role in Safe and during slowdown.

## Warm-up by week and account age

Safe uses this default curve:

| Warm-up week | Limit percentage |
|---|---:|
| 1 | 15% |
| 2 | 30% |
| 3 | 50% |
| 4 | 75% |
| 5 onward | 100% |

The `new` age group starts at week 1; `mid` at week 2; `old` at week 3. Every **7 days** from the warm-up start adds another week. This is elapsed time from the warm-up start, not calendar weeks.

Week 1 blocks messages to strangers and group invitations. Its separate daily caps are **2** group joins, **1** group creation, and **1** story post.

When Slowed down, the limit multiplier is **0.5** and spacing is **2 times** the normal interval. Do not look only at baseline numbers to predict whether a job can run.

## Where does usage come from?

Usage is counted only from the append-only action ledger (`action_events`). Records are added, not edited. The messages visible in Inbox are not the counter, and deleting displayed content does not reset usage.

An action whose execution on Telegram is uncertain still counts as a precaution. If confirmation arrives late, the system reconciles it rather than counting the same send again.

Day boundaries follow **each account’s time zone**, not your browser’s clock. If reading the ledger fails, the system does not treat that as zero usage.

## Related

- [Free and Safe](https://tlg.builera.app/en/docs/concepts/free-and-safe)
- [Jobs and states](https://tlg.builera.app/en/docs/concepts/jobs-and-states)
- [Limits reference](https://tlg.builera.app/en/docs/reference/limits)

