---
title: "Service: /tasks/find [GET]"
source: https://dev.pageseeder.com/api/services/find-tasks-public-GET.html
description: "GET endpoint that retrieves a filtered list of public tasks. Returns non-archived tasks matching filter criteria, sorted by most recent comment. Supports filtering by date, assignee, status, priority, author, labels, and more."
last_updated: 2026-09-02T11:36:19+10:00
document_type: api_endpoint
operation_id: comment-GET
resource_id: comment
path_template: /tasks/find
http_method: GET
api_category: comment
implementation_version: 6.2008
api_since: 5.3001
deprecated_since: null
obsolete_since: null
api_support: supported
cache_control: null
generated_at: 2026-09-02
tokens: ~1323
---

# /tasks/find \[GET\]

## Description

Load public tasks by filter.

Load a list of non-archived tasks using filter parameters. The last [comment](../../reference/glossary/comment.md) in the [task](../../reference/glossary/task.md) must match all filter parameters. The tasks with the most recent last comment are returned first.

> **Note:** The `@status`, `@priority`, `@due` attributes and `<assignedto>` element might not be included if `comments=first` or `none` and the last comment in the task is not loaded.

## Parameters

| Name | Description | Required | Type | Default value |
| --- | --- | --- | --- | --- |
| assignedafter | The date time after which the tasks were assigned last, format is ISO-8601 e.g. `2010-10-25T12:26:00+10:00` | no | string |  |
| assignedbefore | The date time before which the tasks were assigned last, format is ISO-8601 e.g. `2011-08-25T10:20:00-04:00` | no | string |  |
| assignedto | The `ID` of the member the tasks are assigned to (`0` means Nobody). | no | long |  |
| attachments | The attachments to include (can be `none`, `context`, `all`) | no | enum | `all` |
| author | The ID of the tasks author | no | long |  |
| comments | Which comments should be loaded for each task (can be: `none`, `first`, `last`, `all`, `archive`) | no | enum | `last` |
| contents | The contents to include (can be `none`, `all`) | no | enum | `all` |
| contentrole | The contentrole for the tasks, can be `comment`, `workflow`, `all` (`comment` includes `file attachment`) | no | enum | `all` |
| context | The context for the tasks (can be `group`, `uri`, `all`) | no | enum | `all` |
| createdafter | The date time after which the tasks were created, format is ISO-8601 e.g. `2010-10-25T12:26:00+10:00` | no | datetime |  |
| createdbefore | The date time before which the tasks were created, format is ISO-8601 e.g. `2011-08-25T10:20:00-04:00` | no | datetime |  |
| dueafter | The date time after which the tasks are due, format is ISO-8601 e.g. `2010-10-25T12:26:00+10:00` | no | datetime |  |
| duebefore | The date time before which the tasks are due, format is ISO-8601 e.g. `2011-08-25T10:20:00-04:00` | no | datetime |  |
| emails | The email addresses to include, can be `none`, `all` (admin only) | no | enum | `none` |
| groups | Comma-separated list of groups the tasks must belong to (if not specified, the user’s current groups are used) | no | string |  |
| labels | Comma-separated list of label value – task **MUST** have all (not recommended for filtering large data sets) | no | string |  |
| modifiedafter | The date time after which the tasks were modified, format is ISO-8601 e.g. `2010-10-25T12:26:00+10:00` | no | string |  |
| page | The page to load | no | integer | `1` |
| pagesize | The number of results per page | no | integer | `1000` |
| paths | The context URI paths for the tasks – **MUST** be URL encoded (comma-separated list with optional `*` suffix) | no | string |  |
| priorities | Comma-separated list of priorities | no | string |  |
| publicationid | Return only tasks for documents in this publication. *Requires PageSeeder 5.9907 or higher.* | no | publicationid |  |
| statuses | Comma-separated list of statuses | no | string |  |
| tasksize | The maximum number of comments to return per task (0 = unlimited) | no | integer | `100` |
| title | The title of the tasks (optional wildcard `*` suffix, use `**` to escape) | no | string |  |
| type | The type of the tasks (optional wildcard `*` suffix, use `**` to escape). | no | string |  |
| types | Comma-separated list of types the task can have (empty string means no type) | no | strings |  |

## Permission

This service requires no permissions but will only work on groups configured for public access and requires `publicEnable=non-member` in the [Global properties](../../guide/configuration/properties/global_properties.md).

If the parameter emails is set to `all`, the permission is restricted to administrator only.

## Response

The output has the following format:

```xml

<tasks>
  <task id="123"
        title="My thread"
       [replycount="1"
        lastcommentid="234" 
        lastcommentdate="2012-08-20T14:27:48+10:00"]
        status="Open"
       [priority="High"]
       [due="2012-08-25T18:00:00+10:00"]>
    <uri id="789"> ... </uri>
    <locator fragment="2"/>
   [<assignedto id="34" date="2012-08-20T14:27:48+10:00" ...>
      ...
    </assignedto>]
    <comment id="234"
             contentrole="File Attachment"
             created="2012-03-08T12:34:00+10:00">
      <title>My thread</title>
      <content type="text/plain">Some text</content>
      <attachment>
        <uri id="189"> ... </uri>
      </attachment>
      <attachment fragment="5">
        <uri id="289"> ... </uri>
      </attachment>
    </comment>
  </task>
  <task id="100"> ... </task>
</tasks>
```

> **Note:** The `@replycount` , `@lastcommentid` and `@lastcommentdate` are only included and `@title` is from the last comment, if the `comments` parameter is `last`, `all` or `archive`, otherwise `@title` is from the first comment.

## Error Handling

| Code | Cause / Description |
| --- | --- |
| 0x1306 | The Group is invalid or not accessible |
| 0x1312 | The createdafter or createdbefore date is invalid |
| 0x1313 | The author is invalid |

