POST /apiv2/time/order
Купить определенное количество циклов делегирования Energy для адреса и активировать для него Host Mode.
URL эндпоинта
POST https://netts.io/apiv2/time/orderАутентификация
Передайте ваш API-ключ в теле запроса (api_key) или в заголовке X-API-KEY. IP-адрес запроса должен находиться в белом списке, настроенном для вашего API-ключа.
Тело запроса
json
{
"api_key": "your_api_key",
"address": "TQn9Y2khEsLJW1ChVWFMSMeRDow5KcbLSE",
"cycles": 10
}Параметры запроса
| Parameter | Type | Required | Description |
|---|---|---|---|
| api_key | string | Да | API-ключ (или заголовок X-API-KEY). |
| address | string | Да | Адрес TRON (TRC-20), ^T[1-9A-HJ-NP-Za-km-z]{33}$. |
| cycles | integer | Да | Количество циклов для покупки. Должно быть ≥ 1. |
Тарифы и списание средств
- Заказ циклов не списывает средства авансом. Списание за каждый цикл происходит в момент делегирования Energy: первое делегирование при активации стоит 4 TRX, каждое последующее — 2 или 4 TRX в зависимости от фактического расхода Energy вашим предыдущим переводом (≤65 000 → 2 TRX, более → 4 TRX). Полные правила смотрите в разделе Host Mode → Циклы и тарификация, а информацию о суточном минимуме 8 TRX (действует с 2026-08-29) — в разделе Суточный минимум.
- Значение
amountв ответе является оценочным (cycles × справочная цена), а не окончательной суммой. - Перед принятием заказа проверяется ваш баланс; если средств недостаточно для покрытия заказа, заказ отклоняется (ошибка
-2).
Оформление заказа переводит адрес в состояние active и создает открытый заказ на запрошенное количество циклов. Затем адрес начинает получать делегирования Energy цикл за циклом, и оплата списывается по факту каждого делегирования.
Примеры
cURL
bash
curl -X POST https://netts.io/apiv2/time/order \
-H "Content-Type: application/json" \
-d '{
"api_key": "YOUR_API_KEY_HERE",
"address": "TQn9Y2khEsLJW1ChVWFMSMeRDow5KcbLSE",
"cycles": 10
}'Python
python
import requests
resp = requests.post(
"https://netts.io/apiv2/time/order",
json={
"api_key": "YOUR_API_KEY_HERE",
"address": "TQn9Y2khEsLJW1ChVWFMSMeRDow5KcbLSE",
"cycles": 10,
},
timeout=30,
)
result = resp.json()
if result["code"] == 0:
d = result["data"]
print(f"Order {d['order_id']}: {d['cycles']} cycles for {d['amount']} TRX")
else:
print("Error:", result["msg"])Node.js
javascript
const axios = require('axios');
axios.post('https://netts.io/apiv2/time/order', {
api_key: 'YOUR_API_KEY_HERE',
address: 'TQn9Y2khEsLJW1ChVWFMSMeRDow5KcbLSE',
cycles: 10,
}).then(({ data: result }) => {
if (result.code === 0) {
const d = result.data;
console.log(`Order ${d.order_id}: ${d.cycles} cycles for ${d.amount} TRX`);
} else {
console.error('Error:', result.msg);
}
}).catch(err => console.error('Request failed:', err.response?.data || err.message));Ответ
Успешный ответ (200 OK)
json
{
"code": 0,
"msg": "Cycles purchased and host mode activated successfully",
"data": {
"order_id": 5426,
"address": "TQn9Y2khEsLJW1ChVWFMSMeRDow5KcbLSE",
"cycles": 10,
"amount": 23.5,
"status": "active",
"timestamp": "2026-07-13T05:30:15.123456"
}
}Поля ответа
| Field | Type | Description |
|---|---|---|
| code | integer | 0 = успех, отрицательное значение = ошибка |
| msg | string | Текстовое сообщение |
| data.order_id | integer | Внутренний идентификатор заказа |
| data.address | string | Адрес, для которого были куплены циклы |
| data.cycles | integer | Количество купленных циклов |
| data.amount | number | Оценочная стоимость заказа в TRX (только для справки — списание происходит за каждое делегирование) |
| data.status | string | "active" после успешного заказа |
| data.timestamp | string | Метка времени заказа в формате ISO |
Ответы с ошибкой
| code | msg | Cause |
|---|---|---|
| -1 | Invalid API key or IP not in whitelist | Ошибка аутентификации |
| -1 | Invalid TRC-20 address format | Неверный формат адреса |
| -1 | Cycle count must be 1 or more | cycles < 1 |
| -1 | Database error processing order | Временная ошибка на стороне сервера — повторите попытку |
| -2 | Insufficient balance. Required: X TRX, Available: Y TRX | Баланс меньше расчетной стоимости заказа |
| -6 | Cannot buy cycles: There is an open order with … cycles for this address | Уже существует открытый заказ (включая безлимитный) |
json
{
"code": -2,
"msg": "Insufficient balance. Required: 23.5 TRX, Available: 10.0 TRX"
}Адрес назначения недоступен (403)
Перед принятием заказа адрес проверяется. Если делегирование ресурсов на него запрещено, запрос отклоняется с кодом HTTP 403, и в базу ничего не записывается — заказ не создается, а адрес не добавляется и не включается. Тело ответа имеет структуру detail:
| code | msg | Meaning |
|---|---|---|
| 1006 | Address is blocked. Contact support. | Адрес заблокирован |
| 1007 | Energy rental to smart contracts is not supported. | Адрес является смарт-контрактом (адреса кошельков GasFree также являются смарт-контрактами) |
| 1010 | Resource delegation to this address is not available. | Делегирование ресурсов на этот адрес недоступно |
| 1011 | This address is frozen and cannot receive resource delegation. | Адрес заморожен |
json
{ "detail": { "code": 1007, "msg": "Energy rental to smart contracts is not supported." } }Связанные эндпоинты
- POST /apiv2/time/add — предварительно добавить адрес
- POST /apiv2/time/infinitystart — безлимитные циклы вместо фиксированного количества
- POST /apiv2/time/status — проверить остаток циклов
- POST /apiv2/time/stop — остановить и закрыть заказ
Примечания
- Если адрес еще не находится в Host Mode, создание заказа также регистрирует и активирует его.
- Для одного адреса разрешен только один открытый заказ одновременно.
- Купленные циклы расходуются по одному на каждое делегирование; когда они заканчиваются, обслуживание адреса автоматически останавливается.