Keyframe_insert property "bevel_factor_end" not found

The script:

import bpy

for obj in bpy.context.selected_objects:
    print(obj)
    obj.data.bevel_factor_end = 1
    
    # Error happens here
    obj.keyframe_insert(data_path="bevel_factor_end", frame=96)

Output:

<bpy_struct, Object("Curve.005")>
Traceback (most recent call last):
  File "D:\Workshop\project.blend\resolution", line 6, in <module>
TypeError: bpy_struct.keyframe_insert() property "bevel_factor_end" not found
Error: Python script failed, check the message in the system console

I’m trying to add a keyframe to a property called “bevel_factor_end”. It is a Curve object. But I can’t insert the keyframe because apparently “bevel_factor_end” is not found. Even though I am able to edit it through

obj.data.bevel_factor_end = 1

been stuck with the same problem
this obj.keyframe_insert need to be fixed to obj.data.keyframe_insert