# FeeSaver API (v1)

> Source: https://feesaver.com/en/api-docs . This file is the full API reference in one Markdown document; paste it into an AI assistant as context.

The FeeSaver API: buying energy and bandwidth, Smart Mode and auto orders. All methods are `GET` requests that return JSON.

- **Base URL:** `https://api.feesaver.com`
- **Protocol:** HTTPS only, responses are JSON
- **Version:** v1
- **Time zone:** all timestamps are GMT+0
- **Errors:** HTTP 403 with the `err` key in the JSON response (exceptions are noted under the methods)

## Authentication

The API key is passed as the `token` query parameter with every request. You can get the key in the account settings of [t.me/FeeSaver_bot](https://t.me/FeeSaver_bot). Treat the key as confidential and do not share it with third parties.

> **Important:** **IP whitelist.** To obtain API request permissions, send your server IP address to support at [t.me/feesaver_support](https://t.me/feesaver_support). If your key has been compromised, contact support immediately.

## Errors

Errors are returned with HTTP status 403 and the `err` key in the JSON response (a few methods differ: see their notes). Some error texts are in Russian. Example:

```json
{ "message": "Check Balance", "ip": "100.10.150.30", "err": "No User by token" }
```

The error texts of each method are listed under it.

## Endpoints index

**Common**

- `GET /refill` - Top up balance
- `GET /balance` - Get balance
- `GET /precountCommission` - Estimate transfer cost
- `GET /activate` - Activate address
- `GET /prices` - Get prices

**Buy once energy**

- `GET /precountOrder` - Estimate order
- `GET /buyEnergy` - Buy energy
- `GET /status` - Order status

**Combinate order**

- `GET /combinateOrder` - Create combined order
- `GET /combinateOrder/status` - Combined order status

**Smart Mode**

- `GET /smart` - List addresses
- `GET /smart/add` - Add address
- `GET /smart/status` - Get address status
- `GET /smart/status/change` - Start / stop address
- `GET /smart/remove` - Remove address

**Auto orders**

- `GET /auto/orders` - List auto orders
- `GET /auto/refill/add` - Add auto-refill
- `GET /auto/renewal/add` - Add energy auto-renewal
- `GET /auto/bw/renewal/add` - Add bandwidth auto-renewal
- `GET /auto/status/change` - Start / stop auto order
- `GET /auto/remove` - Remove auto order

**Bandwidth**

- `GET /buyBw` - Buy bandwidth

## Common

### Top up balance

`GET https://api.feesaver.com/refill`

Account balance top-up: returns the deposit address and the balance.

**Query parameters**

| Name | Description |
| --- | --- |
| `token` | Your API key |

**Response fields**

| Field | Description |
| --- | --- |
| `userName` | Telegram username |
| `full_name` | Name |
| `balance` | Account balance in TRX |
| `address` | Deposit address |
| `message` | Request type (`Refill Balance`) |
| `ip` | IP address the request was made from |

**Request**

```bash
curl -G "https://api.feesaver.com/refill" \
  --data-urlencode "token=YOUR_API_KEY"
```

**Response: Success**

```json
{
  "userName": "example_user",
  "full_name": "Example User",
  "balance": 786.55,
  "address": "TD5h9FBtWhqjSoYWKaPe3QDUwf1234567",
  "message": "Refill Balance",
  "ip": "100.10.150.30"
}
```

**Response: error, Invalid token**

```json
{
  "message": "Refill Balance",
  "ip": "100.10.150.30",
  "err": "No User by token :YOUR_API_KEY"
}
```

### Get balance

`GET https://api.feesaver.com/balance`

Get the current account balance.

**Query parameters**

| Name | Description |
| --- | --- |
| `token` | Your API key |

**Response fields**

| Field | Description |
| --- | --- |
| `userName` | Telegram username |
| `full_name` | Name |
| `balance` | Account balance in TRX |
| `message` | Request type (`Check Balance`) |
| `ip` | IP address the request was made from |

**Request**

```bash
curl -G "https://api.feesaver.com/balance" \
  --data-urlencode "token=YOUR_API_KEY"
```

**Response: Success**

```json
{
  "userName": "example_user",
  "full_name": "Example User",
  "balance": 17.67,
  "message": "Check Balance",
  "ip": "100.10.150.30"
}
```

**Response: error, Invalid token**

```json
{
  "message": "Check Balance",
  "ip": "100.10.150.30",
  "err": "No User by token :YOUR_API_KEY"
}
```

### Estimate transfer cost

`GET https://api.feesaver.com/precountCommission`

Make a preliminary calculation of the energy order amount for performing a transaction to the address

**Query parameters**

| Name | Description |
| --- | --- |
| `token` | Your API key |
| `target` | Address |

**Response fields**

| Field | Description |
| --- | --- |
| `target` | Address |
| `summa` | Total order amount in TRX |
| `message` | Request type (`Precount Commission`) |
| `ip` | IP address the request was made from |

**Request**

```bash
curl -G "https://api.feesaver.com/precountCommission" \
  --data-urlencode "token=YOUR_API_KEY" \
  --data-urlencode "target=TT2ebtVjf7r9y75Dkbjqu4dfgdfD34P8P"
```

**Response: Success**

```json
{
  "target": "TT2ebtVjf7r9y75Dkbjqu4dfgdfD34P8P",
  "summa": 3.01,
  "message": "Precount Commission",
  "ip": "100.10.150.30"
}
```

**Response: error, Invalid token**

```json
{
  "message": "Precount Commission",
  "ip": "100.10.150.30",
  "err": "No User by token :YOUR_API_KEY"
}
```

**Response: error, Invalid address**

```json
{
  "message": "Precount Commission",
  "ip": "100.10.150.30",
  "err": "UnCorrect address"
}
```

### Activate address

`GET https://api.feesaver.com/activate`

Activate address

The success response is taken from the published documentation: it was not reproduced in testing because the test address was already activated.

**Query parameters**

| Name | Description |
| --- | --- |
| `token` | Your API key |
| `address` | Address |

**Response fields**

| Field | Description |
| --- | --- |
| `address` | Address |
| `price` | Activation price |
| `balance` | Remaining balance |
| `message` | Request type (`Activate Address`) |
| `ip` | IP address the request was made from |

**Request**

```bash
curl -G "https://api.feesaver.com/activate" \
  --data-urlencode "token=YOUR_API_KEY" \
  --data-urlencode "address=TT2ebtVjf7r9y75Dkbjqu4dfgdfD34P8P"
```

**Response: Success**

```json
{
    "address": "TKzYMXrddJpZcuqsbVqtsdfsdf38y4a",
    "price": 2,
    "balance": 174.30,
    "message": "Activate Address",
    "ip": "89.234.234.234"
}
```

**Response: error, Invalid token**

```json
{
  "message": "Activate Address",
  "ip": "100.10.150.30",
  "err": "No User by token :YOUR_API_KEY"
}
```

**Response: error, Already activated**

```json
{
  "message": "Activate Address",
  "ip": "100.10.150.30",
  "err": "Address is already activated"
}
```

**Response: error, Invalid address format**

```json
{
  "message": "Activate Address",
  "ip": "100.10.150.30",
  "err": "Invalid TRON address format. Address must start with 'T' and be 34 characters long."
}
```

### Get prices

`GET https://api.feesaver.com/prices`

Get client prices

**Query parameters**

| Name | Description |
| --- | --- |
| `token` | Your API key |

**Response fields**

| Field | Description |
| --- | --- |
| `energy, bandwidth` | Prices by duration (`15m`, `1h`, `1d`), each with `price`, `volume`, `unit` |
| `smartMode` | Smart Mode price: `price`, `volume`, `unit` |
| `activationPrice` | Address activation price |
| `message` | Request type (`Get Prices`) |
| `ip` | IP address the request was made from |

**Request**

```bash
curl -G "https://api.feesaver.com/prices" \
  --data-urlencode "token=YOUR_API_KEY"
```

**Response: Success**

```json
{
  "energy": {
    "15m": {
      "price": 1.5,
      "volume": 65000,
      "unit": "TRX"
    },
    "1h": {
      "price": 1.5,
      "volume": 65000,
      "unit": "TRX"
    },
    "1d": {
      "price": 5.2,
      "volume": 65000,
      "unit": "TRX"
    }
  },
  "bandwidth": {
    "15m": {
      "price": 0.4,
      "volume": 1000,
      "unit": "TRX"
    },
    "1h": {
      "price": 0.4,
      "volume": 1000,
      "unit": "TRX"
    },
    "1d": {
      "price": 0.63,
      "volume": 1000,
      "unit": "TRX"
    }
  },
  "smartMode": {
    "price": 3.21,
    "volume": 131000,
    "unit": "TRX"
  },
  "activationPrice": 1.2,
  "message": "Get Prices",
  "ip": "100.10.150.30"
}
```

## Buy once energy

### Estimate order

`GET https://api.feesaver.com/precountOrder`

Make a preliminary calculation of the order.

**Query parameters**

| Name | Description |
| --- | --- |
| `token` | Your API key |
| `days` | Duration: `15m`, `1h`, `1d` |
| `volume` | Energy volume (minimum 32 000) |

**Response fields**

| Field | Description |
| --- | --- |
| `duration` | Rental duration |
| `volume` | Energy volume |
| `price` | Price per energy unit in SUN |
| `summa` | Total amount in TRX |
| `message` | Request type (`Precount Order`) |
| `ip` | IP address the request was made from |

**Request**

```bash
curl -G "https://api.feesaver.com/precountOrder" \
  --data-urlencode "token=YOUR_API_KEY" \
  --data-urlencode "days=15m" \
  --data-urlencode "volume=65000"
```

**Response: Success**

```json
{
  "duration": "1h",
  "volume": 65000,
  "price": 23,
  "summa": 1.5,
  "message": "Precount Order",
  "ip": "100.10.150.30"
}
```

**Response: error, Invalid token**

```json
{
  "message": "Precount Order",
  "ip": "100.10.150.30",
  "err": "No User by token :YOUR_API_KEY"
}
```

**Response: error, Invalid duration (this text is returned in Russian)**

```json
{
  "message": "Precount Order",
  "ip": "100.10.150.30",
  "err": "➖ Возможные варианты: 15m, 1h, 1d"
}
```

**Response: error, Volume below the minimum**

```json
{
  "message": "Precount Order",
  "ip": "100.10.150.30",
  "err": "Minimal volume 32000 energy"
}
```

### Buy energy

`GET https://api.feesaver.com/buyEnergy`

Buy Energy

If the address is not activated, it is activated automatically and the activation fee is deducted from the balance (see `activationPrice` in Get prices). Activation is performed via a smart contract, so the address does not inherit AML tagging.

**Order statuses:**

- **Filled** – energy has been fully delegated.
- **Created** – the order has been created, but the energy has not been delegated. The order is in the queue.
- **Reclaimed** – the energy rental period has expired, and our service has returned the energy back.

**Query parameters**

| Name | Description |
| --- | --- |
| `token` | Your API key |
| `days` | Duration: `15m`, `1h`, `1d` |
| `volume` | Energy volume (minimum 32 000) |
| `target` | Recipient address |

**Response fields**

| Field | Description |
| --- | --- |
| `days` | Rental duration |
| `volume` | Energy volume |
| `price` | Price per energy unit in SUN |
| `summa` | Total payment for the order in TRX |
| `target` | Recipient address |
| `balance` | Remaining balance |
| `status` | Order status: `Filled`, `Created`, `Reclaimed` |
| `order_id` | Order identifier |
| `activationPrice` | Activation fee, present when the address was activated by this order |
| `txid` | Transaction hash, can be null if the energy was not delegated |
| `message` | Request type (`Buying Energy`) |
| `ip` | IP address the request was made from |

**Request**

```bash
curl -G "https://api.feesaver.com/buyEnergy" \
  --data-urlencode "token=YOUR_API_KEY" \
  --data-urlencode "days=1h" \
  --data-urlencode "volume=65000" \
  --data-urlencode "target=TT2ebtVjf7r9y75Dkbjqu4dfgdfD34P8P"
```

**Response: Success**

```json
{
  "days": "15m",
  "volume": 32000,
  "price": 23,
  "summa": 0.74,
  "target": "TT2ebtVjf7r9y75Dkbjqu4dfgdfD34P8P",
  "balance": 94.25,
  "status": "Filled",
  "order_id": 5345345343,
  "txid": "dc9ec5e5bc395320d298ef385e1200e22d15b2ee44ff97385dfde34123455273",
  "message": "Buying Energy",
  "ip": "100.10.150.30"
}
```

**Response: error, Invalid token**

```json
{
  "message": "Buying Energy",
  "ip": "100.10.150.30",
  "err": "No User by token :YOUR_API_KEY"
}
```

**Response: error, Invalid duration (this text is returned in Russian)**

```json
{
  "message": "Buying Energy",
  "ip": "100.10.150.30",
  "err": "➖ Возможные варианты: 15m, 1h, 1d"
}
```

**Response: error, Volume below the minimum**

```json
{
  "message": "Buying Energy",
  "ip": "100.10.150.30",
  "err": "Minimal volume 32000 energy"
}
```

**Response: error, Invalid address**

```json
{
  "message": "Buying Energy",
  "ip": "100.10.150.30",
  "err": "UnCorrect address"
}
```

### Order status

`GET https://api.feesaver.com/status`

Check Order Status

An unknown or foreign `order_id` returns HTTP 200 with the `err` key (`Not your order_id`).

**Query parameters**

| Name | Description |
| --- | --- |
| `token` | Your API Key |
| `order_id` | Id order |

**Response fields**

| Field | Description |
| --- | --- |
| `duration` | Rental duration |
| `volume` | Energy volume |
| `summa` | Order amount in TRX |
| `target` | Recipient address |
| `order_id` | Order identifier |
| `txid` | Transaction hash |
| `status` | Order status: `Filled`, `Created`, `Reclaimed` |
| `message` | Request type (`Status order`) |
| `ip` | IP address the request was made from |

**Request**

```bash
curl -G "https://api.feesaver.com/status" \
  --data-urlencode "token=YOUR_API_KEY" \
  --data-urlencode "order_id=6471634"
```

**Response: Success**

```json
{
  "duration": "15m",
  "volume": 32000,
  "summa": 0.74,
  "target": "TT2ebtVjf7r9y75Dkbjqu4dfgdfD34P8P",
  "order_id": 5345345343,
  "txid": "dc9ec5e5bc395320d298ef385e1200e22d15b2ee44ff97385dfde34123455273",
  "status": "Filled",
  "message": "Status order",
  "ip": "100.10.150.30"
}
```

**Response: error, Invalid token**

```json
{
  "message": "Status order",
  "ip": "100.10.150.30",
  "err": "No User by token :YOUR_API_KEY"
}
```

**Response: error, Unknown order_id (HTTP 200)**

```json
{
  "message": "Status order",
  "ip": "100.10.150.30",
  "err": "Not your order_id"
}
```

## Combinate order

### Create combined order

`GET https://api.feesaver.com/combinateOrder`

**Combined Order**

Orders for purchasing more than 1 million energy units must be placed as a combined order. After creating a combined order, the system automatically generates a group of energy purchase orders, each split into chunks of no more than 1 million units.

**Examples:**

- **3,250,000 energy units** – the system will create 3 orders of 1 million each and 1 order of 250,000.
- **5,000,000 energy units** – the system will create 5 orders of 1 million each.
- **2,001,000 energy units** – the system will create 2 orders of 1 million each.

**Order statuses:**

- **Created** – the combined order has been created
- **Processing** – the combined order is being processed
- **Completed** – the combined order has been completed

**Query parameters**

| Name | Description |
| --- | --- |
| `token` | Your API key |
| `days` | Duration: `15m`, `1h`, `1d` |
| `volume` | Energy volume (minimum 1 000 000) |
| `target` | Recipient address |

**Response fields**

| Field | Description |
| --- | --- |
| `days` | Rental duration |
| `volume` | Energy volume |
| `price` | Price per energy unit in SUN |
| `summa` | Total amount in TRX |
| `target` | Recipient address |
| `balance` | Remaining balance |
| `status` | Order status: `Created`, `Processing`, `Completed` |
| `combinate_order_id` | Combined order identifier |
| `message` | Request type (`Combinate Order`) |
| `ip` | IP address the request was made from |

**Request**

```bash
curl -G "https://api.feesaver.com/combinateOrder" \
  --data-urlencode "token=YOUR_API_KEY" \
  --data-urlencode "days=1h" \
  --data-urlencode "volume=1250000" \
  --data-urlencode "target=TLsdfsdfsdk8uL6asXdCEjmdBL345SDsdf"
```

**Response: Success**

```json
{
  "days": "1h",
  "volume": 1250000,
  "price": 23,
  "summa": 28.75,
  "target": "TT2ebtVjf7r9y75Dkbjqu4dfgdfD34P8P",
  "balance": 94.25,
  "status": "Created",
  "combinate_order_id": 71,
  "message": "Combinate Order",
  "ip": "100.10.150.30"
}
```

**Response: error, Invalid token**

```json
{
  "message": "Combinate Order",
  "ip": "100.10.150.30",
  "err": "No User by token :YOUR_API_KEY"
}
```

**Response: error, Invalid duration (this text is returned in Russian)**

```json
{
  "message": "Combinate Order",
  "ip": "100.10.150.30",
  "err": "➖ Возможные варианты: 15m, 1h, 1d"
}
```

**Response: error, Volume below the minimum**

```json
{
  "message": "Combinate Order",
  "ip": "100.10.150.30",
  "err": "Minimal volume 1000000 combinate order"
}
```

**Response: error, Invalid address**

```json
{
  "message": "Combinate Order",
  "ip": "100.10.150.30",
  "err": "UnCorrect address"
}
```

### Combined order status

`GET https://api.feesaver.com/combinateOrder/status`

Check the status of a combined order.

`order.items` contains the single orders the combined order was split into. A 1 250 000 order produced two items: 1 000 000 and 250 000.

**Query parameters**

| Name | Description |
| --- | --- |
| `token` | Your API key |
| `order_id` | Id order |

**Response fields**

| Field | Description |
| --- | --- |
| `order` | Object: `id`, `duration`, `volume`, `summary` (amount in TRX), `target`, `status`, `items` |
| `order.items` | Array of single orders: `id`, `volume`, `txId`, `status` |
| `message` | Request type (`Status combinate order`) |
| `ip` | IP address the request was made from |

**Request**

```bash
curl -G "https://api.feesaver.com/combinateOrder/status" \
  --data-urlencode "token=YOUR_API_KEY" \
  --data-urlencode "order_id=7777"
```

**Response: Success**

```json
{
  "order": {
    "id": 71,
    "duration": "1h",
    "volume": 1250000,
    "summary": 28.75,
    "target": "TT2ebtVjf7r9y75Dkbjqu4dfgdfD34P8P",
    "status": "Created",
    "items": [
      {
        "id": 3791377,
        "volume": 1000000,
        "txId": "dc9ec5e5bc395320d298ef385e1200e22d15b2ee44ff97385dfde34123455273",
        "status": "Filled"
      },
      {
        "id": 3791378,
        "volume": 250000,
        "txId": "dc9ec5e5bc395320d298ef385e1200e22d15b2ee44ff97385dfde34123455273",
        "status": "Filled"
      }
    ]
  },
  "message": "Status combinate order",
  "ip": "100.10.150.30"
}
```

**Response: error, Invalid token**

```json
{
  "message": "Status combinate order",
  "ip": "100.10.150.30",
  "err": "No User by token :YOUR_API_KEY"
}
```

**Response: error, Unknown order_id (HTTP 200)**

```json
{
  "message": "Status combinate order",
  "ip": "100.10.150.30",
  "err": "Not your order_id"
}
```

## Smart Mode

### List addresses

`GET https://api.feesaver.com/smart`

Smart Mode addresses of the account.

**Query parameters**

| Name | Description |
| --- | --- |
| `token` | Your API key |

**Response fields**

| Field | Description |
| --- | --- |
| `orders` | Array: `createdAt`, `address`, `status` (`Started` or `Stopped`) |
| `message` | Request type (`GetSmartModeOrders`) |
| `ip` | IP address the request was made from |

**Request**

```bash
curl -G "https://api.feesaver.com/smart" \
  --data-urlencode "token=YOUR_API_KEY"
```

**Response: Success**

```json
{
  "orders": [
    {
      "createdAt": "2026-01-04T08:26:27.025135",
      "address": "TT2ebtVjf7r9y75Dkbjqu4dfgdfD34P8P",
      "status": "Stopped"
    }
  ],
  "message": "GetSmartModeOrders",
  "ip": "100.10.150.30"
}
```

### Add address

`GET https://api.feesaver.com/smart/add`

Add an address to smart mode. **IMPORTANT!** If the address is already added to smart mode and not removed, or is in auto orders, you will get a 403 error.

> **Important:** If the address is already added to smart mode and not removed, or is in auto orders, you will get an error.

**Query parameters**

| Name | Description |
| --- | --- |
| `token` | Your API key |
| `target` | Address |

**Response fields**

| Field | Description |
| --- | --- |
| `target` | Address |
| `status` | Smart Mode status |
| `message` | Request type (`AddSmartModeAddress`) |
| `ip` | IP address the request was made from |

**Request**

```bash
curl -G "https://api.feesaver.com/smart/add" \
  --data-urlencode "token=YOUR_API_KEY" \
  --data-urlencode "target=TT2ebtVjf7r9y75Dkbjqu4dfgdfD34P8P"
```

**Response: Success**

```json
{
  "target": "TT2ebtVjf7r9y75Dkbjqu4dfgdfD34P8P",
  "status": "Started",
  "message": "AddSmartModeAddress",
  "ip": "100.10.150.30"
}
```

**Response: error, Invalid token**

```json
{
  "message": "AddSmartModeAddress",
  "ip": "100.10.150.30",
  "err": "No User by token :YOUR_API_KEY"
}
```

**Response: error, Address already added**

```json
{
  "message": "AddSmartModeAddress",
  "ip": "100.10.150.30",
  "err": "AddressSmartModeAdded"
}
```

### Get address status

`GET https://api.feesaver.com/smart/status`

Get the smart mode status of an address

> **Important:** If the address has not been added, `status` is `"NULL"`.

**Query parameters**

| Name | Description |
| --- | --- |
| `token` | Your API key |
| `target` | Address |

**Response fields**

| Field | Description |
| --- | --- |
| `target` | Address |
| `status` | Smart Mode status |
| `message` | Request type (`SmartModeStatus`) |
| `ip` | IP address the request was made from |

**Request**

```bash
curl -G "https://api.feesaver.com/smart/status" \
  --data-urlencode "token=YOUR_API_KEY" \
  --data-urlencode "target=TT2ebtVjf7r9y75Dkbjqu4dfgdfD34P8P"
```

**Response: Success**

```json
{
  "target": "TT2ebtVjf7r9y75Dkbjqu4dfgdfD34P8P",
  "status": "Started",
  "message": "SmartModeStatus",
  "ip": "100.10.150.30"
}
```

**Response: error, Invalid token**

```json
{
  "message": "SmartModeStatus",
  "ip": "100.10.150.30",
  "err": "No User by token :YOUR_API_KEY"
}
```

### Start / stop address

`GET https://api.feesaver.com/smart/status/change`

Toggles the Smart Mode status of an address: `Started` becomes `Stopped` and back.

For an address that is not in Smart Mode the API returns HTTP 500 with `{"message": "Address not found"}` (no `err` key).

**Query parameters**

| Name | Description |
| --- | --- |
| `token` | Your API key |
| `target` | Address |

**Response fields**

| Field | Description |
| --- | --- |
| `target` | Address |
| `status` | Smart Mode status |
| `message` | Request type (`ChangeSmartModeStatus`) |
| `ip` | IP address the request was made from |

**Request**

```bash
curl -G "https://api.feesaver.com/smart/status/change" \
  --data-urlencode "token=YOUR_API_KEY" \
  --data-urlencode "target=TT2ebtVjf7r9y75Dkbjqu4dfgdfD34P8P"
```

**Response: Stopped**

```json
{
  "target": "TT2ebtVjf7r9y75Dkbjqu4dfgdfD34P8P",
  "status": "Stopped",
  "message": "ChangeSmartModeStatus",
  "ip": "100.10.150.30"
}
```

**Response: Started**

```json
{
  "target": "TT2ebtVjf7r9y75Dkbjqu4dfgdfD34P8P",
  "status": "Started",
  "message": "ChangeSmartModeStatus",
  "ip": "100.10.150.30"
}
```

**Response: error, Invalid address**

```json
{
  "message": "ChangeSmartModeStatus",
  "ip": "100.10.150.30",
  "err": "UnCorrect address"
}
```

### Remove address

`GET https://api.feesaver.com/smart/remove`

Delete an address from smart mode

**Query parameters**

| Name | Description |
| --- | --- |
| `token` | Your API key |
| `target` | Address |

**Response fields**

| Field | Description |
| --- | --- |
| `target` | Address |
| `status` | Smart Mode status |
| `message` | Request type (`RemoveSmartModeAddress`) |
| `ip` | IP address the request was made from |

**Request**

```bash
curl -G "https://api.feesaver.com/smart/remove" \
  --data-urlencode "token=YOUR_API_KEY" \
  --data-urlencode "target=TT2ebtVjf7r9y75Dkbjqu4dfgdfD34P8P"
```

**Response: Success**

```json
{
  "target": "TT2ebtVjf7r9y75Dkbjqu4dfgdfD34P8P",
  "status": "Removed",
  "message": "RemoveSmartModeAddress",
  "ip": "100.10.150.30"
}
```

**Response: error, Invalid token**

```json
{
  "message": "RemoveSmartModeAddress",
  "ip": "100.10.150.30",
  "err": "No User by token :YOUR_API_KEY"
}
```

**Response: error, Address is not in Smart Mode**

```json
{
  "message": "RemoveSmartModeAddress",
  "ip": "100.10.150.30",
  "err": "ErrorAddAddressSmartMode"
}
```

## Auto orders

### List auto orders

`GET https://api.feesaver.com/auto/orders`

Get user auto orders (where NOT removed)

**Query parameters**

| Name | Description |
| --- | --- |
| `token` | Your API key |

**Response fields**

| Field | Description |
| --- | --- |
| `orders` | Array of active auto orders: `orderId`, `target`, `minimal` (auto-refill only), `volume`, `duration`, `type` (`Refill` or `Renewal`), `status`, `createdAt`, `renewalAt`, `resourceType` (`ENERGY` or `BANDWIDTH`) |
| `message` | Request type (`GetAutoOrders`) |
| `ip` | IP address the request was made from |

**Request**

```bash
curl -G "https://api.feesaver.com/auto/orders" \
  --data-urlencode "token=YOUR_API_KEY"
```

**Response: Success**

```json
{
  "orders": [
    {
      "orderId": 593,
      "target": "TT2ebtVjf7r9y75Dkbjqu4dfgdfD34P8P",
      "minimal": 65000,
      "volume": 65000,
      "duration": "1h",
      "type": "Refill",
      "status": "Started",
      "createdAt": "2026-10-28T10:38:22.455194",
      "renewalAt": "2026-10-28T11:38:22.455161",
      "resourceType": "ENERGY"
    }
  ],
  "message": "GetAutoOrders",
  "ip": "100.10.150.30"
}
```

**Response: error, Invalid token**

```json
{
  "message": "GetAutoOrders",
  "ip": "100.10.150.30",
  "err": "No User by token :YOUR_API_KEY"
}
```

### Add auto-refill

`GET https://api.feesaver.com/auto/refill/add`

Add an address to auto-refill.

> **Important:** If the address is already in smart mode or in auto orders, you will get an error.

**Query parameters**

| Name | Description |
| --- | --- |
| `token` | Your API key |
| `target` | Address |
| `days` | Duration (tested: `1h`) |
| `minimal` | Minimum threshold for adding energy |
| `volume` | Energy addition amount (minimum 65 000) |

**Response fields**

| Field | Description |
| --- | --- |
| `target` | Address |
| `status` | Order status |
| `id` | Auto order id (use it as `orderId` in start/stop and remove) |
| `message` | Request type (`AddAutoRefillAddress`) |
| `ip` | IP address the request was made from |

**Request**

```bash
curl -G "https://api.feesaver.com/auto/refill/add" \
  --data-urlencode "token=YOUR_API_KEY" \
  --data-urlencode "target=TT2ebtVjf7r9y75Dkbjqu4dfgdfD34P8P" \
  --data-urlencode "days=1h" \
  --data-urlencode "volume=65000" \
  --data-urlencode "minimal=65000"
```

**Response: Success**

```json
{
  "target": "TT2ebtVjf7r9y75Dkbjqu4dfgdfD34P8P",
  "status": "Started",
  "id": 593,
  "message": "AddAutoRefillAddress",
  "ip": "100.10.150.30"
}
```

**Response: error, Invalid token**

```json
{
  "message": "AddAutoRefillAddress",
  "ip": "100.10.150.30",
  "err": "No User by token :YOUR_API_KEY"
}
```

**Response: error, Address already has an auto order**

```json
{
  "message": "AddAutoRefillAddress",
  "ip": "100.10.150.30",
  "err": "AddressAutoOrderAdded"
}
```

**Response: error, Invalid address**

```json
{
  "message": "AddAutoRefillAddress",
  "ip": "100.10.150.30",
  "err": "UnCorrect address"
}
```

**Response: error, Volume below the minimum**

```json
{
  "message": "AddAutoRefillAddress",
  "ip": "100.10.150.30",
  "err": "Minimal volume 65 000 energy"
}
```

### Add energy auto-renewal

`GET https://api.feesaver.com/auto/renewal/add`

Add an address to the auto-renewal mode.

A 1-day delegation order is created and renewed each day for the chosen volume.

> **Important:** If the address is already in smart mode or in auto orders, you will get an error.

**Query parameters**

| Name | Description |
| --- | --- |
| `token` | Your API key |
| `target` | Address |
| `volume` | Energy volume (minimum 32 000) |

**Response fields**

| Field | Description |
| --- | --- |
| `target` | Address |
| `status` | Order status |
| `id` | Auto order id (use it as `orderId` in start/stop and remove) |
| `message` | Request type (`AddAutoRenewalAddress`) |
| `ip` | IP address the request was made from |

**Request**

```bash
curl -G "https://api.feesaver.com/auto/renewal/add" \
  --data-urlencode "token=YOUR_API_KEY" \
  --data-urlencode "target=TT2ebtVjf7r9y75Dkbjqu4dfgdfD34P8P" \
  --data-urlencode "volume=65000"
```

**Response: Success**

```json
{
  "target": "TT2ebtVjf7r9y75Dkbjqu4dfgdfD34P8P",
  "status": "Started",
  "id": 594,
  "message": "AddAutoRenewalAddress",
  "ip": "100.10.150.30"
}
```

**Response: error, Invalid token**

```json
{
  "message": "AddAutoRenewalAddress",
  "ip": "100.10.150.30",
  "err": "No User by token :YOUR_API_KEY"
}
```

**Response: error, Address already has an auto order**

```json
{
  "message": "AddAutoRenewalAddress",
  "ip": "100.10.150.30",
  "err": "AddressAutoOrderAdded"
}
```

### Add bandwidth auto-renewal

`GET https://api.feesaver.com/auto/bw/renewal/add`

Adds an address to bandwidth auto-renewal.

**Query parameters**

| Name | Description |
| --- | --- |
| `token` | Your API key |
| `target` | Address |
| `volume` | Bandwidth volume (minimum 1 000) |

**Response fields**

| Field | Description |
| --- | --- |
| `target` | Address |
| `status` | Order status |
| `id` | Auto order id (use it as `orderId` in start/stop and remove) |
| `message` | Request type (`AddAutoBandwidthRenewalAddress`) |
| `ip` | IP address the request was made from |

**Request**

```bash
curl -G "https://api.feesaver.com/auto/bw/renewal/add" \
  --data-urlencode "token=YOUR_API_KEY" \
  --data-urlencode "target=TT2ebtVjf7r9y75Dkbjqu4dfgdfD34P8P" \
  --data-urlencode "volume=65000"
```

**Response: Success**

```json
{
  "target": "TT2ebtVjf7r9y75Dkbjqu4dfgdfD34P8P",
  "status": "Started",
  "id": 595,
  "message": "AddAutoBandwidthRenewalAddress",
  "ip": "100.10.150.30"
}
```

**Response: error, Address already has an auto order**

```json
{
  "message": "AddAutoBandwidthRenewalAddress",
  "ip": "100.10.150.30",
  "err": "AddressAutoOrderAdded"
}
```

**Response: error, Invalid address**

```json
{
  "message": "AddAutoBandwidthRenewalAddress",
  "ip": "100.10.150.30",
  "err": "UnCorrect address"
}
```

**Response: error, Volume below the minimum**

```json
{
  "message": "AddAutoBandwidthRenewalAddress",
  "ip": "100.10.150.30",
  "err": "Minimal volume 1000 bandwidth"
}
```

### Start / stop auto order

`GET https://api.feesaver.com/auto/status/change`

Toggles an auto order: `Started` becomes `Stop` and back.

**Query parameters**

| Name | Description |
| --- | --- |
| `token` | Your API key |
| `orderId` | Id order |

**Response fields**

| Field | Description |
| --- | --- |
| `status` | `Stop` or `Started` |
| `id` | Auto order id |
| `message` | Request type (`ChangeAutoModeStatus`) |
| `ip` | IP address the request was made from |

**Request**

```bash
curl -G "https://api.feesaver.com/auto/status/change" \
  --data-urlencode "token=YOUR_API_KEY" \
  --data-urlencode "orderId=12345"
```

**Response: Stop**

```json
{
  "status": "Stop",
  "id": 593,
  "message": "ChangeAutoModeStatus",
  "ip": "100.10.150.30"
}
```

**Response: Started**

```json
{
  "status": "Started",
  "id": 593,
  "message": "ChangeAutoModeStatus",
  "ip": "100.10.150.30"
}
```

**Response: error, Order not found**

```json
{
  "message": "ChangeAutoModeStatus",
  "ip": "100.10.150.30",
  "err": "NotFoundOrder"
}
```

### Remove auto order

`GET https://api.feesaver.com/auto/remove`

Delete auto-order

**Query parameters**

| Name | Description |
| --- | --- |
| `token` | Your API key |
| `orderId` | Id order |

**Response fields**

| Field | Description |
| --- | --- |
| `status` | `Removed` |
| `id` | Auto order id |
| `message` | Request type (`AutoModeAddressRemove`) |
| `ip` | IP address the request was made from |

**Request**

```bash
curl -G "https://api.feesaver.com/auto/remove" \
  --data-urlencode "token=YOUR_API_KEY" \
  --data-urlencode "orderId=12345"
```

**Response: Success**

```json
{
  "status": "Removed",
  "id": 593,
  "message": "AutoModeAddressRemove",
  "ip": "100.10.150.30"
}
```

**Response: error, Order not found**

```json
{
  "message": "AutoModeAddressRemove",
  "ip": "100.10.150.30",
  "err": "NotFoundOrder"
}
```

## Bandwidth

### Buy bandwidth

`GET https://api.feesaver.com/buyBw`

Buy Bandwidth

If the address is not activated, it is activated automatically and the activation fee is deducted from the balance (see `activationPrice` in Get prices). Activation is performed via a smart contract, so the address does not inherit AML tagging.

**Order statuses:**

- **Filled** – bandwidth has been fully delegated.
- **Created** – the order has been created, but the bandwidth has not been delegated. The order is in the queue.
- **Reclaimed** – the bandwidth rental period has expired, and our service has returned the bandwidth back.

**Query parameters**

| Name | Description |
| --- | --- |
| `token` | Your API key |
| `days` | Duration: `15m`, `1h`, `1d` |
| `volume` | Bandwidth volume (minimum 1 000) |
| `target` | Recipient address |

**Response fields**

| Field | Description |
| --- | --- |
| `days` | Rental duration |
| `volume` | Bandwidth volume |
| `price` | Price in TRX per 1 000 bandwidth |
| `summa` | Total payment for the order in TRX |
| `target` | Recipient address |
| `balance` | Remaining balance |
| `status` | Order status: `Filled`, `Created`, `Reclaimed` |
| `order_id` | Order identifier |
| `activationPrice` | Activation fee, present when the address was activated by this order |
| `txid` | Transaction hash, can be null if the bandwidth was not delegated |
| `message` | Request type (`Buying Bandwidth`) |
| `ip` | IP address the request was made from |

**Request**

```bash
curl -G "https://api.feesaver.com/buyBw" \
  --data-urlencode "token=YOUR_API_KEY" \
  --data-urlencode "days=15m" \
  --data-urlencode "volume=1000" \
  --data-urlencode "target=TT2ebtVjf7r9y75Dkbjqu4dfgdfD34P8P"
```

**Response: Success**

```json
{
  "days": "15m",
  "volume": 1000,
  "price": 0.4,
  "summa": 0.4,
  "target": "TT2ebtVjf7r9y75Dkbjqu4dfgdfD34P8P",
  "balance": 94.25,
  "status": "Filled",
  "order_id": 5345345344,
  "txid": "dc9ec5e5bc395320d298ef385e1200e22d15b2ee44ff97385dfde34123455273",
  "message": "Buying Bandwidth",
  "ip": "100.10.150.30"
}
```

**Response: error, Invalid token**

```json
{
  "message": "Buying Bandwidth",
  "ip": "100.10.150.30",
  "err": "No User by token :YOUR_API_KEY"
}
```

**Response: error, Invalid duration (this text is returned in Russian)**

```json
{
  "message": "Buying Bandwidth",
  "ip": "100.10.150.30",
  "err": "➖ Возможные варианты: 15m, 1h, 1d"
}
```

**Response: error, Volume below the minimum**

```json
{
  "message": "Buying Bandwidth",
  "ip": "100.10.150.30",
  "err": "Minimal volume 1000 bw"
}
```

**Response: error, Invalid address**

```json
{
  "message": "Buying Bandwidth",
  "ip": "100.10.150.30",
  "err": "UnCorrect address"
}
```
