> For the complete documentation index, see [llms.txt](https://docs.console.zenlayer.com/api-reference/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.console.zenlayer.com/api-reference/zec/elastic-ip/inquirypricechangeeipinternetchargetype.md).

# InquiryPriceChangeEipInternetChargeType

## 1. API Description

This API (InquiryPriceChangeEipInternetChargeType) is used to inquire the price after changing the network billing mode of an EIP. The currently effective price of each billing item before the change is also returned through previousPrices, so that you can compare which billing items have price changes.

{% hint style="info" %}
**Notes**

* Only EIPs billed by bandwidth (`ByBandwidth`) or by traffic package (`ByTrafficPackage`) support changing the network billing mode.
* When changing to bandwidth-based billing (`ByBandwidth`), `bandwidth` must be specified.
* When changing to traffic package billing (`ByTrafficPackage`), `flowPackage` must be specified (in TB, either 0 or a multiple of 0.1).
* When changing to bandwidth cluster billing (`BandwidthCluster`) and the EIP is of the remoteIpt type, `clusterId` must be specified.
* The committed traffic package size is valid only when the billing cycle is monthly.
  {% endhint %}

## 2. Input Parameters

The following request parameter list only provides API request parameters.

| Parameter Name     | Required | Type                                                                         | Description                                                                                                                                                                |
| ------------------ | -------- | ---------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| eipId              | Yes      | String                                                                       | <p>Elastic IP to be operated on.</p><p>It can be obtained by calling <a href="/api-reference/zec/elastic-ip/describeeips.md">DescribeEips</a>.</p>                         |
| internetChargeType | Yes      | [InternetChargeType](/api-reference/zec/datastructure.md#internetchargetype) | Target billing mode to change to.                                                                                                                                          |
| bandwidth          | No       | Integer                                                                      | <p>Bandwidth limit.</p><p>Unit: Mbps.</p><p>Required when the billing mode is bandwidth billing (<code>ByBandwidth</code>).</p><p>Value range: \[1, +)</p>                 |
| flowPackage        | No       | Float                                                                        | <p>Traffic package size.</p><p>Unit: TB.</p><p>Required when the billing mode is traffic package billing (<code>ByTrafficPackage</code>).</p><p>Value range: \[0.0, +)</p> |
| clusterId          | No       | String                                                                       | <p>Shared bandwidth package ID.</p><p>Required when the billing mode is shared bandwidth package billing (<code>BandwidthCluster</code>).</p>                              |

## 3. Output Parameters

| Parameter Name       | Type                                                                                                  | Description                                                                                                                                                                                                                       |
| -------------------- | ----------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| requestId            | String                                                                                                | <p>The unique request ID, which is returned for each request.</p><p>RequestId is required for locating a problem.</p>                                                                                                             |
| eipPrice             | [PriceItem](/api-reference/zec/datastructure.md#priceitem)                                            | <p>Retention price of the elastic IP.</p><p>Null for IPs created via CIDR.</p>                                                                                                                                                    |
| bandwidthPrice       | [PriceItem](/api-reference/zec/datastructure.md#priceitem)                                            | <p>Bandwidth price for the elastic IP.</p><p>Null for the PathBasedBandwidthIP line type; see <code>bandwidthPrices</code> for details.</p>                                                                                       |
| bandwidthPrices      | Array of [BandwidthPriceResponseItem](/api-reference/zec/datastructure.md#bandwidthpriceresponseitem) | <p>Bandwidth price details for each traffic direction.</p><p>Multiple items are returned for the PathBasedBandwidthIP line type; a single item (trafficType=ALL) is returned for other line types.</p>                            |
| remoteBandwidthPrice | [PriceItem](/api-reference/zec/datastructure.md#priceitem)                                            | <p>Bandwidth price for Remote IPT.</p><p>Null when Remote IPT is not enabled for the EIP.</p>                                                                                                                                     |
| previousPrices       | [EipPreviousPrices](/api-reference/zec/datastructure.md#eippreviousprices)                            | <p>Currently effective price of each billing item before the change. The fields correspond one by one to those above and are used to compare which billing items have price changes.</p><p>It is null when there is no order.</p> |

## 4. Code Example

{% tabs %}
{% tab title="Example" %}
**Inquire the price after changing the EIP to bandwidth billing (20 Mbps bandwidth).**

```json
POST /api/v2/zec HTTP/1.1
Host: console.zenlayer.com
Content-Type: application/json
X-ZC-Action: InquiryPriceChangeEipInternetChargeType
<Common Request Params>

Request：
{
  "eipId": "eip-xxx",
  "internetChargeType": "ByBandwidth",
  "bandwidth": 20
}

Response：
{
  "requestId": "T05992D0C-7E8B-4047-B0C0-780F2CD549D3",
  "response": {
    "requestId": "T05992D0C-7E8B-4047-B0C0-780F2CD549D3",
    "eipPrice": {
      "discount": 100.0,
      "discountPrice": null,
      "originalPrice": null,
      "unitPrice": 0.005,
      "discountUnitPrice": 0.005,
      "chargeUnit": "HOUR",
      "stepPrices": null
    },
    "bandwidthPrice": {
      "discount": 100.0,
      "discountPrice": null,
      "originalPrice": null,
      "unitPrice": 0.02,
      "discountUnitPrice": 0.02,
      "chargeUnit": "HOUR",
      "stepPrices": null
    },
    "bandwidthPrices": [
      {
        "trafficType": "ALL",
        "price": {
          "discount": 100.0,
          "discountPrice": null,
          "originalPrice": null,
          "unitPrice": 0.02,
          "discountUnitPrice": 0.02,
          "chargeUnit": "HOUR",
          "stepPrices": null
        }
      }
    ],
    "remoteBandwidthPrice": null,
    "previousPrices": {
      "eipPrice": {
        "discount": 100.0,
        "discountPrice": null,
        "originalPrice": null,
        "unitPrice": 0.005,
        "discountUnitPrice": 0.005,
        "chargeUnit": "HOUR",
        "stepPrices": null
      },
      "bandwidthPrice": {
        "discount": 100.0,
        "discountPrice": null,
        "originalPrice": null,
        "unitPrice": 0.015,
        "discountUnitPrice": 0.015,
        "chargeUnit": "HOUR",
        "stepPrices": null
      },
      "bandwidthPrices": [
        {
          "trafficType": "ALL",
          "price": {
            "discount": 100.0,
            "discountPrice": null,
            "originalPrice": null,
            "unitPrice": 0.015,
            "discountUnitPrice": 0.015,
            "chargeUnit": "HOUR",
            "stepPrices": null
          }
        }
      ],
      "remoteBandwidthPrice": null
    }
  }
}
```

{% endtab %}
{% endtabs %}

## 5. Developer Resources

Zenlayer Cloud API 2.0 integrates [SDKs](/api-reference/api-introduction/toolkit/api-sdk.md)，to make it easier for you to call APIs. More programming languages will be supported.

## 6. Error Codes

The following only lists the error codes related to the API business logic. For other error codes, see [Common Error Codes](/api-reference/api-introduction/instruction/commonerrorcode.md).

| HTTP Status Code | Error Code                                                  | Description                                                  |
| ---------------- | ----------------------------------------------------------- | ------------------------------------------------------------ |
| 404              | INVALID\_EIP\_NOT\_FOUND                                    | Elastic IP does not exist.                                   |
| 500              | OPERATION\_DENIED\_EIP\_STATUS\_NOT\_SUPPORT                | Operations on the EIP with current status are not supported. |
| 400              | OPERATION\_DENIED\_INTERNET\_CHARGE\_TYPE\_NOT\_SUPPORT     | IP network billing type is not supported.                    |
| 400              | OPERATION\_DENIED\_EIP\_UNSUPPORTED\_INTERNET\_CHARGE\_TYPE | The target network billing method is not supported.          |
