Hi Viktor,
I have a very similar needs: I need to automatically generate HTML content and PUT it to the Confluence page.
My particular page should contain an "Expand" macro. I tried to copy HTML block containing it from another page and then modify and PUT it to Confluence, but got a view like this:

As you can see - macro doesn't work.
When I looked deeply in HTML code - I saw that each <div> tag containing macro looks like follows:
<div class="content-wrapper">
<div id="expander-2068011896" class="expand-container conf-macro output-block" data-hasbody="true" data-macro-name="expand" data-macro-id="c58eaef6-decc-453b-b27c-4807ca9e9950">
<div id="expander-control-2068011896" class="expand-control"><span class="expand-control-iconicon"> </span><span class="expand-control-text">Click here to expand...</span></div>
.....
</div>
There are some attributes like:
- id="expander-2068011896"
- id="expander-control-2068011896"
Maybe the problem is that this ID's generating dynamically by backend once you publishing Confluence page throw web-browser, and works only in particular Confluence page? Just a suggestion...
However, the main question: how can I create HTML code containing Confluence macro, so that the macro will work properly in web-browser, after publishing it by REST API?
@Stephen Sifers, please share your suggestions.
It will be very appreciated!