Create
cancel
Showing results for 
Search instead for 
Did you mean: 
Sign up Log in
Celebration

Earn badges and make progress

You're on your way to the next level! Join the Kudos program to earn points and save your progress.

Deleted user Avatar
Deleted user

Level 1: Seed

25 / 150 points

Next: Root

Avatar

1 badge earned

Collect

Participate in fun challenges

Challenges come and go, but your rewards stay with you. Do more to earn more!

Challenges
Coins

Gift kudos to your peers

What goes around comes around! Share the love by gifting kudos to your peers.

Recognition
Ribbon

Rise up in the ranks

Keep earning points to reach the top of the leaderboard. It resets every quarter so you always have a chance!

Leaderboard

Come for the products,
stay for the community

The Atlassian Community can help you and your team get more value out of Atlassian products and practices.

Atlassian Community about banner
4,553,226
Community Members
 
Community Events
184
Community Groups

List all pages in a space showing titles of page and IDs

Does any please help me to get the list of all pages showing page titles and page IDs within a Confluence space using bash / python script ?

I want to generate a list of all pages showing the page title and page ID.

Thanks in advance

Vikas

2 answers

2 votes
Zak Laughton
Atlassian Team
Atlassian Team members are employees working across the company in a wide variety of roles.
Jul 31, 2018

Hi Vikas!

There are a few ways to accomplish this:

REST API

The api will likely be the best way to retrieve data from Confluence in a bash or Confluence script. You can see Confluence REST API Examples for examples of terminal and python commands for using the API.

The following URL will return a JSON list of all pages in the instance (replace <base-URL> with the base URL for your instance):

http://<base-URL>/rest/api/content?type=page&start=0&limit=99999

You can then use python to parse through the JSON to find the ID and title of each page (useful article on JSON parsing with Python: Working with JSON data in Python).

Database

While the REST API would be most convenient to use with a Python/bash script, you can also get all the page titles and ID's from the database with the following query:

SELECT title, contentid
FROM content
WHERE contenttype = 'PAGE'
AND prevver IS NULL
AND content_status = 'current';

I hope this helps!
-Zak

@Zak Laughton When I use the following, I get only 200 results. Is that set by the Confluence Server admin?

http://<base-URL>/rest/api/content?type=page&start=0&limit=99999

It is works to me for this url.

https://<base-URL>/wiki/rest/api/space/{SPACE_KEY}/content?start=0&limit=9999&type=page

But there were still some problems.

1. the result still exist limit. the limit is 1000

2. I add a new param: expand=children.page. the limit param is no effective. (In fact. the limit is return to 200...)

@Vikas Shrivastava @antony terrence 

I had to get the first set of results and do a loop based on the presence of the next link in the response.  When I set the limit to 99999, and I get maximum of 500. If we have to perform a simple action of getting all page details, we have to make multiple calls. I am sure there are areas where Atlassian could reduce the number of calls required to be made. This scenario is one of them.  The depth parameter does not work. 

Yes. Finally, I made multiple calls to get all pages. But I found another problem. There were exist limit in the "children" field when I add the param: expand=children.page.

(The limit is 25). So that I can't generate the tree structure. This is confusing

https://<base-URL>/wiki/rest/api/space/{SPACE_KEY}/content?expand=children.page&type=page&limit=9999

I am seeing 404 not found on using above API call.

Suggest an answer

Log in or Sign up to answer
TAGS
AUG Leaders

Atlassian Community Events