--- title: "system.opc.readValues" description: "This function is equivalent to the system.opc.readValue function, except that it can operate in bulk." --- # system.opc.readValues > This function is equivalent to the system.opc.readValue function, except that it can operate in bulk. This function is used in **Python Scripting**. ## Description This function is equivalent to the system.opc.readValue function, except that it can operate in bulk. You can specify a list of multiple addresses to read from, and you will receive a list of the same length, where each entry is the qualified value object for the corresponding address. ## Client Permission Restrictions This scripting function has no [Client Permission](../../../ignition-modules/vision/vision-project-properties/vision-project-properties.md#vision-permissions-properties) restrictions. ## Syntax `system.opc.readValues(opcServer, itemPaths)` ### Parameters Type | Parameter | Description ------- | ------- | ------ String| `opcServer` | The name of the OPC server connection in which the items reside. List[String]| `itemPaths` | A list of strings, each representing an item path, or address to read from. ### Returns **List[QualifiedValue]** - A sequence of [QualifedValue](https://sdk.inductiveautomation.com/javadoc/ignition81/latest/com/inductiveautomation/ignition/common/model/values/QualifiedValue.html) objects, one for each address specified, in order. Each object contains a value, quality, and timestamp returned from the OPC server for the corresponding address. ### Scope Gateway, Vision Client, Perspective Session ## Code Examples ```python title="Code Snippet" # This example will read values from a Tag provider called "testSimTags". # Declare list values for itemPaths parameter itemPaths = ['[testSimTags]_Meta:Random/RandomInteger1', '[testSimTags]_Meta:Random/RandomInteger1'] # Call the system function system.opc.readValues('Ignition OPC UA Server', itemPaths) ```