We are moving from the old SOAP API to the new REST API to publish into Content Builder. As a result we need to create installed packages inside our clients SFMC accounts so we can get tokens to use in API Calls.

We have dedicated username/password with API access for each SFMC business unit. What I can't figure out is how to create installed packages via the API so I can begin making the other API calls (such as publishing content blocks or emails into the account).

It's not feasible to install these packages manually in each client's account as this does not scale. Can I do this somehow utilizing an API enabled username/password?

The obvious route is going through the AppExchange but I didn't know if there was a pure API driven route.

1 Answer 1


There is no automated method (API-based or otherwise) for creating installed packages. I'm not sure what your use case is, but perhaps you want to consider making a Marketing Cloud App (which doesn't have to be on AppExchange, it can also be configured locally, on a Marketing Cloud account).

A Marketing Cloud App doesn't require individual OAuth credentials for each BU. You can simply choose which Users on your account can access the app, and you will receive a JWT with the access token to use.

Refer to the documentation for more information. However, in order to implement this, you would need to have an external HTTPS endpoint to receive POST requests with the JWT payload, and I'm not sure of your use case (specifically, how you are using the API).

While Marketing Cloud apps are designed to interact with an app accessible from the AppExchange menu in Marketing Cloud (which iframes your app into Marketing Cloud), there are alternative approaches, as explained here (this specifically pertains to the custom block widget, but the same solution would also be applicable to other use cases).

  • This makes sense. The application I've built needs to allow users to hook their user in my app to their SFMC account to publish emails. That's why creating it locally is tough, each user has a unique SFMC account. I was hoping to keep all authentication in one place (my app) as opposed to setting up a packing in SFMC and taking the client ID and Secret into my app. I think what you said makes sense though. Thanks for taking the time.
    – DigitalMC
    Commented Aug 22, 2018 at 15:14

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .