Question

API endpoint to check if a single profile is globally excluded/suppressed.

  • 14 December 2021
  • 2 replies
  • 46 views

Badge

I’m making an interface to allow for our team and customers to manage email preferences. This interface uses the Klaviyo API, and we’ve managed to come up with a solution that works for us using custom profile properties. We can create segments based on the values of the custom properties.

I can retrieve profile data by email address or Klaviyo ID. I use the following endpoints:

  • /api/v2/people/search
  • /api/v1/person/[PROFILE ID]

The problem is that the profile does not show if the person is globally excluded/suppressed.

I’d like to know if that profile is globally excluded/suppressed, but it looks like my option is to pull down the entire set of data using the /api/v1/people/exclusions endpoint. I’d have to loop through all of the results just to see if this single email address is excluded/suppressed.

Yes, I know that I can use the API to see if somebody is unsubscribed from a list, but we have multiple lists, and performing several API requests to check those lists is no more efficient than looping through the entire set of global exclusions.

So, I’m wondering how everyone else would handle this. If a person was to use a link in one of our emails and globally unsubscribe, it would be important for everyone to see that on our side, but pulling down the whole set of exclusions every time we load a local profile page seems inefficient. What should I do about this?


2 replies

Hey there! I’m a product manager at Klaviyo working on our APIs -- you are correct that we don’t easily expose this data at the profile level, and I’m sorry that you’re having to work around this issue by cross-referencing the full list of global exclusions with individual list memberships. As it happens, I’m in the process of gathering user feedback about this set of APIs to inform some redesign work we plan to tackle in 2022, and I’ve heard this exact issue come up a fair bit. Would you be open to speaking with me directly so I can make sure we’re accounting for your use case in our future API designs?

Thanks!

- Ben

Badge

Yes, I’d be open to speaking to you directly.

Reply