# AssociateEipAddress

## 1. API Description

This API (AssociateEipAddress) is used to bind an elastic IP to an instance in the same zone.

{% hint style="info" %} <mark style="color:blue;">**Note**</mark>

* <mark style="color:blue;">Only operations on elastic IPs in</mark> <mark style="color:blue;">`AVAILABLE`</mark> <mark style="color:blue;">status are supported.</mark>
* <mark style="color:blue;">The instance of the ESXi operating system cannot bind an elastic IP.</mark>
* <mark style="color:blue;">Elastic IPs can only be assigned to instances in the same zone.</mark>
* <mark style="color:blue;">The instance to be assigned an elastic IP should be in status of</mark> <mark style="color:blue;">`RUNNING`</mark><mark style="color:blue;">.</mark>
* <mark style="color:blue;">The number of elastic IPs bound to an instance is limited. If you need more, please contact Zenlayer Support.</mark>
* <mark style="color:blue;">This API is an async API. A request ID is returned after the request is sent. However, it does not mean the binding has been completed. You can use</mark> [<mark style="color:purple;">`DescribeEipAddresses`</mark>](/api-reference/compute/bmc/elastic-ip/describeeipaddresses.md) <mark style="color:blue;">to query the status of the elastic IP.</mark>
  * <mark style="color:blue;">If the status of the elastic IP is</mark> <mark style="color:blue;">`ASSOCIATING`</mark><mark style="color:blue;">, it means that the elastic IP is being bound. Only query operations are allowed during</mark> <mark style="color:blue;">`ASSOCIATING`</mark><mark style="color:blue;">.</mark>
  * <mark style="color:blue;">If the status of the elastic IP is</mark> <mark style="color:blue;">`ASSOCIATED`</mark><mark style="color:blue;">, it means that the elastic IP has been bound.</mark>
    {% endhint %}

## 2. Input Parameters

The following request parameter list only provides API request parameters.

| Parameter Name | Required | Type   | Description                                                                                                                          |
| -------------- | -------- | ------ | ------------------------------------------------------------------------------------------------------------------------------------ |
| eipId          | Yes      | String | <p>ID of an elastic IP.</p><p>To obtain the elastic IP ID, you can call DescribeEipAddresses and look for eipId in the response.</p> |
| instanceId     | Yes      | String | <p>Instance ID.</p><p>To obtain the instance ID, you can call DescribeInstances and look for instanceId in the response.</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> |

## 4. Code Example

{% tabs %}
{% tab title="Example" %}
**Bind an elastic IP to an instance**

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

Request：
{
    "eipId": "eipId1",
    "instanceId": "instanceId1"
}

Response：
{
  "requestId": "T05992D0C-7E8B-4047-B0C0-780F2CD549D3",
  "response": {  
    "requestId": "T05992D0C-7E8B-4047-B0C0-780F2CD549D3"
  }
}
```

{% 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                                                           |
| ---------------- | ----------------------------------------------- | --------------------------------------------------------------------- |
| 403              | OPERATION\_DENIED\_INSTANCE\_RECYCLED           | The instance is in the recycle bin.                                   |
| 403              | OPERATION\_DENIED\_EIP\_INSTANCE\_EXCEED\_LIMIT | The number of elastic IPs assigned to the instance exceeds the limit. |
| 404              | INVALID\_EIP\_NOT\_FOUND                        | The specified elastic IP does not exist.                              |
| 403              | OPERATION\_DENIED\_EIP\_STATUS\_NOT\_AVAILABLE  | The specified elastic IP state is not available.                      |
| 403              | OPERATION\_DENIED\_INSTANCE\_NOT\_RUNNING       | Only operations on instances in RUNNING status are supported.         |
| 404              | INVALID\_INSTANCE\_NOT\_FOUND                   | Instance does not exist.                                              |
| 403              | OPERATION\_DENIED\_EIP\_ZONE\_NOT\_SAME         | The specified elastic IP is not in the same zone as the instance.     |


---

# 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.console.zenlayer.com/api-reference/compute/bmc/elastic-ip/associateeipaddress.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.
