How to add a LightProbe to the scene without using bpy.ops.object.lightprobe_add()?
You are on the right track

Check your version. The code below adds a lightprobe to the scene as expected.

Using python console

&gt;&gt;&gt; D.lightprobes.new(
new()
BlendDataProbes.new(name, type)
Add a new probe to the main database


See the options for type by deliberately getting it wrong (Or consult the docs) Note somewhere between 2.80 and 2.83  type has been added to the BlendDataProbes.new(...)(current, currently 2.81) BlendDataProbes.new(...)(master currently 2.83) method.

&gt;&gt;&gt; D.lightprobes.new("Some Name", 'SOMETYPE')
Traceback (most recent call last):
  File "&lt;blender_console&gt;", line 1, in &lt;module&gt;
TypeError: BlendDataProbes.new(): error with argument 2, "type" -  enum "SOMETYPE" not found in ('CUBE', 'PLANAR', 'GRID')


Add a cube probe, link to a new object, link object to collection

&gt;&gt;&gt; lp = D.lightprobes.new("LP", 'CUBE')
&gt;&gt;&gt; foo = D.objects.new("Foo", lp)
&gt;&gt;&gt; C.collection.objects.link(foo)
&gt;&gt;&gt; foo
bpy.data.objects['Foo']

&gt;&gt;&gt; foo.type
'LIGHT_PROBE'

&gt;&gt;&gt; foo.data.type
'CUBEMAP'


&gt;&gt;&gt; bpy.app.version
(2, 83, 1)