Show Network Port Details
Retrieve the details of a single network port by its ID.
Default policy settings allow you to view ports owned by your project (unless you have administrative privileges).
Request
GET /v2.0/ports/{port_id}
Path Parameters
| Name | In | Type | Description |
|---|---|---|---|
port_id | path | string | The ID of the port to retrieve. |
Query Parameters
| Name | In | Type | Description |
|---|---|---|---|
fields (Optional) | query | string | Limits the returned attributes. Can be repeated (e.g. ?fields=id&fields=name). If omitted, all attributes allowed by policy are returned. |
Example Request
curl -ks -H 'Content-Type: application/json' -H 'X-Auth-Token: gAAAAA<...>' \
https://<node_IP_addr>:9696/v2.0/ports/2d74fa0c-3e43-4fd9-a234-cbb4996cc684
Response
Response Parameters
If successful the API returns a single port object with the attributes below.
| Name | In | Type | Description |
|---|---|---|---|
port | body | object | Port object wrapper. |
id | body | string | Port ID. |
name | body | string | Human-readable name of the port. |
network_id | body | string | ID of the attached network. |
tenant_id | body | string | Project ID (legacy field). |
project_id | body | string | Owning project ID. |
mac_address | body | string | MAC address of the port (may be overridden for direct-physical). |
admin_state_up | body | boolean | Administrative state (true or false). |
status | body | string | Port status: ACTIVE, DOWN, BUILD, or ERROR. |
device_id | body | string | ID of the attached device (server, router, etc.). |
device_owner | body | string | Entity type using the port (e.g. compute:nova). |
fixed_ips | body | array | List of {subnet_id, ip_address} assigned to the port. |
port_security_enabled | body | boolean | Whether port security is enabled. |
qos_policy_id | body | string | QoS policy directly applied to the port (or null). |
qos_network_policy_id | body | string | QoS policy of the parent network (or null). |
security_groups | body | array | Security group IDs applied. |
binding:vnic_type | body | string | vNIC type: normal, macvtap, direct, baremetal, direct-physical, virtio-forwarder, smart-nic, remote-managed. |
binding:profile | body | object | Backend-specific VIF info (empty {} if none). |
binding:host_id | body | string | Host ID where the port resides. |
binding:vif_type | body | string | Mechanism driver type or unbound / binding_failed. |
binding:vif_details | body | object | Additional info (e.g. port_filter, ovs_hybrid_plug). |
allowed_address_pairs | body | array | Allowed address pairs (ip_address, optional mac_address). |
extra_dhcp_opts | body | array | Extra DHCP option objects. |
description | body | string | Description. |
resource_request (Optional) | body | object | Placement resources & traits requested. |
tags | body | array | Tag list. |
created_at | body | string | Creation timestamp (ISO 8601). |
updated_at | body | string | Last update timestamp (ISO 8601) or recent timestamp. |
revision_number | body | integer | Revision number. |
ip_allocation | body | string | Allocation mode: immediate, deferred, or none (if present). |
dns_assignment | body | object | Internal DNS assignment (hostname, ip_address, fqdn). |
dns_domain | body | string | DNS domain. |
dns_name | body | string | DNS name. |
hints | body | object | OVS Userspace Tx packet steering hints (admin-only) if present. |
numa_affinity_policy (Optional) | body | string | NUMA affinity policy: none, required, preferred, or legacy. |
propagate_uplink_status | body | boolean | Uplink status propagation flag. |
mac_learning_enabled (Optional) | body | boolean | Whether MAC learning is enabled. |
port_trusted_vif | body | boolean | Trusted VIF status (also in binding:profile). |
data_plane_status | body | string | Underlying data plane status if reported. |
Status Codes
Success
| Code | Reason |
|---|---|
| 200 - OK | Request was successful. |
Error
| Code | Reason |
|---|---|
| 401 - Unauthorized | User must authenticate before making a request. |
| 404 - Not Found | The requested port could not be found. |
Example Response
{
"port": {
"id": "2d74fa0c-3e43-4fd9-a234-cbb4996cc684",
"name": "private-port",
"network_id": "f858b8d1-e66b-4a48-bc2e-3f16483b1b58",
"tenant_id": "f33507157a634f1cac71e06a70fb558e",
"mac_address": "fa:16:3e:7f:ae:b2",
"admin_state_up": true,
"status": "DOWN",
"device_id": "",
"device_owner": "",
"fixed_ips": [
{
"subnet_id": "adffaac8-2261-43f7-9e4f-6044230f65f1",
"ip_address": "192.168.1.12"
}
],
"allowed_address_pairs": [],
"extra_dhcp_opts": [],
"security_groups": [
"e1c1aa83-7302-4493-9cf4-43c2407e8074"
],
"description": "",
"binding:vnic_type": "normal",
"port_security_enabled": true,
"qos_policy_id": null,
"qos_network_policy_id": "dfc42ced-02c8-4b1f-bbe6-14cc014f259d",
"tags": [],
"created_at": "2025-10-08T08:05:12Z",
"updated_at": "2025-10-08T08:05:12Z",
"revision_number": 1,
"project_id": "f33507157a634f1cac71e06a70fb558e"
}
}