pages/{pageid}/tree (GET)
Overview
Builds a site map starting from a given page.
- REST Method: GET
- Method Access: public
Uri Parameters
| Name | Type | Description |
| pageid | string | either an integer page ID, "home", or "=" followed by a double uri-encoded path |
Query Parameters
| Name | Type | Description |
| startpage | bool? | For HTML sitemap, indicates if the start page should be included (default: true) |
| format | {xml, html, google}? | Result format (default: xml) |
| include | string? | Include additional page information. Valid values: user, lastmodified, revision or properties |
| authenticate | bool? | Force authentication for request (default: false) |
Return Codes
| Name | Value | Description |
| OK | 200 | The request completed successfully |
| Bad Request | 400 | Invalid input parameter or request body |
| Forbidden | 403 | Browse access to the page is required |
| Not Found | 404 | Requested page could not be found |
Message Format
Output (XML):
<pages>
<page id="{int}" href="{uri}">
<title>{text}</title>
<path>{text}</path>
<subpages>
<page>...</page>
...
</subpages>
</page>
</pages>
Output (HTML):
<ul>
<li>
<a rel="internal" href="{uri}" title="{text}" pageid="{int}" class="{text}">{text}</a>
<ul>
<li>...</li>
...
</ul>
</li>
</ul>
Output (sitemap): Refer to http://www.google.com/schemas/sitemap/0.84
Implementation Notes
Redirect and archived pages are not included in the sitemap.
Use GET:pages to retrieve the full sitemap.
C# Code Sample: Retrieve Sitemap from Root Page
The following code example retrieves the sitemap from the page called "Page Title" in XML format:
Sample Code
Plug p = Plug.New("http://deki-hayes/@api/deki");
p.At("users", "authenticate").WithCredentials("admin", "password").Get();
p.At("pages", "=Page_Title").With("format", "xml").Get();
Sample Response from executing Code
Sample response indicating that "Page Title" has one sub-page called "Subpage 1":
<pages>
<page id="31" href="http://deki-hayes/@api/deki/pages/31">
<title>Page Title</title>
<path>Page_Title</path>
<subpages>
<page id="32" href="http://deki-hayes/@api/deki/pages/32">
<title>Subpage 1</title>
<path>Page_Title/Subpage_1</path>
<subpages />
</page>
</subpages>
</page>
</pages>
Curl Code Sample: Retrieve Sitemap from Root Page
This command basically does a recursive search for sub-pages. The following will return a sitemap with page "foo" as the root:
Sample Code
curl -u username:password -i http://mindtouch.address/@api/deki/pages/=foo/tree
Sample Response from executing Code
The response given by running the command on a page with two sub-pages and one sub-sub-page:
Content-Type: application/xml
<pages>
<page id="565" href="http://192.168.59.128/@api/deki/pages/565?redirects=0">
<uri.ui>http://192.168.59.128/Bar</uri.ui>
<title>Bar</title>
<path>Bar</path>
<namespace>main</namespace>
<subpages>
<page id="600" href="http://192.168.59.128/@api/deki/pages/600?redirects=0">
<uri.ui>http://192.168.59.128/Bar/Foo</uri.ui>
<title>Foo</title>
<path>Bar/Foo</path>
<namespace>main</namespace>
<subpages>
<page id="601" href="http://192.168.59.128/@api/deki/pages/601?redirects=0">
<uri.ui>http://192.168.59.128/Bar/Foo/Kung_Fu</uri.ui>
<title>Kung Fu</title>
<path>Bar/Foo/Kung_Fu</path>
<namespace>main</namespace>
<subpages/>
</page>
</subpages>
</page>
<page id="602" href="http://192.168.59.128/@api/deki/pages/602?redirects=0">
<uri.ui>http://192.168.59.128/Bar/Mars</uri.ui>
<title>Mars</title>
<path>Bar/Mars</path>
<namespace>main</namespace>
<subpages/>
</page>
</subpages>
</page>
</pages>
Implementation notes
curl flags
- -u
- Provides external user authentication. Note that if anonymous access is available and authentication is not forced, this flag may be omitted.
- -i
- Outputs the HTTP response headers. Useful for debugging.
Pages
- To view a list of all pages, follow the instructions here.

