> ## Documentation Index
> Fetch the complete documentation index at: https://docs.megaport.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Moving a VXC and IX with the API

> This help topic describes how to use the Megaport API to move a VXC and IX for failover testing.

export const Image = ({src, alt = '', caption, width, height, shadow}) => {
  const errorPrefix = '\x1b[31;1;4mERROR\x1b[0m: Image -';
  if (typeof src !== 'string') {
    src = String(src);
  }
  if (!src || src === 'undefined') {
    console.error(`${errorPrefix} \`src\` is required — rendering an empty string instead`);
    return <></>;
  }
  const img = <img className={['mega-image-style', shadow ? 'shadow' : ''].join(' ')} src={src} alt={alt} width={width} height={height} style={{
    display: 'block'
  }} />;
  return caption ? <figure>
      {img}
      <figcaption style={{
    textAlign: 'center',
    width
  }}>{caption}</figcaption>
    </figure> : img;
};

This topic describes how to move a VXC and IX service.

Once you have created and deployed a VXC or IX on the Megaport network, you can move the A-End (VXC and IX) or B-End (VXC only), effectively moving the service. This is a useful function for reducing interruptions during maintenance and other tasks that would otherwise cause downtime.
For more information, see [Moving VXCs](/connections/move-vxc) and [Moving IXs](/ix/move-ix).

You can move a VXC or IX by changing the `productUid` of the A-End or B-End, depending on the service. You can use the optional `aEndProductUid` or `bEndProductUid` parameters in the Body of the request:

```json theme={"theme":{"light":"github-light-high-contrast","dark":"github-dark-high-contrast"}}
{
  "aEndProductUid": "0ee41f61-4f03-5555-8afe-77fcc949c804"
}
```

When moving a VXC for an MVE, you can also select the vNICs at the A-End and B-End using the parameters `aVnicIndex` and `bVnicIndex`. For more information, see [PUT Update VXC (v3)](https://dev.megaport.com/#4293df4a-545d-45a2-bfa1-90f41df13160) in the API developer portal.

Before you begin, obtain a valid access token. For more information, see [Creating an API Key](/api/api-key).

**To move a VXC in the Postman collection**

1. In Postman, expand **Connections > Virtual Cross Connects** in the left navigation and click **PUT Update VXC (v3)**.

2. Identify the VXC to update by adding the `productUid` to the endpoint.
   <Image src="/images/api/api-vxc-change-put-url.png" alt="Update VXC request" shadow={true} width={800} />

3. Select the **Body** tab and add the `aEndProductUID` with the UID of the new A-End.\
   You can update the A-End or B-End of a VXC, but you can only move one end per API call.

   <Image src="/images/api/vxc-api-move-a-end.png" alt="Move VXC request" shadow={true} width={650} />

4. Click **Send**.\
   The changes will be reflected in the Portal within two minutes. The Services page shows the VXC moved to the new A-End or B-End, depending on the specification.

**To move an IX in the Postman collection**

1. In Postman, expand **Internet Exchange (IX)** in the left navigation and click **PUT Update IX**.

2. Identify the IX to update by adding the `productUid` to the endpoint.
   <Image src="/images/api/api-ix-change-put-url.png" alt="Update IX request" shadow={true} width={800} />

3. Select the **Body** tab and add the `aEndProductUID`.
   <Image src="/images/api/ix-move-a-end.png" alt="Move IX request" shadow={true} width={650} />

4. Click **Send**.\
   The changes will be reflected in the Portal within two minutes. The Services page shows the IX moved to the new A-End.
