This is a workaround and I hope there is (or will eventually be) an easier way to access point cloud data in the API. [![enter image description here][1]][1] In your GN tree add an *Instance on Points* node, plug in a *Mesh Line* set to a *Count* of 1 to get a single vertex at $(0, 0, 0)$. [![enter image description here][2]][2] In theory we should be able to access the vertices' geometry but for now the geometry is not "real". We need to realize the instances with a *Realize Instances* node. [![enter image description here][3]][3] Then, we need to access the evaluated mesh, after the GN modifier has been evaluated. For that we can use the [context dependency graph](https://blender.stackexchange.com/questions/146559/how-do-i-get-a-mesh-data-block-with-modifiers-and-shape-keys-applied-in-blender). ``` import bpy import numpy as np depsgraph = bpy.context.evaluated_depsgraph_get() obj = bpy.context.active_object.evaluated_get(depsgraph) coords = np.zeros(len(obj.data.vertices) * 3, dtype=float) obj.data.vertices.foreach_get("co", coords) print(coords) # This is a flattened array coords = coords.reshape(len(obj.data.vertices), 3) print(coords) # This is a 3D array ``` Result : [![enter image description here][4]][4] [1]: https://i.sstatic.net/JwnUd.png [2]: https://i.sstatic.net/FjvIy.png [3]: https://i.sstatic.net/PLvBR.png [4]: https://i.sstatic.net/2gTGW.png