Create Custom Profiles from Scratch via the SOAP API
It’s easier to configure custom profiles to have the permissions you need. Use the Profile SOAP API object to create custom profiles that start without any permissions enabled. Previously, to create a custom profile, you cloned an existing profile in Setup and then removed permissions that you didn’t want the assigned users to have. The Profile Metadata API type functions as before.
Where: This change applies to Lightning Experience and Salesforce Classic in Professional, Enterprise, Performance, Unlimited, and Developer editions.
How: Use the create() call on the Profile SOAP API object and specify the Description, Name, and UserLicenseId fields. You can enable permissions using the API or, after the profile is created, on the profile’s page in Setup. Required permissions for the profile’s user license are automatically enabled.
Create Custom Profiles from Scratch via the SOAP API (salesforce.com)