In the Marketo Documentation for Custom Activities it barely mentions the "API Name" when creating fields for Custom Activities:
5. Name the field. The Api Name auto-populates. When you're done, click Save.
That is all that is says about the API Name.
The documentation for the REST API to populate a custom activity only says that using it is optional.
I have done some tests, and found that you must pass in the Field Name for Custom Activities, but the apiName is not required and seems to do absolutely nothing?
So what is is used for? Surely if the UI supports adding an API Name for a custom activity field, and the API supports passing it in, it must have some purpose?