For Android only - the short answer is no. you can allow your users to add a new contact without any permission.
To do that, call the following intent (here with example of adding the new contact with some phone numner):
Intent intent = new Intent(Intent.ACTION_INSERT, Contacts.CONTENT_URI);
intent.putExtra(ContactsContract.Intents.Insert.PHONE, phoneNumber);
startActivity(intent);
You can check all the other types of info you can put on that contact here:
https://developer.android.com/reference/android/provider/ContactsContract.Intents.Insert
Note that this method will open the contact-editor screen with that data pre-filled, in which the user can edit the info, and click "save" when done.
If you want the entire experience to be seamless and in the background without any user interaction, you will need the WRITE_CONTACTS
permission, and to do that using ContactsContract
APIs