API error: This hapikey (...) does not have proper permissions!



I opened a support ticket, but they referred me here, I am just trying to find out what would cause the following error, we have HubSpot Sales Professional and are trying to use the API to update our contacts Opt-out status, since the tool won’t let us import that via CSV. We are getting this error:

[null] Hubspot: https://api.hubapi.com/email/public/v1/subscriptions/foobar%40gmail.com?hapikey=
Body: .
Response: 403 {“status”:“error”,“message”:“This hapikey (…) does not have proper permissions! (requires any of [email-access])”,“correlationId”:"",“requestId”:""}

Can anyone help with what would cause this error? We’ve already successfully used the API to import our contacts, we just need to update the opt-out status for customers that don’t want to be contacted via email.

Thanks in advance!


Hi @Peggy_Graham,

I think I already helped your account manager work through this, but I’m happy to help here. That error message is almost always caused by one of the following two reasons:

  1. You’re using the wrong hapikey. This is common when users create a developer portal, then try to use their developer hapikey to make requests to their production Marketing/CRM portal. If you’ve already used this hapikey successfully in your production Marketing/CRM portal, then this likely isn’t the cause of the error.
  2. Your portal doesn’t have access to the API you’re trying to access. For example, if you have a Marketing free portal you won’t be able to access the email API.



This is why we are confused - we have Sales Professional, and, we are using
the same hapikey we used to import all our contacts and companies in the
first place.

Since we already used this key to import our contacts, I think that rules
out #1. And, we do have a paid license of Sales professional, and I
thought the help said we could update this field via the API with sales
pro. How else are we to opt out users, since I can’t opt them out via CSV
import without having the marketing tool, and we have too many to do this
one at a time?

Can you verify if this requires a paid marketing version of hubspot?

Thank you,



Peggy Graham

Customer Success Specialist

Pivotal Tracker


Hi @Peggy_Graham,

Using the Email API (which includes the email subscriptions API) requires access to the paid Marketing product. Email subscription status is a part of the Marketing email tool, and doesn’t apply to the Sales product. Sales emails can still be sent to opted out contacts, since they are 1 to 1 emails sent via a connected inbox instead of 1 to many emails sent via the HubSpot marketing email platform.

If you have contacts that have requested they not be contacted by sales people, your best bet would be to create a custom contact property (e.g. “Do not contact”) that reflects this desire so that your salespeople can see who they should/should not email.


That explains it then. Since there ARE sequences in Sales Professional, we assumed we could still opt out users. Plus, we have imported all our admin users, but some don’t want to be contacted at all, so we had hoped that HubSpot would help us make sure we didn’t accidentally email a customer that didn’t want to be contacted.

I think this is a feature that should be added to sales as well as marketing, sales people should most certainly be encouraged to NOT spam people just as much as marketing!

We did create a custom field for this, and will try to make sure we always check it, but this is a much more error-prone approach than if the tool enforced this for us.


Hi @Peggy_Graham,

I definitely understand that use case. We’re actively building for that use case now, with the sequences unsubscribe in beta: