Skip to content

Latest commit

 

History

History
171 lines (121 loc) · 3.82 KB

File metadata and controls

171 lines (121 loc) · 3.82 KB
title List project pages
description List project pages via Plane API. HTTP request format, parameters, scopes, and example responses for listing project pages.
keywords plane, plane api, rest api, api integration, page, list project pages, project pages

List project pages

GET /api/v1/workspaces/{workspace_slug}/projects/{project_id}/pages/

List all pages in a project with optional filtering and search.

Path Parameters

The workspace_slug represents the unique workspace identifier for a workspace in Plane. It can be found in the URL. For example, in the URL https://app.plane.so/my-team/projects/, the workspace slug is my-team.

The unique identifier of the project.

Query Parameters

Filter pages by scope. Defaults to all.

  • all — all pages the user has access to
  • public — pages with public access, excluding archived
  • private — pages owned by the user and not shared, excluding archived
  • shared — private pages explicitly shared with the user
  • archived — pages that have been archived

Case-insensitive search on page title.

Number of results per page. Defaults to 20, maximum 100.

Pagination cursor for getting the next or previous set of results.

Scopes

projects.pages:read

curl -X GET \
  "https://api.plane.so/api/v1/workspaces/my-workspace/projects/project-id/pages/?type=public&search=welcome&per_page=20" \
  -H "X-API-Key: $PLANE_API_KEY" \
  # Or use -H "Authorization: Bearer $PLANE_OAUTH_TOKEN"
import requests

response = requests.get(
    "https://api.plane.so/api/v1/workspaces/my-workspace/projects/project-id/pages/",
    headers={"X-API-Key": "your-api-key"},
    params={"type": "public", "search": "welcome", "per_page": 20},
)
print(response.json())
const response = await fetch(
  "https://api.plane.so/api/v1/workspaces/my-workspace/projects/project-id/pages/?type=public&search=welcome&per_page=20",
  {
    method: "GET",
    headers: {
      "X-API-Key": "your-api-key",
    },
  }
);
const data = await response.json();
{
  "grouped_by": null,
  "sub_grouped_by": null,
  "total_count": 4,
  "next_cursor": "20:1:0",
  "prev_cursor": "20:-1:1",
  "next_page_results": false,
  "prev_page_results": false,
  "count": 4,
  "total_pages": 1,
  "total_results": 4,
  "extra_stats": null,
  "results": [
    {
      "id": "b3478c56-31f6-4f7e-b445-8392a4b26621",
      "name": "welcome 3 b",
      "owned_by": "5b0af4aa-e310-408a-a480-868429af5701",
      "access": 0,
      "is_locked": false,
      "archived_at": null,
      "workspace": "8725ddfa-c181-49f6-9173-97b8d0b7d599",
      "created_at": "2026-04-01T15:41:19.062280Z",
      "updated_at": "2026-04-07T19:30:39.274060Z",
      "logo_props": {},
      "parent_id": "a2819c8b-f7ac-4cbd-b971-682726c4f8cc"
    }
  ]
}