pages (GET)
Overview
Builds a site map starting from 'home' page.
- REST Method: GET
- Method Access: public
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) |
| 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/{pageid}/tree to retrieve the sitemap from a specified page.
C# Code Sample: Retrieve Sitemap
The following code example retrieves the sitemap 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").With("format", "xml").Get();
Sample response indicating that the home page has one sub-page called "Page Title". This sub-page has one sub-page called "Subpage 1":
Sample Response from executing Code
<pages>
<page id="29" href="http://deki-hayes/@api/deki/pages/29">
<title>DekiWiki (Hayes)</title>
<path />
<subpages>
<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>
</subpages>
</page>
</pages>
Implementation notes
Add notes about requirements or config values
Curl Code Sample: Retrieve Sitemap
The following command retrieves a hierarchical representation of the site's pages:
Sample Code
curl -u username:password -i http://mindtouch.address/@api/deki/pages
Sample Response from executing Code
<pages>
<page id="21" href="http://192.168.59.128/@api/deki/pages/21?redirects=0"> <!-- homepage -->
<uri.ui>http://192.168.59.128/</uri.ui>
<title>Best Wiki Ever</title>
<path/>
<namespace>main</namespace>
<subpages>
<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>
<page id="567" href="http://192.168.59.128/@api/deki/pages/567?redirects=0">
...
</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.

