Deze referentie is alleen in het Engels. Naar het Nederlandse REST API-overzicht

Diese Referenz gibt es nur auf Englisch. Zur deutschen REST-API-Übersicht

Cette référence existe uniquement en anglais. Aller à la présentation de l'API REST en français

Esta referencia solo está en inglés. Ir a la introducción de la API REST en español

GET/work-items

List work items

GEThttps://<your-url>/api/v2/work-items

MCP id work-items.indexAlso on this path: POST Create a work item

View as Markdown openapi.json

Returns the work items the caller may read, in each sprint's display order with the id as the tiebreaker.

Access

Token scope
api:read:project_management

Without it: 403 insufficient-token-scope.

Permission
project_management::view_backlog

Without it: 403 insufficient-permission.

Rate cost
1 unit, read bucket. view=detail makes it 3. Adds: with_total=1 +2, each include +1 (to-many +3), q +2.
Also
If-None-Match answers 304 when nothing changed. Never cached: private, no-store. Unknown query parameters are refused, never ignored.

Both are checked, scope first. A token never does more than its user. How access is checked

The list covers the whole organisation and interleaves projects, because order is unique within a sprint only; narrow it with filter[project_id], and add filter[sprint_id][null]=true for a project's backlog or filter[resolved]=false for its open work. Pagination is cursor-only: a backlog drag rewrites order on the rows behind you, so an offset page would skip and repeat items. meta.page.total is null unless you pass with_total=1, which costs two rate units. Listing additionally requires project_management::manage_work_items. Defaults to the summary view, which omits description; pass view=detail for the full payload.

Query parameters

Unknown parameters are refused with 400, naming the parameter.

43 parameters in 6 groups

Views

viewstring

Which field set to render.

summarydefaultdetail

Pagination

Cursor pagination only. Follow links.next.

per_pageinteger1 to 100

Rows per page. At most 25 when include names a to-many relation; a larger value is 400 invalid-query-parameter.

Default: 25

cursorstring

Opaque keyset cursor from a previous page's links.next. Never construct one by hand.

with_totalboolean

Whether meta.page.total is counted for this request.

Default: false

Filters

=
equals
[in]
any of a comma-separated list
[null]
true or false: whether it is empty
[gte][lte][lt]
at least, at most, less than
[ne]
not equal
filter[assignee_id]integer=[in][null]

User the work is assigned to. Accepts me. Pass [null] for unassigned items.

A comma-separated list of at most 100 values.

filter[created_at]timestamp (YYYY-MM-DDThh:mm:ssZ)=[gte][lt]

Creation timestamp. Pair with sort=id for a stable full export.

filter[drive_items.id]integer

Work items linked to a given drive document. The document must be one the caller may open; a document they cannot open matches nothing.

Also needs project_drive::access and a token with api:read:project_drive.

filter[due_date]date (YYYY-MM-DD)=[gte][lte][null]

Due date, a zone-free calendar date. Combine [gte] and [lte] for a period; pass [null] for items with no due date.

Whether the field is null.

filter[labels.id]integer

Work items carrying a given label.

filter[parent_id]integer=[in][null]

Parent work item. Pass a key for one item's children (sub-issues), or [null] for top-level items only.

A comma-separated list of at most 100 values.

filter[priority]string=[ne][in]

Relative priority. One of highest, high, normal, low, lowest; there is no medium.

A comma-separated list of at most 100 values.

highesthighnormallowlowest

New values may be added.

filter[project_id]integer=[in]

Project the work item belongs to. This is how a client reproduces one project's backlog; combine it with the other filters to hit idx_work_items_project_sprint_order and its siblings.

A comma-separated list of at most 100 values.

filter[reporter_id]integer=[in]

User who filed the work item. Accepts me.

A comma-separated list of at most 100 values.

filter[resolved]boolean

Whether the item sits in a workflow status marked as a resolution. Pass false for open work.

Also needs workflows::read and a token with api:read:workflows.

Sorting

sortstring

Up to three keys, comma-separated, each optionally prefixed with - for descending.

Default: order

KeySorts by
orderPosition within the sprint or backlog, as ordered in plnnrly. The default sort, ascending.
column_orderPosition within the board column.
titleWork item title, A→Z.
due_dateDue date, earliest first.
priorityPriority, ordered by its stored value rather than by severity: high, highest, low, lowest, normal.
idId, ascending. An id never changes, so use this for a stable full export.
updated_atLast-write timestamp; pair with the id tiebreaker for sync.

Prefix a key with - for descending.

Includes

includestring

Comma-separated names to inline, at most five.

PathAddsCost
assigneeThe user the work is assigned to. Requires the users prefix's read grant and a token scope covering it.+1
commentsComments on this work item, capped at 25 rows. Truncation emits an include_truncated warning; links.comments is the paginated continuation.to-many · +3
drive_itemsDrive documents linked to this work item, capped at 25 rows and narrowed to the ones you may open. links.drive_items is the paginated list of all of them. Requires the project_drive prefix's access grant and a token scope covering it.to-many · +3
labelsLabels on this work item in the project's label order, capped at 25 rows. While the Sprints feature is enabled, links.labels is the paginated list of all of them.to-many · +3
parentThe parent work item, on a sub-issue.+1
reporterThe user who filed the work item. Requires the users prefix's read grant and a token scope covering it.+1
sprintThe sprint this item sits in, when it is not in the backlog.+1
subtasksChecklist subtasks on this work item, capped at 25 rows. links.subtasks is the paginated continuation.to-many · +3
work_typeThe work type of this item. Requires the work_types prefix's read grant and a token scope covering it.+1

Request headers

X-Request-Idstringpattern

A correlation id of your own. It is recorded in our logs next to the server's request id but never returned: the response header always carries the server's id. A value that does not match the pattern is discarded silently, never rejected.

If-None-Matchstring

The ETag a read is conditional on. A match is answered 304 with no body.

Response 200

Returns a page of WorkItemList rows.

dataarray of WorkItemList

The rows, each a WorkItemList.

per_page, next_cursor, prev_cursor, total.

meta.warningsarray of object

Non-fatal notes about this request. Switch on code, never on detail.

Each row is a WorkItemList: 39 fields.

Headers

ETag
A weak validator (W/"…") of the rendered page.
RateLimit
The IETF httpapi-ratelimit-headers form of your remaining allowance on the tightest bucket this request touched.
RateLimit-Policy
The ceiling and window of that bucket, as <limit>;w=<seconds>.
X-Request-Id
The server-generated ULID correlating this response with our logs.

Every response also carries Cache-Control, Vary, X-Content-Type-Options, X-Plnnrly-Api-Version, X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset. Headers and versioning

Errors

8 errors every operation can return: 304, 400, 401, 404, 406, 429, 500, 503

This path allows GET, POST. Anything else answers 405.