The XML-RPC API endpoint for creating a custom field requires a parameter headerID . This is the ID of the custom field header the newly created field should reside under.
However in Keap Max and Pro you don’t have access in the UI to create a custom field header. Does that mean there is no method to create a custom field via the API for Max and Pro?
After a little experimenting. For Pro/Max you can use XML/RPC to create a custom field tab, custom field group, to add your new field to just as you would for Max Classic. Pro/Max will basically ignore the tab/group. In REST this is done for you automatically by creating a defaults for the tab and group if you omit it. However Pro/Max only supports Contact and Company custom fields. XML/RPC will allow you to create custom fields for Contact Actions (Note, Legacy Appointments, Tasks) for Pro/Max but you can’t use them in the UI.
Via DataService.add yes it is read only, but you can add them via these DataService methods DataService.getOrAddCustomTab and DataService.getOrAddCustomGroup
I also just realized these are missing from our docs (sigh). I will post a sample payload.