GOGETMUSCLE Community New Campaign API Updates

New Campaign API Updates

We’re rolling out several significant enhancements to the Campaigns API today on July 9th, 2025, to bring it closer to feature parity with the HubSpot platform, providing greater flexibility and control for developers. These updates include expanded support for a wider array of asset types, enabling deeper campaign associations; new endpoints for managing campaign budgets and spend, making financial planning more programmatically accessible; and added support for custom UTM property read/write capabilities to better align with customer tracking needs. Additionally, Campaign GET responses will now include business unit data, helping teams better organize and analyze campaign performance across brands.


hseligson_0-1752066971545.gif



For more information, please refer to the details below.



What’s changing?



Support for More Asset Types


Until now, our Campaigns API only supported a limited set of asset types (OBJECT_LIST, EXTERNAL_WEB_URL, and FORM) for reading and associating assets to campaigns.



We’re now broadening our support to include many more asset types, reflecting the full range of content available in the Marketing Campaigns UI. This helps close the gap between what is available in the UI and what is accessible via the API.


Now Supported:



  • SEQUENCE

  • MEETING_EVENT

  • PLAYBOOK

  • FEEDBACK_SURVEY

  • PODCAST_EPISODE

  • SALES_DOCUMENT

  • EMAIL

  • CASE_STUDY

  • KNOWLEDGE_ARTICLE

  • CALL

  • WEB_INTERACTIVE


We’ll continue to expand asset type coverage over time in both the UI and the API, ensuring the API evolves alongside the platform to support more content types seamlessly.



Campaign Budget Management via Public API


We’ve added new endpoints that allow you to create, read, update, and delete budget items on a campaign. This brings budget functionality closer to parity with what you can do in HubSpot.


New Endpoints:



  • POST /marketing/v3/campaigns/{campaignGuid}/budget

  • GET /marketing/v3/campaigns/{campaignGuid}/budget/{budgetId}

  • PUT /marketing/v3/campaigns/{campaignGuid}/budget/{budgetId}

  • DELETE /marketing/v3/campaigns/{campaignGuid}/budget/{budgetId}



Campaign Spend Management via Public API


Similar to campaign budgets, you’ll soon be able to manage campaign spend items via the API, allowing you to create, read, update, and delete spend items on a campaign.


New Endpoints:



  • POST /marketing/v3/campaigns/{campaignGuid}/spend/

  • GET /marketing/v3/campaigns/{campaignGuid}/spend/{spendId}

  • PUT /marketing/v3/campaigns/{campaignGuid}/spend/{spendId}

  • DELETE /marketing/v3/campaigns/{campaignGuid}/spend/{spendId}


Important Note for Developers: With the introduction of these new endpoints, we’re also enforcing scope group requirements for the Campaigns Public API to ensure proper access control. Any modification endpoint (such as create, update, and delete) will require the marketing.campaigns.write scope group. This change applies to both the newly introduced endpoints for budget and spend management.



Custom UTM Property Support for Beta Users


The Campaigns API now supports both reading and updating the hs_utm property:



  • Read Support: The hs_utm field can now be retrieved via the Campaigns API. This aligns the API with the platform, where UTM values have always been visible.

  • Write Support: You can now update the hs_utm field using the Campaigns API update (PATCH) endpoint. This enhancement was driven by strong customer demand for more control over how UTMs were managed, especially for teams seeking to decouple UTM values from campaign names.


Example Request:


PATCH /campaigns/{campaignGuid}
{
“properties”: {
“hs_name”: “Summer 2024 Campaign”,
“hs_utm”: “summer-promo-2024”
}
}

When using the UTM property, UTM values must not exceed 256 characters. This validation helps ensure data consistency and avoids potential issues. The new support for the UTM property offers greater flexibility in setting UTM values, particularly if you wish to separate them from campaign names. If a value exceeds the 256-character limit, you’ll encounter a validation error similar to this:


{
“status”: “error”,
“message”: “Provided campaign UTM is longer than allowed. Max length: 256”,
“category”: “VALIDATION_ERROR”
}

This feature is available to customers enrolled in the UTM editing public beta campaign, with the intention of releasing this functionality to all users once the beta is complete.



Campaign GET Responses Now Return Business Units


The Campaign GET responses will now include businessUnits:


businessUnits: [{ id: 0 }, …]

Important Note for Developers: The term “businessUnits” is still used in the API response, but will be renamed to “brands” in the HubSpot UI.



When is it happening?


These updates will be available to use on July 9th, 2025, and you can refer to the API documentation for more information.



Questions or comments? Join us below in the developer forums for a peer-to-peer discussion.

Leave a Reply

Your email address will not be published.

Related Post