I work for a point solution vendor and I'm trying to pull historical (3-6 months) event data (sent, opened, clicked, bounce, unsub, etc.) at the subscriber level for a customer of ours so that we can run analytics on the data. I've done this manually before using a Data Extract Program that I manually setup in the Email section of the Salesforce Marketing Cloud UI. Here are the steps I took:

  1. Create new File Location for our SFTP site
  2. Define Data Extract Activity
  3. Define File Transfer Activity
  4. Define and Run Program stringing it all together

My understanding is that I cannot do any of those steps via API - they must be done within the SFMC UI. However, once the File Location, Data Extract Activity, File Transfer Activity and Program are created in the UI, we can use the Fuel API to edit and execute them ourselves. Is that accurate?

Ideally, I'd like to know what the path of least resistance is for our customers who want to do this type of project. If there is a way for us to do all of those 4 steps on our own using a Client ID and Client Secret from an "API integration app for server-to-server configuration", that would be ideal. If we can, I'm assuming we would need Email Read, Send and Write permissions enabled for that Integration App, right? Or if there is another way altogether that I'm missing, please do share.

Many thanks in advance - excited to see how helpful this is, as it's my first post ever.


You can achieve the same result via the API with fewer steps. Executing a tracking extract via the API automatically does the extract and transfer steps but the destination will be the default FTP export folder in the account. If you need to direct it to an external FTP then the API method may not work for you. See the link below on details on how to execute a tracking extract request.

Using Tracking Extracts

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.