I'm facing the very same challenge - and options suggested by SF was to use their archival service (or do a BCC on send). One possible solution I've found - 1) Create a Data Extension, with an unlimited text Field. 2) Add Ampscript in your Template/Email to Log the HTML into the Data Extension 3) Retrieve the HTML from the data extension using API (or flat file extract if needed) %%[ IF _messagecontext == "SEND" AND jobid > 0 THEN set @HTML = HTTPGet(view_email_url) InsertDE("EmailHistory", "JobID",jobid, "SubscriberKey",_subscriberkey, "EventDate",NOW(), "HTML",@HTML ) ENDIF ]%% In addition, using SQL & Automation you can combine the result from the data extension with the results of the _Sent and _JobID tables if desired.