Reliable tracking of opt-outs and hard-bounces

Hi folks, our public API is one way to get this information: https://developers.hubspot.com/docs/methods/email/get_status

if …

"bounced":true,<code></code>

then the contact is hard bounced.

Until there is a better solution it is important to know the “Emails Bounced” property is not a representation of currently ineligible contacts (contacts in ‘Not Sent’) for a multitude of reasons:
* The Emails Bounced property will not increment for global bounces. However, we will put the contact in the Not Sent category if it is globally bounced. An email becomes globally bounced if we received a permanent error when emailing that address in the past. Permanent errors in this case are bounce messages that indicate if an inbox has been disabled, or if there is a typo in the address).
* The Emails Bounced property will increment for soft bounces. They increment the Emails Bounced property but they will not put a contact in the Not Sent category.
* The Emails Bounced property will not reset to 0 if a contact’s email address is updated, however, we will attempt to send to that contact again if the contact’s email address is updated.

* The Emails Bounced property will not reset to zero if the contact is unbounced, by Support, or in-app.
* We put contacts in the Not Sent category without ever sending them an email if there is no MX record set up at their domain. The lack of an MX record shows that the domain can not send or receive email, and therefore we do not have to attempt to send the email to know that it will not deliver. These contacts will end up in Not Sent but their Emails Bounced will be 0.

Use this workaround for creating a list of ineligible (hard bounced) contacts if the using the API is not an option:
https://knowledge.hubspot.com/articles/kcs_article/email/how-do-i-create-a-list-of-bounced-email-addresses