> ## Documentation Index
> Fetch the complete documentation index at: https://docs.tronrental.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Создать правило для энергии

> Пополнение энергии на адресе, как только она опускается ниже порога

## Создать правило для энергии

Создаёт правило автопополнения для одного адреса. Начиная со следующей проверки, всякий раз, когда доступной энергии на адресе меньше `threshold_energy`, мы покупаем `add_volume` энергии на один час и списываем стоимость с вашего баланса. Как устроены проверки, стоимость и статусы, — в [обзоре](/ru/api-reference/auto-refill/overview).

Запрос только создаёт правило — сам он ничего не покупает. Нужен скоуп `buy_energy`. Чтобы сначала узнать цену одного пополнения, см. [Рассчитать цену пополнения энергии](/ru/api-reference/auto-refill/quote-energy-refill).

### Тело запроса

**target\_address** `string` *required*

Адрес TRON, который нужно держать обеспеченным (формат T..., 34 символа). Адреса контрактов отклоняются.

**threshold\_energy** `number` *required*

Покупать, когда доступной энергии на адресе меньше этого значения. От 1 до 50 000 000.

**add\_volume** `number` *required*

Сколько энергии покупать за одно пополнение. От 32 000 до 5 000 000. Держите значение не ниже `threshold_energy` — см. [предупреждение в обзоре](/ru/api-reference/auto-refill/overview#как-выбрать-значения).

**duration** `string` (default: 1h)

Срок аренды для каждого пополнения. Принимается только `"1h"`; любое другое значение вернёт `422`.

**label** `string`

Ваше собственное название правила, до 100 символов. Необязательно.

### Ответ

Новое правило — с теми же полями, что в [Списке правил для энергии](/ru/api-reference/auto-refill/list-energy-rules), — плюс два поля о текущем состоянии адреса:

**current\_energy** `number | null`

Энергия, доступная на адресе в момент создания правила. `null`, если её не удалось прочитать; правило создаётся в любом случае.

**will\_refill\_now** `boolean`

`true`, если `current_energy` уже ниже порога, и значит следующая проверка — обычно в течение минуты — сделает покупку. `false`, если на адресе достаточно энергии или уровень не удалось прочитать.

### Пример

```bash cURL theme={null}
curl -X POST https://api.tronrental.com/v1/energy/auto-refill \
  -H "X-API-Key: your_api_key" \
  -H "Content-Type: application/json" \
  -d '{
    "target_address": "TYourRecipientAddress1234567890abc",
    "threshold_energy": 65000,
    "add_volume": 131000,
    "duration": "1h",
    "label": "Hot wallet"
  }'
```

```python Python theme={null}
import requests

resp = requests.post(
    "https://api.tronrental.com/v1/energy/auto-refill",
    headers={"X-API-Key": "your_api_key"},
    json={
        "target_address": "TYourRecipientAddress1234567890abc",
        "threshold_energy": 65000,
        "add_volume": 131000,
        "duration": "1h",
        "label": "Hot wallet",
    },
)
print(resp.json())
```

```javascript JavaScript theme={null}
const resp = await fetch("https://api.tronrental.com/v1/energy/auto-refill", {
  method: "POST",
  headers: { "X-API-Key": "your_api_key", "Content-Type": "application/json" },
  body: JSON.stringify({
    target_address: "TYourRecipientAddress1234567890abc",
    threshold_energy: 65000,
    add_volume: 131000,
    duration: "1h",
    label: "Hot wallet",
  }),
});
console.log(await resp.json());
```

```json Response theme={null}
{
  "id": 12,
  "target_address": "TYourRecipientAddress1234567890abc",
  "label": "Hot wallet",
  "threshold_energy": 65000,
  "add_volume": 131000,
  "duration": "1h",
  "status": "active",
  "stopped_reason": null,
  "consecutive_failures": 0,
  "last_checked_at": null,
  "last_available_energy": null,
  "last_read_error_at": null,
  "last_refill_at": null,
  "refill_count": 0,
  "total_spent_trx": "0.000000",
  "created_at": "2026-10-14T08:12:05Z",
  "estimated_cost_per_refill_trx": "2.618000",
  "volume_below_threshold": false,
  "current_energy": 0,
  "will_refill_now": true
}
```

### Ошибки

| Статус | Код | Когда |
| - | - | - |
| `400` | `INVALID_ADDRESS` | `target_address` — некорректный адрес TRON |
| `400` | `CONTRACT_ADDRESS_NOT_SUPPORTED` | `target_address` — смарт-контракт |
| `403` | `FORBIDDEN` | У API-ключа нет скоупа `buy_energy` |
| `409` | `AUTOREFILL_ADDRESS_TAKEN` | В вашем аккаунте уже есть правило для энергии на этот адрес — вместо этого измените его |
| `409` | `AUTOREFILL_LIMIT_REACHED` | В вашем аккаунте уже 20 правил для энергии; лимит также передаётся в `error.limit` |
| `422` | — | Поле отсутствует или вне диапазона, либо `duration` — не `"1h"` |
| `429` | `RATE_LIMIT_EXCEEDED` | Больше 10 запросов на создание за минуту |
| `503` | `AUTOREFILL_DISABLED` | Автопополнение энергии временно выключено; правило не создано — повторите позже |

```json theme={null}
{
  "detail": {
    "error": {
      "code": "AUTOREFILL_LIMIT_REACHED",
      "message": "You already hold the maximum of auto-refill rules: 20 for energy and 20 for bandwidth, counted separately. Delete one to add another.",
      "limit": 20
    }
  }
}
```

```json theme={null}
{
  "detail": {
    "error": {
      "code": "AUTOREFILL_ADDRESS_TAKEN",
      "message": "Auto-refill for this address already exists"
    }
  }
}
```

```json theme={null}
{
  "detail": {
    "error": {
      "code": "AUTOREFILL_DISABLED",
      "message": "Auto-refill is temporarily unavailable; please try again later"
    }
  }
}
```

Ошибка валидации приходит в формате фреймворка, где `detail` — массив:

```json theme={null}
{
  "detail": [
    {
      "type": "literal_error",
      "loc": ["body", "duration"],
      "msg": "Input should be '1h'",
      "input": "1d",
      "ctx": {"expected": "'1h'"}
    }
  ]
}
```

> [!TIP]
>
> Повторять создание после таймаута безопасно. Если первый запрос прошёл, повтор вернёт `409 AUTOREFILL_ADDRESS_TAKEN`, а не создаст второе правило; чтобы узнать его `id`, [запросите список правил](/ru/api-reference/auto-refill/list-energy-rules).


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.