{"id":1388,"date":"2025-09-10T10:03:55","date_gmt":"2025-09-10T10:03:55","guid":{"rendered":"http:\/\/gogetmuscle.com\/?p=1388"},"modified":"2025-09-10T17:40:26","modified_gmt":"2025-09-10T17:40:26","slug":"are-all-v1-apis-being-sunset-after-30th-september-2025","status":"publish","type":"post","link":"http:\/\/gogetmuscle.com\/index.php\/2025\/09\/10\/are-all-v1-apis-being-sunset-after-30th-september-2025\/","title":{"rendered":"Are all v1 APIs being sunset after 30th September 2025?"},"content":{"rendered":"

How we are using the HubSpot API<\/H3>

We’re using the HubSpot API to get click\/open\/send events on marketing emails sent since a given timestamp.<\/P>

\u00a0<\/P>

We use\u00a0<\/SPAN><\/P>

email\/public\/v1\/campaigns<\/STRONG> to g<\/SPAN>et a list of email campaign IDs with activity since a given timestamp.<\/SPAN><\/DIV>
\u00a0<\/DIV>
Then for each<\/SPAN>\u00a0campaign ID:<\/SPAN><\/DIV><\/DIV><\/DIV>
1.<\/SPAN> Get the campaign data from\u00a0<\/SPAN><\/SPAN>
email\/public\/v1\/campaigns\/{id}<\/STRONG><\/DIV><\/DIV><\/DIV>
2.<\/SPAN> Use\u00a0contentId<\/STRONG> from the response to get email data from\u00a0<\/SPAN><\/SPAN>
marketing-emails\/v1\/emails\/{contentId}<\/STRONG><\/DIV><\/DIV><\/DIV><\/DIV>
3.<\/SPAN> Get click\/open\/send events from\u00a0<\/SPAN><\/SPAN>
email\/public\/v1\/events?campaignId={campaignId}&eventType={click|open|processed}<\/STRONG><\/DIV>
\u00a0<\/DIV>

What does the v1 suset mean for us?<\/H3>
My main question is in the title of this post – are all v1 APIs being sunset after 30th September 2025?<\/STRONG><\/DIV>
\u00a0<\/DIV>
The post Marketing Email API: v3 released to general availability and upcoming sunset for v1<\/a>\u00a0includes the line:<\/DIV>
“Any requests to the v1 API after this date will result in an error.”<\/EM><\/DIV>
\u00a0<\/DIV>
But does this only apply to endpoints starting with \/marketing-emails\/v1\/<\/STRONG>, or does it apply to all HubSpot API endpoints containing\u00a0\/v1\/<\/STRONG>?<\/DIV>
\u00a0<\/DIV>

How would we use the v3 API to achieve what we’re doing?<\/H3>

Getting campaigns that have activity after a given timestamp<\/H4>

Looking through the API docs, I can’t see a way of using the v3 API to get all campaigns that have activity after a given timestamp. I think the best we can do is to use\u00a0<\/P>

marketing\/v3\/emails\/statistics\/list <\/STRONG>to get IDs for emails that have activity after a given timestamp, then use\u00a0
marketing\/v3\/emails\/{id} <\/STRONG>to get the list of campaigns for the email via the\u00a0
allEmailCampaignIds<\/STRONG> property.<\/DIV>
\u00a0<\/DIV>
This is not ideal since it will include campaigns that have not had actitivy since the timestamp and I don’t see a way of verifying which campaigns have actually had activity.<\/DIV>
\u00a0<\/DIV>
Is there a neater way to get IDs for all campaigns that have changed since a timestamp?<\/DIV>
\u00a0<\/DIV>

Getting campaign details<\/H4>

The v3 equivalent of\u00a0email\/public\/v1\/campaigns\/{id}<\/STRONG>\u00a0<\/STRONG>seems to be\u00a0marketing\/v3\/campaigns\/{campaignGuid}<\/a>\u00a0but this expects a guid rather than a numeric ID.<\/P>

\u00a0<\/P>

How do I obtain that guid?<\/P>

\u00a0<\/P>

Getting email events<\/H4>

There doesn’t seem to be a v3 equivalent of\u00a0<\/P>

email\/public\/v1\/events<\/STRONG><\/DIV>
\u00a0<\/DIV>
How do I use a campaign ID in the v3 API to get the associated click\/open\/send events?<\/DIV><\/DIV><\/DIV><\/DIV><\/DIV><\/DIV><\/DIV><\/DIV><\/DIV><\/DIV><\/DIV><\/p>\n","protected":false},"excerpt":{"rendered":"

How we are using the HubSpot APIWe’re using the HubSpot API to get click\/open\/send events on marketing emails sent since a given timestamp.\u00a0We use\u00a0email\/public\/v1\/campaigns to get a list of email campaign IDs with activity since a given timestamp.\u00a0Then for each\u00a0campaign ID:1. Get the campaign data from\u00a0email\/public\/v1\/campaigns\/{id}2. Use\u00a0contentId from the response to get email data from\u00a0marketing-emails\/v1\/emails\/{contentId}3. […]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[14],"tags":[],"_links":{"self":[{"href":"http:\/\/gogetmuscle.com\/index.php\/wp-json\/wp\/v2\/posts\/1388"}],"collection":[{"href":"http:\/\/gogetmuscle.com\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/gogetmuscle.com\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/gogetmuscle.com\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/gogetmuscle.com\/index.php\/wp-json\/wp\/v2\/comments?post=1388"}],"version-history":[{"count":1,"href":"http:\/\/gogetmuscle.com\/index.php\/wp-json\/wp\/v2\/posts\/1388\/revisions"}],"predecessor-version":[{"id":1389,"href":"http:\/\/gogetmuscle.com\/index.php\/wp-json\/wp\/v2\/posts\/1388\/revisions\/1389"}],"wp:attachment":[{"href":"http:\/\/gogetmuscle.com\/index.php\/wp-json\/wp\/v2\/media?parent=1388"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/gogetmuscle.com\/index.php\/wp-json\/wp\/v2\/categories?post=1388"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/gogetmuscle.com\/index.php\/wp-json\/wp\/v2\/tags?post=1388"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}