You do not have to. At least iOS allows you to select if you want to give access to all contacts, specific contacts or no contacts at all.
It’s like many of the messaging apps: how would you be able to select to whom to send money if you don’t share the contacts
How does this work? Spotify allows free access to their APIs?