1. Packages
  2. Packages
  3. Proxmox Virtual Environment (Proxmox VE)
  4. API Docs
  5. hardware
  6. getPci
Viewing docs for Proxmox Virtual Environment (Proxmox VE) v8.2.1
published on Wednesday, May 20, 2026 by Daniel Muehlbachler-Pietrzykowski
proxmoxve logo
Viewing docs for Proxmox Virtual Environment (Proxmox VE) v8.2.1
published on Wednesday, May 20, 2026 by Daniel Muehlbachler-Pietrzykowski

    Retrieves the list of PCI devices present on a specific Proxmox VE node. This is useful for discovering PCI devices available for passthrough or for configuring hardware mappings.

    Example Usage

    import * as pulumi from "@pulumi/pulumi";
    import * as proxmoxve from "@muhlba91/pulumi-proxmoxve";
    
    // List all PCI devices on a node (using default blacklist)
    const example = proxmoxve.hardware.getPci({
        nodeName: "pve",
    });
    // List all PCI devices including bridges and memory controllers
    const all = proxmoxve.hardware.getPci({
        nodeName: "pve",
        pciClassBlacklists: [],
    });
    // Find all NVIDIA GPUs (vendor ID 10de = NVIDIA, class 03 = display controller)
    const gpus = proxmoxve.hardware.getPci({
        nodeName: "pve",
        pciClassBlacklists: [],
        filters: {
            vendorId: "10de",
            "class": "03",
        },
    });
    
    import pulumi
    import pulumi_proxmoxve as proxmoxve
    
    # List all PCI devices on a node (using default blacklist)
    example = proxmoxve.hardware.get_pci(node_name="pve")
    # List all PCI devices including bridges and memory controllers
    all = proxmoxve.hardware.get_pci(node_name="pve",
        pci_class_blacklists=[])
    # Find all NVIDIA GPUs (vendor ID 10de = NVIDIA, class 03 = display controller)
    gpus = proxmoxve.hardware.get_pci(node_name="pve",
        pci_class_blacklists=[],
        filters={
            "vendor_id": "10de",
            "class_": "03",
        })
    
    package main
    
    import (
    	"github.com/muhlba91/pulumi-proxmoxve/sdk/v8/go/proxmoxve/hardware"
    	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
    )
    
    func main() {
    	pulumi.Run(func(ctx *pulumi.Context) error {
    		// List all PCI devices on a node (using default blacklist)
    		_, err := hardware.GetPci(ctx, &hardware.GetPciArgs{
    			NodeName: "pve",
    		}, nil)
    		if err != nil {
    			return err
    		}
    		// List all PCI devices including bridges and memory controllers
    		_, err = hardware.GetPci(ctx, &hardware.GetPciArgs{
    			NodeName:           "pve",
    			PciClassBlacklists: []interface{}{},
    		}, nil)
    		if err != nil {
    			return err
    		}
    		// Find all NVIDIA GPUs (vendor ID 10de = NVIDIA, class 03 = display controller)
    		_, err = hardware.GetPci(ctx, &hardware.GetPciArgs{
    			NodeName:           "pve",
    			PciClassBlacklists: []interface{}{},
    			Filters: hardware.GetPciFilters{
    				VendorId: pulumi.StringRef("10de"),
    				Class:    pulumi.StringRef("03"),
    			},
    		}, nil)
    		if err != nil {
    			return err
    		}
    		return nil
    	})
    }
    
    using System.Collections.Generic;
    using System.Linq;
    using Pulumi;
    using ProxmoxVE = Pulumi.ProxmoxVE;
    
    return await Deployment.RunAsync(() => 
    {
        // List all PCI devices on a node (using default blacklist)
        var example = ProxmoxVE.Hardware.GetPci.Invoke(new()
        {
            NodeName = "pve",
        });
    
        // List all PCI devices including bridges and memory controllers
        var all = ProxmoxVE.Hardware.GetPci.Invoke(new()
        {
            NodeName = "pve",
            PciClassBlacklists = new() { },
        });
    
        // Find all NVIDIA GPUs (vendor ID 10de = NVIDIA, class 03 = display controller)
        var gpus = ProxmoxVE.Hardware.GetPci.Invoke(new()
        {
            NodeName = "pve",
            PciClassBlacklists = new() { },
            Filters = new ProxmoxVE.Hardware.Inputs.GetPciFiltersInputArgs
            {
                VendorId = "10de",
                Class = "03",
            },
        });
    
    });
    
    package generated_program;
    
    import com.pulumi.Context;
    import com.pulumi.Pulumi;
    import com.pulumi.core.Output;
    import com.pulumi.proxmoxve.hardware.HardwareFunctions;
    import com.pulumi.proxmoxve.hardware.inputs.GetPciArgs;
    import com.pulumi.proxmoxve.hardware.inputs.GetPciFiltersArgs;
    import java.util.ArrayList;
    import java.util.Arrays;
    import java.util.Map;
    import java.io.File;
    import java.nio.file.Files;
    import java.nio.file.Paths;
    
    public class App {
        public static void main(String[] args) {
            Pulumi.run(App::stack);
        }
    
        public static void stack(Context ctx) {
            // List all PCI devices on a node (using default blacklist)
            final var example = HardwareFunctions.getPci(GetPciArgs.builder()
                .nodeName("pve")
                .build());
    
            // List all PCI devices including bridges and memory controllers
            final var all = HardwareFunctions.getPci(GetPciArgs.builder()
                .nodeName("pve")
                .pciClassBlacklists()
                .build());
    
            // Find all NVIDIA GPUs (vendor ID 10de = NVIDIA, class 03 = display controller)
            final var gpus = HardwareFunctions.getPci(GetPciArgs.builder()
                .nodeName("pve")
                .pciClassBlacklists()
                .filters(GetPciFiltersArgs.builder()
                    .vendorId("10de")
                    .class_("03")
                    .build())
                .build());
    
        }
    }
    
    variables:
      # List all PCI devices on a node (using default blacklist)
      example:
        fn::invoke:
          function: proxmoxve:hardware:getPci
          arguments:
            nodeName: pve
      # List all PCI devices including bridges and memory controllers
      all:
        fn::invoke:
          function: proxmoxve:hardware:getPci
          arguments:
            nodeName: pve
            pciClassBlacklists: []
      # Find all NVIDIA GPUs (vendor ID 10de = NVIDIA, class 03 = display controller)
      gpus:
        fn::invoke:
          function: proxmoxve:hardware:getPci
          arguments:
            nodeName: pve
            pciClassBlacklists: []
            filters:
              vendorId: 10de
              class: '03'
    
    Example coming soon!
    

    Using getPci

    Two invocation forms are available. The direct form accepts plain arguments and either blocks until the result value is available, or returns a Promise-wrapped result. The output form accepts Input-wrapped arguments and returns an Output-wrapped result.

    function getPci(args: GetPciArgs, opts?: InvokeOptions): Promise<GetPciResult>
    function getPciOutput(args: GetPciOutputArgs, opts?: InvokeOptions): Output<GetPciResult>
    def get_pci(filters: Optional[GetPciFilters] = None,
                node_name: Optional[str] = None,
                pci_class_blacklists: Optional[Sequence[str]] = None,
                opts: Optional[InvokeOptions] = None) -> GetPciResult
    def get_pci_output(filters: pulumi.Input[Optional[GetPciFiltersArgs]] = None,
                node_name: pulumi.Input[Optional[str]] = None,
                pci_class_blacklists: pulumi.Input[Optional[Sequence[pulumi.Input[str]]]] = None,
                opts: Optional[InvokeOptions] = None) -> Output[GetPciResult]
    func GetPci(ctx *Context, args *GetPciArgs, opts ...InvokeOption) (*GetPciResult, error)
    func GetPciOutput(ctx *Context, args *GetPciOutputArgs, opts ...InvokeOption) GetPciResultOutput

    > Note: This function is named GetPci in the Go SDK.

    public static class GetPci 
    {
        public static Task<GetPciResult> InvokeAsync(GetPciArgs args, InvokeOptions? opts = null)
        public static Output<GetPciResult> Invoke(GetPciInvokeArgs args, InvokeOptions? opts = null)
    }
    public static CompletableFuture<GetPciResult> getPci(GetPciArgs args, InvokeOptions options)
    public static Output<GetPciResult> getPci(GetPciArgs args, InvokeOptions options)
    
    fn::invoke:
      function: proxmoxve:hardware/getPci:getPci
      arguments:
        # arguments dictionary
    data "proxmoxve_hardware_getpci" "name" {
        # arguments
    }

    The following arguments are supported:

    NodeName string
    The name of the node to list PCI devices from.
    Filters Pulumi.ProxmoxVE.Hardware.Inputs.GetPciFilters
    Client-side filters for narrowing down results. All filters use prefix matching.
    PciClassBlacklists List<string>
    A list of PCI class IDs (hex prefixes) to exclude from the results. If not set, the Proxmox default blacklist is used which filters out memory controllers (05), bridges (06), and processors (0b). Set to an empty list to return all devices.
    NodeName string
    The name of the node to list PCI devices from.
    Filters GetPciFilters
    Client-side filters for narrowing down results. All filters use prefix matching.
    PciClassBlacklists []string
    A list of PCI class IDs (hex prefixes) to exclude from the results. If not set, the Proxmox default blacklist is used which filters out memory controllers (05), bridges (06), and processors (0b). Set to an empty list to return all devices.
    node_name string
    The name of the node to list PCI devices from.
    filters object
    Client-side filters for narrowing down results. All filters use prefix matching.
    pci_class_blacklists list(string)
    A list of PCI class IDs (hex prefixes) to exclude from the results. If not set, the Proxmox default blacklist is used which filters out memory controllers (05), bridges (06), and processors (0b). Set to an empty list to return all devices.
    nodeName String
    The name of the node to list PCI devices from.
    filters GetPciFilters
    Client-side filters for narrowing down results. All filters use prefix matching.
    pciClassBlacklists List<String>
    A list of PCI class IDs (hex prefixes) to exclude from the results. If not set, the Proxmox default blacklist is used which filters out memory controllers (05), bridges (06), and processors (0b). Set to an empty list to return all devices.
    nodeName string
    The name of the node to list PCI devices from.
    filters GetPciFilters
    Client-side filters for narrowing down results. All filters use prefix matching.
    pciClassBlacklists string[]
    A list of PCI class IDs (hex prefixes) to exclude from the results. If not set, the Proxmox default blacklist is used which filters out memory controllers (05), bridges (06), and processors (0b). Set to an empty list to return all devices.
    node_name str
    The name of the node to list PCI devices from.
    filters GetPciFilters
    Client-side filters for narrowing down results. All filters use prefix matching.
    pci_class_blacklists Sequence[str]
    A list of PCI class IDs (hex prefixes) to exclude from the results. If not set, the Proxmox default blacklist is used which filters out memory controllers (05), bridges (06), and processors (0b). Set to an empty list to return all devices.
    nodeName String
    The name of the node to list PCI devices from.
    filters Property Map
    Client-side filters for narrowing down results. All filters use prefix matching.
    pciClassBlacklists List<String>
    A list of PCI class IDs (hex prefixes) to exclude from the results. If not set, the Proxmox default blacklist is used which filters out memory controllers (05), bridges (06), and processors (0b). Set to an empty list to return all devices.

    getPci Result

    The following output properties are available:

    Devices List<Pulumi.ProxmoxVE.Hardware.Outputs.GetPciDevice>
    The list of PCI devices.
    Id string
    The provider-assigned unique ID for this managed resource.
    NodeName string
    The name of the node to list PCI devices from.
    Filters Pulumi.ProxmoxVE.Hardware.Outputs.GetPciFilters
    Client-side filters for narrowing down results. All filters use prefix matching.
    PciClassBlacklists List<string>
    A list of PCI class IDs (hex prefixes) to exclude from the results. If not set, the Proxmox default blacklist is used which filters out memory controllers (05), bridges (06), and processors (0b). Set to an empty list to return all devices.
    Devices []GetPciDevice
    The list of PCI devices.
    Id string
    The provider-assigned unique ID for this managed resource.
    NodeName string
    The name of the node to list PCI devices from.
    Filters GetPciFilters
    Client-side filters for narrowing down results. All filters use prefix matching.
    PciClassBlacklists []string
    A list of PCI class IDs (hex prefixes) to exclude from the results. If not set, the Proxmox default blacklist is used which filters out memory controllers (05), bridges (06), and processors (0b). Set to an empty list to return all devices.
    devices list(object)
    The list of PCI devices.
    id string
    The provider-assigned unique ID for this managed resource.
    node_name string
    The name of the node to list PCI devices from.
    filters object
    Client-side filters for narrowing down results. All filters use prefix matching.
    pci_class_blacklists list(string)
    A list of PCI class IDs (hex prefixes) to exclude from the results. If not set, the Proxmox default blacklist is used which filters out memory controllers (05), bridges (06), and processors (0b). Set to an empty list to return all devices.
    devices List<GetPciDevice>
    The list of PCI devices.
    id String
    The provider-assigned unique ID for this managed resource.
    nodeName String
    The name of the node to list PCI devices from.
    filters GetPciFilters
    Client-side filters for narrowing down results. All filters use prefix matching.
    pciClassBlacklists List<String>
    A list of PCI class IDs (hex prefixes) to exclude from the results. If not set, the Proxmox default blacklist is used which filters out memory controllers (05), bridges (06), and processors (0b). Set to an empty list to return all devices.
    devices GetPciDevice[]
    The list of PCI devices.
    id string
    The provider-assigned unique ID for this managed resource.
    nodeName string
    The name of the node to list PCI devices from.
    filters GetPciFilters
    Client-side filters for narrowing down results. All filters use prefix matching.
    pciClassBlacklists string[]
    A list of PCI class IDs (hex prefixes) to exclude from the results. If not set, the Proxmox default blacklist is used which filters out memory controllers (05), bridges (06), and processors (0b). Set to an empty list to return all devices.
    devices Sequence[GetPciDevice]
    The list of PCI devices.
    id str
    The provider-assigned unique ID for this managed resource.
    node_name str
    The name of the node to list PCI devices from.
    filters GetPciFilters
    Client-side filters for narrowing down results. All filters use prefix matching.
    pci_class_blacklists Sequence[str]
    A list of PCI class IDs (hex prefixes) to exclude from the results. If not set, the Proxmox default blacklist is used which filters out memory controllers (05), bridges (06), and processors (0b). Set to an empty list to return all devices.
    devices List<Property Map>
    The list of PCI devices.
    id String
    The provider-assigned unique ID for this managed resource.
    nodeName String
    The name of the node to list PCI devices from.
    filters Property Map
    Client-side filters for narrowing down results. All filters use prefix matching.
    pciClassBlacklists List<String>
    A list of PCI class IDs (hex prefixes) to exclude from the results. If not set, the Proxmox default blacklist is used which filters out memory controllers (05), bridges (06), and processors (0b). Set to an empty list to return all devices.

    Supporting Types

    GetPciDevice

    Class string
    The PCI class code (hex, e.g. 0x030000).
    Device string
    The PCI device ID (hex, e.g. 0x5916).
    DeviceName string
    The human-readable device name.
    Id string
    The PCI address in domain:bus:device.function format (e.g. 0000:00:02.0).
    IommuGroup int
    The IOMMU group number. -1 indicates that the device is not in an IOMMU group.
    Mdev bool
    Whether the device supports mediated devices (vGPU).
    SubsystemDevice string
    The PCI subsystem device ID (hex).
    SubsystemDeviceName string
    The human-readable subsystem device name.
    SubsystemVendor string
    The PCI subsystem vendor ID (hex).
    SubsystemVendorName string
    The human-readable subsystem vendor name.
    Vendor string
    The PCI vendor ID (hex, e.g. 0x8086).
    VendorName string
    The human-readable vendor name (e.g. Intel Corporation).
    Class string
    The PCI class code (hex, e.g. 0x030000).
    Device string
    The PCI device ID (hex, e.g. 0x5916).
    DeviceName string
    The human-readable device name.
    Id string
    The PCI address in domain:bus:device.function format (e.g. 0000:00:02.0).
    IommuGroup int
    The IOMMU group number. -1 indicates that the device is not in an IOMMU group.
    Mdev bool
    Whether the device supports mediated devices (vGPU).
    SubsystemDevice string
    The PCI subsystem device ID (hex).
    SubsystemDeviceName string
    The human-readable subsystem device name.
    SubsystemVendor string
    The PCI subsystem vendor ID (hex).
    SubsystemVendorName string
    The human-readable subsystem vendor name.
    Vendor string
    The PCI vendor ID (hex, e.g. 0x8086).
    VendorName string
    The human-readable vendor name (e.g. Intel Corporation).
    class string
    The PCI class code (hex, e.g. 0x030000).
    device string
    The PCI device ID (hex, e.g. 0x5916).
    device_name string
    The human-readable device name.
    id string
    The PCI address in domain:bus:device.function format (e.g. 0000:00:02.0).
    iommu_group number
    The IOMMU group number. -1 indicates that the device is not in an IOMMU group.
    mdev bool
    Whether the device supports mediated devices (vGPU).
    subsystem_device string
    The PCI subsystem device ID (hex).
    subsystem_device_name string
    The human-readable subsystem device name.
    subsystem_vendor string
    The PCI subsystem vendor ID (hex).
    subsystem_vendor_name string
    The human-readable subsystem vendor name.
    vendor string
    The PCI vendor ID (hex, e.g. 0x8086).
    vendor_name string
    The human-readable vendor name (e.g. Intel Corporation).
    class_ String
    The PCI class code (hex, e.g. 0x030000).
    device String
    The PCI device ID (hex, e.g. 0x5916).
    deviceName String
    The human-readable device name.
    id String
    The PCI address in domain:bus:device.function format (e.g. 0000:00:02.0).
    iommuGroup Integer
    The IOMMU group number. -1 indicates that the device is not in an IOMMU group.
    mdev Boolean
    Whether the device supports mediated devices (vGPU).
    subsystemDevice String
    The PCI subsystem device ID (hex).
    subsystemDeviceName String
    The human-readable subsystem device name.
    subsystemVendor String
    The PCI subsystem vendor ID (hex).
    subsystemVendorName String
    The human-readable subsystem vendor name.
    vendor String
    The PCI vendor ID (hex, e.g. 0x8086).
    vendorName String
    The human-readable vendor name (e.g. Intel Corporation).
    class string
    The PCI class code (hex, e.g. 0x030000).
    device string
    The PCI device ID (hex, e.g. 0x5916).
    deviceName string
    The human-readable device name.
    id string
    The PCI address in domain:bus:device.function format (e.g. 0000:00:02.0).
    iommuGroup number
    The IOMMU group number. -1 indicates that the device is not in an IOMMU group.
    mdev boolean
    Whether the device supports mediated devices (vGPU).
    subsystemDevice string
    The PCI subsystem device ID (hex).
    subsystemDeviceName string
    The human-readable subsystem device name.
    subsystemVendor string
    The PCI subsystem vendor ID (hex).
    subsystemVendorName string
    The human-readable subsystem vendor name.
    vendor string
    The PCI vendor ID (hex, e.g. 0x8086).
    vendorName string
    The human-readable vendor name (e.g. Intel Corporation).
    class_ str
    The PCI class code (hex, e.g. 0x030000).
    device str
    The PCI device ID (hex, e.g. 0x5916).
    device_name str
    The human-readable device name.
    id str
    The PCI address in domain:bus:device.function format (e.g. 0000:00:02.0).
    iommu_group int
    The IOMMU group number. -1 indicates that the device is not in an IOMMU group.
    mdev bool
    Whether the device supports mediated devices (vGPU).
    subsystem_device str
    The PCI subsystem device ID (hex).
    subsystem_device_name str
    The human-readable subsystem device name.
    subsystem_vendor str
    The PCI subsystem vendor ID (hex).
    subsystem_vendor_name str
    The human-readable subsystem vendor name.
    vendor str
    The PCI vendor ID (hex, e.g. 0x8086).
    vendor_name str
    The human-readable vendor name (e.g. Intel Corporation).
    class String
    The PCI class code (hex, e.g. 0x030000).
    device String
    The PCI device ID (hex, e.g. 0x5916).
    deviceName String
    The human-readable device name.
    id String
    The PCI address in domain:bus:device.function format (e.g. 0000:00:02.0).
    iommuGroup Number
    The IOMMU group number. -1 indicates that the device is not in an IOMMU group.
    mdev Boolean
    Whether the device supports mediated devices (vGPU).
    subsystemDevice String
    The PCI subsystem device ID (hex).
    subsystemDeviceName String
    The human-readable subsystem device name.
    subsystemVendor String
    The PCI subsystem vendor ID (hex).
    subsystemVendorName String
    The human-readable subsystem vendor name.
    vendor String
    The PCI vendor ID (hex, e.g. 0x8086).
    vendorName String
    The human-readable vendor name (e.g. Intel Corporation).

    GetPciFilters

    Class string
    Filter by PCI class code prefix (e.g. 03 to match all display controllers). The 0x prefix in class codes is stripped before matching.
    DeviceId string
    Filter by device ID prefix. The 0x prefix in device IDs is stripped before matching.
    Id string
    Filter by PCI address prefix (e.g. 0000:01 to match all devices on bus 01).
    VendorId string
    Filter by vendor ID prefix (e.g. 8086 for Intel devices). The 0x prefix in vendor IDs is stripped before matching.
    Class string
    Filter by PCI class code prefix (e.g. 03 to match all display controllers). The 0x prefix in class codes is stripped before matching.
    DeviceId string
    Filter by device ID prefix. The 0x prefix in device IDs is stripped before matching.
    Id string
    Filter by PCI address prefix (e.g. 0000:01 to match all devices on bus 01).
    VendorId string
    Filter by vendor ID prefix (e.g. 8086 for Intel devices). The 0x prefix in vendor IDs is stripped before matching.
    class string
    Filter by PCI class code prefix (e.g. 03 to match all display controllers). The 0x prefix in class codes is stripped before matching.
    device_id string
    Filter by device ID prefix. The 0x prefix in device IDs is stripped before matching.
    id string
    Filter by PCI address prefix (e.g. 0000:01 to match all devices on bus 01).
    vendor_id string
    Filter by vendor ID prefix (e.g. 8086 for Intel devices). The 0x prefix in vendor IDs is stripped before matching.
    class_ String
    Filter by PCI class code prefix (e.g. 03 to match all display controllers). The 0x prefix in class codes is stripped before matching.
    deviceId String
    Filter by device ID prefix. The 0x prefix in device IDs is stripped before matching.
    id String
    Filter by PCI address prefix (e.g. 0000:01 to match all devices on bus 01).
    vendorId String
    Filter by vendor ID prefix (e.g. 8086 for Intel devices). The 0x prefix in vendor IDs is stripped before matching.
    class string
    Filter by PCI class code prefix (e.g. 03 to match all display controllers). The 0x prefix in class codes is stripped before matching.
    deviceId string
    Filter by device ID prefix. The 0x prefix in device IDs is stripped before matching.
    id string
    Filter by PCI address prefix (e.g. 0000:01 to match all devices on bus 01).
    vendorId string
    Filter by vendor ID prefix (e.g. 8086 for Intel devices). The 0x prefix in vendor IDs is stripped before matching.
    class_ str
    Filter by PCI class code prefix (e.g. 03 to match all display controllers). The 0x prefix in class codes is stripped before matching.
    device_id str
    Filter by device ID prefix. The 0x prefix in device IDs is stripped before matching.
    id str
    Filter by PCI address prefix (e.g. 0000:01 to match all devices on bus 01).
    vendor_id str
    Filter by vendor ID prefix (e.g. 8086 for Intel devices). The 0x prefix in vendor IDs is stripped before matching.
    class String
    Filter by PCI class code prefix (e.g. 03 to match all display controllers). The 0x prefix in class codes is stripped before matching.
    deviceId String
    Filter by device ID prefix. The 0x prefix in device IDs is stripped before matching.
    id String
    Filter by PCI address prefix (e.g. 0000:01 to match all devices on bus 01).
    vendorId String
    Filter by vendor ID prefix (e.g. 8086 for Intel devices). The 0x prefix in vendor IDs is stripped before matching.

    Package Details

    Repository
    proxmoxve muhlba91/pulumi-proxmoxve
    License
    Apache-2.0
    Notes
    This Pulumi package is based on the proxmox Terraform Provider.
    proxmoxve logo
    Viewing docs for Proxmox Virtual Environment (Proxmox VE) v8.2.1
    published on Wednesday, May 20, 2026 by Daniel Muehlbachler-Pietrzykowski
      Try Pulumi Cloud free. Your team will thank you.