---
title: "Retrieve VPC routing profile"
method: GET
path: "/v2/org/{org}/nico/vpc/{vpcId}/routing-profile"
tags: ["VPC"]
---

# Retrieve VPC routing profile

`GET /v2/org/{org}/nico/vpc/{vpcId}/routing-profile`

## Request

- Base URL: `https://nico-rest-api.nico.svc.cluster.local`
- URL: `https://nico-rest-api.nico.svc.cluster.local/v2/org/{org}/nico/vpc/{vpcId}/routing-profile`
- Auth: HTTP bearer

Read the VPC's persisted routing profile, active VNI, version, and any retained allocation directly from Core. This is not the effective routing profile or evidence of DPU or fabric convergence. The ordinary VPC GET uses inventory and may lag this response.

Org must have an Infrastructure Provider entity that owns both the VPC and its Site. The VPC must belong to that Site, and the Site must be registered. User must have authorization role with `PROVIDER_ADMIN` suffix. Tenant administrator authorization alone is insufficient.

Inspection supports VPCs with valid pool ownership even when no named profile is stored or their virtualization type cannot support profile changes. Missing or inconsistent allocation ownership returns 412. A Site-global VNI override is not reflected in this response.

## Response `200`

Authoritative persisted routing state and VNI allocations

- VpcRoutingState: Authoritative persisted routing state read with the VPC's owned allocations. This is not the effective routing profile, a Site-global VNI override, or a convergence report. Every field is present; null means no stored profile or retained allocation, respectively.
  - `vpcId` string, uuid, required: REST ID of the VPC selected in the request, which may differ from its Site-local Core ID.
  - `version` string, required: Core VPC version observed with these allocations. Use this exact value when approving release of the observed inactive VNI; it is not a DPU-applied version.
  - `routingProfile` string, nullable, required: Persisted profile name, or null when no named profile is stored. Known Core names are returned as the REST aliases `external`, `internal`, and `privileged-internal`; other names are unchanged. The name can be returned even when its Site definition is unavailable.
  - `activeVni` integer, required: Persisted active VNI verified against pool ownership. Inspection accepts nonnegative values, including zero and values outside the profile-change range; successful inspection does not imply a profile change is supported.
  - `retainedAllocation` VpcRetainedVniAllocation, required: VNI still reserved for the VPC in the pool other than its active allocation. Retention alone does not guarantee that a reverse profile change passes current validation.
    - `poolName` 'vpc-vni' | 'external-vpc-vni', required: Resource pool containing the retained allocation.
    - `vni` integer, required: Persisted nonnegative VNI, distinct from the active VNI. Inspection does not establish whether it is valid for a profile change or release.

## Other responses

- `400`: Error response when request data cannot be validated
- `403`: Error response when user is not authorized to call an endpoint or retrieve/modify objects
- `404`: Error response when requested object is not found
- `412`: Response when the API handler encounters an unexpected error
- `500`: Response when the API handler encounters an unexpected error
- `501`: Response when the API handler encounters an unexpected error
- `503`: Response when the API handler encounters an unexpected error
- `504`: Response when the API handler encounters an unexpected error

## Changes

- **2026-10-15** `293dc126ab73`: 8 info
  - removed the `nico` enum value from the `source` response property for the response status `400`
  - removed the `nico` enum value from the `source` response property for the response status `403`
  - removed the `nico` enum value from the `source` response property for the response status `404`
  - removed the `nico` enum value from the `source` response property for the response status `412`
  - …4 more
- **2026-09-29** `78f3b35615a5`: 8 info
  - added the optional property `retryable` to the response with the `400` status
  - added the optional property `retryable` to the response with the `403` status
  - added the optional property `retryable` to the response with the `404` status
  - added the optional property `retryable` to the response with the `412` status
  - …4 more
- **2026-09-15** `e0d9336859d5`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/nvidia/apis/nvidia-infra-controller-rest-api/changes/v2/org/:org/nico/vpc/:vpcId/routing-profile/get.md)

---

[API](https://skmtc.dev/nvidia/apis/nvidia-infra-controller-rest-api.md) - [All operations](https://skmtc.dev/nvidia/apis/nvidia-infra-controller-rest-api/llms.txt) - [OpenAPI document](https://skmtc.dev/nvidia/apis/nvidia-infra-controller-rest-api/revisions/db15b7308121?raw)
