I haven't gotten to use the Confluence cloud API at all and figured someone may have a working example of a CURL command that updates a confluence page?
Specifically, I want to add an Issue Filter Macro and apply a JQL.
Hello Alec,
Happy to help with that! First, you'll need to generate an API token if you haven't already.
You can find an example of the call you need from our documentation below:
According to this, your cURL command would be:
curl -u <EMAIL>:<API_TOKEN> -H 'Content-Type: application/json' -d '<REQUEST_BODY_HERE>' -X PUT https://<NAME>.atlassian.net/wiki/rest/api/content/<PAGE-ID>
{ "id": "CONTENT_ID_FROM_PAGE_URL", "type": "page", "title": "PAGE_TITLE", "version": { "number": (CURRENT_PAGE_VERSION_PLUS_1) }, "space": { "key": "SPACE_KEY" }, "body": { "storage": { "value": "<p><ac:structured-macro ac:name=\"jira\" ac:schema-version=\"1\" ac:macro-id=\"2522710c-30ab-4f0d-ad7b-f3beb63728a4\"><ac:parameter ac:name=\"server\">System JIRA</ac:parameter><ac:parameter ac:name=\"columns\">key,summary,type,created,updated,due,assignee,reporter,priority,status,resolution</ac:parameter><ac:parameter ac:name=\"maximumIssues\">20</ac:parameter><ac:parameter ac:name=\"jqlQuery\">project=TRP </ac:parameter><ac:parameter ac:name=\"serverId\">f2a1787f-9df0-35e5-adf4-7167694a8392</ac:parameter></ac:structured-macro></p>", "representation": "storage" } }}
Above, the "macro ID" and "server ID" are generated per instance. If you're not sure what your macro ID and server ID are, then you can insert a Jira Issues Macro in a page in Confluence manually, and then view the Storage Format (... > View Storage Format) in order to obtain that information for the future.
Additionally, you could call https://<NAME>.atlassian.net/wiki/rest/api/content/<PAGE-ID>?expand=body.storage and obtain the information in the same way.
Let me know if you have any trouble with that.
Regards,
Shannon
Thank you! I'll try that today!
Alec,
You're welcome! Please let us know if it works for you or if you have any other questions or issues.
Hi Shannon,
Could you please help i am using the below command (with reference to the above example), but i am getting the internal server error:
curl -u USER:"PASSKEY" -H "Content-Type:application/json" -d '{"id":"135769759","type":"page","title":"Configuration Management Plan","version":{"number":2},"space":{"key":"THEFW"},"body":{"storage":{"value":"<p>This is the updated text for the CMP page</p>","representation":"storage"}}' -X PUT https://confluence.sw.mycompany.com/rest/api/content/135769759 | python -mjson.tool% Total % Received % Xferd Average Speed Time Time Time CurrentDload Upload Total Spent Left Speed100 257 0 64 100 193 64 193 0:00:01 0:00:01 --:--:-- 252{"statusCode": 500,"message": "","reason": "Internal Server Error"}
I am able to resolve the error, but the content in the confluence page seems to be not getting updated.
Command Used:
curl -H 'Content-Type:application/json' -X PUT -d '{"version:"{"number":2},"title":"Configuration Management Plan new","type":"page","body":{"storage":{"value":"<p>This is the updated text for the CMP page</p>","representation":"storage"}}}' https://confluence.sw.mycompany.com/rest/api/content/135769759 -u USER:"PASSKEY"
The commands succeeds, but the page doesn't get updated.
Please help
Hi Nikhilesh, were you able to fix it?
It looks like you're new here. Sign in or register to get started.