GET /api/v1/sites/{siteId}/pages returns all non-deleted draft pages with path, title, dirty flag, and editor_url. Requires content:read scope and access to the site.
Request
GET /api/v1/sites/{siteId}/pages
Authorization: Bearer av_live_…
Required scope:content:read
Query filters
Optional query parameters narrow the list for multilingual docs sites and translation workflows:
Parameter
Example
Behavior
locale
?locale=de
Pages in that locale. For the site's default locale, returns unprefixed source pages.
untranslated_for
?untranslated_for=de
Default-locale pages with no linked variant in that locale. A file at /de/… without a translation group does not count — use Link translation (/link-translation.mdx).
stale_translations
?stale_translations=true
Locale variants whose stored source checksum no longer matches the current source MDX (same definition as the editor stale flag).
Filters compose together. MCP clients pass the same fields to aveiro_list_pages.Replace {siteId} with a site id from List sites.
true when draft differs from last published version
never_published
true when the page has never been published
editor_url
Direct link to open the page in the editor
Get one page
By content ID:
GET /api/v1/sites/{siteId}/pages/{contentId}
By path:
GET /api/v1/sites/{siteId}/pages/by-path?path=/guides/foo.mdx
Both return full content, metadata, and revision (latest content version id).
Reorder, move, or sort
After listing pages, use Reorder pages to change tree order without editing MDX:
POST /api/v1/sites/{siteId}/reorder
Operations: reorder (explicit sibling order), move (page into a folder), sort (folder sort mode). MCP clients call aveiro_reorder_pages, aveiro_move_page, and aveiro_set_folder_sort, one per operation.
Review unpublished changes
GET /api/v1/sites/{siteId}/changes
Returns only pages where dirty is true — useful after a CI sync to see what still needs human review before publish.