Skip to content

List intake work items ​

GET/api/v2/workspaces/{slug}/projects/{project_id}/intake-issues/

Intake work items are the triage queue for a project. List the intake work items you can see. Results are scoped to the path and to what your token is allowed to read.

Path parameters ​

slug:requiredstring

The workspace slug. It appears in your Plane URLs. In https://app.plane.so/my-team/projects/, the slug is my-team.

project_id:requiredstring

The project the resource belongs to. Accepts the project UUID or its bare identifier, for example ENG.

Query parameters ​

count:optionalboolean

Set to false to skip the COUNT(*) query behind total_count. The response then leaves out total_count.

external_id:optionalstring

Filter by external_id.

external_source:optionalstring

Filter by external_source.

offset:optionalinteger

Number of rows to skip from the start of the result set.

order_by:optionalstring

Field to sort the list by. Prefix it with - for descending order, for example -created_at. Orders on computed fields sort by their logical order and use the default offset pagination.

paginate:optionalstring

Set to cursor to switch to the keyset cursor envelope, which skips the COUNT query and is better for paging deep into a list. Leave it out to get the default offset envelope with total_count.

One of cursor.

per_page:optionalinteger

Page size (max 200).

search:optionalstring

A search term.

source:optionalstring

Filter by source.

status:optionalinteger

Filter by triage status: -2 (pending), -1 (rejected), 0 (snoozed), 1 (accepted), or 2 (duplicate).

status__in:optionalarray of integer

Filter by several triage statuses, separated by commas. Takes the same values as status.

work_item_id:optionalstring (uuid)

Filter by work_item_id.

Response shaping ​

fields:optionalstring

Comma-separated list of fields to return. Fields you don't request are left out of each row instead of coming back as null. id is always included. Pass all to get every requestable field.

An unknown field name returns 400 with the list of valid names, so a typo is caught instead of being silently ignored. See Sparse fields.

Requestable here: created_at, created_by_id, description_html, duplicate_to_id, external_id, external_source, id, intake_id, name, priority, snoozed_till, source, source_email, state_id, status, updated_at, updated_by_id, work_item_id.

Scopes ​

projects.intakes:read

Errors ​

StatusCodeCause
401unauthorizedMissing or invalid credentials.
402payment_requiredThe feature this endpoint belongs to isn't enabled on your plan or is switched off.
403forbiddenYour role or token scope doesn't allow this.
404not_foundNo such resource, or it's outside your tenant.
406not_acceptableThe Accept header asks for a representation the API can't produce.
429rate_limitedThrottled. Honor the Retry-After header before retrying.
List intake work items
bash
curl -X GET \
  "https://api.plane.so/api/v2/workspaces/my-team/projects/4af68566-94a4-4eb3-94aa-50dc9427067b/intake-issues/" \
  -H "X-Api-Key: $PLANE_API_KEY"
Response200
json
{
  "data": [
    {
      "created_at": "2026-01-14T09:22:41.478363Z",
      "updated_at": "2026-01-14T09:22:41.478363Z",
      "created_by_id": "16c61a3a-512a-48ac-b0be-b6b46fe6f430",
      "updated_by_id": null,
      "description_html": "<p>Details go here.</p>",
      "duplicate_to_id": "f960d3c2-8524-4a41-b8eb-055ce4be2a7f",
      "external_id": null,
      "external_source": null,
      "id": "b7e42a19-3c5d-4f80-9a26-8d1c0f4e7b53",
      "intake_id": "f960d3c2-8524-4a41-b8eb-055ce4be2a7f",
      "name": "Example name",
      "priority": "high",
      "snoozed_till": "2026-01-14T09:22:41.478363Z",
      "source": "example",
      "source_email": "example",
      "state_id": "f960d3c2-8524-4a41-b8eb-055ce4be2a7f",
      "status": -2,
      "work_item_id": "f960d3c2-8524-4a41-b8eb-055ce4be2a7f"
    }
  ],
  "next": 1,
  "pagination": {
    "style": "offset"
  },
  "previous": 1,
  "total_count": 3
}