List collection pages
GET/api/v1/workspaces/{workspace_slug}/collections/{collection_id}/pages/
Returns a paginated branch of visible pages. By default, it returns the collection's root pages. Pass next_cursor back as cursor to continue until next_page_results is false.
Path Parameters
workspace_slug:requiredstringThe workspace slug.
collection_id:requireduuidThe collection ID.
Query Parameters
parent_id:optionaluuidReturn direct children of this page.
search:optionalstringCase-insensitive page-name search.
created_by:optionalstringComma-separated creator IDs.
favorites:optionalbooleanFilter by the current user's favorite status.
labels:optionalstringComma-separated label IDs.
created_at__gte:optionaldateCreated on or after this date.
created_at__lte:optionaldateCreated on or before this date.
owned_by_id:optionaluuidFilter by owner.
owned_by_id__in:optionalstringComma-separated owner IDs.
parent_id__in:optionalstringComma-separated parent IDs.
per_page:optionalintegerResults per page. Defaults to 50; maximum 100.
cursor:optionalstringCursor returned by a previous page.
Scopes
read or wiki.pages:read
List collection pages
bash
curl "https://api.plane.so/api/v1/workspaces/my-workspace/collections/collection-uuid/pages/?search=API&per_page=50" \
-H "X-API-Key: $PLANE_API_KEY"python
import requests
url = "https://api.plane.so/api/v1/workspaces/my-workspace/collections/collection-uuid/pages/"
response = requests.get(url, headers={"X-API-Key": "your-api-key"}, params={"search": "API", "per_page": 50})
print(response.json())javascript
// Run this example server-side. Browser apps must call your backend to keep the API key secret.
const url =
"https://api.plane.so/api/v1/workspaces/my-workspace/collections/collection-uuid/pages/?search=API&per_page=50";
const response = await fetch(url, { headers: { "X-API-Key": process.env.PLANE_API_KEY } });
console.log(await response.json());Response200
json
{
"next_cursor": "50:50:0",
"prev_cursor": "50:0:0",
"next_page_results": false,
"prev_page_results": false,
"count": 1,
"total_pages": 1,
"total_results": 1,
"extra_stats": null,
"results": [
{
"page_collection_id": "55ebf2cc-61ba-478a-b88c-88db969e29dc",
"collection_id": "0a8a3e6a-3c32-49c7-bbb5-b7a8e32c2f10",
"parent_id": null,
"sort_order": 65535.0,
"page": {
"id": "ea8ccdab-1cf4-448b-8205-51e4b98d82b8",
"name": "API guide",
"access": 0,
"logo_props": {},
"parent_id": null,
"collection_id": "0a8a3e6a-3c32-49c7-bbb5-b7a8e32c2f10",
"workspace": "95d1f03f-16e5-4807-a8c5-ec0c7cf0e4ab",
"sub_pages_count": 2,
"is_shared": false,
"owned_by": "d2f1b470-55e8-4e7a-8a61-7fc695bc1a4f",
"updated_at": "2026-08-18T10:00:00Z",
"created_at": "2026-08-18T10:00:00Z",
"created_by": "d2f1b470-55e8-4e7a-8a61-7fc695bc1a4f",
"updated_by": "d2f1b470-55e8-4e7a-8a61-7fc695bc1a4f",
"is_favorite": false,
"label_ids": []
}
}
]
}
