How to create cell fracture in python
Add particle system as suggested here Python and particle system
Make sure the cell fracture addon is enabled, and call the operator
bpy.ops.object.add_cell_fracture_objects()

Which uses defaults as mapped out in doc string
&gt;&gt;&gt; bpy.ops.object.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=&quot;&quot;,
        use_debug_points=False,
        use_debug_redraw=True,
        use_debug_bool=False)
(undocumented operator)

Test code, produces result as in image above.
import bpy
from addon_utils import enable

# make sure cell fracture is enabled
enable(&quot;object_fracture_cell&quot;)

context = bpy.context

# Draw hemisphere of 1 m radius
bpy.ops.mesh.primitive_circle_add(
    radius=1, 
    enter_editmode=True, 
    align='WORLD', 
    location=(0, 0, 0), 
    fill_type='NGON',  # NOTHING  or NGON
    )
    
bpy.ops.mesh.bisect(
    plane_co=(0, 0, 0), 
    plane_no=(0, -1, 0), 
    clear_inner=True,
    )

bpy.ops.object.editmode_toggle()        
    
# Particles

ob = context.object
ps = ob.modifiers.new(&quot;Part&quot;, 'PARTICLE_SYSTEM').particle_system
ps.seed = 1
ps.settings.count = 100
ps.settings.frame_end = 1

# cell fracture

bpy.ops.object.add_fracture_cell_objects()