> For clean Markdown of any page, append .md to the page URL.
> For a complete documentation index, see https://es.megaport.ferndocs.com/es/llms.txt.
> For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://es.megaport.ferndocs.com/es/_mcp/server.

# Rutas de IP de MCR / BGP / Vecinos BGP en Modo Asíncrono

GET https://api.megaport.com/v2/product/mcr2/{productUid}/diagnostics/routes/operation

Devuelve las rutas MCR IP / BGP / Vecino BGP en modo Asíncrono.

Este punto final se utiliza en conjunto con los siguientes puntos finales:

- GET Listar Rutas IP
- GET Listar Rutas BGP
- GET Listar Rutas de Vecinos BGP

Primero, ejecute uno de estos puntos finales de lista de rutas con el parámetro `async` establecido en `True`. La respuesta debería devolverse en cuestión de milisegundos sin resultados reales y con un estado de _Pendiente_.

Luego, ejecute este punto final utilizando el `productUid` de MCR y el `operationId` devuelto en la respuesta para recuperar las rutas.

Se incluyen varios ejemplos de respuestas. El primer ejemplo muestra una respuesta exitosa, mientras que los ejemplos restantes muestran dónde ha ocurrido un error. El ejemplo de **Tipo de Servicio No Soportado** puede ser causado por cualquiera de estos problemas:

- No se proporciona OperationId
- Tanto getIpRoutes como getBgpRoutes están vacíos (al menos uno debe proporcionarse)
- Tipo de servicio no soportado
- Error de API de Red

Reference: https://es.megaport.ferndocs.com/es/api-reference/mcr-looking-glass/mcr-ip-bgp-bgp-neighbor-routes-in-asynchronous-mode

## Servers

- `https://api.megaport.com` (Entorno de producción, default)
- `https://api-staging.megaport.com` (Entorno de pruebas (solo pruebas, se restablece cada 24 horas))

## Request

### Path parameters

- `productUid` (string, required)

### Query parameters

- `operationId` (string, optional) — UUID devuelto de la llamada anterior de List Routes para obtener rutas MCR IP/BGP/BGP Neighbor en modo asíncrono

## Response

### 200

Obtener rutas IP / BGP / Vecino BGP de MCR en modo asíncrono - Éxito / Obtener rutas IP / BGP / Vecino BGP de MCR en modo asíncrono - Éxito

- `data` (list of V2ProductMcr2ProductUidDiagnosticsRoutesOperationGetResponsesContentApplicationJsonSchemaDataItems, optional)
- `message` (string, optional)
- `terms` (string, optional)

### 202

Resultado de Datos Aún No Disponible / Resultado de Datos Aún No Disponible

- `message` (string, optional)
- `terms` (string, optional)

## Errors

### 400 Bad Request Error

Tipo de Servicio No Compatible / Tipo de Servicio No Compatible

- `message` (string, optional)
- `terms` (string, optional)

### 401 Unauthorized Error

Señal de Sesión Incorrecta / Señal de Sesión Incorrecta

- `message` (string, optional)
- `terms` (string, optional)

### 403 Forbidden Error

Permiso Incorrecto para la Operación / Permiso Incorrecto para la Operación

- `message` (string, optional)
- `terms` (string, optional)

### 404 Not Found Error

Servicio de Red No Encontrado / Servicio de Red No Encontrado

- `message` (string, optional)
- `terms` (string, optional)

## Types

### V2ProductMcr2ProductUidDiagnosticsRoutesOperationGetResponsesContentApplicationJsonSchemaDataItems

- `distance` (double, optional)
- `metric` (double, optional)
- `nextHop` (V2ProductMcr2ProductUidDiagnosticsRoutesOperationGetResponsesContentApplicationJsonSchemaDataItemsNextHop, optional)
- `prefix` (string, optional)
- `protocol` (string, optional)

### V2ProductMcr2ProductUidDiagnosticsRoutesOperationGetResponsesContentApplicationJsonSchemaDataItemsNextHop

- `ip` (string, optional)
- `vxc` (V2ProductMcr2ProductUidDiagnosticsRoutesOperationGetResponsesContentApplicationJsonSchemaDataItemsNextHopVxc, optional)

### V2ProductMcr2ProductUidDiagnosticsRoutesOperationGetResponsesContentApplicationJsonSchemaDataItemsNextHopVxc

- `id` (string, optional)
- `name` (string, optional)

## Examples

### Example 1

**Response**

```json
{
  "data": [
    {
      "distance": 20,
      "metric": 0,
      "nextHop": {
        "ip": "169.254.0.1",
        "vxc": {
          "id": "5d4bba15-db2a-4adc-935d-525558692601",
          "name": "AFBS-to-MCR"
        }
      },
      "prefix": "10.0.1.0/24",
      "protocol": "BGP"
    },
    {
      "distance": 20,
      "metric": 0,
      "nextHop": {
        "ip": "169.254.0.1",
        "vxc": {
          "id": "5d4bba15-db2a-4adc-935d-525558692601",
          "name": "AFBS-to-MCR"
        }
      },
      "prefix": "10.0.2.0/24",
      "protocol": "BGP"
    },
    {
      "distance": 20,
      "metric": 0,
      "nextHop": {
        "ip": "169.254.0.1",
        "vxc": {
          "id": "5d4bba15-db2a-4adc-935d-525558692601",
          "name": "AFBS-to-MCR"
        }
      },
      "prefix": "10.0.3.0/24",
      "protocol": "BGP"
    },
    {
      "distance": 20,
      "metric": 0,
      "nextHop": {
        "ip": "169.254.0.1",
        "vxc": {
          "id": "5d4bba15-db2a-4adc-935d-525558692601",
          "name": "AFBS-to-MCR"
        }
      },
      "prefix": "10.0.4.0/24",
      "protocol": "BGP"
    },
    {
      "distance": 20,
      "metric": 0,
      "nextHop": {
        "ip": "169.254.0.1",
        "vxc": {
          "id": "5d4bba15-db2a-4adc-935d-525558692601",
          "name": "AFBS-to-MCR"
        }
      },
      "prefix": "10.0.5.0/24",
      "protocol": "BGP"
    },
    {
      "distance": 20,
      "metric": 0,
      "nextHop": {
        "ip": "169.254.0.1",
        "vxc": {
          "id": "5d4bba15-db2a-4adc-935d-525558692601",
          "name": "AFBS-to-MCR"
        }
      },
      "prefix": "10.0.6.0/24",
      "protocol": "BGP"
    },
    {
      "distance": 20,
      "metric": 0,
      "nextHop": {
        "ip": "169.254.0.1",
        "vxc": {
          "id": "5d4bba15-db2a-4adc-935d-525558692601",
          "name": "AFBS-to-MCR"
        }
      },
      "prefix": "10.0.7.0/24",
      "protocol": "BGP"
    },
    {
      "distance": 20,
      "metric": 0,
      "nextHop": {
        "ip": "169.254.0.1",
        "vxc": {
          "id": "5d4bba15-db2a-4adc-935d-525558692601",
          "name": "AFBS-to-MCR"
        }
      },
      "prefix": "10.0.8.0/24",
      "protocol": "BGP"
    },
    {
      "distance": 20,
      "metric": 0,
      "nextHop": {
        "ip": "169.254.0.1",
        "vxc": {
          "id": "5d4bba15-db2a-4adc-935d-525558692601",
          "name": "AFBS-to-MCR"
        }
      },
      "prefix": "10.0.9.0/24",
      "protocol": "BGP"
    }
  ],
  "message": "Las rutas de MCR se recuperan con éxito",
  "terms": "This data is subject to the Acceptable Use Policy https://www.megaport.com/legal/acceptable-use-policy"
}
```

**SDK Code**

```python
import requests

url = "https://api.megaport.com/v2/product/mcr2/productUid/diagnostics/routes/operation"

response = requests.get(url)

print(response.json())
```

```javascript
const url = 'https://api.megaport.com/v2/product/mcr2/productUid/diagnostics/routes/operation';
const options = {method: 'GET'};

try {
  const response = await fetch(url, options);
  const data = await response.json();
  console.log(data);
} catch (error) {
  console.error(error);
}
```

```go
package main

import (
	"fmt"
	"net/http"
	"io"
)

func main() {

	url := "https://api.megaport.com/v2/product/mcr2/productUid/diagnostics/routes/operation"

	req, _ := http.NewRequest("GET", url, nil)

	res, _ := http.DefaultClient.Do(req)

	defer res.Body.Close()
	body, _ := io.ReadAll(res.Body)

	fmt.Println(res)
	fmt.Println(string(body))

}
```

```ruby
require 'uri'
require 'net/http'

url = URI("https://api.megaport.com/v2/product/mcr2/productUid/diagnostics/routes/operation")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Get.new(url)

response = http.request(request)
puts response.read_body
```

```java
import com.mashape.unirest.http.HttpResponse;
import com.mashape.unirest.http.Unirest;

HttpResponse<String> response = Unirest.get("https://api.megaport.com/v2/product/mcr2/productUid/diagnostics/routes/operation")
  .asString();
```

```php
<?php
require_once('vendor/autoload.php');

$client = new \GuzzleHttp\Client();

$response = $client->request('GET', 'https://api.megaport.com/v2/product/mcr2/productUid/diagnostics/routes/operation');

echo $response->getBody();
```

```csharp
using RestSharp;

var client = new RestClient("https://api.megaport.com/v2/product/mcr2/productUid/diagnostics/routes/operation");
var request = new RestRequest(Method.GET);
IRestResponse response = client.Execute(request);
```

```swift
import Foundation

let request = NSMutableURLRequest(url: NSURL(string: "https://api.megaport.com/v2/product/mcr2/productUid/diagnostics/routes/operation")! as URL,
                                        cachePolicy: .useProtocolCachePolicy,
                                    timeoutInterval: 10.0)
request.httpMethod = "GET"

let session = URLSession.shared
let dataTask = session.dataTask(with: request as URLRequest, completionHandler: { (data, response, error) -> Void in
  if (error != nil) {
    print(error as Any)
  } else {
    let httpResponse = response as? HTTPURLResponse
    print(httpResponse)
  }
})

dataTask.resume()
```

### Example 2

**Response**

```json
{
  "message": "El resultado de los datos estará disponible pronto",
  "terms": "This data is subject to the Acceptable Use Policy https://www.megaport.com/legal/acceptable-use-policy"
}
```

**SDK Code**

```python
import requests

url = "https://api.megaport.com/v2/product/mcr2/productUid/diagnostics/routes/operation"

response = requests.get(url)

print(response.json())
```

```javascript
const url = 'https://api.megaport.com/v2/product/mcr2/productUid/diagnostics/routes/operation';
const options = {method: 'GET'};

try {
  const response = await fetch(url, options);
  const data = await response.json();
  console.log(data);
} catch (error) {
  console.error(error);
}
```

```go
package main

import (
	"fmt"
	"net/http"
	"io"
)

func main() {

	url := "https://api.megaport.com/v2/product/mcr2/productUid/diagnostics/routes/operation"

	req, _ := http.NewRequest("GET", url, nil)

	res, _ := http.DefaultClient.Do(req)

	defer res.Body.Close()
	body, _ := io.ReadAll(res.Body)

	fmt.Println(res)
	fmt.Println(string(body))

}
```

```ruby
require 'uri'
require 'net/http'

url = URI("https://api.megaport.com/v2/product/mcr2/productUid/diagnostics/routes/operation")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Get.new(url)

response = http.request(request)
puts response.read_body
```

```java
import com.mashape.unirest.http.HttpResponse;
import com.mashape.unirest.http.Unirest;

HttpResponse<String> response = Unirest.get("https://api.megaport.com/v2/product/mcr2/productUid/diagnostics/routes/operation")
  .asString();
```

```php
<?php
require_once('vendor/autoload.php');

$client = new \GuzzleHttp\Client();

$response = $client->request('GET', 'https://api.megaport.com/v2/product/mcr2/productUid/diagnostics/routes/operation');

echo $response->getBody();
```

```csharp
using RestSharp;

var client = new RestClient("https://api.megaport.com/v2/product/mcr2/productUid/diagnostics/routes/operation");
var request = new RestRequest(Method.GET);
IRestResponse response = client.Execute(request);
```

```swift
import Foundation

let request = NSMutableURLRequest(url: NSURL(string: "https://api.megaport.com/v2/product/mcr2/productUid/diagnostics/routes/operation")! as URL,
                                        cachePolicy: .useProtocolCachePolicy,
                                    timeoutInterval: 10.0)
request.httpMethod = "GET"

let session = URLSession.shared
let dataTask = session.dataTask(with: request as URLRequest, completionHandler: { (data, response, error) -> Void in
  if (error != nil) {
    print(error as Any)
  } else {
    let httpResponse = response as? HTTPURLResponse
    print(httpResponse)
  }
})

dataTask.resume()
```