How do I run an existing add-on via the python API?
Addons register panels and operators

An addon when enabled registers panels and operators and properties etc it uses. An operator, or set of, is generally the means an addon uses to "run".

The addon tells us where to look for the operator in the UI, in this case object menu &gt; quick effects &gt; Cell Fracture.  With developer extras turned on will see the operator is bpy.ops.object.add_fracture_cell()



To the python console.  What's important here is the module name, using code from question

&gt;&gt;&gt; for mod in addon_utils.modules():
...     if mod.bl_info['name'] == 'Cell Fracture': 
...         mod
...         
&lt;module 'object_fracture_cell' from '/home/batfinger/blender-git/v2.8/bin/2.83/scripts/addons/object_fracture_cell/__init__.py'&gt;


To enable the addon

&gt;&gt;&gt; addon_utils.enable("object_fracture_cell")
&lt;module 'object_fracture_cell' from '/home/batfinger/blender-git/v2.8/bin/2.83/scripts/addons/object_fracture_cell/__init__.py'&gt;


Note this pretty much calls the modules register() method. and could also be done via

object_fracture_cell.register()


Inspect the module. Could eyeball this, via code or UI as described above.

Similarly to https://blender.stackexchange.com/a/163366/15543 instead of panels will look for operators

&gt;&gt;&gt; for p in dir(object_fracture_cell):
...     x = getattr(object_fracture_cell, p)
...     if inspect.isclass(x) and issubclass(x, bpy.types.Operator):
...         x, getattr(x, "bl_idname", "None")
...         
(&lt;class 'object_fracture_cell.FractureCell'&gt;, 'object.add_fracture_cell_objects')
(&lt;class 'bpy_types.Operator'&gt;, "None")

&gt;&gt;&gt; 


Telling us that cell fracture has one operator

bpy.ops.object.add_fracture_cell_objects()


Autocomplete gives us the arguments available to the operator

&gt;&gt;&gt; bpy.ops.object.add_fracture_cell_objects(
add_fracture_cell_objects()
    &gt;&gt;&gt; bpy.ops.object.add_fracture_cell_objects(
add_fracture_cell_objects()
bpy.ops.object.add_fracture_cell_objects(
        source={'PARTICLE_OWN'},
        source_limit=100, 
        source_noise=0, 
        cell_scale=(1, 1, 1), 
        recursion=0, 
        recursion_source_limit=8, 
        recursion_clamp=250, 
        recursion_chance=0.25, 
        recursion_chance_select='SIZE_MIN', 
        use_smooth_faces=False, 
        use_sharp_edges=True, 
        use_sharp_edges_apply=True, 
        use_data_match=True, 
        use_island_split=True, 
        margin=0.001, 
        material_index=0, 
        use_interior_vgroup=False, 
        mass_mode='VOLUME', 
        mass=1, 
        use_recenter=True, 
        use_remove_original=True, 
        collection_name="", 
        use_debug_points=False, 
        use_debug_redraw=True, 
        use_debug_bool=False)
(undocumented operator)


In lieu of usng documentation link, while migratory