> 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/bmc/cidr-block/createbyoip.md).

# CreateByoip

## 1. API Description

This API (CreateByoip) is used to create a BYO IP.

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

* This is an asynchronous API. Once the CreateByoip request is successfully submitted, `byoipId` and `cidrBlockId` are returned, but the CreateByoip operation is not yet completed at that point.
* The `cidr` parameter supports only IPv4, with a mask between 22 and 24.
  {% endhint %}

## 2. Input Parameters

The following request parameter list only provides API request parameters.

| Parameter Name           | Required | Type                                                                 | Description                                                                                                                       |
| ------------------------ | -------- | -------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------- |
| ipType                   | Yes      | [IpType](/api-reference/bmc/datastructure.md#iptype)                 | IP type.                                                                                                                          |
| cidr                     | Yes      | String                                                               | The advertised IPv4 or IPv6 CIDR block.                                                                                           |
| asn                      | Yes      | Integer                                                              | ASN number.                                                                                                                       |
| publicVirtualInterfaceId | Yes      | String                                                               | The unique identifier of the public VLAN.                                                                                         |
| tags                     | No       | [TagAssociation](/api-reference/bmc/datastructure.md#tagassociation) | <p>The tags associated with the byoip when it is created.</p><p>Note: The associated <code>tag key</code> cannot be repeated.</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> |
| byoipId        | String | The ID of the successfully created BYOIP.                                                                             |
| cidrBlockId    | String | The ID of the successfully created CIDR.                                                                              |

## 4. Code Example

{% tabs %}
{% tab title="Example" %}
**1. Create BYOIP**

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

Request:
{
    "ipType": "IPV4",
    "cidr": "22.22.22.0/24",
    "asn": 33322,
    "publicVirtualInterfaceId": "<publicVirtualInterfaceId>"
}

Response:
{
  "requestId": "T05992D0C-7E8B-4047-B0C0-780F2CD549D3",
  "response": {
    "requestId": "T05992D0C-7E8B-4047-B0C0-780F2CD549D3",
    "byoipId": "<byoipId>",
    "cidrBlockId": "<cidrBlockId>"
  }
}
```

{% 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              | OPERATION\_DENIED\_VLAN\_NOT\_FOUND                | Public VLAN does not exist.                                        |
| 403              | OPERATION\_DENIED\_ZONE\_NOT\_SUPPORT\_BYOIP       | The zone does not support BYOIP.                                   |
| 400              | INVALID\_CIDR\_FORMAT                              | BYOIP parameter CIDR format is invalid.                            |
| 400              | INVALID\_CIDR\_PREFIX\_LENGTH                      | BYOIP parameter CIDR prefix length is out of range.                |
| 403              | OPERATION\_DENIED\_BYOIP\_ASN\_NOT\_SUPPORT        | BYOIP parameter ASN value is not supported.                        |
| 403              | OPERATION\_DENIED\_BYOIP\_RPKI\_NOT\_LEGAL         | BYOIP RPKI announcement is not valid.                              |
| 403              | OPERATION\_DENIED\_BYOIP\_RADB\_NOT\_LEGAL         | BYOIP RADB announcement is not valid.                              |
| 409              | OPERATION\_DENIED\_BYOIP\_DUPLICATED               | BYOIP already exists (duplicate).                                  |
| 403              | OPERATION\_DENIED\_BYOIP\_ZONE\_QUOTA\_NOT\_ENOUGH | This area may declare that there are not enough IP ranges.         |
| 403              | OPERATION\_DENIED\_BYOIP\_CIDR\_OVERLAP            | The BYOIP network segment overlaps with existing network segments. |
