# 订单延长使用API密钥

要使用此功能，您必须拥有API密钥。请阅读[这里](/chinese/developer/get-api-key.md)以了解如何获取我们的API密钥。

## [使用API密钥购买（Postman)](https://www.postman.com/tronsave/tronsave/folder/3gu7nlf/)

## 步骤 1：检查所有可延长的委托

<mark style="color:orange;">`POST`</mark> `https://api.tronsave.io/v0/get-extendable-delegates`

速率限制 (Rate limit): 每1秒1个请求。

通过[API](/chinese/developer/get-api-key.md)密钥检查可延长的委托

速率限制：每2秒1个请求

**请求头**

<table><thead><tr><th width="135">名称 </th><th width="209">类型</th><th> 描述</th></tr></thead><tbody><tr><td>apikey<mark style="color:red;">*</mark></td><td>String</td><td>Tronsave API密钥，适用于内部账户</td></tr></tbody></table>

**请求体**

<table><thead><tr><th width="145">名称</th><th width="170">类型</th><th> 描述</th></tr></thead><tbody><tr><td>extend_to<mark style="color:red;">*</mark></td><td>String</td><td>你想要延长的时间（以毫秒为单位）</td></tr><tr><td>max_price</td><td>Number</td><td>你愿意支付的最大延长费用（数字）</td></tr><tr><td>receiver</td><td>String</td><td>接收资源委托的地址</td></tr></tbody></table>

{% tabs %}
{% tab title="200: OK Success" %}

```java
{
    "extend_order_book": [
        {
            "price": 133,
            "value": 64319
        },
        ...
    ], // 概述每个价格的扩展能源数量
    "total_delegate_amount": 64319,
    // 收件人在Tronsave上的当前总委托
    "total_available_extend_amount": 64319,
    // 收件人在Tronsave上的可用总委托
    "total_estimate_trx": 8554427,
    // 如果使用下面的extend_data创建延长请求，估算的TRX支付
    "your_balance": 20000000,
    // API密钥的内部余额
    "is_able_to_extend": true,
    // 比较余额和total_estimate_trx
    "extend_data": [
        {
            "delegator": "TMN2uTdy6rQYaTm4A5g732kHRf72tKsA4w",
            "is_extend": true,
            "extra_amount": 0,
            "extend_to": 1728459019000
        }
    ]
    // 用于创建下面延长请求的扩展数据
}

```

{% endtab %}

{% tab title="401: Unauthorized Invalid api key" %}

```java
{
    "API_KEY_REQUIRED": "Missing api key in headers",
    "INVALID_API_KEY":"api key not correct"
}
```

{% endtab %}

{% tab title="429: Too many requests Rate limit reached" %}

```java
{
    "RATE_LIMIT": "Rate limit reached",
}
```

{% endtab %}
{% endtabs %}

**示例**

{% tabs %}
{% tab title="请求体  " %}

```java
{
    "extend_to":1728704969000,
    "max_price":165,
    "receiver":"TFwUFWr3QV376677Z8VWXxGUAMF11111111"
}
```

{% endtab %}

{% tab title="请求头" %}

```java
{
  "apikey": <YOUR_API_KEY>
}
```

{% endtab %}

{% tab title="成功响应" %}

```java
{
    "extend_order_book": [
        {
            "price": 108,
            "value": 100000
        },
        {
            "price": 122,
            "value": 200000
        }
    ],
    "total_delegate_amount": 500000,
    "total_available_extend_amount": 300000,
    "total_estimate_trx": 24426224,
    "is_able_to_extend": true,
    "your_balance": 37780396,
    "extend_data": [
        {
            "delegator": "TQBV7xU489Rq8ZCsYi72zBhJM2222222",
            "is_extend": true,
            "extra_amount": 0,
            "extend_to": 1728704969000
        },
        {
            "delegator": "TMN2uTdy6rQYaTm4A5g732kHR333333333",
            "is_extend": true,
            "extra_amount": 0,
            "extend_to": 1728704969000
        }
    ]
}
```

{% endtab %}
{% endtabs %}

**示例代码**

{% tabs %}
{% tab title="Javascript" %}

```java
const GetEstimateExtendData = async () => {
    const url = `https://api.tronsave.io/v0/get-extendable-delegates`
    const body = {
    "extend_to": extend_to, // 你想要延长的时间（以毫秒为单位）
    "receiver": RECEIVER,   // 接收资源委托的地址
    "max_price": max_price   // 可选。你愿意支付的最大延长费用（数字）
}
    const data = await fetch(url, {
            method: "POST",
            headers: {
                'apikey': API_KEY,
                "content-type": "application/json",
            },
            body: JSON.stringify(body)
        })
    const response = await data.json()
        /**
         * 示例响应:
         {
            "extend_order_book": [
                {
                    "price": 133,
                    "value": 64319
                }
            ],
            "total_delegate_amount": 64319,
            "total_available_extend_amount": 64319,
            "total_estimate_trx": 8554427,
            "is_able_to_extend": true,
            "your_balance": 20000000,
            "extend_data": [
                {
                    "delegator": "TMN2uTdy6rQYaTm4A5g732kHRf72tKsA4w",
                    "is_extend": true,
                    "extra_amount": 0,
                    "extend_to": 1728459019000
                }
            ]
        }
         */
        return response
}
```

{% endtab %}

{% tab title="cURL" %}

{% endtab %}
{% endtabs %}

## 步骤 2：通过API密钥创建延长请求

<mark style="color:orange;">`POST`</mark> `https://api.tronsave.io/v0/internal-extend-request`

速率限制 (Rate limit): 每1秒15个请求。

通过[API密钥](broken://pages/8hU5cqKsDND6F62Afb3j)创建新的延长请求订单

速率限制：每2秒1个请求

**请求头**

<table><thead><tr><th width="171">名称 </th><th width="168">类型</th><th>描述</th></tr></thead><tbody><tr><td>apikey<mark style="color:red;">*</mark></td><td>String</td><td>Tronsave API密钥，适用于内部账</td></tr></tbody></table>

**请求体**

<table><thead><tr><th width="162">名称 </th><th width="138">类型</th><th>描述</th></tr></thead><tbody><tr><td>receiver<mark style="color:red;">*</mark></td><td>String</td><td>接收资源的地址</td></tr><tr><td>extend_data<mark style="color:red;">*</mark></td><td>Array</td><td>扩展数据数组。在API估算可延长委托的响应中获取。</td></tr></tbody></table>

{% tabs %}
{% tab title="200: OK Success" %}
如果成功，返回订单 ID 数组。

```
[<order_id_1>,<order_id_2>,...]
```

{% endtab %}

{% tab title="401: Unauthorized Invalid api key" %}

```java
{
    "API_KEY_REQUIRED": "Missing api key in headers",
    "INVALID_API_KEY":"api key not correct"
}
```

{% endtab %}

{% tab title="429: Too many requests Rate limit reached" %}

```java
{
    "RATE_LIMIT": "Rate limit reached",
}
```

{% endtab %}
{% endtabs %}

**示例**

{% tabs %}
{% tab title="请求体  " %}

```java
{
    "extend_data": [
        {
            "delegator": {{some_delegator_address}}, // 委托者地址
            "is_extend": true,
            "extra_amount": 0,
            "extend_to": {{extend_timestamp_in_millisecs}} // 延长到的时间（以毫秒为单位）
        },
        ...
    ],
    "receiver": {{receiver_address}} // 接收者地址
}

```

{% endtab %}

{% tab title="请求头" %}

```java
{
  "apikey": <YOUR_API_KEY>
}
```

{% endtab %}

{% tab title="成功响应" %}

```java
["651d2306e55c073f6ca0992e","651d2306e55c073f6ca09923",...]
```

{% endtab %}
{% endtabs %}

**示例代码**

{% tabs %}
{% tab title="Javascript" %}

```java
const SendInternalExtendRequest = async () => {
    const url = `https://api.tronsave.io/v0/internal-extend-request`
    const body = {
            "extend_data": [    
                {
                    "delegator": {{some_delegator_address}},
                    "is_extend": true,
                    "extra_amount": 0,
                    "extend_to": {{extend_timestamp_in_millisecs}}
                }
            ],
            "receiver": RECEIVER,
        }
    const data = await fetch(url, {
            method: "POST",
            headers: {
                'apikey': API_KEY,
                "content-type": "application/json",
            },
            body: JSON.stringify(body)
        })
    const response = await data.json()
        /**
         * Example response 
         * @link  //TODO
           [<order_id>]
         */
        return response
    }
    return []
}
```

{% endtab %}

{% tab title="cURL" %}

```java
curl --location 'https://api.tronsave.io/v0/internal-extend-request' \
--header 'apikey: {{apikey}}' \
--data '
{
    "extend_data": [
        {
            "delegator": {{some_delegator_address}}, // 委托者地址
            "is_extend": true,
            "extra_amount": 0,
            "extend_to": {{extend_timestamp_in_millisecs}} // 延长到的时间（以毫秒为单位）
        },
        ...
    ],
    "receiver": {{receiver_address}} // 接收者地址
}
'
```

{% endtab %}
{% endtabs %}

## 测试用API列表 - Nile 测试网 <a href="#api-list-for-testing-tron-nile-testnet" id="api-list-for-testing-tron-nile-testnet"></a>

{% tabs %}
{% tab title="测试\_API" %}

* 检查所有可延长的委托:

  <mark style="color:orange;">`POST`</mark> `https://api-dev.tronsave.io/v0/get-extendable-delegates`
* 通过API密钥创建延长请求:

  <mark style="color:orange;">`POST`</mark> `https://api-dev.tronsave.io/v0/internal-extend-request`
  {% endtab %}
  {% endtabs %}


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.tronsave.io/chinese/developer/rest-api-v0/order-extend-api.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
